diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index 15c8de2d..841214c2 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -1,6 +1,6 @@
"username" = "Username"
"password" = "Password"
-"login" = "Login"
+"login" = "Log In"
"confirm" = "Confirm"
"cancel" = "Cancel"
"close" = "Close"
@@ -54,11 +54,11 @@
"security" = "Security"
[menu]
-"dashboard" = "System Status"
+"dashboard" = "Status Overview"
"inbounds" = "Inbounds"
"settings" = "Panel Settings"
-"xray" = "Xray Settings"
-"logout" = "Logout"
+"xray" = "Xray Configurations"
+"logout" = "Log Out"
"link" = "Manage"
[pages.login]
@@ -66,14 +66,14 @@
"loginAgain" = "Your session has expired, please log in again"
[pages.login.toasts]
-"invalidFormData" = "Input data format is invalid."
-"emptyUsername" = "Please enter username."
-"emptyPassword" = "Please enter password."
+"invalidFormData" = "The Input data format is invalid."
+"emptyUsername" = "Username is required"
+"emptyPassword" = "Password is required"
"wrongUsernameOrPassword" = "Invalid username or password."
"successLogin" = "Login"
[pages.index]
-"title" = "System Status"
+"title" = "Overview"
"memory" = "RAM"
"hard" = "Disk"
"xrayStatus" = "Status"
@@ -87,9 +87,9 @@
"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" = "Number of Connections"
-"upSpeed" = "Total upload speed for all network cards"
-"downSpeed" = "Total download speed for 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"
@@ -99,14 +99,14 @@
"config" = "Config"
"backup" = "Backup & Restore"
"backupTitle" = "Backup & Restore Database"
-"backupDescription" = "It is recommended to backup before importing a new database."
+"backupDescription" = "It is recommended to a make backup before importing a new database."
"exportDatabase" = "Download Database"
"importDatabase" = "Upload Database"
[pages.inbounds]
"title" = "Inbounds"
"totalDownUp" = "Total Uploads/Downloads"
-"totalUsage" = "Total Usage"
+"totalUsage" = "Total Flow Usage"
"inboundCount" = "Number of Inbounds"
"operate" = "Menu"
"enable" = "Enable"
@@ -116,7 +116,7 @@
"traffic" = "Traffic"
"details" = "Details"
"transportConfig" = "Transport"
-"expireDate" = "Expire Date"
+"expireDate" = "Expiration Date"
"resetTraffic" = "Reset Traffic"
"addInbound" = "Add Inbound"
"generalActions" = "General Actions"
@@ -124,11 +124,11 @@
"update" = "Update"
"modifyInbound" = "Modify Inbound"
"deleteInbound" = "Delete Inbound"
-"deleteInboundContent" = "Confirm deletion of inbound?"
+"deleteInboundContent" = "Are you sure you want to delete inbound?"
"deleteClient" = "Delete Client"
"deleteClientContent" = "Are you sure you want to delete client?"
-"resetTrafficContent" = "Confirm traffic reset?"
-"copyLink" = "Copy Link"
+"resetTrafficContent" = "Are you sure you want to reset traffic?"
+"copyLink" = "Copy URL"
"address" = "Address"
"network" = "Network"
"destinationPort" = "Destination Port"
@@ -137,7 +137,7 @@
"meansNoLimit" = "Means no limit"
"totalFlow" = "Total Flow"
"leaveBlankToNeverExpire" = "Leave Blank to Never Expire"
-"noRecommendKeepDefault" = "No special requirements to maintain default settings"
+"noRecommendKeepDefault" = "It is recommended to keep the default"
"certificatePath" = "File Path"
"certificateContent" = "File Content"
"publicKeyPath" = "Public Key Path"
@@ -146,23 +146,23 @@
"keyContent" = "Private Key Content"
"clickOnQRcode" = "Click on QR Code to Copy"
"client" = "Client"
-"export" = "Export Links"
+"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."
"cloneInboundOk" = "Clone"
"resetAllTraffic" = "Reset All Inbounds Traffic"
"resetAllTrafficTitle" = "Reset All Inbounds Traffic"
-"resetAllTrafficContent" = "Are you sure you want to reset all inbounds traffic?"
+"resetAllTrafficContent" = "Are you sure you want to reset the traffic of all inbounds?"
"resetInboundClientTraffics" = "Reset Clients Traffic"
"resetInboundClientTrafficTitle" = "Reset Clients Traffic"
-"resetInboundClientTrafficContent" = "Are you sure you want to reset all traffic for this inbound's clients?"
+"resetInboundClientTrafficContent" = "Are you sure you want to reset the traffic of this inbound's clients?"
"resetAllClientTraffics" = "Reset All Clients Traffic"
-"resetAllClientTrafficTitle" = "Reset all clients traffic"
-"resetAllClientTrafficContent" = "Are you sure you want to reset all traffics for all clients?"
+"resetAllClientTrafficTitle" = "Reset All Clients Traffic"
+"resetAllClientTrafficContent" = "Are you sure you want to reset the traffic of all clients?"
"delDepletedClients" = "Delete Depleted Clients"
"delDepletedClientsTitle" = "Delete Depleted Clients"
-"delDepletedClientsContent" = "Are you sure you want to delete all depleted clients?"
+"delDepletedClientsContent" = "Are you sure you want to delete all the depleted clients?"
"email" = "Email"
"emailDesc" = "Please provide a unique email address."
"IPLimit" = "IP Limit"
@@ -171,10 +171,10 @@
"IPLimitlogDesc" = "IPs history log (before enabling inbound 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 or higher."
-"telegramDesc" = "Only use Chat ID (you can get it here @userinfobot or use '/id' command in bot)"
-"subscriptionDesc" = "you can find your sub link on Details, also you can use the same name for several configurations"
+"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)"
+"subscriptionDesc" = "To find your subscription URL, navigate to the 'Details'. Additionally, you can use the same name for several configurations."
"info" = "Info"
"same" = "Same"
"inboundData" = "Inbound's Data"
@@ -194,11 +194,11 @@
"last" = "Last"
"prefix" = "Prefix"
"postfix" = "Postfix"
-"delayedStart" = "Start After First Use"
+"delayedStart" = "Start after First Use"
"expireDays" = "Expire Days"
"days" = "Day(s)"
"renew" = "Auto Renew"
-"renewDesc" = "Auto renew days after expiration. 0 = disable"
+"renewDesc" = "Auto-renewal after expiration. 0 = disable"
[pages.inbounds.toasts]
"obtain" = "Obtain"
@@ -221,13 +221,13 @@
"encryption" = "Encryption"
[pages.settings]
-"title" = "Settings"
+"title" = "Panel Settings"
"save" = "Save"
"infoDesc" = "Every change made here needs to be saved. Please restart the panel to apply changes."
"restartPanel" = "Restart Panel"
-"restartPanelDesc" = "Are you sure you want to restart the panel? click OK to restart after 3 seconds. If you cannot access the panel after restarting, please view the panel log info on the server."
+"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 Configuration"
+"resetDefaultConfig" = "Reset to Default"
"panelSettings" = "Panel Settings"
"securitySettings" = "Security Settings"
"TGBotSettings" = "Telegram Bot Settings"
@@ -237,16 +237,16 @@
"panelListeningDomainDesc" = "Leave blank by default to monitor all domains and IPs."
"panelPort" = "Panel Port"
"panelPortDesc" = "Port number for serving the panel."
-"publicKeyPath" = "Panel Certificate Public Key Path"
+"publicKeyPath" = "Panel Public Key Path"
"publicKeyPathDesc" = "Fill in an absolute path starting with."
-"privateKeyPath" = "Panel Certificate Private Key Path"
+"privateKeyPath" = "Panel Private Key Path"
"privateKeyPathDesc" = "Fill in an absolute path starting with."
-"panelUrlPath" = "Panel URL Root Path"
+"panelUrlPath" = "Panel URI Path"
"panelUrlPathDesc" = "Must start with '/' and end with."
"pageSize" = "Pagination Size"
"pageSizeDesc" = "Define page size for inbounds table. Set 0 to disable"
-"remarkModel" = "Remark Model and Seperation Charachter"
-"datepicker" = "Datepicker"
+"remarkModel" = "Remark Model & Separation Character"
+"datepicker" = "Date Picker"
"datepickerDescription" = "Selector calendar type specifies the expiration date"
"sampleRemark" = "Sample Remark"
"oldUsername" = "Current Username"
@@ -259,8 +259,8 @@
"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."
-"telegramChatId" = "Telegram Admin Chat IDs"
-"telegramChatIdDesc" = "Multiple chat IDs separated by comma. use @userinfobot or use '/id' command in bot to get your Chat IDs."
+"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"
"telegramNotifyTimeDesc" = "Use crontab timing format."
"tgNotifyBackup" = "Database Backup"
@@ -275,35 +275,35 @@
"trafficDiffDesc" = "Get notified about traffic exhaustion before reaching the threshold. (unit: GB)"
"tgNotifyCpu" = "CPU Load Threshold Notification"
"tgNotifyCpuDesc" = "Get notified if CPU usage exceeds this threshold. (unit: %)"
-"timeZone" = "Time zone"
+"timeZone" = "Time Zone"
"timeZoneDesc" = "Scheduled tasks run according to the time in this time zone."
"subSettings" = "Subscription"
"subEnable" = "Enable Service"
"subEnableDesc" = "Subscription feature with separate configuration."
-"subListen" = "Listening IP"
+"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."
-"subCertPath" = "Subscription Certificate Public Key Path"
+"subCertPath" = "Subscription Public Key Path"
"subCertPathDesc" = "Fill in an absolute path starting with '/'"
-"subKeyPath" = "Subscription Certificate Private Key Path"
+"subKeyPath" = "Subscription Private Key Path"
"subKeyPathDesc" = "Fill in an absolute path starting with '/'"
-"subPath" = "Subscription URL Root Path"
+"subPath" = "Subscription URI Path"
"subPathDesc" = "Must start with '/' and end with '/'"
-"subDomain" = "Listening Domain"
+"subDomain" = "Subscription Listening Domain"
"subDomainDesc" = "Leave blank by default to monitor all domains and IPs."
-"subUpdates" = "Subscription update intervals"
+"subUpdates" = "Subscription Update Intervals"
"subUpdatesDesc" = "Interval hours between updates in client application."
-"subEncrypt" = "Encode Configs"
-"subEncryptDesc" = "Encode the returned configs in subscription."
+"subEncrypt" = "Encode"
+"subEncryptDesc" = "The returned content of subscription URL will be Base64 encoded."
"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."
[pages.xray]
-"title" = "Xray Settings"
-"save" = "Save Settings"
+"title" = "Xray Configurations"
+"save" = "Save"
"restart" = "Restart Xray"
"basicTemplate" = "Basic Template"
"advancedTemplate" = "Advanced Template"
@@ -403,7 +403,7 @@
"info" = "Info"
"add" = "Add Rule"
"edit" = "Edit Rule"
-"useComma" = "Comma separated items"
+"useComma" = "Comma-separated items"
[pages.xray.outbound]
"addOutbound" = "Add Outbound"
@@ -432,8 +432,8 @@
"modifySettings" = "Modify Settings"
"getSettings" = "Get Settings"
"modifyUser" = "Modify User"
-"originalUserPassIncorrect" = "Incorrect original username or password"
-"userPassMustBeNotEmpty" = "New username and password cannot be empty"
+"originalUserPassIncorrect" = "The Current username or password is invalid"
+"userPassMustBeNotEmpty" = "The new username and password is empty"
[tgbot]
"keyboardClosed" = "❌ Custom keyboard closed!"
@@ -456,22 +456,23 @@
"online" = "🟢 Online"
[tgbot.commands]
-"unknown" = "❗ Unknown command"
+"unknown" = "❗ Unknown command."
"pleaseChoose" = "👇 Please choose:\r\n"
-"help" = "🤖 Welcome to this bot! It's designed to offer you specific data from the server, and it allows you to make modifications as needed.\r\n\r\n"
+"help" = "🤖 Welcome to this bot! It's designed to offer specific data from the server and allows you to make modifications as needed.\r\n\r\n"
"start" = "👋 Hello {{ .Firstname }}.\r\n"
"welcome" = "🤖 Welcome to {{ .Hostname }} management bot.\r\n"
"status" = "✅ Bot is OK!"
"usage" = "❗ Please provide a text to search!"
"getID" = "🆔 Your ID: {{ .ID }}
"
-"helpAdminCommands" = "Search for a client email:\r\n/usage [Email]
\r\n\r\nSearch for inbounds (with client stats):\r\n/inbound [Remark]
"
-"helpClientCommands" = "To search for statistics, just use the following command:\r\n\r\n/usage [Email]
"
+"helpAdminCommands" = "To search for a client email:\r\n/usage [Email]
\r\n\r\nTo search for inbounds (with client stats):\r\n/inbound [Remark]
"
+"helpClientCommands" = "To search for statistics, use the following command:\r\n\r\n/usage [Email]
"
+
[tgbot.messages]
-"cpuThreshold" = "🔴 CPU Load {{ .Percent }}% is more than threshold {{ .Threshold }}%"
+"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"
+"loginSuccess" = "✅ Successfully logged in to the panel.\r\n"
"loginFailed" = "❗️ Login to the panel failed.\r\n"
"report" = "🕰 Scheduled Reports: {{ .RunTime }}\r\n"
"datetime" = "⏰ Date-Time: {{ .DateTime }}\r\n"
@@ -512,6 +513,7 @@
"yes" = "✅ Yes"
"no" = "❌ No"
+
[tgbot.buttons]
"closeKeyboard" = "❌ Close Keyboard"
"cancel" = "❌ Cancel"
@@ -524,7 +526,7 @@
"dbBackup" = "Get DB Backup"
"serverUsage" = "Server Usage"
"getInbounds" = "Get Inbounds"
-"depleteSoon" = "Deplete soon"
+"depleteSoon" = "Deplete Soon"
"clientUsage" = "Get Usage"
"onlines" = "Online Clients"
"commands" = "Commands"
@@ -532,7 +534,7 @@
"clearIPs" = "❌ Clear IPs"
"removeTGUser" = "❌ Remove Telegram User"
"selectTGUser" = "👤 Select Telegram User"
-"selectOneTGUser" = "👤 Select a telegram user:"
+"selectOneTGUser" = "👤 Select a Telegram user:"
"resetTraffic" = "📈 Reset Traffic"
"resetExpire" = "📅 Change Expiration Date"
"ipLog" = "🔢 IP Log"
@@ -545,22 +547,23 @@
"limitTraffic" = "🚧 Traffic Limit"
"getBanLogs" = "Get Ban Logs"
+
[tgbot.answers]
-"successfulOperation" = "✅ Successful!"
-"errorOperation" = "❗ Error in Operation."
-"getInboundsFailed" = "❌ Failed to get inbounds"
-"canceled" = "❌ {{ .Email }} : Operation canceled."
-"clientRefreshSuccess" = "✅ {{ .Email }} : Client refreshed successfully."
-"IpRefreshSuccess" = "✅ {{ .Email }} : IPs refreshed successfully."
-"TGIdRefreshSuccess" = "✅ {{ .Email }} : Client's Telegram User refreshed successfully."
-"resetTrafficSuccess" = "✅ {{ .Email }} : Traffic reset successfully."
-"setTrafficLimitSuccess" = "✅ {{ .Email }} : Traffic limit saved successfully."
-"expireResetSuccess" = "✅ {{ .Email }} : Expire days reset successfully."
-"resetIpSuccess" = "✅ {{ .Email }} : IP limit {{ .Count }} saved successfully."
-"clearIpSuccess" = "✅ {{ .Email }} : IPs cleared successfully."
-"getIpLog" = "✅ {{ .Email }} : Get IP Log."
-"getUserInfo" = "✅ {{ .Email }} : Get Telegram User Info."
-"removedTGUserSuccess" = "✅ {{ .Email }} : Telegram User removed successfully."
-"enableSuccess" = "✅ {{ .Email }} : Enabled successfully."
-"disableSuccess" = "✅ {{ .Email }} : Disabled successfully."
-"askToAddUserId" = "Your configuration is not found!\r\nPlease ask your Admin to use your telegram user id in your configuration(s).\r\n\r\nYour user id: {{ .TgUserID }}
"
+"successfulOperation" = "✅ Operation successful!"
+"errorOperation" = "❗ Error in operation."
+"getInboundsFailed" = "❌ Failed to get inbounds."
+"canceled" = "❌ {{ .Email }}: Operation canceled."
+"clientRefreshSuccess" = "✅ {{ .Email }}: Client refreshed successfully."
+"IpRefreshSuccess" = "✅ {{ .Email }}: IPs refreshed successfully."
+"TGIdRefreshSuccess" = "✅ {{ .Email }}: Client's Telegram User refreshed successfully."
+"resetTrafficSuccess" = "✅ {{ .Email }}: Traffic reset successfully."
+"setTrafficLimitSuccess" = "✅ {{ .Email }}: Traffic limit saved successfully."
+"expireResetSuccess" = "✅ {{ .Email }}: Expire days reset successfully."
+"resetIpSuccess" = "✅ {{ .Email }}: IP limit {{ .Count }} saved successfully."
+"clearIpSuccess" = "✅ {{ .Email }}: IPs cleared successfully."
+"getIpLog" = "✅ {{ .Email }}: Get IP Log."
+"getUserInfo" = "✅ {{ .Email }}: Get Telegram User Info."
+"removedTGUserSuccess" = "✅ {{ .Email }}: Telegram User removed successfully."
+"enableSuccess" = "✅ {{ .Email }}: Enabled successfully."
+"disableSuccess" = "✅ {{ .Email }}: Disabled successfully."
+"askToAddUserId" = "Your configuration is not found!\r\nPlease ask your admin to use your Telegram user ID in your configuration(s).\r\n\r\nYour user ID: {{ .TgUserID }}
"