diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 3eefd4a5..583f1aa2 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -44,7 +44,7 @@ "congestionControl": "Congestion Control", "disableSNI": "Disable SNI", "dtlsObfuscation": "Obfuscated as DTLS1.2 Packets", - "forceTLS": "forcibly TLS on", + "forceTLS": "Enforce TLS", "host": "Host", "hostObfuscation": "Host", "httpObfuscation": "Obfuscated as HTTP", @@ -52,8 +52,8 @@ "network": "Network", "noObfuscation": "No obfuscation", "obfs": "Obfuscation", - "obfsParam": "Obfs Param", - "obfsPassword": "Obfs Password", + "obfsParam": "Obfuscation Paramemeter", + "obfsPassword": "Obfuscation Password", "origin": "origin", "password": "Password", "path": "Path", @@ -61,10 +61,10 @@ "pinned_certchain_sha256": "Pinned Certchain SHA256", "port": "Port", "protocol": "Protocol", - "protocolParam": "Protocol Param", + "protocolParam": "Protocol Parameter", "security": "Security", "seedObfuscation": "Seed", - "servername": "Servername", + "servername": "Server Name", "srtpObfuscation": "Obfuscated as Video Calls (SRTP)", "title": "Configure Node", "type": "Type", @@ -73,7 +73,7 @@ "utpObfuscation": "Obfuscated as Bittorrent (uTP)", "websocketHost": "WebSocket Host", "websocketPath": "WebSocket Path", - "wechatVideoObfuscation": "Obfuscated as Wechat Video Calls", + "wechatVideoObfuscation": "Obfuscated as WeChat Video Calls", "wireguardObfuscation": "Obfuscated as WireGuard Packets" }, "confirmModal": { @@ -92,34 +92,34 @@ "autoConfigKernelParameter": "Automatically configure Linux kernel parameters like ip_forward and send_redirects.", "checkTolerance": "Group will switch node only when new_latency <= old_latency - tolerance.", "dialMode": { - "domain": "Dial proxy using the domain from sniffing. This will relieve DNS pollution problem to a great extent if have impure DNS environment. Generally, this mode brings faster proxy response time because proxy will re-resolve the domain in remote, thus get better IP result to connect. This policy does not impact routing. That is to say, domain rewrite will be after traffic split of routing and dae will not re-route it.", + "domain": "Dial proxy using the domain from sniffing. This will greatly relieve DNS pollution problem in an impure DNS environment. Generally, this mode brings faster proxy response time because proxy will re-resolve the domain remotely, contributing to better IP results. This policy does not impact routing. That is to say, domain rewrite will be routed after traffic split and dae will not re-route it.", "domain+": "Based on domain mode but do not check the reality of sniffed domain. It is useful for users whose DNS requests do not go through dae but want faster proxy response time. Notice that, if DNS requests do not go through dae, dae cannot split traffic by domain.", - "domain++": "Based on domain+ mode but force to re-route traffic using sniffed domain to partially recover domain based traffic split ability. It doesn't work for direct traffic and consumes more CPU resources.", - "ip": "Dial proxy using the IP from DNS directly. This allows your ipv4, ipv6 to choose the optimal path respectively, and makes the IP version requested by the application meet expectations. For example, if you use curl -4 ip.sb, you will request IPv4 via proxy and get a IPv4 echo. And curl -6 ip.sb will request IPv6. This may solve some wierd full-cone problem if your are be your node support that. Sniffing will be disabled in this mode." + "domain++": "Based on domain+ mode but enforce traffic re-routing using sniffed domain. It can also partially restore the domain-based ability to split traffic. However, it doesn't work for direct traffic and consumes more CPU resources.", + "ip": "Dial proxy using the IP from DNS directly. This allows your IPv4, IPv6 to choose the optimal path respectively, and makes the IP version requested by the application meet expectations. For example, if you use curl -4 ip.sb, you will request IPv4 via proxy and get an IPv4 echo. And curl -6 ip.sb will request IPv6. This may solve some weird full-cone problems if your node supports that. Sniffing will be disabled in this mode." }, "disableWaitingNetwork": "Disable waiting for network before pulling subscriptions.", "lanInterface": "The LAN interface to bind. Use it if you want to proxy LAN.", - "sniffingTimeout": "Timeout to waiting for first data sending for sniffing. It is always 0 if dial_mode is ip. Set it higher is useful in high latency LAN network.", - "soMarkFromDae": "If not zero, traffic sent from dae will be set SO_MARK. It is useful to avoid traffic loop with iptables/nftables tproxy rules.", + "sniffingTimeout": "This parameter sets the wait time for the first data transmission during sniffing. It is always 0 if dial mode set to 'ip'. Increasing this value can be helpful in high-latency LAN environments.", + "soMarkFromDae": "If not zero, traffic sent from dae will be marked (SO_MARK). It is useful to avoid traffic loop with iptables/nftables tproxy rules.", "tcpCheckHttpMethod": "The HTTP request method to TCP Check HTTP Method. Use HEAD by default because some server implementations bypass accounting for this kind of traffic.", - "tcpCheckUrl": "Host of URL should have both IPv4 and IPv6 if you have double stack in local. First is URL, others are IP addresses if given. Considering traffic consumption, it is recommended to choose a site with anycast IP and less response.", - "tlsImplementation": "TLS implementation. tls is to use Go's crypto/tls. utls is to use uTLS, which can imitate browser's Client Hello.", + "tcpCheckUrl": "Both IPv4 and IPv6 are required for the host of URL if your local network supports both. First is URL, others are IP addresses if given. Considering traffic consumption, it is recommended to choose a site with anycast IP and less traffic.", + "tlsImplementation": "Choose 'tls' to use Go's crypto/tls for standard TLS implementation, or 'utls' to use uTLS which can imitate browser's Client Hello.", "tproxyPort": "Transparent Proxy Port to listen on. Valid range is 0 - 65535. It is NOT a HTTP/SOCKS port, and is just used by eBPF program. In normal case, you do not need to use it.", "tproxyPortProtect": "Set it true to protect tproxy port from unsolicited traffic. Set it false to allow users to use self-managed iptables tproxy rules.", - "udpCheckDns": "This DNS will be used to check UDP connectivity of nodes. And if dns_upstream below contains tcp, it also be used to check TCP DNS connectivity of nodes. First is URL, others are IP addresses if given. This DNS should have both IPv4 and IPv6 if you have double stack in local.", + "udpCheckDns": "This DNS will be used to check UDP connectivity of nodes. And if 'DNS Upstream' below contains tcp, it also be used to check TCP DNS connectivity of nodes. First is URL, others are IP addresses if given. Both IPv4 and IPv6 are required for this DNS if your local network supports both.", "utlsImitate": "The Client Hello ID for uTLS to imitate. This takes effect only if tls_implementation is utls.", "wanInterface": "The WAN interface to bind. Use it if you want to proxy localhost.", - "PprofPort": "Pprof Port", + "pprofPort": "Pprof Port", "mptcp": "Enable MPTCP", "bandwidthMaxTx": "The maximum bandwidth for accessing the Internet. It is useful for some specific protocols (e.g., Hysteria2). '200 mbps' # uplink, or '200 m' or '200 mb' or '200 mbps' or 25000000 (which is 200/8*1000*1000)", "bandwidthMaxRx": "The maximum bandwidth for accessing the Internet. It is useful for some specific protocols (e.g., Hysteria2). '200 mbps' # downlink, or '200 m' or '200 mb' or '200 mbps' or 25000000 (which is 200/8*1000*1000)" }, "group": { - "Min": "Select the node with min last latency from the group for every connection", - "MinAvg10": "Select the node with min average of the last 10 latencies from the group for every connection", - "MinMovingAvg": "Select the node with min moving average of latencies from the group for every connection", - "Random": "Randomly select a node from the group for every connection", - "Fixed": "Select the node with fixed index from the group for every connection, there should be and only be one node in the group" + "Min": "For each connection, select the node that has minimum latency based on the latest measurement from the group", + "MinAvg10": "For each connection, select the node that has minimum average latency based on last 10 measurements from the group", + "MinMovingAvg": "For each connection, select the node that has minimum moving average of latency values from the group", + "Random": "For each connection, randomly select a node from the group", + "Fixed": "For each connection, select a fixed node from the group. Only one node in the group is required" } }, "dialMode": "Dial Mode", @@ -127,7 +127,7 @@ "disconnected": "disconnected", "display name": "Display Name", "dns": "DNS", - "dnsUpstream": "dnsUpstream", + "dnsUpstream": "DNS Upstream", "domain": "domain", "domain+": "domain+", "endpointURL": "Endpoint URL", @@ -137,10 +137,10 @@ "group": "Group", "info": "info", "interface and kernel options": "Interface and Kernel Options", - "ip": "ip", - "lanInterface": "Lan Interface", - "lanNatDirect": "lanNatDirect", - "link": "link", + "ip": "IP Address", + "lanInterface": "LAN Interface", + "lanNatDirect": "LAN NAT Direct connection", + "link": "Link", "logLevel": "Log Level", "login account": "Login via username & password", "milliseconds": "ms", @@ -153,44 +153,44 @@ }, "operations": "operations", "orchestrate": "Orchestrate", - "password": "password", + "password": "Password", "please select a config first": "Please select a config first", - "policy": "policy", - "policyParams": "policyParams", - "protocol": "protocol", + "policy": "Policy", + "policyParams": "Policy Parameters", + "protocol": "Protocol", "resource": "Resource", "routing": "Routing", "rule": "Rule", "seconds": "seconds", - "select": "select", - "selected": "selected", + "select": "Select", + "selected": "Selected", "settings": "Settings", - "setup endpoint": "Setup your backend (graphql) endpoint URL", + "setup endpoint": "Setup your backend (GraphQL) endpoint URL", "sniffingTimeout": "Sniffing Timeout", - "soMarkFromDae": "Set SO_MARK For dae", + "soMarkFromDae": "Set socket mark for dae", "software options": "Software Options", "step": "Step", "subscription": "Subscription", "success": "Success", - "tag": "tag", + "tag": "Tag", "tcpCheckHttpMethod": "TCP Check HTTP Method", "tcpCheckUrl": "TCP Check URL", "tlsImplementation": "TLS Implementation", "tproxyPort": "Transparent Proxy Port", - "tproxyPortProtect": "Tproxy Port Protect", - "PprofPort": "pprof Port", - "EnableLocalTcpFastRedirect": "Enable Local TCP Fast Redirect", - "Mptcp": "MPTCP", - "BandwidthMaxTx": "Max Transmit Bandwidth", - "BandwidthMaxRx": "Max Receive Bandwidth", + "tproxyPortProtect": "Tproxy Port Protection", + "pprofPort": "pprof Port", + "enableLocalTcpFastRedirect": "Enable Local TCP Fast Redirect", + "mptcp": "MPTCP", + "bandwidthMaxTx": "Max Transmit Bandwidth", + "bandwidthMaxRx": "Max Receive Bandwidth", "trace": "trace", - "udpCheckDns": "UDP Check DNS", - "updatedAt": "updatedAt", + "udpCheckDns": "DNS for UDP Check", + "updatedAt": "Updated at", "user": "User", - "username": "username", - "utlsImitate": "uTLS Imitate", - "value": "value", - "wanInterface": "Wan Interface", + "username": "Username", + "utlsImitate": "uTLS Imitation", + "value": "Value", + "wanInterface": "WAN Interface", "warn": "warn", "welcome back": "Welcome Back!", "welcome to": "Welcome to {{ name }}",