Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorshahin-io <115543613+shahin-io@users.noreply.github.com>2024-01-09 12:10:40 +0300
committerGitHub <noreply@github.com>2024-01-09 12:10:40 +0300
commit984b469c6feffa6d3523ab5e2caf44fe847c5af7 (patch)
treef5f5b714bcb596194cfe85350edd659864b9812f /web
parent96c4cfeb235339bedd8665f0226f0f7f7e8b83ed (diff)
Overall Enhancement (#1524)
Diffstat (limited to 'web')
-rw-r--r--web/html/xui/form/outbound.html48
-rw-r--r--web/html/xui/form/protocol/shadowsocks.html2
-rw-r--r--web/html/xui/form/protocol/trojan.html2
-rw-r--r--web/html/xui/form/protocol/vless.html2
-rw-r--r--web/html/xui/form/stream/stream_kcp.html12
-rw-r--r--web/html/xui/form/stream/stream_quic.html18
-rw-r--r--web/html/xui/form/stream/stream_settings.html4
-rw-r--r--web/html/xui/form/stream/stream_sockopt.html12
-rw-r--r--web/html/xui/form/stream/stream_tcp.html4
-rw-r--r--web/html/xui/form/stream/stream_ws.html2
-rw-r--r--web/html/xui/form/tls_settings.html10
-rw-r--r--web/html/xui/inbound_info_modal.html4
-rw-r--r--web/html/xui/index.html2
-rw-r--r--web/translation/translate.en_US.toml148
14 files changed, 135 insertions, 135 deletions
diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html
index df54395f..7c128b75 100644
--- a/web/html/xui/form/outbound.html
+++ b/web/html/xui/form/outbound.html
@@ -106,7 +106,7 @@
<a-form-item label='PreShared Key'>
<a-input v-model.trim="peer.preSharedKey"></a-input>
</a-form-item>
- <a-form-item label='keepAlive'>
+ <a-form-item label='Keep Alive'>
<a-input type="number" min="0" v-model.number="peer.keepAlive"></a-input>
</a-form-item>
@@ -189,7 +189,7 @@
<template v-if="outbound.protocol === Protocols.Shadowsocks">
<a-form-item label='{{ i18n "encryption" }}'>
<a-select v-model="outbound.settings.method" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option v-for="method in SSMethods" :value="method">[[ method ]]</a-select-option>
+ <a-select-option v-for="(method,method_name) in SSMethods" :value="method">[[ method_name ]]</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='UDP over TCP'>
@@ -204,9 +204,9 @@
<a-select v-model="outbound.stream.network" @change="streamNetworkChange"
:dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="tcp">TCP</a-select-option>
- <a-select-option value="kcp">KCP</a-select-option>
+ <a-select-option value="kcp">mKCP</a-select-option>
<a-select-option value="ws">WS</a-select-option>
- <a-select-option value="http">HTTP2</a-select-option>
+ <a-select-option value="http">H2</a-select-option>
<a-select-option value="quic">QUIC</a-select-option>
<a-select-option value="grpc">gRPC</a-select-option>
</a-select>
@@ -232,12 +232,12 @@
<template v-if="outbound.stream.network === 'kcp'">
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="outbound.stream.kcp.type" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none (not camouflage)</a-select-option>
- <a-select-option value="srtp">srtp (video call)</a-select-option>
- <a-select-option value="utp">utp (BT download)</a-select-option>
- <a-select-option value="wechat-video">wechat-video (WeChat video)</a-select-option>
- <a-select-option value="dtls">dtls (DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">wireguard (wireguard packages)</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="srtp">SRTP</a-select-option>
+ <a-select-option value="utp">uTP</a-select-option>
+ <a-select-option value="wechat-video">WeChat</a-select-option>
+ <a-select-option value="dtls">DTLS 1.2</a-select-option>
+ <a-select-option value="wireguard">wireGuard</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
@@ -249,19 +249,19 @@
<a-form-item label='TTI (ms)'>
<a-input-number v-model.number="outbound.stream.kcp.tti"></a-input-number>
</a-form-item>
- <a-form-item label='Uplink Capacity (MB/s)'>
+ <a-form-item label='Uplink (MB/s)'>
<a-input-number v-model.number="outbound.stream.kcp.upCap"></a-input-number>
</a-form-item>
- <a-form-item label='Downlink Capacity (MB/s)'>
+ <a-form-item label='Downlink (MB/s)'>
<a-input-number v-model.number="outbound.stream.kcp.downCap"></a-input-number>
</a-form-item>
<a-form-item label='Congestion'>
<a-switch v-model="outbound.stream.kcp.congestion"></a-switch>
</a-form-item>
- <a-form-item label='Read Buffer Size (MB)'>
+ <a-form-item label='Read Buffer (MB)'>
<a-input-number v-model.number="outbound.stream.kcp.readBuffer"></a-input-number>
</a-form-item>
- <a-form-item label='Write Buffer Size (MB)'>
+ <a-form-item label='Write Buffer (MB)'>
<a-input-number v-model.number="outbound.stream.kcp.writeBuffer"></a-input-number>
</a-form-item>
</template>
@@ -290,9 +290,9 @@
<template v-if="outbound.stream.network === 'quic'">
<a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'>
<a-select v-model="outbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none</a-select-option>
- <a-select-option value="aes-128-gcm">aes-128-gcm</a-select-option>
- <a-select-option value="chacha20-poly1305">chacha20-poly1305</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option>
+ <a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
@@ -300,12 +300,12 @@
</a-form-item>
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="outbound.stream.quic.type" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none (No Obfuscation)</a-select-option>
- <a-select-option value="srtp">SRTP (Video Call)</a-select-option>
- <a-select-option value="utp">uTP (Bittorrent)</a-select-option>
- <a-select-option value="wechat-video">WeChat Video</a-select-option>
- <a-select-option value="dtls">DTLS (DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">WireGuard (WireGuard Packages)</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="srtp">SRTP</a-select-option>
+ <a-select-option value="utp">uTP</a-select-option>
+ <a-select-option value="wechat-video">WeChat</a-select-option>
+ <a-select-option value="dtls">DTLS 1.2</a-select-option>
+ <a-select-option value="wireguard">WireGuard</a-select-option>
</a-select>
</a-form-item>
</template>
@@ -366,7 +366,7 @@
<a-select-option v-for="key in UTLS_FINGERPRINT" :value="key">[[ key ]]</a-select-option>
</a-select>
</a-form-item>
- <a-form-item label="Short IDs">
+ <a-form-item label="Short ID">
<a-input v-model.trim="outbound.stream.reality.shortId" style="width:250px"></a-input>
</a-form-item>
<a-form-item label="SpiderX">
diff --git a/web/html/xui/form/protocol/shadowsocks.html b/web/html/xui/form/protocol/shadowsocks.html
index 79281614..baed82e0 100644
--- a/web/html/xui/form/protocol/shadowsocks.html
+++ b/web/html/xui/form/protocol/shadowsocks.html
@@ -23,7 +23,7 @@
<a-form :colon="false" :label-col="{ md: {span:6} }" :wrapper-col="{ md: {span:14} }">
<a-form-item label='{{ i18n "encryption" }}'>
<a-select v-model="inbound.settings.method" @change="SSMethodChange" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option v-for="method in SSMethods" :value="method">[[ method ]]</a-select-option>
+ <a-select-option v-for="(method,method_name) in SSMethods" :value="method">[[ method_name ]]</a-select-option>
</a-select>
</a-form-item>
<a-form-item v-if="inbound.isSS2022">
diff --git a/web/html/xui/form/protocol/trojan.html b/web/html/xui/form/protocol/trojan.html
index 5a7ba3c4..3f1d830b 100644
--- a/web/html/xui/form/protocol/trojan.html
+++ b/web/html/xui/form/protocol/trojan.html
@@ -37,7 +37,7 @@
<a-icon type="delete" @click="() => inbound.settings.delFallback(index)"
style="color: rgb(255, 77, 79);cursor: pointer;"/>
</a-divider>
- <a-form-item label='Name'>
+ <a-form-item label='SNI'>
<a-input v-model="fallback.name"></a-input>
</a-form-item>
<a-form-item label='ALPN'>
diff --git a/web/html/xui/form/protocol/vless.html b/web/html/xui/form/protocol/vless.html
index 7c18c048..73859ad5 100644
--- a/web/html/xui/form/protocol/vless.html
+++ b/web/html/xui/form/protocol/vless.html
@@ -39,7 +39,7 @@
<a-icon type="delete" @click="() => inbound.settings.delFallback(index)"
style="color: rgb(255, 77, 79);cursor: pointer;"/>
</a-divider>
- <a-form-item label='Name'>
+ <a-form-item label='SNI'>
<a-input v-model="fallback.name"></a-input>
</a-form-item>
<a-form-item label='ALPN'>
diff --git a/web/html/xui/form/stream/stream_kcp.html b/web/html/xui/form/stream/stream_kcp.html
index b792e1cd..8a45669d 100644
--- a/web/html/xui/form/stream/stream_kcp.html
+++ b/web/html/xui/form/stream/stream_kcp.html
@@ -2,12 +2,12 @@
<a-form :colon="false" :label-col="{ md: {span:6} }" :wrapper-col="{ md: {span:14} }">
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.kcp.type" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none (No Obfuscation)</a-select-option>
- <a-select-option value="srtp">SRTP (Video Call)</a-select-option>
- <a-select-option value="utp">uTP (Bittorrent)</a-select-option>
- <a-select-option value="wechat-video">WeChat Video</a-select-option>
- <a-select-option value="dtls">DTLS (DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">WireGuard (WireGuard packages)</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="srtp">SRTP</a-select-option>
+ <a-select-option value="utp">uTP</a-select-option>
+ <a-select-option value="wechat-video">WeChat</a-select-option>
+ <a-select-option value="dtls">DTLS 1.2</a-select-option>
+ <a-select-option value="wireguard">WireGuard</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
diff --git a/web/html/xui/form/stream/stream_quic.html b/web/html/xui/form/stream/stream_quic.html
index 8a2167c4..d9175061 100644
--- a/web/html/xui/form/stream/stream_quic.html
+++ b/web/html/xui/form/stream/stream_quic.html
@@ -2,9 +2,9 @@
<a-form :colon="false" :label-col="{ md: {span:6} }" :wrapper-col="{ md: {span:14} }">
<a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'>
<a-select v-model="inbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none</a-select-option>
- <a-select-option value="aes-128-gcm">aes-128-gcm</a-select-option>
- <a-select-option value="chacha20-poly1305">chacha20-poly1305</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option>
+ <a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
@@ -12,12 +12,12 @@
</a-form-item>
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.quic.type" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="none">none (No Obfuscation)</a-select-option>
- <a-select-option value="srtp">SRTP (Video Call)</a-select-option>
- <a-select-option value="utp">uTP (Bittorrent)</a-select-option>
- <a-select-option value="wechat-video">WeChat Video</a-select-option>
- <a-select-option value="dtls">DTLS (DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">WireGuard (WireGuard Packages)</a-select-option>
+ <a-select-option value="none">None</a-select-option>
+ <a-select-option value="srtp">SRTP</a-select-option>
+ <a-select-option value="utp">uTP</a-select-option>
+ <a-select-option value="wechat-video">WeChat</a-select-option>
+ <a-select-option value="dtls">DTLS 1.2</a-select-option>
+ <a-select-option value="wireguard">WireGuard</a-select-option>
</a-select>
</a-form-item>
</a-form>
diff --git a/web/html/xui/form/stream/stream_settings.html b/web/html/xui/form/stream/stream_settings.html
index 85935af0..57a4f850 100644
--- a/web/html/xui/form/stream/stream_settings.html
+++ b/web/html/xui/form/stream/stream_settings.html
@@ -5,7 +5,7 @@
<a-select v-model="inbound.stream.network" @change="streamNetworkChange"
:dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="tcp">TCP</a-select-option>
- <a-select-option value="kcp">KCP</a-select-option>
+ <a-select-option value="kcp">mKCP</a-select-option>
<a-select-option value="ws">WS</a-select-option>
<a-select-option value="http">H2</a-select-option>
<a-select-option value="quic">QUIC</a-select-option>
@@ -47,4 +47,4 @@
<template>
{{template "form/streamSockopt"}}
</template>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/stream_sockopt.html b/web/html/xui/form/stream/stream_sockopt.html
index 7291b740..92dcd7b5 100644
--- a/web/html/xui/form/stream/stream_sockopt.html
+++ b/web/html/xui/form/stream/stream_sockopt.html
@@ -1,24 +1,24 @@
{{define "form/streamSockopt"}}
<a-divider style="margin:5px 0 0;"></a-divider>
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
- <a-form-item label="Transparent Proxy">
+ <a-form-item label="TPROXY">
<a-switch v-model="inbound.stream.sockoptSwitch"></a-switch>
</a-form-item>
<template v-if="inbound.stream.sockoptSwitch">
- <a-form-item label="Accept Proxy Protocol">
+ <a-form-item label=PROXY Protocol">
<a-switch v-model="inbound.stream.sockopt.acceptProxyProtocol"></a-switch>
</a-form-item>
- <a-form-item label="TCP FastOpen">
+ <a-form-item label="TCP Fast Open">
<a-switch v-model.trim="inbound.stream.sockopt.tcpFastOpen"></a-switch>
</a-form-item>
<a-form-item label="Route Mark">
<a-input-number v-model="inbound.stream.sockopt.mark" :min="0"></a-input-number>
</a-form-item>
- <a-form-item label="T-Proxy">
+ <a-form-item label="TPROXY">
<a-select v-model="inbound.stream.sockopt.tproxy" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="off">OFF</a-select-option>
+ <a-select-option value="off">Off</a-select-option>
<a-select-option value="redirect">Redirect</a-select-option>
- <a-select-option value="tproxy">T-Proxy</a-select-option>
+ <a-select-option value="tproxy">TPROXY</a-select-option>
</a-select>
</a-form-item>
</template>
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 941a3d79..1c6edf3f 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -1,7 +1,7 @@
{{define "form/streamTCP"}}
<!-- tcp type -->
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
- <a-form-item label="Accept Proxy Protocol" v-if="inbound.canEnableTls()">
+ <a-form-item label="PROXY Protocol" v-if="inbound.canEnableTls()">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
<a-form-item label='HTTP {{ i18n "camouflage" }}'>
@@ -73,4 +73,4 @@
</a-input-group>
</a-form-item>
</a-form>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/stream_ws.html b/web/html/xui/form/stream/stream_ws.html
index 14d09999..43f4a951 100644
--- a/web/html/xui/form/stream/stream_ws.html
+++ b/web/html/xui/form/stream/stream_ws.html
@@ -1,6 +1,6 @@
{{define "form/streamWS"}}
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
- <a-form-item label="Accept Proxy Protocol">
+ <a-form-item label=PROXY Protocol">
<a-switch v-model="inbound.stream.ws.acceptProxyProtocol"></a-switch>
</a-form-item>
<a-form-item label='{{ i18n "path" }}'>
diff --git a/web/html/xui/form/tls_settings.html b/web/html/xui/form/tls_settings.html
index f265cb43..e83d4c3f 100644
--- a/web/html/xui/form/tls_settings.html
+++ b/web/html/xui/form/tls_settings.html
@@ -26,9 +26,9 @@
<a-form-item label="SNI" placeholder="Server Name Indication">
<a-input v-model.trim="inbound.stream.tls.sni"></a-input>
</a-form-item>
- <a-form-item label="CipherSuites">
+ <a-form-item label="Cipher Suites">
<a-select v-model="inbound.stream.tls.cipherSuites" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="">auto</a-select-option>
+ <a-select-option value="">Auto</a-select-option>
<a-select-option v-for="key,value in TLS_CIPHER_OPTION" :value="key">[[ value ]]</a-select-option>
</a-select>
</a-form-item>
@@ -92,7 +92,7 @@
<a-input type="textarea" :rows="3" v-model="cert.key"></a-input>
</a-form-item>
</template>
- <a-form-item label='ocspStapling'>
+ <a-form-item label='OCSP stapling'>
<a-input-number v-model.number="cert.ocspStapling" :min="0"></a-input-number>
</a-form-item>
</template>
@@ -162,7 +162,7 @@
<a-form-item label='Dest'>
<a-input v-model.trim="inbound.stream.reality.dest"></a-input>
</a-form-item>
- <a-form-item label='Server Names'>
+ <a-form-item label='SNI'>
<a-input v-model.trim="inbound.stream.reality.serverNames"></a-input>
</a-form-item>
<a-form-item>
@@ -187,7 +187,7 @@
<a-input v-model.trim="inbound.stream.reality.settings.publicKey"></a-input>
</a-form-item>
<a-form-item label=" ">
- <a-button type="primary" icon="import" @click="getNewX25519Cert">Get new cert</a-button>
+ <a-button type="primary" icon="import" @click="getNewX25519Cert">Get New Cert</a-button>
</a-form-item>
</template>
</a-form>
diff --git a/web/html/xui/inbound_info_modal.html b/web/html/xui/inbound_info_modal.html
index 0d8f850d..cf1a032b 100644
--- a/web/html/xui/inbound_info_modal.html
+++ b/web/html/xui/inbound_info_modal.html
@@ -164,7 +164,7 @@
</tr>
</table>
<template v-if="app.subSettings.enable && infoModal.clientSettings.subId">
- <a-divider>Subscription link</a-divider>
+ <a-divider>Subscription URL</a-divider>
<a-row>
<a-col :sx="24" :md="22"><a :href="[[ infoModal.subLink ]]" target="_blank">[[ infoModal.subLink ]]</a></a-col>
<a-col :sx="24" :md="2" style="text-align: right;">
@@ -349,4 +349,4 @@
});
</script>
-{{end}} \ No newline at end of file
+{{end}}
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index 50c46b03..55b46d08 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -96,7 +96,7 @@
<a-tag :color="status.xray.color">[[ status.xray.state ]]</a-tag>
<a-popover v-if="status.xray.state === State.Error"
:overlay-class-name="themeSwitcher.currentTheme">
- <span slot="title" style="font-size: 12pt">Error in running xray-core
+ <span slot="title" style="font-size: 12pt">An error occurred while running Xray
<a-tag color="purple" style="cursor: pointer; float: right;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
</span>
<template slot="content">
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index 841214c2..c1985de1 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -8,7 +8,7 @@
"copied" = "Copied"
"download" = "Download"
"remark" = "Remark"
-"enable" = "Enable"
+"enable" = "Enabled"
"protocol" = "Protocol"
"search" = "Search"
"filter" = "Filter"
@@ -26,7 +26,7 @@
"edit" = "Edit"
"delete" = "Delete"
"reset" = "Reset"
-"copySuccess" = "Copied Successfully"
+"copySuccess" = "Copied Successful"
"sure" = "Sure"
"encryption" = "Encryption"
"transmission" = "Transmission"
@@ -41,10 +41,10 @@
"offline" = "Offline"
"online" = "Online"
"domainName" = "Domain Name"
-"monitor" = "Listening IP"
+"monitor" = "Listen IP"
"certificate" = "Certificate"
"fail" = "Fail"
-"success" = "Success"
+"success" = "Successful"
"getVersion" = "Get Version"
"install" = "Install"
"clients" = "Clients"
@@ -73,7 +73,7 @@
"successLogin" = "Login"
[pages.index]
-"title" = "Overview"
+"title" = "Status Overview"
"memory" = "RAM"
"hard" = "Disk"
"xrayStatus" = "Status"
@@ -81,31 +81,31 @@
"restartXray" = "Restart"
"xraySwitch" = "Version"
"xraySwitchClick" = "Choose the version you want to switch to."
-"xraySwitchClickDesk" = "Choose wisely, as older versions may not be compatible with current configurations."
+"xraySwitchClickDesk" = "Choose carefully, as older versions may not be compatible with current configurations."
"operationHours" = "Uptime"
"systemLoad" = "System Load"
-"systemLoadDesc" = "system load average for the past 1, 5, and 15 minutes"
-"connectionTcpCountDesc" = "Total TCP connections across all network cards"
-"connectionUdpCountDesc" = "Total UDP connections across all network cards"
-"connectionCount" = "Connections"
-"upSpeed" = "Overall upload speed for all network cards"
-"downSpeed" = "Overall download speed for all network cards"
-"totalSent" = "Total upload data across all network cards since OS startup"
-"totalReceive" = "Total download data across all network cards since OS startup"
-"xraySwitchVersionDialog" = "Switch Xray Version"
-"xraySwitchVersionDialogDesc" = "Are you sure you want to switch the Xray version to"
+"systemLoadDesc" = "System load average for the past 1, 5, and 15 minutes"
+"connectionTcpCountDesc" = "Total TCP connections across all networks"
+"connectionUdpCountDesc" = "Total UDP connections across all networks"
+"connectionCount" = "Connection Stats"
+"upSpeed" = "Overall upload speed across all networks"
+"downSpeed" = "Overall download speed across all networks"
+"totalSent" = "Total sent data across all networks since OS startup"
+"totalReceive" = "Total received data across all networks since OS startup"
+"xraySwitchVersionDialog" = "Change Xray Version"
+"xraySwitchVersionDialogDesc" = "Are you sure you want to change the Xray version to"
"dontRefresh" = "Installation is in progress, please do not refresh this page"
"logs" = "Logs"
"config" = "Config"
"backup" = "Backup & Restore"
"backupTitle" = "Backup & Restore Database"
-"backupDescription" = "It is recommended to a make backup before importing a new database."
-"exportDatabase" = "Download Database"
-"importDatabase" = "Upload Database"
+"backupDescription" = "It is recommended to make a backup before importing a new database."
+"exportDatabase" = "Backup Database"
+"importDatabase" = "Restore Database"
[pages.inbounds]
"title" = "Inbounds"
-"totalDownUp" = "Total Uploads/Downloads"
+"totalDownUp" = "Total Sent/Received"
"totalUsage" = "Total Flow Usage"
"inboundCount" = "Number of Inbounds"
"operate" = "Menu"
@@ -133,10 +133,10 @@
"network" = "Network"
"destinationPort" = "Destination Port"
"targetAddress" = "Target Address"
-"monitorDesc" = "Leave blank by default"
+"monitorDesc" = "Leave blank to listen on all IPs"
"meansNoLimit" = "Means no limit"
"totalFlow" = "Total Flow"
-"leaveBlankToNeverExpire" = "Leave Blank to Never Expire"
+"leaveBlankToNeverExpire" = "Leave blank to never expire"
"noRecommendKeepDefault" = "It is recommended to keep the default"
"certificatePath" = "File Path"
"certificateContent" = "File Content"
@@ -149,7 +149,7 @@
"export" = "Export All URLs"
"clone" = "Clone"
"cloneInbound" = "Clone"
-"cloneInboundContent" = "All settings of this inbound, except for Port, Listening IP, and Clients, will be applied to the clone."
+"cloneInboundContent" = "All settings of this inbound, except Port, Listening IP, and Clients, will be applied to the clone."
"cloneInboundOk" = "Clone"
"resetAllTraffic" = "Reset All Inbounds Traffic"
"resetAllTrafficTitle" = "Reset All Inbounds Traffic"
@@ -166,14 +166,14 @@
"email" = "Email"
"emailDesc" = "Please provide a unique email address."
"IPLimit" = "IP Limit"
-"IPLimitDesc" = "Disable inbound if the count exceeds the entered value (enter 0 to disable IP limit)."
+"IPLimitDesc" = "Disables inbound if the count exceeds the set value. (0 = disables IP limit)"
"IPLimitlog" = "IP Log"
-"IPLimitlogDesc" = "IPs history log (before enabling inbound after it has been disabled by IP limit, you should clear the log)."
+"IPLimitlogDesc" = "The IPs history log. (To enable inbound access after it has been disabled by IP limit, you should clear the log)"
"IPLimitlogclear" = "Clear The Log"
"setDefaultCert" = "Set Cert from Panel"
-"xtlsDesc" = "Xray-core needs to be 1.7.5"
-"realityDesc" = "Xray-core needs to be 1.8.0+."
-"telegramDesc" = "Please provide Telegram or Chat ID(s) without using the '@'. (get it here @userinfobot) or (use '/id' command in the bot)"
+"xtlsDesc" = "Xray needs to be v1.7.5"
+"realityDesc" = "Xray needs to be v1.8.0+"
+"telegramDesc" = "Please provide Telegram or Chat ID(s) without using the '@'. (get it here @userinfobot) or (use '/id' command in the bot)."
"subscriptionDesc" = "To find your subscription URL, navigate to the 'Details'. Additionally, you can use the same name for several configurations."
"info" = "Info"
"same" = "Same"
@@ -195,10 +195,10 @@
"prefix" = "Prefix"
"postfix" = "Postfix"
"delayedStart" = "Start after First Use"
-"expireDays" = "Expire Days"
+"expireDays" = "Duration"
"days" = "Day(s)"
"renew" = "Auto Renew"
-"renewDesc" = "Auto-renewal after expiration. 0 = disable"
+"renewDesc" = "Auto-renewal after expiration. (0 = disable)(unit: day)"
[pages.inbounds.toasts]
"obtain" = "Obtain"
@@ -228,23 +228,23 @@
"restartPanelDesc" = "Are you sure you want to restart the panel? If you cannot access the panel after restarting, please view the panel log info on the server."
"actions" = "Actions"
"resetDefaultConfig" = "Reset to Default"
-"panelSettings" = "Panel Settings"
-"securitySettings" = "Security Settings"
-"TGBotSettings" = "Telegram Bot Settings"
+"panelSettings" = "Configuration"
+"securitySettings" = "Authentication"
+"TGBotSettings" = "Telegram Bot"
"panelListeningIP" = "Panel Listening IP"
-"panelListeningIPDesc" = "Leave blank by default to monitor all IPs."
+"panelListeningIPDesc" = "Leave blank to listen om all IPs."
"panelListeningDomain" = "Panel Listening Domain"
-"panelListeningDomainDesc" = "Leave blank by default to monitor all domains and IPs."
-"panelPort" = "Panel Port"
-"panelPortDesc" = "Port number for serving the panel."
+"panelListeningDomainDesc" = "Leave blank to listen on all domains and IPs."
+"panelPort" = "Panel Listening Port"
+"panelPortDesc" = "Must be an unused port"
"publicKeyPath" = "Panel Public Key Path"
-"publicKeyPathDesc" = "Fill in an absolute path starting with."
+"publicKeyPathDesc" = "Fill in an absolute path begins with ‘/‘"
"privateKeyPath" = "Panel Private Key Path"
-"privateKeyPathDesc" = "Fill in an absolute path starting with."
+"privateKeyPathDesc" = "Fill in an absolute path begins with ‘/‘"
"panelUrlPath" = "Panel URI Path"
-"panelUrlPathDesc" = "Must start with '/' and end with."
+"panelUrlPathDesc" = "Fill in an absolute path begins with ‘/‘ and concludes with ‘/‘"
"pageSize" = "Pagination Size"
-"pageSizeDesc" = "Define page size for inbounds table. Set 0 to disable"
+"pageSizeDesc" = "Define page size for inbounds table. (0 = disable)"
"remarkModel" = "Remark Model & Separation Character"
"datepicker" = "Date Picker"
"datepickerDescription" = "Selector calendar type specifies the expiration date"
@@ -257,11 +257,11 @@
"telegramBotEnableDesc" = "Connect to the features of this panel through the Telegram bot."
"telegramToken" = "Telegram Token"
"telegramTokenDesc" = "The token you have got from @BotFather."
-"telegramProxy" = "Socks5 Proxy"
-"telegramProxyDesc" = "If you need the Socks5 proxy to connect to Telegram. Adjust its settings as per the guide."
+"telegramProxy" = "SOCKS5 Proxy"
+"telegramProxyDesc" = "If you need the SOCKS5 proxy to connect to Telegram. Adjust its settings as per the guide."
"telegramChatId" = "Telegram Admin Chat ID"
"telegramChatIdDesc" = "Multiple chat ID(s)separated by comma. use @userinfobot or use '/id' command in bot to get your Chat IDs."
-"telegramNotifyTime" = "Telegram bot notification time"
+"telegramNotifyTime" = "Telegram Bot Notification Time"
"telegramNotifyTimeDesc" = "Use crontab timing format."
"tgNotifyBackup" = "Database Backup"
"tgNotifyBackupDesc" = "Include database backup file with report notification."
@@ -270,28 +270,28 @@
"sessionMaxAge" = "Session Duration"
"sessionMaxAgeDesc" = "The duration of a login session. (unit: minute)"
"expireTimeDiff" = "Client Expiration Threshold Notification"
-"expireTimeDiffDesc" = "Get notified about client expiration before the threshold. (unit: day)"
-"trafficDiff" = "Traffic Limit Threshold Notification"
-"trafficDiffDesc" = "Get notified about traffic exhaustion before reaching the threshold. (unit: GB)"
+"expireTimeDiffDesc" = "Get notified about client expiration when reaching this threshold. (unit: day)"
+"trafficDiff" = "Traffic Exhaustion Threshold Notification"
+"trafficDiffDesc" = "Get notified about traffic exhaustion when reaching this threshold. (unit: GB)"
"tgNotifyCpu" = "CPU Load Threshold Notification"
"tgNotifyCpuDesc" = "Get notified if CPU usage exceeds this threshold. (unit: %)"
"timeZone" = "Time Zone"
"timeZoneDesc" = "Scheduled tasks run according to the time in this time zone."
"subSettings" = "Subscription"
-"subEnable" = "Enable Service"
+"subEnable" = "Enable Subscription Service"
"subEnableDesc" = "Subscription feature with separate configuration."
"subListen" = "Subscription Listening IP"
-"subListenDesc" = "Leave blank by default to monitor all IPs."
-"subPort" = "Subscription Port"
-"subPortDesc" = "Port number for serving the subscription service. Must be unused in server."
+"subListenDesc" = "Leave blank to listen on all IPs."
+"subPort" = "Subscription Listening Port"
+"subPortDesc" = "Must be an unused port."
"subCertPath" = "Subscription Public Key Path"
-"subCertPathDesc" = "Fill in an absolute path starting with '/'"
+"subCertPathDesc" = "Fill in an absolute path begins with ‘/‘"
"subKeyPath" = "Subscription Private Key Path"
-"subKeyPathDesc" = "Fill in an absolute path starting with '/'"
+"subKeyPathDesc" = "Fill in an absolute path begins with ‘/‘"
"subPath" = "Subscription URI Path"
-"subPathDesc" = "Must start with '/' and end with '/'"
+"subPathDesc" = "Fill in an absolute path begins with ‘/‘ and concludes with ‘/‘"
"subDomain" = "Subscription Listening Domain"
-"subDomainDesc" = "Leave blank by default to monitor all domains and IPs."
+"subDomainDesc" = "Leave blank to listen on all domains and IPs."
"subUpdates" = "Subscription Update Intervals"
"subUpdatesDesc" = "Interval hours between updates in client application."
"subEncrypt" = "Encode"
@@ -299,7 +299,7 @@
"subShowInfo" = "Show Usage Info"
"subShowInfoDesc" = "Show remained traffic and date after config name."
"subURI" = "Reverse Proxy URI"
-"subURIDesc" = "Change base URI of subscription URL for using on behind of proxies."
+"subURIDesc" = "Set the URI path of subscription URL for use behind of proxies."
[pages.xray]
"title" = "Xray Configurations"
@@ -307,31 +307,31 @@
"restart" = "Restart Xray"
"basicTemplate" = "Basic Template"
"advancedTemplate" = "Advanced Template"
-"generalConfigs" = "General Configs"
+"generalConfigs" = "General Strategy"
"generalConfigsDesc" = "These options will provide general adjustments."
-"blockConfigs" = "Blocking Configs"
+"blockConfigs" = "Protection Shield"
"blockConfigsDesc" = "These options will prevent users from connecting to specific protocols and websites."
-"blockCountryConfigs" = "Block Country Configs"
+"blockCountryConfigs" = "Block Country"
"blockCountryConfigsDesc" = "Thes