{
"username": "Username",
"password": "Password",
"login": "Log In",
"confirm": "Confirm",
"cancel": "Cancel",
"close": "Close",
"save": "Save",
"logout": "Log Out",
"create": "Create",
"update": "Update",
"copy": "Copy",
"copied": "Copied",
"download": "Download",
"remark": "Remark",
"enable": "Enabled",
"protocol": "Protocol",
"search": "Search",
"filter": "Filter",
"loading": "Loading...",
"second": "Second",
"minute": "Minute",
"hour": "Hour",
"day": "Day",
"check": "Check",
"indefinite": "Indefinite",
"unlimited": "Unlimited",
"none": "None",
"qrCode": "QR Code",
"info": "More Information",
"edit": "Edit",
"delete": "Delete",
"reset": "Reset",
"noData": "No data.",
"copySuccess": "Copied Successful",
"sure": "Sure",
"encryption": "Encryption",
"useIPv4ForHost": "Use IPv4 for host",
"transmission": "Transmission",
"host": "Host",
"path": "Path",
"camouflage": "Obfuscation",
"status": "Status",
"enabled": "Enabled",
"disabled": "Disabled",
"depleted": "Ended",
"depletingSoon": "Depleting",
"offline": "Offline",
"online": "Online",
"domainName": "Domain Name",
"monitor": "Listen IP",
"certificate": "Digital Certificate",
"fail": "Failed",
"comment": "Comment",
"success": "Successfully",
"lastOnline": "Last Online",
"getVersion": "Get Version",
"install": "Install",
"clients": "Clients",
"usage": "Usage",
"twoFactorCode": "Code",
"remained": "Remained",
"security": "Security",
"secAlertTitle": "Security Alert",
"secAlertSsl": "This connection is not secure. Please avoid entering sensitive information until TLS is activated for data protection.",
"secAlertConf": "Certain settings are vulnerable to attacks. It is recommended to reinforce security protocols to prevent potential breaches.",
"secAlertSSL": "Panel lacks secure connection. Please install TLS certificate for data protection.",
"secAlertPanelPort": "Panel default port is vulnerable. Please configure a random or specific port.",
"secAlertPanelURI": "Panel default URI path is insecure. Please configure a complex URI path.",
"secAlertSubURI": "Subscription default URI path is insecure. Please configure a complex URI path.",
"secAlertSubJsonURI": "Subscription JSON default URI path is insecure. Please configure a complex URI path.",
"emptyDnsDesc": "No added DNS servers.",
"emptyFakeDnsDesc": "No added Fake DNS servers.",
"emptyBalancersDesc": "No added balancers.",
"emptyReverseDesc": "No added reverse proxies.",
"somethingWentWrong": "Something went wrong",
"subscription": {
"title": "Subscription info",
"subId": "Subscription ID",
"status": "Status",
"downloaded": "Downloaded",
"uploaded": "Uploaded",
"expiry": "Expiry",
"totalQuota": "Total quota",
"individualLinks": "Individual links",
"active": "Active",
"inactive": "Inactive",
"unlimited": "Unlimited",
"noExpiry": "No expiry"
},
"menu": {
"theme": "Theme",
"dark": "Dark",
"ultraDark": "Ultra Dark",
"dashboard": "Overview",
"inbounds": "Inbounds",
"nodes": "Nodes",
"settings": "Panel Settings",
"xray": "Xray Configs",
"logout": "Log Out",
"link": "Manage"
},
"pages": {
"login": {
"hello": "Hello",
"title": "Welcome",
"loginAgain": "Your session has expired, please log in again",
"toasts": {
"invalidFormData": "The Input data format is invalid.",
"emptyUsername": "Username is required",
"emptyPassword": "Password is required",
"wrongUsernameOrPassword": "Invalid username or password or two-factor code.",
"successLogin": " You have successfully logged into your account."
}
},
"index": {
"title": "Overview",
"cpu": "CPU",
"logicalProcessors": "Logical Processors",
"frequency": "Frequency",
"swap": "Swap",
"storage": "Storage",
"memory": "RAM",
"threads": "Threads",
"xrayStatus": "Xray",
"stopXray": "Stop",
"restartXray": "Restart",
"xraySwitch": "Version",
"xrayUpdates": "Xray Updates",
"xraySwitchClick": "Choose the version you want to switch to.",
"xraySwitchClickDesk": "Choose carefully, as older versions may not be compatible with current configurations.",
"updatePanel": "Update Panel",
"panelUpdateDesc": "This will update 3X-UI itself to the latest release and restart the panel service.",
"currentPanelVersion": "Current panel version",
"latestPanelVersion": "Latest panel version",
"panelUpToDate": "Panel is up to date",
"upToDate": "Up to date",
"xrayStatusUnknown": "Unknown",
"xrayStatusRunning": "Running",
"xrayStatusStop": "Stop",
"xrayStatusError": "Error",
"xrayErrorPopoverTitle": "An error occurred while running Xray",
"operationHours": "Uptime",
"systemHistoryTitle": "System History",
"trendLast2Min": "Last 2 minutes",
"systemLoad": "System Load",
"systemLoadDesc": "System load average for the past 1, 5, and 15 minutes",
"connectionCount": "Connection Stats",
"ipAddresses": "IP Addresses",
"toggleIpVisibility": "Toggle visibility of the IP",
"overallSpeed": "Overall Speed",
"upload": "Upload",
"download": "Download",
"totalData": "Total Data",
"sent": "Sent",
"received": "Received",
"documentation": "Documentation",
"xraySwitchVersionDialog": "Do you really want to change the Xray version?",
"xraySwitchVersionDialogDesc": "This will change the Xray version to #version#.",
"xraySwitchVersionPopover": "Xray updated successfully",
"panelUpdateDialog": "Do you really want to update the panel?",
"panelUpdateDialogDesc": "This will update 3X-UI to #version# and restart the panel service.",
"panelUpdateCheckPopover": "Panel update check failed",
"panelUpdateStartedPopover": "Panel update started",
"geofileUpdateDialog": "Do you really want to update the geofile?",
"geofileUpdateDialogDesc": "This will update the #filename# file.",
"geofilesUpdateDialogDesc": "This will update all geofiles.",
"geofilesUpdateAll": "Update all",
"geofileUpdatePopover": "Geofile updated successfully",
"customGeoTitle": "Custom GeoSite / GeoIP",
"customGeoAdd": "Add",
"customGeoType": "Type",
"customGeoAlias": "Alias",
"customGeoUrl": "URL",
"customGeoEnabled": "Enabled",
"customGeoLastUpdated": "Last updated",
"customGeoExtColumn": "Routing (ext:…)",
"customGeoToastUpdateAll": "All custom geo sources updated",
"customGeoActions": "Actions",
"customGeoEdit": "Edit",
"customGeoDelete": "Delete",
"customGeoDownload": "Update now",
"customGeoModalAdd": "Add custom geo",
"customGeoModalEdit": "Edit custom geo",
"customGeoModalSave": "Save",
"customGeoDeleteConfirm": "Delete this custom geo source?",
"customGeoRoutingHint": "In routing rules use the value column as ext:file.dat:tag (replace tag).",
"customGeoInvalidId": "Invalid resource id",
"customGeoAliasesError": "Failed to load custom geo aliases",
"customGeoValidationAlias": "Alias may only contain lowercase letters, digits, - and _",
"customGeoValidationUrl": "URL must start with http:// or https://",
"customGeoAliasPlaceholder": "a-z 0-9 _ -",
"customGeoAliasLabelSuffix": " (custom)",
"customGeoToastList": "Custom geo list",
"customGeoToastAdd": "Add custom geo",
"customGeoToastUpdate": "Update custom geo",
"customGeoToastDelete": "Custom geo file “{{ .fileName }}” deleted",
"customGeoToastDownload": "Geofile “{{ .fileName }}” updated",
"customGeoErrInvalidType": "Type must be geosite or geoip",
"customGeoErrAliasRequired": "Alias is required",
"customGeoErrAliasPattern": "Alias must match allowed characters",
"customGeoErrAliasReserved": "This alias is reserved",
"customGeoErrUrlRequired": "URL is required",
"customGeoErrInvalidUrl": "URL is invalid",
"customGeoErrUrlScheme": "URL must use http or https",
"customGeoErrUrlHost": "URL host is invalid",
"customGeoErrDuplicateAlias": "This alias is already used for this type",
"customGeoErrNotFound": "Custom geo source not found",
"customGeoErrDownload": "Download failed",
"customGeoErrUpdateAllIncomplete": "One or more custom geo sources failed to update",
"customGeoEmpty": "No custom geo sources yet — click Add to create one",
"dontRefresh": "Installation is in progress, please do not refresh this page",
"logs": "Logs",
"config": "Config",
"backup": "Backup",
"backupTitle": "Backup & Restore",
"exportDatabase": "Back Up",
"exportDatabaseDesc": "Click to download a .db file containing a backup of your current database to your device.",
"importDatabase": "Restore",
"importDatabaseDesc": "Click to select and upload a .db file from your device to restore your database from a backup.",
"importDatabaseSuccess": "The database has been successfully imported.",
"importDatabaseError": "An error occurred while importing the database.",
"readDatabaseError": "An error occurred while reading the database.",
"getDatabaseError": "An error occurred while retrieving the database.",
"getConfigError": "An error occurred while retrieving the config file."
},
"inbounds": {
"allTimeTraffic": "All-time Traffic",
"allTimeTrafficUsage": "All Time Total Usage",
"title": "Inbounds",
"totalDownUp": "Total Sent/Received",
"totalUsage": "Total Usage",
"inboundCount": "Total Inbounds",
"operate": "Menu",
"enable": "Enabled",
"remark": "Remark",
"node": "Node",
"deployTo": "Deploy to",
"localPanel": "Local panel",
"protocol": "Protocol",
"port": "Port",
"portMap": "Port Mapping",
"traffic": "Traffic",
"details": "Details",
"transportConfig": "Transport",
"expireDate": "Duration",
"createdAt": "Created",
"updatedAt": "Updated",
"resetTraffic": "Reset Traffic",
"addInbound": "Add Inbound",
"generalActions": "General Actions",
"modifyInbound": "Modify Inbound",
"deleteInbound": "Delete Inbound",
"deleteInboundContent": "Are you sure you want to delete inbound?",
"deleteClient": "Delete Client",
"deleteClientContent": "Are you sure you want to delete client?",
"resetTrafficContent": "Are you sure you want to reset traffic?",
"copyLink": "Copy URL",
"address": "Address",
"network": "Network",
"destinationPort": "Destination Port",
"targetAddress": "Target Address",
"monitorDesc": "Leave blank to listen on all IPs",
"meansNoLimit": "= Unlimited. (unit: GB)",
"totalFlow": "Total Flow",
"leaveBlankToNeverExpire": "Leave blank to never expire",
"noRecommendKeepDefault": "It is recommended to keep the default",
"certificatePath": "File Path",
"certificateContent": "File Content",
"publicKey": "Public Key",
"privatekey": "Private Key",
"clickOnQRcode": "Click on QR Code to Copy",
"client": "Client",
"export": "Export All URLs",
"clone": "Clone",
"cloneInbound": "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",
"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 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 the traffic of all clients?",
"delDepletedClients": "Delete Depleted Clients",
"delDepletedClientsTitle": "Delete 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",
"IPLimitDesc": "Disables inbound if the count exceeds the set value. (0 = disable)",
"IPLimitlog": "IP Log",
"IPLimitlogDesc": "The IPs history log. (to enable inbound after disabling, clear the log)",
"IPLimitlogclear": "Clear The Log",
"setDefaultCert": "Set Cert from Panel",
"telegramDesc": "Please provide Telegram Chat ID. (use '/id' command in the bot) or ({'@'}userinfobot)",
"subscriptionDesc": "To find your subscription URL, navigate to the 'Details'. Additionally, you can use the same name for several clients.",
"info": "Info",
"same": "Same",
"inboundData": "Inbound's Data",
"exportInbound": "Export Inbound",
"import": "Import",
"importInbound": "Import an Inbound",
"periodicTrafficResetTitle": "Traffic Reset",
"periodicTrafficResetDesc": "Automatically reset traffic counter at specified intervals",
"lastReset": "Last Reset",
"periodicTrafficReset": {
"never": "Never",
"daily": "Daily",
"weekly": "Weekly",
"monthly": "Monthly",
"hourly": "Hourly"
},
"toasts": {
"obtain": "Obtain",
"updateSuccess": "The update was successful.",
"logCleanSuccess": "The log has been cleared.",
"inboundsUpdateSuccess": "Inbounds have been successfully updated.",
"inboundUpdateSuccess": "Inbound has been successfully updated.",
"inboundCreateSuccess": "Inbound has been successfully created.",
"inboundDeleteSuccess": "Inbound has been successfully deleted.",
"inboundClientAddSuccess": "Inbound client(s) have been added.",
"inboundClientDeleteSuccess": "Inbound client has been deleted.",
"inboundClientUpdateSuccess": "Inbound client has been updated.",
"delDepletedClientsSuccess": "All depleted clients are deleted.",
"resetAllClientTrafficSuccess": "All traffic from the client has been reset.",
"resetAllTrafficSuccess": "All traffic has been reset.",
"resetInboundClientTrafficSuccess": "Traffic has been reset.",
"trafficGetError": "Error getting traffics.",
"getNewX25519CertError": "Error while obtaining the X25519 certificate.",
"getNewmldsa65Error": "Error while obtaining mldsa65.",
"getNewVlessEncError": "Error while obtaining VlessEnc."
},
"stream": {
"general": {
"request": "Request",
"response": "Response",
"name": "Name",
"value": "Value"
},
"tcp": {
"version": "Version",
"method": "Method",
"path": "Path",
"status": "Status",
"statusDescription": "Status Desc",
"requestHeader": "Request Header",
"responseHeader": "Response Header"
}
}
},
"client": {
"add": "Add Client",
"edit": "Edit Client",
"submitAdd": "Add Client",
"submitEdit": "Save Changes",
"clientCount": "Number of Clients",
"bulk": "Add Bulk",
"copyFromInbound": "Copy Clients from Inbound",
"copyToInbound": "Copy clients to",
"copySelected": "Copy Selected",
"copySource": "Source",
"copyEmailPreview": "Resulting email preview",
"copySelectSourceFirst": "Please select a source inbound first.",
"copyResult": "Copy result",
"copyResultSuccess": "Copied successfully",
"copyResultNone": "Nothing to copy: no clients selected or source is empty",
"copyResultErrors": "Copy errors",
"copyFlowLabel": "Flow for new clients (VLESS)",
"copyFlowHint": "Applied to all copied clients. Leave empty to skip.",
"selectAll": "Select all",
"clearAll": "Clear all",
"method": "Method",
"first": "First",
"last": "Last",
"prefix": "Prefix",
"postfix": "Postfix",
"delayedStart": "Start After First Use",
"expireDays": "Duration",
"days": "Day(s)",
"renew": "Auto Renew",
"renewDesc": "Auto-renewal after expiration. (0 = disable)(unit: day)"
},
"nodes": {
"title": "Nodes",
"addNode": "Add Node",
"editNode": "Edit Node",
"totalNodes": "Total Nodes",
"onlineNodes": "Online",
"offlineNodes": "Offline",
"avgLatency": "Avg Latency",
"name": "Name",
"namePlaceholder": "e.g. de-frankfurt-1",
"addressPlaceholder": "panel.example.com or 1.2.3.4",
"remark": "Remark",
"scheme": "Scheme",
"address": "Address",
"port": "Port",
"basePath": "Base Path",
"apiToken": "API Token",
"apiTokenPlaceholder": "Token from the remote panel's Settings page",
"apiTokenHint": "The remote panel exposes its API token under Settings → API Token.",
"regenerate": "Regenerate Token",
"regenerateConfirm": "Regenerating invalidates the current token. Any central panel using it will lose access until updated. Continue?",
"enable": "Enabled",
"status": "Status",
"cpu": "CPU",
"mem": "Memory",
"uptime": "Uptime",
"latency": "Latency",
"lastHeartbeat": "Last Heartbeat",
"xrayVersion": "Xray Version",
"actions": "Actions",
"probe": "Probe Now",
"testConnection": "Test Connection",
"connectionOk": "Connection OK ({ms} ms)",
"connectionFailed": "Connection failed",
"never": "never",
"justNow": "just now",
"deleteConfirmTitle": "Delete node \"{name}\"?",
"deleteConfirmContent": "This stops monitoring the node. The remote panel itself is unaffected.",
"statusValues": {
"online": "Online",
"offline": "Offline",
"unknown": "Unknown"
},
"toasts": {
"list": "Failed to load nodes",
"obtain": "Failed to load node",
"add": "Add node",
"update": "Update node",
"delete": "Delete node",
"deleted": "Node deleted",
"test": "Test connection",
"fillRequired": "Name, address, port and API token are required",
"probeFailed": "Probe failed"
}
},
"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? If you cannot access the panel after restarting, please view the panel log info on the server.",
"restartPanelSuccess": "The panel was successfully restarted.",
"actions": "Actions",
"resetDefaultConfig": "Reset to Default",
"panelSettings": "General",
"securitySettings": "Authentication",
"TGBotSettings": "Telegram Bot",
"panelListeningIP": "Listen IP",
"panelListeningIPDesc": "The IP address for the web panel. (leave blank to listen on all IPs)",
"panelListeningDomain": "Listen Domain",
"panelListeningDomainDesc": "The domain name for the web panel. (leave blank to listen on all domains and IPs)",
"panelPort": "Listen Port",
"panelPortDesc": "The port number for the web panel. (must be an unused port)",
"publicKeyPath": "Public Key Path",
"publicKeyPathDesc": "The public key file path for the web panel. (begins with ‘/‘)",
"privateKeyPath": "Private Key Path",
"privateKeyPathDesc": "The private key file path for the web panel. (begins with ‘/‘)",
"panelUrlPath": "URI Path",
"panelUrlPathDesc": "The URI path for the web panel. (begins with ‘/‘ and concludes with ‘/‘)",
"pageSize": "Pagination Size",
"pageSizeDesc": "Define page size for inbounds table. (0 = disable)",
"remarkModel": "Remark Model & Separation Character",
"datepicker": "Calendar Type",
"datepickerPlaceholder": "Select date",
"datepickerDescription": "Scheduled tasks will run based on this calendar.",
"sampleRemark": "Sample Remark",
"oldUsername": "Current Username",
"currentPassword": "Current Password",
"newUsername": "New Username",
"newPassword": "New Password",
"telegramBotEnable": "Enable Telegram Bot",
"telegramBotEnableDesc": "Enables the Telegram bot.",
"telegramToken": "Telegram Token",
"telegramTokenDesc": "The Telegram bot token obtained from '{'@'}BotFather'.",
"telegramProxy": "SOCKS Proxy",
"telegramProxyDesc": "Enables SOCKS5 proxy for connecting to Telegram. (adjust settings as per guide)",
"telegramAPIServer": "Telegram API Server",
"telegramAPIServerDesc": "The Telegram API server to use. Leave blank to use the default server.",
"telegramChatId": "Admin Chat ID",
"telegramChatIdDesc": "The Telegram Admin Chat ID(s). (comma-separated)(get it here {'@'}userinfobot) or (use '/id' command in the bot)",
"telegramNotifyTime": "Notification Time",
"telegramNotifyTimeDesc": "The Telegram bot notification time set for periodic reports. (use the crontab time format)",
"tgNotifyBackup": "Database Backup",
"tgNotifyBackupDesc": "Send a database backup file with a report.",
"tgNotifyLogin": "Login Notification",
"tgNotifyLoginDesc": "Get notified about the username, IP address, and time whenever someone attempts to log into your web panel.",
"sessionMaxAge": "Session Duration",
"sessionMaxAgeDesc": "The duration for which you can stay logged in. (unit: minute)",
"expireTimeDiff": "Expiration Date Notification",
"expireTimeDiffDesc": "Get notified about expiration date when reaching this threshold. (unit: day)",
"trafficDiff": "Traffic Cap Notification",
"trafficDiffDesc": "Get notified about traffic cap when reaching this threshold. (unit: GB)",
"tgNotifyCpu": "CPU Load Notification",
"tgNotifyCpuDesc": "Get notified if CPU load exceeds this threshold. (unit: %)",
"timeZone": "Time Zone",
"timeZoneDesc": "Scheduled tasks will run based on this time zone.",
"subSettings": "Subscription",
"subEnable": "Subscription Service",
"subEnableDesc": "Enable/Disable the subscription service.",
"subJsonEnable": "Enable/Disable the JSON subscription endpoint independently.",
"subTitle": "Subscription Title",
"subTitleDesc": "Title shown in VPN client",
"subSupportUrl": "Support URL",
"subSupportUrlDesc": "Technical support link shown in the VPN client",
"subProfileUrl": "Profile URL",
"subProfileUrlDesc": "A link to your website displayed in the VPN client",
"subAnnounce": "Announce",
"subAnnounceDesc": "The text of the announce displayed in the VPN client",
"subEnableRouting": "Enable routing",
"subEnableRoutingDesc": "Global setting to enable routing in the VPN client. (Only for Happ)",
"subRoutingRules": "Routing rules",
"subRoutingRulesDesc": "Global routing rules for the VPN client. (Only for Happ)",
"subListen": "Listen IP",
"subListenDesc": "The IP address for the subscription service. (leave blank to listen on all IPs)",
"subPort": "Listen Port",
"subPortDesc": "The port number for the subscription service. (must be an unused port)",
"subCertPath": "Public Key Path",
"subCertPathDesc": "The public key file path for the subscription service. (begins with ‘/‘)",
"subKeyPath": "Private Key Path",
"subKeyPathDesc": "The private key file path for the subscription service. (begins with ‘/‘)",
"subPath": "URI Path",
"subPathDesc": "The URI path for the subscription service. (begins with ‘/‘ and concludes with ‘/‘)",
"subDomain": "Listen Domain",
"subDomainDesc": "The domain name for the subscription service. (leave blank to listen on all domains and IPs)",
"subUpdates": "Update Intervals",
"subUpdatesDesc": "The update intervals of the subscription URL in the client apps. (unit: hour)",
"subEncrypt": "Encode",
"subEncryptDesc": "The returned content of subscription service will be Base64 encoded.",
"subShowInfo": "Show Usage Info",
"subShowInfoDesc": "The remaining traffic and date will be displayed in the client apps.",
"subURI": "Reverse Proxy URI",
"subURIDesc": "The URI path of the subscription URL for use behind proxies.",
"externalTrafficInformEnable": "External Traffic Inform",
"externalTrafficInformEnableDesc": "Inform external API on every traffic update.",
"externalTrafficInformURI": "External Traffic Inform URI",
"externalTrafficInformURIDesc": "Traffic updates are sent to this URI.",
"restartXrayOnClientDisable": "Restart Xray After Auto Disable",
"restartXrayOnClientDisableDesc": "When a client is automatically disabled due to expiration or traffic limit, restart Xray.",
"fragment": "Fragmentation",
"fragmentDesc": "Enable fragmentation for TLS hello packet.",
"fragmentSett": "Fragmentation Settings",
"noisesDesc": "Enable Noises.",
"noisesSett": "Noises Settings",
"mux": "Mux",
"muxDesc": "Transmit multiple independent data streams within an established data stream.",
"muxSett": "Mux Settings",
"direct": "Direct Connection",
"directDesc": "Directly establishes connections with domains or IP ranges of a specific country.",
"notifications": "Notifications",
"certs": "Certificaties",
"externalTraffic": "External Traffic",
"dateAndTime": "Date and Time",
"proxyAndServer": "Proxy and Server",
"intervals": "Intervals",
"information": "Information",
"language": "Language",
"telegramBotLanguage": "Telegram Bot Language",
"security": {
"admin": "Admin credentials",
"twoFactor": "Two-factor authentication",
"twoFactorEnable": "Enable 2FA",
"twoFactorEnableDesc": "Adds an additional layer of authentication to provide more security.",
"twoFactorModalSetTitle": "Enable two-factor authentication",
"twoFactorModalDeleteTitle": "Disable two-factor authentication",
"twoFactorModalSteps": "To set up two-factor authentication, perform a few steps:",
"twoFactorModalFirstStep": "1. Scan this QR code in the app for authentication or copy the token near the QR code and paste it into the app",
"twoFactorModalSecondStep": "2. Enter the code from the app",
"twoFactorModalRemoveStep": "Enter the code from the application to remove two-factor authentication.",
"twoFactorModalChangeCredentialsTitle": "Change credentials",
"twoFactorModalChangeCredentialsStep": "Enter the code from the application to change administrator credentials.",
"twoFactorModalSetSuccess": "Two-factor authentication has been successfully established",
"twoFactorModalDeleteSuccess": "Two-factor authentication has been successfully deleted",
"twoFactorModalError": "Wrong code"
},
"toasts": {
"modifySettings": "The parameters have been changed.",
"getSettings": "An error occurred while retrieving parameters.",
"modifyUserError": "An error occurred while changing administrator credentials.",
"modifyUser": "You have successfully changed the credentials of the administrator.",
"originalUserPassIncorrect": "The сurrent username or password is invalid",
"userPassMustBeNotEmpty": "The new username and password is empty",
"getOutboundTrafficError": "Error getting traffics",
"resetOutboundTrafficError": "Error in reset outbound traffics"
}
},
"xray": {
"title": "Xray Configs",
"save": "Save",
"restart": "Restart Xray",
"restartSuccess": "Xray has been successfully relaunched.",
"stopSuccess": "Xray has been successfully stopped.",
"restartError": "There was an error when rebooting the Xray.",
"stopError": "There was an error when stopping the Xray.",
"basicTemplate": "Basics",
"advancedTemplate": "Advanced",
"generalConfigs": "General",
"generalConfigsDesc": "These options will determine general adjustments.",
"logConfigs": "Log",
"logConfigsDesc": "Logs may affect your server's efficiency. It is recommended to enable it wisely only in case of your needs",
"blockConfigsDesc": "These options will block traffic based on specific requested protocols and websites.",
"basicRouting": "Basic Routing",
"blockConnectionsConfigsDesc": "These options will block traffic based on the specific requested country.",
"directConnectionsConfigsDesc": "A direct connection ensures that specific traffic is not routed through another server.",
"blockips": "Block IPs",
"blockdomains": "Block Domains",
"directips": "Direct IPs",
"directdomains": "Direct Domains",
"ipv4Routing": "IPv4 Routing",
"ipv4RoutingDesc": "These options will route traffic based on a specific destination via IPv4.",
"warpRouting": "WARP Routing",
"warpRoutingDesc": "These options will route traffic based on a specific destination via WARP.",
"nordRouting": "NordVPN Routing",
"nordRoutingDesc": "These options will route traffic based on a specific destination via NordVPN.",
"Template": "Advanced Xray Configuration Template",
"TemplateDesc": "The final Xray config file will be generated based on this template.",
"FreedomStrategy": "Freedom Protocol Strategy",
"FreedomStrategyDesc": "Set the output strategy for the network in the Freedom Protocol.",
"RoutingStrategy": "Overall Routing Strategy",
"RoutingStrategyDesc": "Set the overall traffic routing strategy for resolving all requests.",
"outboundTestUrl": "Outbound Test URL",
"outboundTestUrlDesc": "URL used when testing outbound connectivity.",
"Torrent": "Block BitTorrent Protocol",
"Inbounds": "Inbounds",
"InboundsDesc": "Accepting the specific clients.",
"Outbounds": "Outbounds",
"Balancers": "Balancers",
"OutboundsDesc": "Set the outgoing traffic pathway.",
"Routings": "Routing Rules",
"RoutingsDesc": "The priority of each rule is important!",
"completeTemplate": "All",
"logLevel": "Log Level",
"logLevelDesc": "The log level for error logs, indicating the information that needs to be recorded.",
"accessLog": "Access Log",
"accessLogDesc": "The file path for the access log. The special value 'none' disabled access logs",
"errorLog": "Error Log",
"errorLogDesc": "The file path for the error log. The special value 'none' disabled error logs",
"dnsLog": "DNS Log",
"dnsLogDesc": "Whether to enable DNS query logs",
"maskAddress": "Mask Address",
"maskAddressDesc": "IP address mask, when enabled, will automatically replace the IP address that appears in the log.",
"statistics": "Statistics",
"statsInboundUplink": "Inbound Upload Statistics",
"statsInboundUplinkDesc": "Enables the statistics collection for upstream traffic of all inbound proxies.",
"statsInboundDownlink": "Inbound Download Statistics",
"statsInboundDownlinkDesc": "Enables the statistics collection for downstream traffic of all inbound proxies.",
"statsOutboundUplink": "Outbound Upload Statistics",
"statsOutboundUplinkDesc": "Enables the statistics collection for upstream traffic of all outbound proxies.",
"statsOutboundDownlink": "Outbound Download Statistics",
"statsOutboundDownlinkDesc": "Enables the statistics collection for downstream traffic of all outbound proxies.",
"rules": {
"first": "First",
"last": "Last",
"up": "Up",
"down": "Down",
"source": "Source",
"dest": "Destination",
"inbound": "Inbound",
"outbound": "Outbound",
"balancer": "Balancer",
"info": "Info",
"add": "Add Rule",
"edit": "Edit Rule",
"useComma": "Comma-separated items"
},
"outbound": {
"addOutbound": "Add Outbound",
"addReverse": "Add Reverse",
"editOutbound": "Edit Outbound",
"editReverse": "Edit Reverse",
"reverseTag": "Reverse Tag",
"reverseTagDesc": "VLESS simple reverse proxy tag. Leave empty to disable.",
"reverseTagPlaceholder": "reverse tag (leave empty to disable)",
"tag": "Tag",
"tagDesc": "Unique Tag",
"address": "Address",
"reverse": "Reverse",
"domain": "Domain",
"type": "Type",
"bridge": "Bridge",
"portal": "Portal",
"link": "Link",
"intercon": "Interconnection",
"settings": "Settings",
"accountInfo": "Account Information",
"outboundStatus": "Outbound Status",
"sendThrough": "Send Through",
"test": "Test",
"testResult": "Test Result",
"testing": "Testing connection...",
"testSuccess": "Test successful",
"testFailed": "Test failed",
"testError": "Failed to test outbound",
"nordvpn": "NordVPN",
"accessToken": "Access Token",
"country": "Country",
"server": "Server",
"city": "City",
"allCities": "All Cities",
"privateKey": "Private Key",
"load": "Load"
},
"balancer": {
"addBalancer": "Add Balancer",
"editBalancer": "Edit Balancer",
"balancerStrategy": "Strategy",
"balancerSelectors": "Selectors",
"tag": "Tag",
"tagDesc": "Unique Tag",
"balancerDesc": "It is not possible to use balancerTag and outboundTag at the same time. If used at the same time, only outboundTag will work."
},
"wireguard": {
"secretKey": "Secret Key",
"publicKey": "Public Key",
"allowedIPs": "Allowed IPs",
"endpoint": "Endpoint",
"psk": "PreShared Key",
"domainStrategy": "Domain Strategy"
},
"tun": {
"nameDesc": "The name of the TUN interface. Default is 'xray0'",
"mtuDesc": "Maximum Transmission Unit. The maximum size of data packets. Default is 1500",
"userLevel": "User Level",
"userLevelDesc": "All connections made through this inbound will use this user level. Default is 0"
},
"dns": {
"enable": "Enable DNS",
"enableDesc": "Enable built-in DNS server",
"tag": "DNS Inbound Tag",
"tagDesc": "This tag will be available as an Inbound tag in routing rules.",
"clientIp": "Client IP",
"clientIpDesc": "Used to notify the server of the specified IP location during DNS queries",
"disableCache": "Disable cache",
"disableCacheDesc": "Disables DNS caching",
"disableFallback": "Disable Fallback",
"disableFallbackDesc": "Disables fallback DNS queries",
"disableFallbackIfMatch": "Disable Fallback If Match",
"disableFallbackIfMatchDesc": "Disables fallback DNS queries when the matching domain list of the DNS server is hit",
"enableParallelQuery": "Enable Parallel Query",
"enableParallelQueryDesc": "Enable parallel DNS queries to multiple servers for faster resolution",
"strategy": "Query Strategy",
"strategyDesc": "Overall strategy to resolve domain names",
"add": "Add Server",
"edit": "Edit Server",
"domains": "Domains",
"expectIPs": "Expect IPs",
"unexpectIPs": "Unexpect IPs",
"useSystemHosts": "Use System Hosts",
"useSystemHostsDesc": "Use the hosts file from an installed system",
"usePreset": "Use Preset",
"dnsPresetTitle": "DNS Presets",
"dnsPresetFamily": "Family"
},
"fakedns": {
"add": "Add Fake DNS",
"edit": "Edit Fake DNS",
"ipPool": "IP Pool Subnet",
"poolSize": "Pool Size"
}
}
},
"tgbot": {
"keyboardClosed": "❌ Custom keyboard closed!",
"noResult": "❗ No result!",
"noQuery": "❌ Query not found! Please use the command again!",
"wentWrong": "❌ Something went wrong!",
"noIpRecord": "❗ No IP Record!",
"noInbounds": "❗ No inbound found!",
"unlimited": "♾ Unlimited(Reset)",
"add": "Add",
"month": "Month",
"months": "Months",
"day": "Day",
"days": "Days",
"hours": "Hours",
"minutes": "Minutes",
"unknown": "Unknown",
"inbounds": "Inbounds",
"clients": "Clients",
"offline": "🔴 Offline",
"online": "🟢 Online",
"commands": {
"unknown": "❗ Unknown command.",
"pleaseChoose": "👇 Please choose:\r\n",
"help": "🤖 Welcome to this bot! It's designed to offer specific data from the web panel 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": "To restart Xray Core:\r\n/restart\r\n\r\nTo search for a client email:\r\n/usage [Email]\r\n\r\nTo search for inbounds (with client stats):\r\n/inbound [Remark]\r\n\r\nTelegram Chat ID:\r\n/id",
"helpClientCommands": "To search for statistics, use the following command:\r\n\r\n/usage [Email]\r\n\r\nTelegram Chat ID:\r\n/id",
"restartUsage": "\r\n\r\n/restart",
"restartSuccess": "✅ Operation successful!",
"restartFailed": "❗ Error in operation.\r\n\r\nError: {{ .Error }}.",
"xrayNotRunning": "❗ Xray Core is not running.",
"startDesc": "Show the main menu",
"helpDesc": "Bot help",
"statusDesc": "Check bot status",
"idDesc": "Show your Telegram ID"
},
"messages": {
"cpuThreshold": "🔴 CPU Load {{ .Percent }}% exceeds the threshold of {{ .Threshold }}%",
"selectUserFailed": "❌ Error in user selection!",
"userSaved": "✅ Telegram User saved.",
"loginSuccess": "✅ Logged in to the panel successfully.\r\n",
"loginFailed": "❗️Login attempt to the panel failed.\r\n",
"2faFailed": "2FA Failed",
"report": "🕰 Scheduled Reports: {{ .RunTime }}\r\n",
"datetime": "⏰ Date&Time: {{ .DateTime }}\r\n",
"hostname": "💻 Host: {{ .Hostname }}\r\n",
"version": "🚀 3X-UI Version: {{ .Version }}\r\n",
"xrayVersion": "📡 Xray Version: {{ .XrayVersion }}\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": "⏳ Uptime: {{ .UpTime }} {{ .Unit }}\r\n",
"serverLoad": "📈 System Load: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\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",
"xrayStatus": "ℹ️ Status: {{ .State }}\r\n",
"username": "👤 Username: {{ .Username }}\r\n",
"reason": "❗️ Reason: {{ .Reason }}\r\n",
"time": "⏰ Time: {{ .Time }}\r\n",
"inbound": "📍 Inbound: {{ .Remark }}\r\n",
"port": "🔌 Port: {{ .Port }}\r\n",
"expire": "📅 Expire Date: {{ .Time }}\r\n",
"expireIn": "📅 Expire In: {{ .Time }}\r\n",
"active": "💡 Active: {{ .Enable }}\r\n",
"enabled": "🚨 Enabled: {{ .Enable }}\r\n",
"online": "🌐 Connection status: {{ .Status }}\r\n",
"lastOnline": "🔙 Last online: {{ .Time }}\r\n",
"email": "📧 Email: {{ .Email }}\r\n",
"upload": "🔼 Upload: ↑{{ .Upload }}\r\n",
"download": "🔽 Download: ↓{{ .Download }}\r\n",
"total": "📊 Total: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
"TGUser": "👤 Telegram User: {{ .TelegramID }}\r\n",
"exhaustedMsg": "🚨 Exhausted {{ .Type }}:\r\n",
"exhaustedCount": "🚨 Exhausted {{ .Type }} 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",
"refreshedOn": "\r\n📋🔄 Refreshed On: {{ .Time }}\r\n\r\n",
"yes": "✅ Yes",
"no": "❌ No",
"received_id": "🔑📥 ID updated.",
"received_password": "🔑📥 Password updated.",
"received_email": "📧📥 Email updated.",
"received_comment": "💬📥 Comment updated.",
"id_prompt": "🔑 Default ID: {{ .ClientId }}\n\nEnter your id.",
"pass_prompt": "🔑 Default Password: {{ .ClientPassword }}\n\nEnter your password.",
"email_prompt": "📧 Default Email: {{ .ClientEmail }}\n\nEnter your email.",
"comment_prompt": "💬 Default Comment: {{ .ClientComment }}\n\nEnter your Comment.",
"inbound_client_data_id": "🔄 Inbound: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Traffic: {{ .ClientTraffic }}\n📅 Expire Date: {{ .ClientExp }}\n🌐 IP Limit: {{ .IpLimit }}\n💬 Comment: {{ .ClientComment }}\n\nYou can add the client to inbound now!",
"inbound_client_data_pass": "🔄 Inbound: {{ .InboundRemark }}\n\n🔑 Password: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Traffic: {{ .ClientTraffic }}\n📅 Expire Date: {{ .ClientExp }}\n🌐 IP Limit: {{ .IpLimit }}\n💬 Comment: {{ .ClientComment }}\n\nYou can add the client to inbound now!",
"cancel": "❌ Process Canceled! \n\nYou can /start again anytime. 🔄",
"error_add_client": "⚠️ Error:\n\n {{ .error }}",
"using_default_value": "Okay, I'll stick with the default value. 😊",
"incorrect_input": "Your input is not valid.\nThe phrases should be continuous without spaces.\nCorrect example: aaaaaa\nIncorrect example: aaa aaa 🚫",
"AreYouSure": "Are you sure? 🤔",
"SuccessResetTraffic": "📧 Email: {{ .ClientEmail }}\n🏁 Result: ✅ Success",
"FailedResetTraffic": "📧 Email: {{ .ClientEmail }}\n🏁 Result: ❌ Failed \n\n🛠️ Error: [ {{ .ErrorMessage }} ]",
"FinishProcess": "🔚 Traffic reset process finished for all clients."
},
"buttons": {
"closeKeyboard": "❌ Close Keyboard",
"cancel": "❌ Cancel",
"cancelReset": "❌ Cancel Reset",
"cancelIpLimit": "❌ Cancel IP Limit",
"confirmResetTraffic": "✅ Confirm Reset Traffic?",
"confirmClearIps": "✅ Confirm Clear IPs?",
"confirmRemoveTGUser": "✅ Confirm Remove Telegram User?",
"confirmToggle": "✅ Confirm Enable/Disable User?",
"dbBackup": "Get DB Backup",
"serverUsage": "Server Usage",
"getInbounds": "Get Inbounds",
"depleteSoon": "Deplete Soon",
"clientUsage": "Get Usage",
"onlines": "Online Clients",
"commands": "Commands",
"refresh": "🔄 Refresh",
"clearIPs": "❌ Clear IPs",
"removeTGUser": "❌ Remove Telegram User",
"selectTGUser": "👤 Select Telegram User",
"selectOneTGUser": "👤 Select a Telegram User:",
"resetTraffic": "📈 Reset Traffic",
"resetExpire": "📅 Change Expiry Date",
"ipLog": "🔢 IP Log",
"ipLimit": "🔢 IP Limit",
"setTGUser": "👤 Set Telegram User",
"toggle": "🔘 Enable / Disable",
"custom": "🔢 Custom",
"confirmNumber": "✅ Confirm: {{ .Num }}",
"confirmNumberAdd": "✅ Confirm adding: {{ .Num }}",
"limitTraffic": "🚧 Traffic Limit",
"getBanLogs": "Get Ban Logs",
"allClients": "All Clients",
"addClient": "Add Client",
"submitDisable": "Submit As Disable ☑️",
"submitEnable": "Submit As Enable ✅",
"use_default": "🏷️ Use default",
"change_id": "⚙️🔑 ID",
"change_password": "⚙️🔑 Password",
"change_email": "⚙️📧 Email",
"change_comment": "⚙️💬 Comment",
"ResetAllTraffics": "Reset All Traffics",
"SortedTrafficUsageReport": "Sorted Traffic Usage Report"
},
"answers": {
"successfulOperation": "✅ Operation successful!",
"errorOperation": "❗ Error in operation.",
"getInboundsFailed": "❌ Failed to get inbounds.",
"getClientsFailed": "❌ Failed to get clients.",
"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 ChatID in your configuration(s).\r\n\r\nYour ChatID: {{ .TgUserID }}",
"chooseClient": "Choose a Client for Inbound {{ .Inbound }}",
"chooseInbound": "Choose an Inbound"
}
}
}