diff --git a/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js b/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js index d9bce5405..b34e7deec 100644 --- a/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js +++ b/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js @@ -378,22 +378,23 @@ return view.extend({ so = ss.option(form.ListValue, 'node', _('Node'), _('Outbound node')); + so.value('urltest', _('URLTest')); for (var i in proxy_nodes) so.value(i, proxy_nodes[i]); - so.validate = L.bind(hp.validateUniqueValue, this, data[0], 'routing_node', 'node'); so.editable = true; so = ss.option(form.ListValue, 'domain_strategy', _('Domain strategy'), _('If set, the server domain name will be resolved to IP before connecting.
')); for (var i in hp.dns_strategy) so.value(i, hp.dns_strategy[i]); + so.depends({'node': 'urltest', '!reverse': true}); so.modalonly = true; so = ss.option(widgets.DeviceSelect, 'bind_interface', _('Bind interface'), _('The network interface to bind to.')); so.multiple = false; so.noaliases = true; - so.depends('outbound', ''); + so.depends({'outbound': '', 'node': /^((?!urltest$).)+$/}); so.modalonly = true; so = ss.option(form.ListValue, 'outbound', _('Outbound'), @@ -416,9 +417,12 @@ return view.extend({ var conflict = false; uci.sections(data[0], 'routing_node', (res) => { - if (res['.name'] !== section_id) + if (res['.name'] !== section_id) { if (res.outbound === section_id && res['.name'] == value) conflict = true; + else if (res?.urltest_nodes?.includes(node) && res['.name'] == value) + conflict = true; + } }); if (conflict) return _('Recursive outbound detected!'); @@ -426,6 +430,66 @@ return view.extend({ return true; } + so.depends({'node': 'urltest', '!reverse': true}); + + so = ss.option(hp.CBIStaticList, 'urltest_nodes', _('URLTest nodes'), + _('List of nodes to test.')); + for (var i in proxy_nodes) + so.value(i, proxy_nodes[i]); + so.depends('node', 'urltest'); + so.modalonly = true; + + so = ss.option(form.Value, 'urltest_url', _('Test URL'), + _('The URL to test. https://www.gstatic.com/generate_204 will be used if empty.')); + so.validate = function(section_id, value) { + if (section_id && value) { + try { + var url = new URL(value); + if (!url.hostname) + return _('Expecting: %s').format(_('valid URL')); + } + catch(e) { + return _('Expecting: %s').format(_('valid URL')); + } + } + + return true; + } + so.depends('node', 'urltest'); + so.modalonly = true; + + so = ss.option(form.Value, 'urltest_interval', _('Test interval'), + _('The test interval in seconds. 180 will be used if empty.')); + so.datatype = 'uinteger'; + so.validate = function(section_id, value) { + if (section_id && value) { + var idle_timeout = this.map.lookupOption('urltest_idle_timeout', section_id)[0].formvalue(section_id) || '1800'; + if (parseInt(value) > parseInt(idle_timeout)) + return _('Test interval must be less or equal than idle timeout.'); + } + + return true; + } + so.depends('node', 'urltest'); + so.modalonly = true; + + so = ss.option(form.Value, 'urltest_tolerance', _('Test tolerance'), + _('The test tolerance in milliseconds. 50 will be used if empty.')); + so.datatype = 'uinteger'; + so.depends('node', 'urltest'); + so.modalonly = true; + + so = ss.option(form.Value, 'urltest_idle_timeout', _('Idle timeout'), + _('The idle timeout in seconds. 1800 will be used if empty.')); + so.datatype = 'uinteger'; + so.depends('node', 'urltest'); + so.modalonly = true; + + so = ss.option(form.Flag, 'urltest_interrupt_exist_connections', _('Interrupt existing connections'), + _('Interrupt existing connections when the selected outbound has changed.')); + so.default = so.disabled; + so.depends('node', 'urltest'); + so.modalonly = true; /* Routing nodes end */ /* Routing rules start */ @@ -580,13 +644,12 @@ return view.extend({ _('Match user name.')); so.modalonly = true; - so = ss.taboption('field_other', form.MultiValue, 'rule_set', _('Rule set'), + so = ss.taboption('field_other', hp.CBIStaticList, 'rule_set', _('Rule set'), _('Match rule set.')); so.load = function(section_id) { delete this.keylist; delete this.vallist; - this.value('', _('-- Please choose --')); uci.sections(data[0], 'ruleset', (res) => { if (res.enabled === '1') this.value(res['.name'], res.label); @@ -920,13 +983,12 @@ return view.extend({ _('Match user name.')); so.modalonly = true; - so = ss.taboption('field_other', form.MultiValue, 'rule_set', _('Rule set'), + so = ss.taboption('field_other', hp.CBIStaticList, 'rule_set', _('Rule set'), _('Match rule set.')); so.load = function(section_id) { delete this.keylist; delete this.vallist; - this.value('', _('-- Please choose --')); uci.sections(data[0], 'ruleset', (res) => { if (res.enabled === '1') this.value(res['.name'], res.label); diff --git a/luci-app-homeproxy/po/templates/homeproxy.pot b/luci-app-homeproxy/po/templates/homeproxy.pot index 093b862ad..9443de88b 100644 --- a/luci-app-homeproxy/po/templates/homeproxy.pot +++ b/luci-app-homeproxy/po/templates/homeproxy.pot @@ -5,20 +5,15 @@ msgstr "Content-Type: text/plain; charset=UTF-8" msgid "%s log" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1423 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1416 msgid "%s nodes removed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:597 -#: htdocs/luci-static/resources/view/homeproxy/client.js:943 -msgid "-- Please choose --" -msgstr "" - #: htdocs/luci-static/resources/homeproxy.js:273 msgid "/etc/homeproxy/certs/..., /etc/acme/..., /etc/ssl/..." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:475 +#: htdocs/luci-static/resources/view/homeproxy/client.js:539 msgid "4 or 6. Not limited if empty." msgstr "" @@ -37,11 +32,11 @@ msgstr "" msgid "Accept any if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1006 msgid "Accept empty query response" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1158 msgid "Access Control" msgstr "" @@ -53,11 +48,11 @@ msgstr "" msgid "Access key secret" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:799 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Add a DNS rule" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:704 +#: htdocs/luci-static/resources/view/homeproxy/client.js:759 msgid "Add a DNS server" msgstr "" @@ -69,11 +64,11 @@ msgstr "" msgid "Add a routing node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:441 +#: htdocs/luci-static/resources/view/homeproxy/client.js:505 msgid "Add a routing rule" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Add a rule set" msgstr "" @@ -81,16 +76,16 @@ msgstr "" msgid "Add a server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:718 +#: htdocs/luci-static/resources/view/homeproxy/client.js:773 #: htdocs/luci-static/resources/view/homeproxy/node.js:413 msgid "Address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:722 +#: htdocs/luci-static/resources/view/homeproxy/client.js:777 msgid "Address resolver" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:754 +#: htdocs/luci-static/resources/view/homeproxy/client.js:809 msgid "Address strategy" msgstr "" @@ -108,7 +103,7 @@ msgid "All ports" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:981 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1349 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1342 msgid "Allow insecure" msgstr "" @@ -116,7 +111,7 @@ msgstr "" msgid "Allow insecure connection at TLS client." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1343 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "" @@ -146,17 +141,17 @@ msgstr "" msgid "Alternative TLS port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1386 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 msgid "An error occurred during updating subscriptions: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:976 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Any" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:678 -#: htdocs/luci-static/resources/view/homeproxy/client.js:784 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1018 +#: htdocs/luci-static/resources/view/homeproxy/client.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1064 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " @@ -202,11 +197,11 @@ msgstr "" msgid "Auto configure firewall" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1300 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1293 msgid "Auto update" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1294 msgid "Auto update subscriptions and geodata." msgstr "" @@ -227,44 +222,44 @@ msgstr "" msgid "Based on google/gvisor." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 msgid "Binary file" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:392 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/client.js:393 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1171 msgid "Bind interface" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1126 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1172 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:484 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:547 +#: htdocs/luci-static/resources/view/homeproxy/client.js:904 msgid "BitTorrent" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1336 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1329 msgid "Blacklist mode" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:343 -#: htdocs/luci-static/resources/view/homeproxy/client.js:624 -#: htdocs/luci-static/resources/view/homeproxy/client.js:978 +#: htdocs/luci-static/resources/view/homeproxy/client.js:679 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 msgid "Block" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:654 -#: htdocs/luci-static/resources/view/homeproxy/client.js:996 +#: htdocs/luci-static/resources/view/homeproxy/client.js:709 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 msgid "Block DNS queries" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:512 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:542 +#: htdocs/luci-static/resources/view/homeproxy/client.js:570 +#: htdocs/luci-static/resources/view/homeproxy/client.js:890 +#: htdocs/luci-static/resources/view/homeproxy/client.js:900 #: htdocs/luci-static/resources/view/homeproxy/server.js:818 msgid "Both" msgstr "" @@ -293,7 +288,7 @@ msgstr "" msgid "CUBIC" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 msgid "Cancel" msgstr "" @@ -326,7 +321,7 @@ msgstr "" msgid "China list version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:500 +#: htdocs/luci-static/resources/view/homeproxy/client.js:559 msgid "Chromium / Cronet" msgstr "" @@ -343,7 +338,7 @@ msgstr "" msgid "Clean log" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:498 +#: htdocs/luci-static/resources/view/homeproxy/client.js:557 msgid "Client" msgstr "" @@ -386,19 +381,19 @@ msgstr "" msgid "Custom routing" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:485 +#: htdocs/luci-static/resources/view/homeproxy/client.js:548 msgid "DNS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:790 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "DNS Rules" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:695 +#: htdocs/luci-static/resources/view/homeproxy/client.js:750 msgid "DNS Servers" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:637 +#: htdocs/luci-static/resources/view/homeproxy/client.js:692 msgid "DNS Settings" msgstr "" @@ -406,12 +401,12 @@ msgstr "" msgid "DNS provider" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:799 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "DNS rule" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:158 -#: htdocs/luci-static/resources/view/homeproxy/client.js:704 +#: htdocs/luci-static/resources/view/homeproxy/client.js:759 msgid "DNS server" msgstr "" @@ -419,34 +414,34 @@ msgstr "" msgid "DNS01 challenge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:549 +#: htdocs/luci-static/resources/view/homeproxy/client.js:905 msgid "DTLS" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:17 -#: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:827 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/client.js:533 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1141 #: htdocs/luci-static/resources/view/homeproxy/node.js:645 msgid "Default" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:652 -#: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:707 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Default DNS (issued by WAN)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:647 +#: htdocs/luci-static/resources/view/homeproxy/client.js:702 msgid "Default DNS server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:642 +#: htdocs/luci-static/resources/view/homeproxy/client.js:697 msgid "Default DNS strategy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Default domain strategy for resolving the domain names." msgstr "" @@ -454,7 +449,7 @@ msgstr "" msgid "Default outbound" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1357 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 msgid "Default packet encoding" msgstr "" @@ -463,48 +458,48 @@ msgid "Default server name" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:342 -#: htdocs/luci-static/resources/view/homeproxy/client.js:405 -#: htdocs/luci-static/resources/view/homeproxy/client.js:623 -#: htdocs/luci-static/resources/view/homeproxy/client.js:771 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:406 +#: htdocs/luci-static/resources/view/homeproxy/client.js:678 +#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1142 #: htdocs/luci-static/resources/view/homeproxy/node.js:394 msgid "Direct" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1224 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1270 msgid "Direct Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1141 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1186 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1187 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1232 msgid "Direct IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1144 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1189 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1235 msgid "Direct IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1147 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1193 msgid "Direct MAC-s" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:341 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1135 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 #: htdocs/luci-static/resources/view/homeproxy/node.js:473 #: htdocs/luci-static/resources/view/homeproxy/node.js:492 #: htdocs/luci-static/resources/view/homeproxy/node.js:504 #: htdocs/luci-static/resources/view/homeproxy/node.js:1071 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1328 #: htdocs/luci-static/resources/view/homeproxy/server.js:248 #: htdocs/luci-static/resources/view/homeproxy/server.js:260 msgid "Disable" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:665 +#: htdocs/luci-static/resources/view/homeproxy/client.js:720 msgid "Disable DNS cache" msgstr "" @@ -521,15 +516,15 @@ msgstr "" msgid "Disable TLS ALPN challenge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Disable cache and save cache in this query." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:668 +#: htdocs/luci-static/resources/view/homeproxy/client.js:723 msgid "Disable cache expire" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1007 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Disable dns cache" msgstr "" @@ -544,18 +539,18 @@ msgid "" "(IPv4) / 1232 (IPv6) bytes in size." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:523 -#: htdocs/luci-static/resources/view/homeproxy/client.js:871 +#: htdocs/luci-static/resources/view/homeproxy/client.js:581 +#: htdocs/luci-static/resources/view/homeproxy/client.js:922 msgid "Domain keyword" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:514 -#: htdocs/luci-static/resources/view/homeproxy/client.js:862 +#: htdocs/luci-static/resources/view/homeproxy/client.js:572 +#: htdocs/luci-static/resources/view/homeproxy/client.js:913 msgid "Domain name" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:875 +#: htdocs/luci-static/resources/view/homeproxy/client.js:585 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Domain regex" msgstr "" @@ -565,8 +560,8 @@ msgstr "" msgid "Domain strategy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:519 -#: htdocs/luci-static/resources/view/homeproxy/client.js:867 +#: htdocs/luci-static/resources/view/homeproxy/client.js:577 +#: htdocs/luci-static/resources/view/homeproxy/client.js:918 msgid "Domain suffix" msgstr "" @@ -584,14 +579,14 @@ msgstr "" msgid "Download bandwidth in Mbps." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1342 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 msgid "" "Drop/keep nodes that contain the specific keywords. Regex is supported." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1327 msgid "Drop/keep specific nodes from subscriptions." msgstr "" @@ -617,9 +612,9 @@ msgstr "" msgid "ECH config path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:677 -#: htdocs/luci-static/resources/view/homeproxy/client.js:783 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1017 +#: htdocs/luci-static/resources/view/homeproxy/client.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:838 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1063 msgid "EDNS Client subnet" msgstr "" @@ -637,7 +632,7 @@ msgstr "" msgid "Early data is sent in path instead of header by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1176 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1169 msgid "Edit nodes" msgstr "" @@ -646,10 +641,10 @@ msgid "Email" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:374 -#: htdocs/luci-static/resources/view/homeproxy/client.js:456 -#: htdocs/luci-static/resources/view/homeproxy/client.js:713 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1043 +#: htdocs/luci-static/resources/view/homeproxy/client.js:520 +#: htdocs/luci-static/resources/view/homeproxy/client.js:768 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 #: htdocs/luci-static/resources/view/homeproxy/server.js:116 #: htdocs/luci-static/resources/view/homeproxy/server.js:139 msgid "Enable" @@ -690,7 +685,7 @@ msgstr "" msgid "Enable TCP Brutal congestion control algorithm" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1131 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1124 #: htdocs/luci-static/resources/view/homeproxy/server.js:793 msgid "Enable UDP fragmentation." msgstr "" @@ -708,7 +703,7 @@ msgstr "" msgid "Enable tcp fast open for listener." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1129 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "" @@ -731,16 +726,18 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:178 #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:245 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1217 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/client.js:449 +#: htdocs/luci-static/resources/view/homeproxy/client.js:452 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1263 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1292 #: htdocs/luci-static/resources/view/homeproxy/node.js:452 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1323 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1260 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1319 #: htdocs/luci-static/resources/view/homeproxy/server.js:213 #: htdocs/luci-static/resources/view/homeproxy/server.js:616 #: htdocs/luci-static/resources/view/homeproxy/server.js:618 @@ -763,15 +760,15 @@ msgstr "" msgid "Failed to upload %s, error: %s." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1341 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 msgid "Filter keywords" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1333 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 msgid "Filter nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:501 +#: htdocs/luci-static/resources/view/homeproxy/client.js:560 msgid "Firefox / uquic firefox" msgstr "" @@ -780,7 +777,7 @@ msgstr "" msgid "Flow" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1100 msgid "Format" msgstr "" @@ -796,15 +793,15 @@ msgstr "" msgid "GFWList" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1205 msgid "Gaming mode IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1161 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1207 msgid "Gaming mode IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1164 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1210 msgid "Gaming mode MAC-s" msgstr "" @@ -830,15 +827,15 @@ msgstr "" msgid "Global padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1166 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1212 msgid "Global proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1169 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1215 msgid "Global proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1172 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1218 msgid "Global proxy MAC-s" msgstr "" @@ -858,8 +855,8 @@ msgstr "" msgid "Grant access to homeproxy configuration" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:488 -#: htdocs/luci-static/resources/view/homeproxy/client.js:853 +#: htdocs/luci-static/resources/view/homeproxy/client.js:550 +#: htdocs/luci-static/resources/view/homeproxy/client.js:906 #: htdocs/luci-static/resources/view/homeproxy/node.js:395 #: htdocs/luci-static/resources/view/homeproxy/node.js:715 #: htdocs/luci-static/resources/view/homeproxy/server.js:145 @@ -914,8 +911,8 @@ msgstr "" msgid "Host" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:446 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:510 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Host fields" msgstr "" @@ -943,18 +940,18 @@ msgstr "" msgid "Hysteria2" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:542 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:600 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "IP CIDR" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:832 +#: htdocs/luci-static/resources/view/homeproxy/client.js:538 +#: htdocs/luci-static/resources/view/homeproxy/client.js:887 msgid "IP version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:476 -#: htdocs/luci-static/resources/view/homeproxy/client.js:833 +#: htdocs/luci-static/resources/view/homeproxy/client.js:540 +#: htdocs/luci-static/resources/view/homeproxy/client.js:888 msgid "IPv4" msgstr "" @@ -962,8 +959,8 @@ msgstr "" msgid "IPv4 only" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:834 +#: htdocs/luci-static/resources/view/homeproxy/client.js:541 +#: htdocs/luci-static/resources/view/homeproxy/client.js:889 msgid "IPv6" msgstr "" @@ -975,6 +972,7 @@ msgstr "" msgid "IPv6 support" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:482 #: htdocs/luci-static/resources/view/homeproxy/node.js:786 #: htdocs/luci-static/resources/view/homeproxy/server.js:450 msgid "Idle timeout" @@ -1014,13 +1012,13 @@ msgstr "" msgid "Ignore client bandwidth" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1250 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1243 msgid "Import" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1276 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1278 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1269 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1271 msgid "Import share links" msgstr "" @@ -1029,14 +1027,22 @@ msgstr "" msgid "In seconds. 300 is used by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:672 +#: htdocs/luci-static/resources/view/homeproxy/client.js:727 msgid "Independent cache per server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1118 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1164 msgid "Interface Control" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:488 +msgid "Interrupt existing connections" +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:489 +msgid "Interrupt existing connections when the selected outbound has changed." +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:665 #: htdocs/luci-static/resources/view/homeproxy/server.js:371 msgid "" @@ -1044,13 +1050,13 @@ msgid "" "seconds)." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:965 +#: htdocs/luci-static/resources/view/homeproxy/client.js:667 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 msgid "Invert" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:613 -#: htdocs/luci-static/resources/view/homeproxy/client.js:966 +#: htdocs/luci-static/resources/view/homeproxy/client.js:668 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1012 msgid "Invert match result." msgstr "" @@ -1062,15 +1068,15 @@ msgstr "" msgid "Key path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1132 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1178 msgid "LAN IP Policy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:369 -#: htdocs/luci-static/resources/view/homeproxy/client.js:451 -#: htdocs/luci-static/resources/view/homeproxy/client.js:708 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1038 +#: htdocs/luci-static/resources/view/homeproxy/client.js:515 +#: htdocs/luci-static/resources/view/homeproxy/client.js:763 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1084 #: htdocs/luci-static/resources/view/homeproxy/node.js:388 #: htdocs/luci-static/resources/view/homeproxy/server.js:133 msgid "Label" @@ -1096,6 +1102,10 @@ msgid "" "List of IP (v4 or v6) addresses prefixes to be assigned to the interface." msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:436 +msgid "List of nodes to test." +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:977 #: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "List of supported application level protocols, in order of preference." @@ -1105,7 +1115,7 @@ msgstr "" msgid "Listen address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1120 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1166 msgid "Listen interfaces" msgstr "" @@ -1117,7 +1127,7 @@ msgstr "" msgid "Loading" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1049 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1095 msgid "Local" msgstr "" @@ -1145,19 +1155,19 @@ msgstr "" msgid "Main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:608 +#: htdocs/luci-static/resources/view/homeproxy/client.js:663 msgid "Make IP CIDR in rule set used to match the source IP." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:954 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1002 msgid "Make IP CIDR in rule sets match the source IP." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:960 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1007 msgid "Make IP CIDR in rule-sets accept empty query response." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:673 +#: htdocs/luci-static/resources/view/homeproxy/client.js:728 msgid "" "Make each DNS server's cache independent for special purposes. If enabled, " "will slightly degrade performance." @@ -1167,106 +1177,106 @@ msgstr "" msgid "Masquerade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:900 +#: htdocs/luci-static/resources/view/homeproxy/client.js:951 msgid "Match IP CIDR with query response." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:543 +#: htdocs/luci-static/resources/view/homeproxy/client.js:601 msgid "Match IP CIDR." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:520 -#: htdocs/luci-static/resources/view/homeproxy/client.js:868 +#: htdocs/luci-static/resources/view/homeproxy/client.js:578 +#: htdocs/luci-static/resources/view/homeproxy/client.js:919 msgid "Match domain suffix." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:524 -#: htdocs/luci-static/resources/view/homeproxy/client.js:872 +#: htdocs/luci-static/resources/view/homeproxy/client.js:582 +#: htdocs/luci-static/resources/view/homeproxy/client.js:923 msgid "Match domain using keyword." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:528 -#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:586 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "Match domain using regular expression." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:515 -#: htdocs/luci-static/resources/view/homeproxy/client.js:863 +#: htdocs/luci-static/resources/view/homeproxy/client.js:573 +#: htdocs/luci-static/resources/view/homeproxy/client.js:914 msgid "Match full domain." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:569 -#: htdocs/luci-static/resources/view/homeproxy/client.js:885 +#: htdocs/luci-static/resources/view/homeproxy/client.js:627 +#: htdocs/luci-static/resources/view/homeproxy/client.js:936 msgid "Match port range. Format as START:/:END/START:END." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:564 -#: htdocs/luci-static/resources/view/homeproxy/client.js:880 +#: htdocs/luci-static/resources/view/homeproxy/client.js:622 +#: htdocs/luci-static/resources/view/homeproxy/client.js:931 msgid "Match port." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:905 +#: htdocs/luci-static/resources/view/homeproxy/client.js:956 msgid "Match private IP with query response." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:548 +#: htdocs/luci-static/resources/view/homeproxy/client.js:606 msgid "Match private IP." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:895 +#: htdocs/luci-static/resources/view/homeproxy/client.js:595 +#: htdocs/luci-static/resources/view/homeproxy/client.js:946 msgid "Match private source IP." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:574 -#: htdocs/luci-static/resources/view/homeproxy/client.js:920 +#: htdocs/luci-static/resources/view/homeproxy/client.js:632 +#: htdocs/luci-static/resources/view/homeproxy/client.js:971 msgid "Match process name." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:583 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:640 +#: htdocs/luci-static/resources/view/homeproxy/client.js:979 msgid "Match process path using regular expression." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:578 -#: htdocs/luci-static/resources/view/homeproxy/client.js:924 +#: htdocs/luci-static/resources/view/homeproxy/client.js:636 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 msgid "Match process path." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:839 +#: htdocs/luci-static/resources/view/homeproxy/client.js:894 msgid "Match query type." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:592 -#: htdocs/luci-static/resources/view/homeproxy/client.js:938 +#: htdocs/luci-static/resources/view/homeproxy/client.js:648 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Match rule set." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:890 +#: htdocs/luci-static/resources/view/homeproxy/client.js:590 +#: htdocs/luci-static/resources/view/homeproxy/client.js:941 msgid "Match source IP CIDR." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:607 +#: htdocs/luci-static/resources/view/homeproxy/client.js:662 msgid "Match source IP via rule set" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:559 -#: htdocs/luci-static/resources/view/homeproxy/client.js:915 +#: htdocs/luci-static/resources/view/homeproxy/client.js:617 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Match source port range. Format as START:/:END/START:END." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 +#: htdocs/luci-static/resources/view/homeproxy/client.js:612 +#: htdocs/luci-static/resources/view/homeproxy/client.js:961 msgid "Match source port." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:971 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1017 msgid "Match the server name of outbound." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:588 -#: htdocs/luci-static/resources/view/homeproxy/client.js:934 +#: htdocs/luci-static/resources/view/homeproxy/client.js:644 +#: htdocs/luci-static/resources/view/homeproxy/client.js:983 msgid "Match user name." msgstr "" @@ -1342,12 +1352,12 @@ msgstr "" msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:819 +#: htdocs/luci-static/resources/view/homeproxy/client.js:525 +#: htdocs/luci-static/resources/view/homeproxy/client.js:874 msgid "Mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1126 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1119 #: htdocs/luci-static/resources/view/homeproxy/server.js:787 msgid "MultiPath TCP" msgstr "" @@ -1366,7 +1376,7 @@ msgstr "" msgid "NOT RUNNING" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1363 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1356 msgid "NOTE: Save current settings before updating subscriptions." msgstr "" @@ -1378,8 +1388,8 @@ msgstr "" msgid "NaïveProxy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:509 -#: htdocs/luci-static/resources/view/homeproxy/client.js:842 +#: htdocs/luci-static/resources/view/homeproxy/client.js:567 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 #: htdocs/luci-static/resources/view/homeproxy/server.js:815 msgid "Network" msgstr "" @@ -1400,15 +1410,15 @@ msgstr "" msgid "No additional encryption support: It's basically duplicate encryption." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1372 msgid "No subscription available" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1404 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1397 msgid "No subscription node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1236 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1229 msgid "No valid share link found." msgstr "" @@ -1421,11 +1431,11 @@ msgstr "" msgid "Node Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1175 msgid "Nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:728 +#: htdocs/luci-static/resources/view/homeproxy/client.js:783 #: htdocs/luci-static/resources/view/homeproxy/node.js:674 #: htdocs/luci-static/resources/view/homeproxy/node.js:713 #: htdocs/luci-static/resources/view/homeproxy/server.js:380 @@ -1443,7 +1453,7 @@ msgstr "" msgid "Obfuscate type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1167 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "" @@ -1451,16 +1461,16 @@ msgstr "" msgid "Only proxy mainland China" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:509 +#: htdocs/luci-static/resources/view/homeproxy/client.js:858 msgid "Other fields" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:399 -#: htdocs/luci-static/resources/view/homeproxy/client.js:617 -#: htdocs/luci-static/resources/view/homeproxy/client.js:765 -#: htdocs/luci-static/resources/view/homeproxy/client.js:970 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 +#: htdocs/luci-static/resources/view/homeproxy/client.js:400 +#: htdocs/luci-static/resources/view/homeproxy/client.js:672 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1016 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1135 msgid "Outbound" msgstr "" @@ -1507,7 +1517,7 @@ msgstr "" msgid "Password" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1106 #: htdocs/luci-static/resources/view/homeproxy/node.js:775 #: htdocs/luci-static/resources/view/homeproxy/node.js:808 #: htdocs/luci-static/resources/view/homeproxy/server.js:441 @@ -1538,8 +1548,8 @@ msgstr "" msgid "Plugin opts" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:563 -#: htdocs/luci-static/resources/view/homeproxy/client.js:879 +#: htdocs/luci-static/resources/view/homeproxy/client.js:621 +#: htdocs/luci-static/resources/view/homeproxy/client.js:930 #: htdocs/luci-static/resources/view/homeproxy/node.js:418 msgid "Port" msgstr "" @@ -1548,13 +1558,13 @@ msgstr "" msgid "Port %s alrealy exists!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:447 -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:511 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Port fields" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:568 -#: htdocs/luci-static/resources/view/homeproxy/client.js:884 +#: htdocs/luci-static/resources/view/homeproxy/client.js:626 +#: htdocs/luci-static/resources/view/homeproxy/client.js:935 msgid "Port range" msgstr "" @@ -1570,8 +1580,8 @@ msgstr "" msgid "Prefer IPv6" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:547 -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:605 +#: htdocs/luci-static/resources/view/homeproxy/client.js:955 msgid "Private IP" msgstr "" @@ -1584,28 +1594,28 @@ msgstr "" msgid "Private key passphrase" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:594 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Private source IP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:573 -#: htdocs/luci-static/resources/view/homeproxy/client.js:919 +#: htdocs/luci-static/resources/view/homeproxy/client.js:631 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 msgid "Process name" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:577 -#: htdocs/luci-static/resources/view/homeproxy/client.js:923 +#: htdocs/luci-static/resources/view/homeproxy/client.js:635 +#: htdocs/luci-static/resources/view/homeproxy/client.js:974 msgid "Process path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:639 +#: htdocs/luci-static/resources/view/homeproxy/client.js:978 msgid "Process path (regex)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:481 -#: htdocs/luci-static/resources/view/homeproxy/client.js:847 +#: htdocs/luci-static/resources/view/homeproxy/client.js:545 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 #: htdocs/luci-static/resources/view/homeproxy/node.js:480 #: htdocs/luci-static/resources/view/homeproxy/node.js:891 #: htdocs/luci-static/resources/view/homeproxy/server.js:222 @@ -1622,33 +1632,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1195 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1241 msgid "Proxy Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1196 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1225 msgid "Proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1153 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1199 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1228 msgid "Proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1156 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1202 msgid "Proxy MAC-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1183 msgid "Proxy all except listed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1134 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1180 msgid "Proxy filter mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1182 msgid "Proxy listed only" msgstr "" @@ -1660,8 +1670,8 @@ msgstr "" msgid "Proxy protocol" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:489 -#: htdocs/luci-static/resources/view/homeproxy/client.js:854 +#: htdocs/luci-static/resources/view/homeproxy/client.js:551 +#: htdocs/luci-static/resources/view/homeproxy/client.js:907 #: htdocs/luci-static/resources/view/homeproxy/node.js:647 #: htdocs/luci-static/resources/view/homeproxy/node.js:717 #: htdocs/luci-static/resources/view/homeproxy/server.js:399 @@ -1687,20 +1697,20 @@ msgstr "" msgid "QUIC stream receive window" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:838 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Query type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:552 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "RDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:688 +#: htdocs/luci-static/resources/view/homeproxy/client.js:743 msgid "RDRC timeout" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 #: htdocs/luci-static/resources/view/homeproxy/server.js:707 msgid "REALITY" msgstr "" @@ -1709,11 +1719,11 @@ msgstr "" msgid "REALITY private key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 msgid "REALITY public key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1108 #: htdocs/luci-static/resources/view/homeproxy/server.js:718 msgid "REALITY short ID" msgstr "" @@ -1727,11 +1737,11 @@ msgstr "" msgid "Random version will be used if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:424 +#: htdocs/luci-static/resources/view/homeproxy/client.js:428 msgid "Recursive outbound detected!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:747 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 msgid "Recursive resolver detected!" msgstr "" @@ -1755,15 +1765,15 @@ msgstr "" msgid "Region ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1050 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 msgid "Remote" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1401 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1394 msgid "Remove %s nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 msgid "Remove all nodes from subscriptions" msgstr "" @@ -1771,7 +1781,7 @@ msgstr "" msgid "Reserved field bytes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:760 +#: htdocs/luci-static/resources/view/homeproxy/client.js:815 msgid "Resolve strategy" msgstr "" @@ -1779,11 +1789,11 @@ msgstr "" msgid "Resources management" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1012 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Rewrite TTL" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "Rewrite TTL in DNS responses." msgstr "" @@ -1791,7 +1801,7 @@ msgstr "" msgid "Routing Nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:432 +#: htdocs/luci-static/resources/view/homeproxy/client.js:496 msgid "Routing Rules" msgstr "" @@ -1811,51 +1821,51 @@ msgstr "" msgid "Routing ports" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:441 +#: htdocs/luci-static/resources/view/homeproxy/client.js:505 msgid "Routing rule" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:591 -#: htdocs/luci-static/resources/view/homeproxy/client.js:937 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1025 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 +#: htdocs/luci-static/resources/view/homeproxy/client.js:647 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Rule set" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:953 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 msgid "Rule set IP CIDR as source IP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1113 msgid "Rule set URL" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:448 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:512 +#: htdocs/luci-static/resources/view/homeproxy/client.js:861 msgid "SRC-IP fields" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:449 -#: htdocs/luci-static/resources/view/homeproxy/client.js:807 +#: htdocs/luci-static/resources/view/homeproxy/client.js:513 +#: htdocs/luci-static/resources/view/homeproxy/client.js:862 msgid "SRC-Port fields" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:492 -#: htdocs/luci-static/resources/view/homeproxy/client.js:857 +#: htdocs/luci-static/resources/view/homeproxy/client.js:553 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 #: htdocs/luci-static/resources/view/homeproxy/node.js:403 msgid "SSH" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:859 +#: htdocs/luci-static/resources/view/homeproxy/client.js:554 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1142 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1135 msgid "SUoT version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:503 +#: htdocs/luci-static/resources/view/homeproxy/client.js:562 msgid "Safari / Apple Network API" msgstr "" @@ -1868,15 +1878,15 @@ msgstr "" msgid "Same as main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1365 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 msgid "Save current settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1362 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 msgid "Save subscriptions settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 #: htdocs/luci-static/resources/view/homeproxy/server.js:129 msgid "Server" msgstr "" @@ -1912,12 +1922,12 @@ msgstr "" msgid "Shadowsocks" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:499 +#: htdocs/luci-static/resources/view/homeproxy/client.js:558 msgid "Sniffed client type (QUIC client type or SSH client name)." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:848 +#: htdocs/luci-static/resources/view/homeproxy/client.js:546 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "" "Sniffed protocol, see Sniff for details." @@ -1944,22 +1954,22 @@ msgstr "" msgid "Socks5" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:889 +#: htdocs/luci-static/resources/view/homeproxy/client.js:589 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Source IP CIDR" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Source file" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:553 -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:611 +#: htdocs/luci-static/resources/view/homeproxy/client.js:960 msgid "Source port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:558 -#: htdocs/luci-static/resources/view/homeproxy/client.js:914 +#: htdocs/luci-static/resources/view/homeproxy/client.js:616 +#: htdocs/luci-static/resources/view/homeproxy/client.js:965 msgid "Source port range" msgstr "" @@ -1995,11 +2005,11 @@ msgid "" "commas." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:682 +#: htdocs/luci-static/resources/view/homeproxy/client.js:737 msgid "Store RDRC" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:683 +#: htdocs/luci-static/resources/view/homeproxy/client.js:738 msgid "" "Store rejected DNS response cache.
The check results of Address " "filter DNS rule items will be cached until expiration." @@ -2010,19 +2020,19 @@ msgstr "" msgid "String" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1287 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1280 msgid "Sub (%s)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1309 msgid "Subscription URL-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1298 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1291 msgid "Subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1238 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 msgid "Successfully imported %s nodes of total %s." msgstr "" @@ -2030,8 +2040,8 @@ msgstr "" msgid "Successfully updated." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1198 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1317 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1191 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1310 msgid "" "Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -2041,19 +2051,19 @@ msgstr "" msgid "System" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:653 -#: htdocs/luci-static/resources/view/homeproxy/client.js:730 -#: htdocs/luci-static/resources/view/homeproxy/client.js:995 +#: htdocs/luci-static/resources/view/homeproxy/client.js:708 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 msgid "System DNS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:843 +#: htdocs/luci-static/resources/view/homeproxy/client.js:568 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 #: htdocs/luci-static/resources/view/homeproxy/server.js:816 msgid "TCP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 #: htdocs/luci-static/resources/view/homeproxy/server.js:781 msgid "TCP fast open" msgstr "" @@ -2066,8 +2076,8 @@ msgstr "" msgid "TCP/IP stack." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:555 +#: htdocs/luci-static/resources/view/homeproxy/client.js:911 #: htdocs/luci-static/resources/view/homeproxy/node.js:944 #: htdocs/luci-static/resources/view/homeproxy/server.js:529 msgid "TLS" @@ -2088,25 +2098,25 @@ msgstr "" msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:723 +#: htdocs/luci-static/resources/view/homeproxy/client.js:778 msgid "" "Tag of a another server to resolve the domain name in the address. Required " "if address contains domain." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Tag of an outbound for connecting to the dns server." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1090 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1136 msgid "Tag of the outbound to download rule set." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1035 msgid "Tag of the target dns server." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:618 +#: htdocs/luci-static/resources/view/homeproxy/client.js:673 msgid "Tag of the target outbound." msgstr "" @@ -2120,11 +2130,27 @@ msgstr "" msgid "Tencent Public DNS (119.29.29.29)" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:442 +msgid "Test URL" +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:461 +msgid "Test interval" +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:468 +msgid "Test interval must be less or equal than idle timeout." +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:476 +msgid "Test tolerance" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/server.js:626 msgid "The ACME CA provider to use." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:643 +#: htdocs/luci-static/resources/view/homeproxy/client.js:698 msgid "The DNS strategy for resolving the domain name in the address." msgstr "" @@ -2138,7 +2164,13 @@ msgstr "" msgid "The QUIC stream-level flow control window for receiving data." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:719 +#: htdocs/luci-static/resources/view/homeproxy/client.js:443 +msgid "" +"The URL to test. https://www.gstatic.com/generate_204 will be " +"used if empty." +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:774 msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "" @@ -2154,7 +2186,7 @@ msgid "" "forward 443 to this port for challenge to succeed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:462 +#: htdocs/luci-static/resources/view/homeproxy/client.js:526 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex || ip_cidr || " @@ -2165,7 +2197,7 @@ msgid "" "than as a single rule sub-item." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:820 +#: htdocs/luci-static/resources/view/homeproxy/client.js:875 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2175,7 +2207,7 @@ msgid "" "considered merged rather than as a single rule sub-item." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:755 +#: htdocs/luci-static/resources/view/homeproxy/client.js:810 msgid "The domain strategy for resolving the domain name in the address." msgstr "" @@ -2192,6 +2224,10 @@ msgid "" "account." msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:483 +msgid "The idle timeout in seconds. 1800 will be used if empty." +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:999 #: htdocs/luci-static/resources/view/homeproxy/server.js:576 msgid "The maximum TLS version that is acceptable." @@ -2217,7 +2253,7 @@ msgstr "" msgid "The modern ImmortalWrt proxy platform for ARM64/AMD64." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:393 +#: htdocs/luci-static/resources/view/homeproxy/client.js:394 msgid "The network interface to bind to." msgstr "" @@ -2243,12 +2279,21 @@ msgstr "" msgid "The server public key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:400 +#: htdocs/luci-static/resources/view/homeproxy/client.js:401 msgid "" "The tag of the upstream outbound.
Other dial fields will be ignored when " "enabled." msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:462 +msgid "The test interval in seconds. 180 will be used if empty." +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:477 +msgid "" +"The test tolerance in milliseconds. 50 will be used if empty." +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:745 #: htdocs/luci-static/resources/view/homeproxy/server.js:459 msgid "" @@ -2258,7 +2303,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:984 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1352 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1345 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -2275,7 +2320,7 @@ msgstr "" msgid "ThreatBook Public DNS (117.50.10.10)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:689 +#: htdocs/luci-static/resources/view/homeproxy/client.js:744 msgid "" "Timeout of rejected DNS response cache. 7d is used by default." msgstr "" @@ -2311,19 +2356,19 @@ msgstr "" msgid "Tun TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1048 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 #: htdocs/luci-static/resources/view/homeproxy/node.js:393 #: htdocs/luci-static/resources/view/homeproxy/server.js:144 msgid "Type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:511 -#: htdocs/luci-static/resources/view/homeproxy/client.js:844 +#: htdocs/luci-static/resources/view/homeproxy/client.js:569 +#: htdocs/luci-static/resources/view/homeproxy/client.js:899 #: htdocs/luci-static/resources/view/homeproxy/server.js:817 msgid "UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1123 #: htdocs/luci-static/resources/view/homeproxy/server.js:792 msgid "UDP Fragment" msgstr "" @@ -2333,7 +2378,7 @@ msgstr "" msgid "UDP NAT expiration time" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1135 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1128 msgid "UDP over TCP" msgstr "" @@ -2349,6 +2394,14 @@ msgstr "" msgid "UDP relay mode" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/client.js:381 +msgid "URLTest" +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:435 +msgid "URLTest nodes" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:626 #: htdocs/luci-static/resources/view/homeproxy/server.js:329 msgid "UUID" @@ -2362,11 +2415,11 @@ msgstr "" msgid "Unknown error: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 msgid "Unsupported fingerprint!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1376 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 msgid "Update %s subscriptions" msgstr "" @@ -2374,27 +2427,27 @@ msgstr "" msgid "Update failed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1106 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 msgid "Update interval" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1153 msgid "Update interval of rule set.
1d will be used if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1371 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1364 msgid "Update nodes from subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1312 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 msgid "Update subscriptions via proxy." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1298 msgid "Update time" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1311 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1304 msgid "Update via proxy" msgstr "" @@ -2439,12 +2492,12 @@ msgid "" "given." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:587 -#: htdocs/luci-static/resources/view/homeproxy/client.js:933 +#: htdocs/luci-static/resources/view/homeproxy/client.js:643 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "User" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1346 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1339 msgid "User-Agent" msgstr "" @@ -2468,7 +2521,7 @@ msgstr "" msgid "WAN DNS (read from interface)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1177 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1223 msgid "WAN IP Policy" msgstr "" @@ -2477,7 +2530,7 @@ msgstr "" msgid "WebSocket" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1337 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1330 msgid "Whitelist mode" msgstr "" @@ -2502,7 +2555,7 @@ msgid "Write proxy protocol in the connection header." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:828 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1360 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 msgid "Xudp (Xray-core)" msgstr "" @@ -2555,21 +2608,21 @@ msgstr "" #: htdocs/luci-static/resources/homeproxy.js:281 #: htdocs/luci-static/resources/homeproxy.js:299 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 #: htdocs/luci-static/resources/view/homeproxy/node.js:452 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 #: htdocs/luci-static/resources/view/homeproxy/server.js:213 msgid "non-empty value" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:567 #: htdocs/luci-static/resources/view/homeproxy/node.js:826 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1351 msgid "none" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:827 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1359 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1352 msgid "packet addr (v2ray-core v5+)" msgstr "" @@ -2581,7 +2634,7 @@ msgstr "" msgid "private key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:502 +#: htdocs/luci-static/resources/view/homeproxy/client.js:561 msgid "quic-go / uquic chrome" msgstr "" @@ -2608,7 +2661,7 @@ msgid "unchecked" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:231 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1260 msgid "unique UCI identifier" msgstr "" @@ -2618,13 +2671,13 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:474 #: htdocs/luci-static/resources/view/homeproxy/node.js:581 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 msgid "v1" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:475 #: htdocs/luci-static/resources/view/homeproxy/node.js:582 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 msgid "v2" msgstr "" @@ -2636,10 +2689,12 @@ msgstr "" msgid "valid IP address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1323 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 +#: htdocs/luci-static/resources/view/homeproxy/client.js:449 +#: htdocs/luci-static/resources/view/homeproxy/client.js:452 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1319 msgid "valid URL" msgstr "" @@ -2651,8 +2706,8 @@ msgstr "" msgid "valid base64 key with %d characters" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1217 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1263 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1292 msgid "valid hostname" msgstr "" diff --git a/luci-app-homeproxy/po/zh_Hans/homeproxy.po b/luci-app-homeproxy/po/zh_Hans/homeproxy.po index b1804118e..036afd2bd 100644 --- a/luci-app-homeproxy/po/zh_Hans/homeproxy.po +++ b/luci-app-homeproxy/po/zh_Hans/homeproxy.po @@ -12,20 +12,15 @@ msgstr "" msgid "%s log" msgstr "%s 日志" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1423 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1416 msgid "%s nodes removed" msgstr "移除了 %s 个节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:597 -#: htdocs/luci-static/resources/view/homeproxy/client.js:943 -msgid "-- Please choose --" -msgstr "-- 请选择 --" - #: htdocs/luci-static/resources/homeproxy.js:273 msgid "/etc/homeproxy/certs/..., /etc/acme/..., /etc/ssl/..." msgstr "/etc/homeproxy/certs/...,/etc/acme/...,/etc/ssl/..." -#: htdocs/luci-static/resources/view/homeproxy/client.js:475 +#: htdocs/luci-static/resources/view/homeproxy/client.js:539 msgid "4 or 6. Not limited if empty." msgstr "4 或 6。留空不限制。" @@ -44,11 +39,11 @@ msgstr "API 令牌" msgid "Accept any if empty." msgstr "留空则不校验。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1006 msgid "Accept empty query response" msgstr "接受空查询响应" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1158 msgid "Access Control" msgstr "访问控制" @@ -60,11 +55,11 @@ msgstr "访问密钥 ID" msgid "Access key secret" msgstr "访问密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:799 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Add a DNS rule" msgstr "新增 DNS 规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:704 +#: htdocs/luci-static/resources/view/homeproxy/client.js:759 msgid "Add a DNS server" msgstr "新增 DNS 服务器" @@ -76,11 +71,11 @@ msgstr "新增节点" msgid "Add a routing node" msgstr "新增路由节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:441 +#: htdocs/luci-static/resources/view/homeproxy/client.js:505 msgid "Add a routing rule" msgstr "新增路由规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Add a rule set" msgstr "新增规则集" @@ -88,16 +83,16 @@ msgstr "新增规则集" msgid "Add a server" msgstr "新增服务器" -#: htdocs/luci-static/resources/view/homeproxy/client.js:718 +#: htdocs/luci-static/resources/view/homeproxy/client.js:773 #: htdocs/luci-static/resources/view/homeproxy/node.js:413 msgid "Address" msgstr "地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:722 +#: htdocs/luci-static/resources/view/homeproxy/client.js:777 msgid "Address resolver" msgstr "地址解析器" -#: htdocs/luci-static/resources/view/homeproxy/client.js:754 +#: htdocs/luci-static/resources/view/homeproxy/client.js:809 msgid "Address strategy" msgstr "地址解析策略" @@ -115,7 +110,7 @@ msgid "All ports" msgstr "所有端口" #: htdocs/luci-static/resources/view/homeproxy/node.js:981 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1349 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1342 msgid "Allow insecure" msgstr "允许不安全连接" @@ -123,7 +118,7 @@ msgstr "允许不安全连接" msgid "Allow insecure connection at TLS client." msgstr "允许 TLS 客户端侧的不安全连接。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1343 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "从订阅获取节点时,默认允许不安全连接。" @@ -153,17 +148,17 @@ msgstr "替代 HTTP 端口" msgid "Alternative TLS port" msgstr "替代 HTTPS 端口" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1386 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 msgid "An error occurred during updating subscriptions: %s" msgstr "更新订阅时发生错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/client.js:976 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Any" msgstr "任何" -#: htdocs/luci-static/resources/view/homeproxy/client.js:678 -#: htdocs/luci-static/resources/view/homeproxy/client.js:784 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1018 +#: htdocs/luci-static/resources/view/homeproxy/client.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1064 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " @@ -211,11 +206,11 @@ msgstr "认证类型" msgid "Auto configure firewall" msgstr "自动配置防火墙" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1300 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1293 msgid "Auto update" msgstr "自动更新" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1294 msgid "Auto update subscriptions and geodata." msgstr "自动更新订阅和地理数据。" @@ -236,44 +231,44 @@ msgstr "Base64" msgid "Based on google/gvisor." msgstr "基于 google/gvisor。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 msgid "Binary file" msgstr "二进制文件" -#: htdocs/luci-static/resources/view/homeproxy/client.js:392 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/client.js:393 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1171 msgid "Bind interface" msgstr "绑定接口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1126 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1172 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "绑定出站流量至指定端口。留空自动检测。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:484 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:547 +#: htdocs/luci-static/resources/view/homeproxy/client.js:904 msgid "BitTorrent" msgstr "BitTorrent" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1336 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1329 msgid "Blacklist mode" msgstr "黑名单模式" #: htdocs/luci-static/resources/view/homeproxy/client.js:343 -#: htdocs/luci-static/resources/view/homeproxy/client.js:624 -#: htdocs/luci-static/resources/view/homeproxy/client.js:978 +#: htdocs/luci-static/resources/view/homeproxy/client.js:679 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 msgid "Block" msgstr "封锁" -#: htdocs/luci-static/resources/view/homeproxy/client.js:654 -#: htdocs/luci-static/resources/view/homeproxy/client.js:996 +#: htdocs/luci-static/resources/view/homeproxy/client.js:709 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 msgid "Block DNS queries" msgstr "封锁 DNS 请求" -#: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:512 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:542 +#: htdocs/luci-static/resources/view/homeproxy/client.js:570 +#: htdocs/luci-static/resources/view/homeproxy/client.js:890 +#: htdocs/luci-static/resources/view/homeproxy/client.js:900 #: htdocs/luci-static/resources/view/homeproxy/server.js:818 msgid "Both" msgstr "全部" @@ -302,7 +297,7 @@ msgstr "CNNIC 公共 DNS(210.2.4.8)" msgid "CUBIC" msgstr "CUBIC" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1204 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 msgid "Cancel" msgstr "取消" @@ -335,7 +330,7 @@ msgstr "大陆 IPv6 库版本" msgid "China list version" msgstr "大陆域名列表版本" -#: htdocs/luci-static/resources/view/homeproxy/client.js:500 +#: htdocs/luci-static/resources/view/homeproxy/client.js:559 msgid "Chromium / Cronet" msgstr "Chromium / Cronet" @@ -352,7 +347,7 @@ msgstr "思科公共 DNS(208.67.222.222)" msgid "Clean log" msgstr "清空日志" -#: htdocs/luci-static/resources/view/homeproxy/client.js:498 +#: htdocs/luci-static/resources/view/homeproxy/client.js:557 msgid "Client" msgstr "客户端" @@ -395,19 +390,19 @@ msgstr "连接检查" msgid "Custom routing" msgstr "自定义路由" -#: htdocs/luci-static/resources/view/homeproxy/client.js:485 +#: htdocs/luci-static/resources/view/homeproxy/client.js:548 msgid "DNS" msgstr "DNS" -#: htdocs/luci-static/resources/view/homeproxy/client.js:790 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "DNS Rules" msgstr "DNS 规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:695 +#: htdocs/luci-static/resources/view/homeproxy/client.js:750 msgid "DNS Servers" msgstr "DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/client.js:637 +#: htdocs/luci-static/resources/view/homeproxy/client.js:692 msgid "DNS Settings" msgstr "DNS 设置" @@ -415,12 +410,12 @@ msgstr "DNS 设置" msgid "DNS provider" msgstr "DNS 提供商" -#: htdocs/luci-static/resources/view/homeproxy/client.js:799 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "DNS rule" msgstr "DNS 规则" #: htdocs/luci-static/resources/view/homeproxy/client.js:158 -#: htdocs/luci-static/resources/view/homeproxy/client.js:704 +#: htdocs/luci-static/resources/view/homeproxy/client.js:759 msgid "DNS server" msgstr "DNS 服务器" @@ -428,34 +423,34 @@ msgstr "DNS 服务器" msgid "DNS01 challenge" msgstr "DNS01 验证" -#: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:549 +#: htdocs/luci-static/resources/view/homeproxy/client.js:905 msgid "DTLS" msgstr "DTLS" #: htdocs/luci-static/resources/homeproxy.js:17 -#: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:827 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1095 +#: htdocs/luci-static/resources/view/homeproxy/client.js:533 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1141 #: htdocs/luci-static/resources/view/homeproxy/node.js:645 msgid "Default" msgstr "默认" -#: htdocs/luci-static/resources/view/homeproxy/client.js:652 -#: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:707 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Default DNS (issued by WAN)" msgstr "默认 DNS(由 WAN 下发)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:647 +#: htdocs/luci-static/resources/view/homeproxy/client.js:702 msgid "Default DNS server" msgstr "默认 DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/client.js:642 +#: htdocs/luci-static/resources/view/homeproxy/client.js:697 msgid "Default DNS strategy" msgstr "默认 DNS 解析策略" -#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Default domain strategy for resolving the domain names." msgstr "默认域名解析策略。" @@ -463,7 +458,7 @@ msgstr "默认域名解析策略。" msgid "Default outbound" msgstr "默认出站" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1357 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 msgid "Default packet encoding" msgstr "默认包封装格式" @@ -472,48 +467,48 @@ msgid "Default server name" msgstr "默认服务器名称" #: htdocs/luci-static/resources/view/homeproxy/client.js:342 -#: htdocs/luci-static/resources/view/homeproxy/client.js:405 -#: htdocs/luci-static/resources/view/homeproxy/client.js:623 -#: htdocs/luci-static/resources/view/homeproxy/client.js:771 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:406 +#: htdocs/luci-static/resources/view/homeproxy/client.js:678 +#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1142 #: htdocs/luci-static/resources/view/homeproxy/node.js:394 msgid "Direct" msgstr "直连" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1224 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1270 msgid "Direct Domain List" msgstr "直连域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1141 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1186 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1187 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1232 msgid "Direct IPv4 IP-s" msgstr "直连 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1144 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1189 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1235 msgid "Direct IPv6 IP-s" msgstr "直连 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1147 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1193 msgid "Direct MAC-s" msgstr "直连 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:341 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1135 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 #: htdocs/luci-static/resources/view/homeproxy/node.js:473 #: htdocs/luci-static/resources/view/homeproxy/node.js:492 #: htdocs/luci-static/resources/view/homeproxy/node.js:504 #: htdocs/luci-static/resources/view/homeproxy/node.js:1071 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1328 #: htdocs/luci-static/resources/view/homeproxy/server.js:248 #: htdocs/luci-static/resources/view/homeproxy/server.js:260 msgid "Disable" msgstr "禁用" -#: htdocs/luci-static/resources/view/homeproxy/client.js:665 +#: htdocs/luci-static/resources/view/homeproxy/client.js:720 msgid "Disable DNS cache" msgstr "禁用 DNS 缓存" @@ -530,15 +525,15 @@ msgstr "禁用路径 MTU 探测" msgid "Disable TLS ALPN challenge" msgstr "禁用 TLS ALPN 认证" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Disable cache and save cache in this query." msgstr "在本次查询中禁用缓存。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:668 +#: htdocs/luci-static/resources/view/homeproxy/client.js:723 msgid "Disable cache expire" msgstr "缓存永不过期" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1007 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Disable dns cache" msgstr "禁用 DNS 缓存" @@ -555,18 +550,18 @@ msgstr "" "禁用路径 MTU 发现 (RFC 8899)。 数据包的大小最多为 1252 (IPv4) / 1232 (IPv6) " "字节。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:523 -#: htdocs/luci-static/resources/view/homeproxy/client.js:871 +#: htdocs/luci-static/resources/view/homeproxy/client.js:581 +#: htdocs/luci-static/resources/view/homeproxy/client.js:922 msgid "Domain keyword" msgstr "域名关键词" -#: htdocs/luci-static/resources/view/homeproxy/client.js:514 -#: htdocs/luci-static/resources/view/homeproxy/client.js:862 +#: htdocs/luci-static/resources/view/homeproxy/client.js:572 +#: htdocs/luci-static/resources/view/homeproxy/client.js:913 msgid "Domain name" msgstr "域名" -#: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:875 +#: htdocs/luci-static/resources/view/homeproxy/client.js:585 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Domain regex" msgstr "域名正则表达式" @@ -576,8 +571,8 @@ msgstr "域名正则表达式" msgid "Domain strategy" msgstr "域名解析策略" -#: htdocs/luci-static/resources/view/homeproxy/client.js:519 -#: htdocs/luci-static/resources/view/homeproxy/client.js:867 +#: htdocs/luci-static/resources/view/homeproxy/client.js:577 +#: htdocs/luci-static/resources/view/homeproxy/client.js:918 msgid "Domain suffix" msgstr "域名后缀" @@ -595,7 +590,7 @@ msgstr "下载带宽" msgid "Download bandwidth in Mbps." msgstr "下载带宽(单位:Mbps)。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1342 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 msgid "" "Drop/keep nodes that contain the specific keywords. " "正则表达式。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1327 msgid "Drop/keep specific nodes from subscriptions." msgstr "从订阅中 丢弃/保留 指定节点" @@ -636,9 +631,9 @@ msgstr "ECH 配置" msgid "ECH config path" msgstr "ECH 配置路径" -#: htdocs/luci-static/resources/view/homeproxy/client.js:677 -#: htdocs/luci-static/resources/view/homeproxy/client.js:783 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1017 +#: htdocs/luci-static/resources/view/homeproxy/client.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:838 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1063 msgid "EDNS Client subnet" msgstr "ENDS 客户端子网" @@ -656,7 +651,7 @@ msgstr "前置数据标头" msgid "Early data is sent in path instead of header by default." msgstr "前置数据默认发送在路径而不是标头中。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1176 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1169 msgid "Edit nodes" msgstr "修改节点" @@ -665,10 +660,10 @@ msgid "Email" msgstr "Email" #: htdocs/luci-static/resources/view/homeproxy/client.js:374 -#: htdocs/luci-static/resources/view/homeproxy/client.js:456 -#: htdocs/luci-static/resources/view/homeproxy/client.js:713 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1043 +#: htdocs/luci-static/resources/view/homeproxy/client.js:520 +#: htdocs/luci-static/resources/view/homeproxy/client.js:768 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 #: htdocs/luci-static/resources/view/homeproxy/server.js:116 #: htdocs/luci-static/resources/view/homeproxy/server.js:139 msgid "Enable" @@ -711,7 +706,7 @@ msgstr "启用 TCP Brutal" msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1131 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1124 #: htdocs/luci-static/resources/view/homeproxy/server.js:793 msgid "Enable UDP fragmentation." msgstr "启用 UDP 分片。" @@ -729,7 +724,7 @@ msgstr "启用填充" msgid "Enable tcp fast open for listener." msgstr "为监听器启用 TCP 快速打开。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1129 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" @@ -752,16 +747,18 @@ msgstr "加密方式" #: htdocs/luci-static/resources/view/homeproxy/client.js:178 #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:245 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1217 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/client.js:449 +#: htdocs/luci-static/resources/view/homeproxy/client.js:452 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1263 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1292 #: htdocs/luci-static/resources/view/homeproxy/node.js:452 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1323 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1260 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1319 #: htdocs/luci-static/resources/view/homeproxy/server.js:213 #: htdocs/luci-static/resources/view/homeproxy/server.js:616 #: htdocs/luci-static/resources/view/homeproxy/server.js:618 @@ -784,15 +781,15 @@ msgstr "外部账户密钥标识符" msgid "Failed to upload %s, error: %s." msgstr "上传 %s 失败,错误:%s。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1341 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 msgid "Filter keywords" msgstr "过滤关键词" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1333 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 msgid "Filter nodes" msgstr "过滤节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:501 +#: htdocs/luci-static/resources/view/homeproxy/client.js:560 msgid "Firefox / uquic firefox" msgstr "Firefox / uquic firefox" @@ -801,7 +798,7 @@ msgstr "Firefox / uquic firefox" msgid "Flow" msgstr "流控" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1100 msgid "Format" msgstr "格式" @@ -817,15 +814,15 @@ msgstr "GFW 域名列表版本" msgid "GFWList" msgstr "GFWList" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1205 msgid "Gaming mode IPv4 IP-s" msgstr "游戏模式 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1161 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1207 msgid "Gaming mode IPv6 IP-s" msgstr "游戏模式 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1164 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1210 msgid "Gaming mode MAC-s" msgstr "游戏模式 MAC 地址" @@ -851,15 +848,15 @@ msgstr "全局" msgid "Global padding" msgstr "全局填充" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1166 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1212 msgid "Global proxy IPv4 IP-s" msgstr "全局代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1169 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1215 msgid "Global proxy IPv6 IP-s" msgstr "全局代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1172 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1218 msgid "Global proxy MAC-s" msgstr "全局代理 MAC 地址" @@ -879,8 +876,8 @@ msgstr "谷歌公共 DNS(8.8.8.8)" msgid "Grant access to homeproxy configuration" msgstr "授予 homeproxy 访问 UCI 配置的权限" -#: htdocs/luci-static/resources/view/homeproxy/client.js:488 -#: htdocs/luci-static/resources/view/homeproxy/client.js:853 +#: htdocs/luci-static/resources/view/homeproxy/client.js:550 +#: htdocs/luci-static/resources/view/homeproxy/client.js:906 #: htdocs/luci-static/resources/view/homeproxy/node.js:395 #: htdocs/luci-static/resources/view/homeproxy/node.js:715 #: htdocs/luci-static/resources/view/homeproxy/server.js:145 @@ -935,8 +932,8 @@ msgstr "HomeProxy 服务端" msgid "Host" msgstr "主机名" -#: htdocs/luci-static/resources/view/homeproxy/client.js:446 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:510 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Host fields" msgstr "主机字段" @@ -964,18 +961,18 @@ msgstr "Hysteria" msgid "Hysteria2" msgstr "Hysteria2" -#: htdocs/luci-static/resources/view/homeproxy/client.js:542 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:600 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "IP CIDR" msgstr "IP CIDR" -#: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:832 +#: htdocs/luci-static/resources/view/homeproxy/client.js:538 +#: htdocs/luci-static/resources/view/homeproxy/client.js:887 msgid "IP version" msgstr "IP 版本" -#: htdocs/luci-static/resources/view/homeproxy/client.js:476 -#: htdocs/luci-static/resources/view/homeproxy/client.js:833 +#: htdocs/luci-static/resources/view/homeproxy/client.js:540 +#: htdocs/luci-static/resources/view/homeproxy/client.js:888 msgid "IPv4" msgstr "IPv4" @@ -983,8 +980,8 @@ msgstr "IPv4" msgid "IPv4 only" msgstr "仅 IPv4" -#: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:834 +#: htdocs/luci-static/resources/view/homeproxy/client.js:541 +#: htdocs/luci-static/resources/view/homeproxy/client.js:889 msgid "IPv6" msgstr "IPv6" @@ -996,6 +993,7 @@ msgstr "仅 IPv6" msgid "IPv6 support" msgstr "IPv6 支持" +#: htdocs/luci-static/resources/view/homeproxy/client.js:482 #: htdocs/luci-static/resources/view/homeproxy/node.js:786 #: htdocs/luci-static/resources/view/homeproxy/server.js:450 msgid "Idle timeout" @@ -1037,13 +1035,13 @@ msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接 msgid "Ignore client bandwidth" msgstr "忽略客户端带宽" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1250 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1243 msgid "Import" msgstr "导入" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1276 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1278 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1190 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1269 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1271 msgid "Import share links" msgstr "导入分享链接" @@ -1052,14 +1050,22 @@ msgstr "导入分享链接" msgid "In seconds. 300 is used by default." msgstr "单位:秒。默认使用 300。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:672 +#: htdocs/luci-static/resources/view/homeproxy/client.js:727 msgid "Independent cache per server" msgstr "独立缓存" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1118 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1164 msgid "Interface Control" msgstr "接口控制" +#: htdocs/luci-static/resources/view/homeproxy/client.js:488 +msgid "Interrupt existing connections" +msgstr "中断现有连接" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:489 +msgid "Interrupt existing connections when the selected outbound has changed." +msgstr "当选择的出站发生变化时中断现有连接。" + #: htdocs/luci-static/resources/view/homeproxy/node.js:665 #: htdocs/luci-static/resources/view/homeproxy/server.js:371 msgid "" @@ -1067,13 +1073,13 @@ msgid "" "seconds)." msgstr "发送心跳包以保持连接存活的时间间隔(单位:秒)。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:965 +#: htdocs/luci-static/resources/view/homeproxy/client.js:667 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 msgid "Invert" msgstr "反转" -#: htdocs/luci-static/resources/view/homeproxy/client.js:613 -#: htdocs/luci-static/resources/view/homeproxy/client.js:966 +#: htdocs/luci-static/resources/view/homeproxy/client.js:668 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1012 msgid "Invert match result." msgstr "反转匹配结果" @@ -1085,15 +1091,15 @@ msgstr "它必须支持 TCP 查询。" msgid "Key path" msgstr "证书路径" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1132 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1178 msgid "LAN IP Policy" msgstr "LAN IP 策略" #: htdocs/luci-static/resources/view/homeproxy/client.js:369 -#: htdocs/luci-static/resources/view/homeproxy/client.js:451 -#: htdocs/luci-static/resources/view/homeproxy/client.js:708 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1038 +#: htdocs/luci-static/resources/view/homeproxy/client.js:515 +#: htdocs/luci-static/resources/view/homeproxy/client.js:763 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1084 #: htdocs/luci-static/resources/view/homeproxy/node.js:388 #: htdocs/luci-static/resources/view/homeproxy/server.js:133 msgid "Label" @@ -1121,6 +1127,10 @@ 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/client.js:436 +msgid "List of nodes to test." +msgstr "要测试的节点列表。" + #: htdocs/luci-static/resources/view/homeproxy/node.js:977 #: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "List of supported application level protocols, in order of preference." @@ -1130,7 +1140,7 @@ msgstr "支持的应用层协议协商列表,按顺序排列。" msgid "Listen address" msgstr "监听地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1120 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1166 msgid "Listen interfaces" msgstr "监听接口" @@ -1142,7 +1152,7 @@ msgstr "监听端口" msgid "Loading" msgstr "加载中" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1049 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1095 msgid "Local" msgstr "本地" @@ -1170,19 +1180,19 @@ msgstr "主 UDP 节点" msgid "Main node" msgstr "主节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:608 +#: htdocs/luci-static/resources/view/homeproxy/client.js:663 msgid "Make IP CIDR in rule set used to match the source IP." msgstr "使规则集中的 IP CIDR 用于匹配源 IP。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:954 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1002 msgid "Make IP CIDR in rule sets match the source IP." msgstr "使规则集中的 IP CIDR 匹配源 IP。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:960 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1007 msgid "Make IP CIDR in rule-sets accept empty query response." msgstr "使规则集中的 IP CIDR 接受空查询响应。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:673 +#: htdocs/luci-static/resources/view/homeproxy/client.js:728 msgid "" "Make each DNS server's cache independent for special purposes. If enabled, " "will slightly degrade performance." @@ -1192,106 +1202,106 @@ msgstr "独立缓存每个 DNS 服务器的结果以供特殊用途。启用后 msgid "Masquerade" msgstr "伪装" -#: htdocs/luci-static/resources/view/homeproxy/client.js:900 +#: htdocs/luci-static/resources/view/homeproxy/client.js:951 msgid "Match IP CIDR with query response." msgstr "使用查询响应匹配 IP CIDR。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:543 +#: htdocs/luci-static/resources/view/homeproxy/client.js:601 msgid "Match IP CIDR." msgstr "匹配 IP CIDR。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:520 -#: htdocs/luci-static/resources/view/homeproxy/client.js:868 +#: htdocs/luci-static/resources/view/homeproxy/client.js:578 +#: htdocs/luci-static/resources/view/homeproxy/client.js:919 msgid "Match domain suffix." msgstr "匹配域名后缀。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:524 -#: htdocs/luci-static/resources/view/homeproxy/client.js:872 +#: htdocs/luci-static/resources/view/homeproxy/client.js:582 +#: htdocs/luci-static/resources/view/homeproxy/client.js:923 msgid "Match domain using keyword." msgstr "使用关键词匹配域名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:528 -#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:586 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "Match domain using regular expression." msgstr "使用正则表达式匹配域名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:515 -#: htdocs/luci-static/resources/view/homeproxy/client.js:863 +#: htdocs/luci-static/resources/view/homeproxy/client.js:573 +#: htdocs/luci-static/resources/view/homeproxy/client.js:914 msgid "Match full domain." msgstr "匹配完整域名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:569 -#: htdocs/luci-static/resources/view/homeproxy/client.js:885 +#: htdocs/luci-static/resources/view/homeproxy/client.js:627 +#: htdocs/luci-static/resources/view/homeproxy/client.js:936 msgid "Match port range. Format as START:/:END/START:END." msgstr "匹配端口范围。格式为 START:/:END/START:END。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:564 -#: htdocs/luci-static/resources/view/homeproxy/client.js:880 +#: htdocs/luci-static/resources/view/homeproxy/client.js:622 +#: htdocs/luci-static/resources/view/homeproxy/client.js:931 msgid "Match port." msgstr "匹配端口。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:905 +#: htdocs/luci-static/resources/view/homeproxy/client.js:956 msgid "Match private IP with query response." msgstr "使用查询响应匹配私有 IP。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:548 +#: htdocs/luci-static/resources/view/homeproxy/client.js:606 msgid "Match private IP." msgstr "匹配私有 IP。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:895 +#: htdocs/luci-static/resources/view/homeproxy/client.js:595 +#: htdocs/luci-static/resources/view/homeproxy/client.js:946 msgid "Match private source IP." msgstr "匹配私有源 IP。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:574 -#: htdocs/luci-static/resources/view/homeproxy/client.js:920 +#: htdocs/luci-static/resources/view/homeproxy/client.js:632 +#: htdocs/luci-static/resources/view/homeproxy/client.js:971 msgid "Match process name." msgstr "匹配进程名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:583 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:640 +#: htdocs/luci-static/resources/view/homeproxy/client.js:979 msgid "Match process path using regular expression." msgstr "使用正则表达式匹配进程路径。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:578 -#: htdocs/luci-static/resources/view/homeproxy/client.js:924 +#: htdocs/luci-static/resources/view/homeproxy/client.js:636 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 msgid "Match process path." msgstr "匹配进程路径。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:839 +#: htdocs/luci-static/resources/view/homeproxy/client.js:894 msgid "Match query type." msgstr "匹配请求类型。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:592 -#: htdocs/luci-static/resources/view/homeproxy/client.js:938 +#: htdocs/luci-static/resources/view/homeproxy/client.js:648 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Match rule set." msgstr "匹配规则集。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:890 +#: htdocs/luci-static/resources/view/homeproxy/client.js:590 +#: htdocs/luci-static/resources/view/homeproxy/client.js:941 msgid "Match source IP CIDR." msgstr "匹配源 IP CIDR。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:607 +#: htdocs/luci-static/resources/view/homeproxy/client.js:662 msgid "Match source IP via rule set" msgstr "通过规则集匹配源 IP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:559 -#: htdocs/luci-static/resources/view/homeproxy/client.js:915 +#: htdocs/luci-static/resources/view/homeproxy/client.js:617 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Match source port range. Format as START:/:END/START:END." msgstr "匹配源端口范围。格式为 START:/:END/START:END。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 +#: htdocs/luci-static/resources/view/homeproxy/client.js:612 +#: htdocs/luci-static/resources/view/homeproxy/client.js:961 msgid "Match source port." msgstr "匹配源端口。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:971 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1017 msgid "Match the server name of outbound." msgstr "匹配出站的服务器名称。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:588 -#: htdocs/luci-static/resources/view/homeproxy/client.js:934 +#: htdocs/luci-static/resources/view/homeproxy/client.js:644 +#: htdocs/luci-static/resources/view/homeproxy/client.js:983 msgid "Match user name." msgstr "匹配用户名。" @@ -1369,12 +1379,12 @@ msgstr "混合" msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "混合系统 TCP 栈和 gVisor UDP 栈。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:819 +#: htdocs/luci-static/resources/view/homeproxy/client.js:525 +#: htdocs/luci-static/resources/view/homeproxy/client.js:874 msgid "Mode" msgstr "模式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1126 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1119 #: htdocs/luci-static/resources/view/homeproxy/server.js:787 msgid "MultiPath TCP" msgstr "多路径 TCP(MPTCP)" @@ -1393,7 +1403,7 @@ msgstr "多路复用协议。" msgid "NOT RUNNING" msgstr "未运行" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1363 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1356 msgid "NOTE: Save current settings before updating subscriptions." msgstr "注意:更新订阅前先保存当前配置。" @@ -1405,8 +1415,8 @@ msgstr "原生" msgid "NaïveProxy" msgstr "NaïveProxy" -#: htdocs/luci-static/resources/view/homeproxy/client.js:509 -#: htdocs/luci-static/resources/view/homeproxy/client.js:842 +#: htdocs/luci-static/resources/view/homeproxy/client.js:567 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 #: htdocs/luci-static/resources/view/homeproxy/server.js:815 msgid "Network" msgstr "网络" @@ -1427,15 +1437,15 @@ msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。" msgid "No additional encryption support: It's basically duplicate encryption." msgstr "无额外加密支持:它基本上是重复加密。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1372 msgid "No subscription available" msgstr "无可用订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1404 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1397 msgid "No subscription node" msgstr "无订阅节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1236 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1229 msgid "No valid share link found." msgstr "找不到有效分享链接。" @@ -1448,11 +1458,11 @@ msgstr "节点" msgid "Node Settings" msgstr "节点设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1175 msgid "Nodes" msgstr "节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:728 +#: htdocs/luci-static/resources/view/homeproxy/client.js:783 #: htdocs/luci-static/resources/view/homeproxy/node.js:674 #: htdocs/luci-static/resources/view/homeproxy/node.js:713 #: htdocs/luci-static/resources/view/homeproxy/server.js:380 @@ -1470,7 +1480,7 @@ msgstr "混淆密码" msgid "Obfuscate type" msgstr "混淆类型" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1167 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "只处理来自指定接口的流量。留空表示全部。" @@ -1478,16 +1488,16 @@ msgstr "只处理来自指定接口的流量。留空表示全部。" msgid "Only proxy mainland China" msgstr "仅代理中国大陆" -#: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:509 +#: htdocs/luci-static/resources/view/homeproxy/client.js:858 msgid "Other fields" msgstr "其他字段" -#: htdocs/luci-static/resources/view/homeproxy/client.js:399 -#: htdocs/luci-static/resources/view/homeproxy/client.js:617 -#: htdocs/luci-static/resources/view/homeproxy/client.js:765 -#: htdocs/luci-static/resources/view/homeproxy/client.js:970 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 +#: htdocs/luci-static/resources/view/homeproxy/client.js:400 +#: htdocs/luci-static/resources/view/homeproxy/client.js:672 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1016 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1135 msgid "Outbound" msgstr "出站" @@ -1534,7 +1544,7 @@ msgstr "数据包编码" msgid "Password" msgstr "密码" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1106 #: htdocs/luci-static/resources/view/homeproxy/node.js:775 #: htdocs/luci-static/resources/view/homeproxy/node.js:808 #: htdocs/luci-static/resources/view/homeproxy/server.js:441 @@ -1565,8 +1575,8 @@ msgstr "插件" msgid "Plugin opts" msgstr "插件参数" -#: htdocs/luci-static/resources/view/homeproxy/client.js:563 -#: htdocs/luci-static/resources/view/homeproxy/client.js:879 +#: htdocs/luci-static/resources/view/homeproxy/client.js:621 +#: htdocs/luci-static/resources/view/homeproxy/client.js:930 #: htdocs/luci-static/resources/view/homeproxy/node.js:418 msgid "Port" msgstr "端口" @@ -1575,13 +1585,13 @@ msgstr "端口" msgid "Port %s alrealy exists!" msgstr "端口 %s 已存在!" -#: htdocs/luci-static/resources/view/homeproxy/client.js:447 -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:511 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Port fields" msgstr "端口字段" -#: htdocs/luci-static/resources/view/homeproxy/client.js:568 -#: htdocs/luci-static/resources/view/homeproxy/client.js:884 +#: htdocs/luci-static/resources/view/homeproxy/client.js:626 +#: htdocs/luci-static/resources/view/homeproxy/client.js:935 msgid "Port range" msgstr "端口范围" @@ -1597,8 +1607,8 @@ msgstr "优先 IPv4" msgid "Prefer IPv6" msgstr "优先 IPv6" -#: htdocs/luci-static/resources/view/homeproxy/client.js:547 -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:605 +#: htdocs/luci-static/resources/view/homeproxy/client.js:955 msgid "Private IP" msgstr "私有 IP" @@ -1611,28 +1621,28 @@ msgstr "私钥" msgid "Private key passphrase" msgstr "私钥指纹" -#: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:594 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Private source IP" msgstr "私有源 IP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:573 -#: htdocs/luci-static/resources/view/homeproxy/client.js:919 +#: htdocs/luci-static/resources/view/homeproxy/client.js:631 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 msgid "Process name" msgstr "进程名" -#: htdocs/luci-static/resources/view/homeproxy/client.js:577 -#: htdocs/luci-static/resources/view/homeproxy/client.js:923 +#: htdocs/luci-static/resources/view/homeproxy/client.js:635 +#: htdocs/luci-static/resources/view/homeproxy/client.js:974 msgid "Process path" msgstr "进程路径" -#: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:639 +#: htdocs/luci-static/resources/view/homeproxy/client.js:978 msgid "Process path (regex)" msgstr "进程路径(正则表达式)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:481 -#: htdocs/luci-static/resources/view/homeproxy/client.js:847 +#: htdocs/luci-static/resources/view/homeproxy/client.js:545 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 #: htdocs/luci-static/resources/view/homeproxy/node.js:480 #: htdocs/luci-static/resources/view/homeproxy/node.js:891 #: htdocs/luci-static/resources/view/homeproxy/server.js:222 @@ -1649,33 +1659,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1195 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1241 msgid "Proxy Domain List" msgstr "代理域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1196 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1225 msgid "Proxy IPv4 IP-s" msgstr "代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1153 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1182 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1199 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1228 msgid "Proxy IPv6 IP-s" msgstr "代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1156 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1202 msgid "Proxy MAC-s" msgstr "代理 MAC 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1183 msgid "Proxy all except listed" msgstr "仅允许列表外" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1134 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1180 msgid "Proxy filter mode" msgstr "代理过滤模式" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1136 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1182 msgid "Proxy listed only" msgstr "仅允许列表内" @@ -1687,8 +1697,8 @@ msgstr "代理模式" msgid "Proxy protocol" msgstr "代理协议" -#: htdocs/luci-static/resources/view/homeproxy/client.js:489 -#: htdocs/luci-static/resources/view/homeproxy/client.js:854 +#: htdocs/luci-static/resources/view/homeproxy/client.js:551 +#: htdocs/luci-static/resources/view/homeproxy/client.js:907 #: htdocs/luci-static/resources/view/homeproxy/node.js:647 #: htdocs/luci-static/resources/view/homeproxy/node.js:717 #: htdocs/luci-static/resources/view/homeproxy/server.js:399 @@ -1714,20 +1724,20 @@ msgstr "QUIC 最大双向并发流" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:838 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Query type" msgstr "请求类型" -#: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:552 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "RDP" msgstr "RDP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:688 +#: htdocs/luci-static/resources/view/homeproxy/client.js:743 msgid "RDRC timeout" msgstr "RDRC 超时" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 #: htdocs/luci-static/resources/view/homeproxy/server.js:707 msgid "REALITY" msgstr "REALITY" @@ -1736,11 +1746,11 @@ msgstr "REALITY" msgid "REALITY private key" msgstr "REALITY 私钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 msgid "REALITY public key" msgstr "REALITY 公钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1108 #: htdocs/luci-static/resources/view/homeproxy/server.js:718 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -1754,11 +1764,11 @@ msgstr "运行中" msgid "Random version will be used if empty." msgstr "如留空,则使用随机版本。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:424 +#: htdocs/luci-static/resources/view/homeproxy/client.js:428 msgid "Recursive outbound detected!" msgstr "检测到递归出站!" -#: htdocs/luci-static/resources/view/homeproxy/client.js:747 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 msgid "Recursive resolver detected!" msgstr "检测到递归解析器!" @@ -1782,15 +1792,15 @@ msgstr "每 %s 秒刷新。" msgid "Region ID" msgstr "区域 ID" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1050 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 msgid "Remote" msgstr "远程" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1401 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1394 msgid "Remove %s nodes" msgstr "移除 %s 个节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 msgid "Remove all nodes from subscriptions" msgstr "移除所有订阅节点" @@ -1798,7 +1808,7 @@ msgstr "移除所有订阅节点" msgid "Reserved field bytes" msgstr "保留字段字节" -#: htdocs/luci-static/resources/view/homeproxy/client.js:760 +#: htdocs/luci-static/resources/view/homeproxy/client.js:815 msgid "Resolve strategy" msgstr "解析策略" @@ -1806,11 +1816,11 @@ msgstr "解析策略" msgid "Resources management" msgstr "资源管理" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1012 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Rewrite TTL" msgstr "重写 TTL" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "Rewrite TTL in DNS responses." msgstr "在 DNS 响应中重写 TTL。" @@ -1818,7 +1828,7 @@ msgstr "在 DNS 响应中重写 TTL。" msgid "Routing Nodes" msgstr "路由节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:432 +#: htdocs/luci-static/resources/view/homeproxy/client.js:496 msgid "Routing Rules" msgstr "路由规则" @@ -1838,51 +1848,51 @@ msgstr "路由节点" msgid "Routing ports" msgstr "路由端口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:441 +#: htdocs/luci-static/resources/view/homeproxy/client.js:505 msgid "Routing rule" msgstr "路由规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:591 -#: htdocs/luci-static/resources/view/homeproxy/client.js:937 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1025 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 +#: htdocs/luci-static/resources/view/homeproxy/client.js:647 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Rule set" msgstr "规则集" -#: htdocs/luci-static/resources/view/homeproxy/client.js:953 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 msgid "Rule set IP CIDR as source IP" msgstr "规则集 IP CIDR 作为源 IP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1113 msgid "Rule set URL" msgstr "规则集 URL" -#: htdocs/luci-static/resources/view/homeproxy/client.js:448 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:512 +#: htdocs/luci-static/resources/view/homeproxy/client.js:861 msgid "SRC-IP fields" msgstr "源 IP 字段" -#: htdocs/luci-static/resources/view/homeproxy/client.js:449 -#: htdocs/luci-static/resources/view/homeproxy/client.js:807 +#: htdocs/luci-static/resources/view/homeproxy/client.js:513 +#: htdocs/luci-static/resources/view/homeproxy/client.js:862 msgid "SRC-Port fields" msgstr "源端口字段" -#: htdocs/luci-static/resources/view/homeproxy/client.js:492 -#: htdocs/luci-static/resources/view/homeproxy/client.js:857 +#: htdocs/luci-static/resources/view/homeproxy/client.js:553 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 #: htdocs/luci-static/resources/view/homeproxy/node.js:403 msgid "SSH" msgstr "SSH" -#: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:859 +#: htdocs/luci-static/resources/view/homeproxy/client.js:554 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "STUN" msgstr "STUN" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1142 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1135 msgid "SUoT version" msgstr "SUoT 版本" -#: htdocs/luci-static/resources/view/homeproxy/client.js:503 +#: htdocs/luci-static/resources/view/homeproxy/client.js:562 msgid "Safari / Apple Network API" msgstr "Safari / Apple Network API" @@ -1895,15 +1905,15 @@ msgstr "Salamander" msgid "Same as main node" msgstr "保持与主节点一致" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1365 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 msgid "Save current settings" msgstr "保存当前设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1362 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 msgid "Save subscriptions settings" msgstr "保存订阅设置" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1034 #: htdocs/luci-static/resources/view/homeproxy/server.js:129 msgid "Server" msgstr "服务器" @@ -1939,12 +1949,12 @@ msgstr "ShadowTLS 版本" msgid "Shadowsocks" msgstr "Shadowsocks" -#: htdocs/luci-static/resources/view/homeproxy/client.js:499 +#: htdocs/luci-static/resources/view/homeproxy/client.js:558 msgid "Sniffed client type (QUIC client type or SSH client name)." msgstr "嗅探到的客户端类型(QUIC 客户端类型或 SSH 客户端名称)。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:848 +#: htdocs/luci-static/resources/view/homeproxy/client.js:546 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "" "Sniffed protocol, see Sniff for details." @@ -1973,22 +1983,22 @@ msgstr "Socks4A" msgid "Socks5" msgstr "Socks5" -#: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:889 +#: htdocs/luci-static/resources/view/homeproxy/client.js:589 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Source IP CIDR" msgstr "源 IP CIDR" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Source file" msgstr "源文件" -#: htdocs/luci-static/resources/view/homeproxy/client.js:553 -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:611 +#: htdocs/luci-static/resources/view/homeproxy/client.js:960 msgid "Source port" msgstr "源端口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:558 -#: htdocs/luci-static/resources/view/homeproxy/client.js:914 +#: htdocs/luci-static/resources/view/homeproxy/client.js:616 +#: htdocs/luci-static/resources/view/homeproxy/client.js:965 msgid "Source port range" msgstr "源端口范围" @@ -2031,11 +2041,11 @@ msgid "" "commas." msgstr "指定需要被代理的目标端口。多个端口必须用逗号隔开。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:682 +#: htdocs/luci-static/resources/view/homeproxy/client.js:737 msgid "Store RDRC" msgstr "存储 RDRC" -#: htdocs/luci-static/resources/view/homeproxy/client.js:683 +#: htdocs/luci-static/resources/view/homeproxy/client.js:738 msgid "" "Store rejected DNS response cache.
The check results of Address " "filter DNS rule items will be cached until expiration." @@ -2048,19 +2058,19 @@ msgstr "" msgid "String" msgstr "字符串" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1287 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1280 msgid "Sub (%s)" msgstr "订阅(%s)" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1309 msgid "Subscription URL-s" msgstr "订阅地址" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1298 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1291 msgid "Subscriptions" msgstr "订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1238 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 msgid "Successfully imported %s nodes of total %s." msgstr "成功导入 %s 个节点,共 %s 个。" @@ -2068,8 +2078,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。" msgid "Successfully updated." msgstr "更新成功。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1198 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1317 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1191 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1310 msgid "" "Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -2081,19 +2091,19 @@ msgstr "" msgid "System" msgstr "系统" -#: htdocs/luci-static/resources/view/homeproxy/client.js:653 -#: htdocs/luci-static/resources/view/homeproxy/client.js:730 -#: htdocs/luci-static/resources/view/homeproxy/client.js:995 +#: htdocs/luci-static/resources/view/homeproxy/client.js:708 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 msgid "System DNS" msgstr "系统 DNS" -#: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:843 +#: htdocs/luci-static/resources/view/homeproxy/client.js:568 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 #: htdocs/luci-static/resources/view/homeproxy/server.js:816 msgid "TCP" msgstr "TCP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 #: htdocs/luci-static/resources/view/homeproxy/server.js:781 msgid "TCP fast open" msgstr "TCP 快速打开" @@ -2106,8 +2116,8 @@ msgstr "TCP/IP 协议栈" msgid "TCP/IP stack." msgstr "TCP/IP 协议栈。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:555 +#: htdocs/luci-static/resources/view/homeproxy/client.js:911 #: htdocs/luci-static/resources/view/homeproxy/node.js:944 #: htdocs/luci-static/resources/view/homeproxy/server.js:529 msgid "TLS" @@ -2128,7 +2138,7 @@ msgstr "TLS SNI" msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used." msgstr "不强制执行 TLS。如未配置 TLS,将使用纯 HTTP 1.1。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:723 +#: htdocs/luci-static/resources/view/homeproxy/client.js:778 msgid "" "Tag of a another server to resolve the domain name in the address. Required " "if address contains domain." @@ -2136,19 +2146,19 @@ msgstr "" "用于解析本 DNS 服务器的域名的另一个 DNS 服务器的标签。如果服务器地址包括域名" "则必须。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Tag of an outbound for connecting to the dns server." msgstr "用于连接到 DNS 服务器的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1090 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1136 msgid "Tag of the outbound to download rule set." msgstr "用于下载规则集的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1035 msgid "Tag of the target dns server." msgstr "目标 DNS 服务器标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:618 +#: htdocs/luci-static/resources/view/homeproxy/client.js:673 msgid "Tag of the target outbound." msgstr "目标出站标签。" @@ -2162,11 +2172,27 @@ msgstr "让客户端使用 BBR 流控算法。" msgid "Tencent Public DNS (119.29.29.29)" msgstr "腾讯公共 DNS(119.29.29.29)" +#: htdocs/luci-static/resources/view/homeproxy/client.js:442 +msgid "Test URL" +msgstr "测试 URL" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:461 +msgid "Test interval" +msgstr "测试间隔" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:468 +msgid "Test interval must be less or equal than idle timeout." +msgstr "测试间隔时间必须小于或等于空闲超时时间。" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:476 +msgid "Test tolerance" +msgstr "测试容差" + #: htdocs/luci-static/resources/view/homeproxy/server.js:626 msgid "The ACME CA provider to use." msgstr "使用的 ACME CA 颁发机构。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:643 +#: htdocs/luci-static/resources/view/homeproxy/client.js:698 msgid "The DNS strategy for resolving the domain name in the address." msgstr "解析域名的默认策略。" @@ -2180,7 +2206,15 @@ msgstr "用于接收数据的 QUIC 连接级流控制窗口。" msgid "The QUIC stream-level flow control window for receiving data." msgstr "用于接收数据的 QUIC 流级流控制窗口。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:719 +#: htdocs/luci-static/resources/view/homeproxy/client.js:443 +msgid "" +"The URL to test. https://www.gstatic.com/generate_204 will be " +"used if empty." +msgstr "" +"用于测试的 URL。如留空,默认为 https://www.gstatic.com/generate_204。" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:774 msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "DNS 服务器的地址。支持 UDP、TCP、DoT、DoH 和 RCode。" @@ -2199,7 +2233,7 @@ msgid "" msgstr "" "用于 ACME TLS-ALPN 质询的备用端口; 系统必须将 443 转发到此端口以使质询成功。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:462 +#: htdocs/luci-static/resources/view/homeproxy/client.js:526 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex || ip_cidr || " @@ -2216,7 +2250,7 @@ msgstr "" "source_port_range) &&
其他字段。此外,包含的所有规则" "集会被合并而不是独立生效。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:820 +#: htdocs/luci-static/resources/view/homeproxy/client.js:875 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2231,7 +2265,7 @@ msgstr "" ">(source_port || source_port_range) &&
其他字段。此外,包含的所有规则集会被合并而不是独立生效。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:755 +#: htdocs/luci-static/resources/view/homeproxy/client.js:810 msgid "The domain strategy for resolving the domain name in the address." msgstr "用于解析本 DNS 服务器的域名的策略。" @@ -2248,6 +2282,10 @@ msgid "" "account." msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。" +#: htdocs/luci-static/resources/view/homeproxy/client.js:483 +msgid "The idle timeout in seconds. 1800 will be used if empty." +msgstr "空闲超时时间(单位:秒)。如留空,默认为 1800。" + #: htdocs/luci-static/resources/view/homeproxy/node.js:999 #: htdocs/luci-static/resources/view/homeproxy/server.js:576 msgid "The maximum TLS version that is acceptable." @@ -2273,7 +2311,7 @@ msgstr "可接受的最低 TLS 版本。" msgid "The modern OpenWrt proxy platform for ARM64/AMD64." msgstr "为 ARM64/AMD64 设计的现代 OpenWrt 代理平台。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:393 +#: htdocs/luci-static/resources/view/homeproxy/client.js:394 msgid "The network interface to bind to." msgstr "绑定到的网络接口。" @@ -2299,12 +2337,21 @@ msgstr "服务端私钥,需要 PEM 格式。" msgid "The server public key, in PEM format." msgstr "服务端公钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:400 +#: htdocs/luci-static/resources/view/homeproxy/client.js:401 msgid "" "The tag of the upstream outbound.
Other dial fields will be ignored when " "enabled." msgstr "上游出站的标签。
启用时,其他拨号字段将被忽略。" +#: htdocs/luci-static/resources/view/homeproxy/client.js:462 +msgid "The test interval in seconds. 180 will be used if empty." +msgstr "测试间隔时间(单位:秒)。如留空,默认为 180。" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:477 +msgid "" +"The test tolerance in milliseconds. 50 will be used if empty." +msgstr "测试容差时间(单位:毫秒)。如留空,默认为 50。" + #: htdocs/luci-static/resources/view/homeproxy/node.js:745 #: htdocs/luci-static/resources/view/homeproxy/server.js:459 msgid "" @@ -2316,7 +2363,7 @@ msgstr "" "检测到任何活动,则会关闭连接。" #: htdocs/luci-static/resources/view/homeproxy/node.js:984 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1352 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1345 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -2336,7 +2383,7 @@ msgstr "" msgid "ThreatBook Public DNS (117.50.10.10)" msgstr "微步在线公共 DNS(117.50.10.10)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:689 +#: htdocs/luci-static/resources/view/homeproxy/client.js:744 msgid "" "Timeout of rejected DNS response cache. 7d is used by default." msgstr "被拒绝的 DNS 响应缓存超时。默认时长 7d。" @@ -2374,19 +2421,19 @@ msgstr "Tuic" msgid "Tun TCP/UDP" msgstr "Tun TCP/UDP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1048 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 #: htdocs/luci-static/resources/view/homeproxy/node.js:393 #: htdocs/luci-static/resources/view/homeproxy/server.js:144 msgid "Type" msgstr "类型" -#: htdocs/luci-static/resources/view/homeproxy/client.js:511 -#: htdocs/luci-static/resources/view/homeproxy/client.js:844 +#: htdocs/luci-static/resources/view/homeproxy/client.js:569 +#: htdocs/luci-static/resources/view/homeproxy/client.js:899 #: htdocs/luci-static/resources/view/homeproxy/server.js:817 msgid "UDP" msgstr "UDP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1123 #: htdocs/luci-static/resources/view/homeproxy/server.js:792 msgid "UDP Fragment" msgstr "UDP 分片" @@ -2396,7 +2443,7 @@ msgstr "UDP 分片" msgid "UDP NAT expiration time" msgstr "UDP NAT 过期时间" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1135 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1128 msgid "UDP over TCP" msgstr "UDP over TCP" @@ -2412,6 +2459,14 @@ msgstr "UDP 包中继模式。" msgid "UDP relay mode" msgstr "UDP 中继模式" +#: htdocs/luci-static/resources/view/homeproxy/client.js:381 +msgid "URLTest" +msgstr "URLTest" + +#: htdocs/luci-static/resources/view/homeproxy/client.js:435 +msgid "URLTest nodes" +msgstr "URLTest 节点" + #: htdocs/luci-static/resources/view/homeproxy/node.js:626 #: htdocs/luci-static/resources/view/homeproxy/server.js:329 msgid "UUID" @@ -2425,11 +2480,11 @@ msgstr "未知错误。" msgid "Unknown error: %s" msgstr "未知错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1098 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 msgid "Unsupported fingerprint!" msgstr "不支持的指纹!" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1376 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 msgid "Update %s subscriptions" msgstr "更新 %s 个订阅" @@ -2437,27 +2492,27 @@ msgstr "更新 %s 个订阅" msgid "Update failed." msgstr "更新失败。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1106 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 msgid "Update interval" msgstr "更新间隔" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1153 msgid "Update interval of rule set.
1d will be used if empty." -msgstr "规则集更新间隔。
留空使用 1d。" +msgstr "规则集更新间隔。
如留空,默认为 1d。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1371 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1364 msgid "Update nodes from subscriptions" msgstr "从订阅更新节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1312 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 msgid "Update subscriptions via proxy." msgstr "使用代理更新订阅。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1298 msgid "Update time" msgstr "更新时间" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1311 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1304 msgid "Update via proxy" msgstr "使用代理更新" @@ -2502,12 +2557,12 @@ msgid "" "given." msgstr "用于验证返回证书上的主机名。如允许不安全连接,此配置无效。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:587 -#: htdocs/luci-static/resources/view/homeproxy/client.js:933 +#: htdocs/luci-static/resources/view/homeproxy/client.js:643 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "User" msgstr "用户" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1346 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1339 msgid "User-Agent" msgstr "用户代理" @@ -2531,7 +2586,7 @@ msgstr "VMess" msgid "WAN DNS (read from interface)" msgstr "WAN DNS(从接口获取)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1177 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1223 msgid "WAN IP Policy" msgstr "WAN IP 策略" @@ -2540,7 +2595,7 @@ msgstr "WAN IP 策略" msgid "WebSocket" msgstr "WebSocket" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1337 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1330 msgid "Whitelist mode" msgstr "白名单模式" @@ -2565,7 +2620,7 @@ msgid "Write proxy protocol in the connection header." msgstr "在连接头中写入代理协议。" #: htdocs/luci-static/resources/view/homeproxy/node.js:828 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1360 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 msgid "Xudp (Xray-core)" msgstr "Xudp (Xray-core)" @@ -2618,21 +2673,21 @@ msgstr "gVisor" #: htdocs/luci-static/resources/homeproxy.js:281 #: htdocs/luci-static/resources/homeproxy.js:299 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 #: htdocs/luci-static/resources/view/homeproxy/node.js:452 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1087 #: htdocs/luci-static/resources/view/homeproxy/server.js:213 msgid "non-empty value" msgstr "非空值" #: htdocs/luci-static/resources/view/homeproxy/node.js:567 #: htdocs/luci-static/resources/view/homeproxy/node.js:826 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1351 msgid "none" msgstr "无" #: htdocs/luci-static/resources/view/homeproxy/node.js:827 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1359 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1352 msgid "packet addr (v2ray-core v5+)" msgstr "packet addr (v2ray-core v5+)" @@ -2644,7 +2699,7 @@ msgstr "通过" msgid "private key" msgstr "私钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:502 +#: htdocs/luci-static/resources/view/homeproxy/client.js:561 msgid "quic-go / uquic chrome" msgstr "quic-go / uquic chrome" @@ -2672,7 +2727,7 @@ msgid "unchecked" msgstr "未检查" #: htdocs/luci-static/resources/homeproxy.js:231 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1260 msgid "unique UCI identifier" msgstr "独立 UCI 标识" @@ -2682,13 +2737,13 @@ msgstr "独立值" #: htdocs/luci-static/resources/view/homeproxy/node.js:474 #: htdocs/luci-static/resources/view/homeproxy/node.js:581 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1136 msgid "v1" msgstr "v1" #: htdocs/luci-static/resources/view/homeproxy/node.js:475 #: htdocs/luci-static/resources/view/homeproxy/node.js:582 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 msgid "v2" msgstr "v2" @@ -2700,10 +2755,12 @@ msgstr "v3" msgid "valid IP address" msgstr "有效 IP 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1323 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1326 +#: htdocs/luci-static/resources/view/homeproxy/client.js:449 +#: htdocs/luci-static/resources/view/homeproxy/client.js:452 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1125 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1319 msgid "valid URL" msgstr "有效网址" @@ -2715,8 +2772,8 @@ msgstr "有效 地址#端口" msgid "valid base64 key with %d characters" msgstr "包含 %d 个字符的有效 base64 密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1217 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1246 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1263 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1292 msgid "valid hostname" msgstr "有效主机名" diff --git a/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc b/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc index dce37e7db..3716a0d86 100755 --- a/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc +++ b/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc @@ -300,6 +300,8 @@ function get_outbound(cfg) { const node = uci.get(uciconfig, cfg, 'node'); if (isEmpty(node)) die(sprintf("%s's node is missing, please check your configuration.", cfg)); + else if (node === 'urltest') + return 'cfg-' + cfg + '-out'; else return 'cfg-' + node + '-out'; } @@ -571,17 +573,39 @@ if (!isEmpty(main_node)) { push(config.outbounds, generate_outbound(main_udp_node_cfg)); config.outbounds[length(config.outbounds)-1].tag = 'main-udp-out'; } -} else if (!isEmpty(default_outbound)) +} else if (!isEmpty(default_outbound)) { + let urltest_nodes = [], + routing_nodes = []; + uci.foreach(uciconfig, uciroutingnode, (cfg) => { if (cfg.enabled !== '1') return; - const outbound = uci.get_all(uciconfig, cfg.node) || {}; - push(config.outbounds, generate_outbound(outbound)); - config.outbounds[length(config.outbounds)-1].domain_strategy = cfg.domain_strategy; - config.outbounds[length(config.outbounds)-1].bind_interface = cfg.bind_interface; - config.outbounds[length(config.outbounds)-1].detour = get_outbound(cfg.outbound); + if (cfg.node === 'urltest') { + push(config.outbounds, { + type: 'urltest', + tag: 'cfg-' + cfg['.name'] + '-out', + outbounds: map(cfg.urltest_nodes, (k) => `cfg-${k}-out`), + url: cfg.urltest_url, + interval: cfg.urltest_interval ? (cfg.urltest_interval + 's') : null, + tolerance: strToInt(cfg.urltest_tolerance), + idle_timeout: cfg.urltest_idle_timeout ? (cfg.urltest_idle_timeout + 's') : null, + interrupt_exist_connections: (cfg.urltest_interrupt_exist_connections === '1') + }); + urltest_nodes = [...urltest_nodes, ...filter(cfg.urltest_nodes, ((l) => !~index(urltest_nodes, l)))]; + } else { + const outbound = uci.get_all(uciconfig, cfg.node) || {}; + push(config.outbounds, generate_outbound(outbound)); + config.outbounds[length(config.outbounds)-1].domain_strategy = cfg.domain_strategy; + config.outbounds[length(config.outbounds)-1].bind_interface = cfg.bind_interface; + config.outbounds[length(config.outbounds)-1].detour = get_outbound(cfg.outbound); + push(routing_nodes, cfg.node); + } }); + + for (let i in filter(urltest_nodes, ((l) => !~index(routing_nodes, l)))) + push(config.outbounds, generate_outbound(uci.get_all(uciconfig, i))); +} /* Outbound end */ /* Routing rules start */ @@ -593,7 +617,6 @@ config.route = { outbound: 'dns-out' } ], - rule_set: [], auto_detect_interface: isEmpty(default_interface) ? true : null, default_interface: default_interface }; @@ -654,6 +677,7 @@ if (!isEmpty(main_node)) { /* Rule set */ if (routing_mode === 'custom') { + config.route.rule_set = []; uci.foreach(uciconfig, uciruleset, (cfg) => { if (cfg.enabled !== '1') return null;