Browse Source

Overall Enhancement (#1524)

shahin-io 1 year ago
parent
commit
984b469c6f

+ 24 - 24
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">

+ 1 - 1
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">

+ 1 - 1
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'>

+ 1 - 1
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'>

+ 6 - 6
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" }}'>

+ 9 - 9
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>

+ 2 - 2
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}}
+{{end}}

+ 6 - 6
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>

+ 2 - 2
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}}
+{{end}}

+ 1 - 1
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" }}'>

+ 5 - 5
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>

+ 2 - 2
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}}
+{{end}}

+ 1 - 1
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">

+ 74 - 74
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" = "These options will prevent users from connecting to specific country domains."
-"directCountryConfigs" = "Direct Country Configs"
+"directCountryConfigs" = "Direct Country"
 "directCountryConfigsDesc" = "These options will connect users directly to specific country domains."
-"ipv4Configs" = "IPv4 Configs"
+"ipv4Configs" = "IPv4 Routing"
 "ipv4ConfigsDesc" = "These options will route to target domains only via IPv4."
-"warpConfigs" = "WARP Configs"
-"warpConfigsDesc" = "Caution: Before using these options, install WARP in socks5 proxy mode on your server by following the steps on the panel's GitHub. WARP will route traffic to websites through Cloudflare servers."
+"warpConfigs" = "WARP Routing"
+"warpConfigsDesc" = "Caution: Before using these options, install WARP in SOCKS5 proxy mode on your server by following the steps on the panel's GitHub. WARP will route traffic to websites through Cloudflare servers."
 "Template" = "Xray Configuration Template"
 "TemplateDesc" = "Generate the final Xray configuration file based on this template."
 "FreedomStrategy" = "Configure Strategy for Freedom Protocol"
 "FreedomStrategyDesc" = "Set the output strategy of the network in the Freedom Protocol."
 "RoutingStrategy" = "Configure Domains Routing Strategy"
 "RoutingStrategyDesc" = "Set the overall routing strategy for DNS resolving."
-"Torrent" = "Ban BitTorrent Protocol"
+"Torrent" = "Block BitTorrent Protocol"
 "TorrentDesc" = "Change the configuration template to avoid using BitTorrent protocol."
-"PrivateIp" = "Ban Private IPs to Connect"
+"PrivateIp" = "Block Private IPs to Connect"
 "PrivateIpDesc" = "Change the configuration template to avoid connecting to private IP ranges."
 "Ads" = "Block Ads"
 "AdsDesc" = "Change the configuration template to block ads."
-"Family" = "Block malware and Adult Content"
+"Family" = "Family Protection"
 "FamilyDesc" = "Cloudflare DNS resolvers to block malware and adult content for family protection."
 "Security" = "Block Malware, Phishing and Cryptominers Websites"
 "SecurityDesc" = "Change the configuration template for Security protection."
@@ -424,9 +424,9 @@
 "admin" = "Admin"
 "secret" = "Secret Token"
 "loginSecurity" = "Login security"
-"loginSecurityDesc" = "Enable additional user login security step"
+"loginSecurityDesc" = "Adds an additional layer of authentication to enhance the login security."
 "secretToken" = "Secret Token"
-"secretTokenDesc" = "Please copy and securely store this token in a safe place. This token is required for login and cannot be recovered from the x-ui command tool."
+"secretTokenDesc" = "Please copy and securely store this token in a safe place. This token is required for login and cannot be recovered from the X-UI command tool."
 
 [pages.settings.toasts]
 "modifySettings" = "Modify Settings"
@@ -472,19 +472,19 @@
 "cpuThreshold" = "🔴 CPU Load {{ .Percent }}% exceeds the threshold of {{ .Threshold }}%"
 "selectUserFailed" = "❌ Error in user selection!"
 "userSaved" = "✅ Telegram User saved."
-"loginSuccess" = "✅ Successfully logged in to the panel.\r\n"
-"loginFailed" = "❗️ Login to the panel failed.\r\n"
+"loginSuccess" = "✅ Logged in to the panel successful.\r\n"
+"loginFailed" = "❗️ Log in to the panel failed.\r\n"
 "report" = "🕰 Scheduled Reports: {{ .RunTime }}\r\n"
-"datetime" = "⏰ Date-Time: {{ .DateTime }}\r\n"
+"datetime" = "⏰ Date&Time: {{ .DateTime }}\r\n"
 "hostname" = "💻 Hostname: {{ .Hostname }}\r\n"
 "version" = "🚀 X-UI Version: {{ .Version }}\r\n"
 "ipv6" = "🌐 IPv6: {{ .IPv6 }}\r\n"
 "ipv4" = "🌐 IPv4: {{ .IPv4 }}\r\n"
 "ip" = "🌐 IP: {{ .IP }}\r\n"
 "ips" = "🔢 IPs:\r\n{{ .IPs }}\r\n"
-"serverUpTime" = "⏳ Server Uptime: {{ .UpTime }} {{ .Unit }}\r\n"
+"serverUpTime" = "⏳ Uptime: {{ .UpTime }} {{ .Unit }}\r\n"
 "serverLoad" = "📈 Server Load: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n"
-"serverMemory" = "📋 Server RAM: {{ .Current }}/{{ .Total }}\r\n"
+"serverMemory" = "📋 RAM: {{ .Current }}/{{ .Total }}\r\n"
 "tcpCount" = "🔹 TCP: {{ .Count }}\r\n"
 "udpCount" = "🔸 UDP: {{ .Count }}\r\n"
 "traffic" = "🚦 Traffic: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n"
@@ -505,7 +505,7 @@
 "TGUser" = "👤 Telegram User: {{ .TelegramID }}\r\n"
 "exhaustedMsg" = "🚨 Exhausted {{ .Type }}:\r\n"
 "exhaustedCount" = "🚨 Exhausted {{ .Type }} count:\r\n"
-"onlinesCount" = "🌐 Online clients: {{ .Count }}\r\n"
+"onlinesCount" = "🌐 Online Clients: {{ .Count }}\r\n"
 "disabled" = "🛑 Disabled: {{ .Disabled }}\r\n"
 "depleteSoon" = "🔜 Deplete Soon: {{ .Deplete }}\r\n\r\n"
 "backupTime" = "🗄 Backup Time: {{ .Time }}\r\n"