update
This commit is contained in:
@@ -0,0 +1,899 @@
|
||||
{
|
||||
"appName": "Nexus Terminal",
|
||||
"projectName": "Nexus Terminal",
|
||||
"slogan":"Stir the stars, command the terminal.",
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"terminal": "Terminal",
|
||||
"proxies": "Proxies",
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"notifications": "Notifications",
|
||||
"auditLogs": "Audit Logs",
|
||||
"settings": "Settings",
|
||||
"customizeStyle": "Customize Style"
|
||||
},
|
||||
"styleCustomizer": {
|
||||
"title": "Appearance Customizer",
|
||||
"uiStyles": "UI Styles",
|
||||
"terminalStyles": "Terminal Styles",
|
||||
"backgroundSettings": "Background",
|
||||
"uiDescription": "Adjust colors, fonts, etc. for the application interface.",
|
||||
"resetUiTheme": "Reset UI Theme",
|
||||
"saveUiTheme": "Save UI Theme",
|
||||
"terminalFontFamily": "Terminal Font",
|
||||
"terminalFontPlaceholder": "e.g., \"Fira Code\", Consolas, monospace",
|
||||
"terminalFontDescription": "Enter font names, separated by commas. Use quotes for names with spaces.",
|
||||
"terminalThemeSelection": "Terminal Theme",
|
||||
"activeTheme": "Active Theme",
|
||||
"addNewTheme": "New Theme",
|
||||
"importTheme": "Import Theme",
|
||||
"editThemeTitle": "Edit Terminal Theme",
|
||||
"newThemeTitle": "New Terminal Theme",
|
||||
"newThemeDefaultName": "New Theme",
|
||||
"themeName": "Theme Name",
|
||||
"errorThemeNameRequired": "Theme name cannot be empty.",
|
||||
"themeUpdatedSuccess": "Theme updated successfully.",
|
||||
"themeCreatedSuccess": "Theme created successfully.",
|
||||
"themeSaveFailed": "Failed to save theme.",
|
||||
"themeDeletedSuccess": "Theme deleted successfully.",
|
||||
"themeDeleteFailed": "Failed to delete theme: {message}",
|
||||
"importSuccess": "Theme imported successfully.",
|
||||
"importFailed": "Theme import failed.",
|
||||
"exportFailed": "Failed to export theme: {message}",
|
||||
"pageBackground": "Page Background",
|
||||
"terminalBackground": "Terminal Background",
|
||||
"noBackground": "No background",
|
||||
"uploadPageBg": "Upload Page Bg",
|
||||
"removePageBg": "Remove Page Bg",
|
||||
"uploadTerminalBg": "Upload Terminal Bg",
|
||||
"removeTerminalBg": "Remove Terminal Bg",
|
||||
"uploadFailed": "Upload failed: {message}",
|
||||
"pageBgUploadSuccess": "Page background uploaded successfully.",
|
||||
"terminalBgUploadSuccess": "Terminal background uploaded successfully.",
|
||||
"pageBgRemoved": "Page background removed.",
|
||||
"terminalBgRemoved": "Terminal background removed.",
|
||||
"removeBgFailed": "Failed to remove background: {message}",
|
||||
"uiThemeSaveFailed": "Failed to save UI theme: {message}",
|
||||
"uiThemeReset": "UI theme reset to default.",
|
||||
"uiThemeResetFailed": "Failed to reset UI theme: {message}",
|
||||
"terminalFontSaved": "Terminal font saved.",
|
||||
"terminalFontSaveFailed": "Failed to save terminal font: {message}",
|
||||
"setActiveThemeFailed": "Failed to set active terminal theme: {message}",
|
||||
"terminalFontSize": "Terminal Font Size",
|
||||
"errorInvalidFontSize": "Invalid font size. Please enter a positive number.",
|
||||
"terminalFontSizeSaved": "Terminal font size saved.",
|
||||
"terminalFontSizeSaveFailed": "Failed to save terminal font size: {message}",
|
||||
"otherSettings": "Other Settings",
|
||||
"editorFontSize": "Editor Font Size",
|
||||
"editorFontSizeSaved": "Editor font size saved.",
|
||||
"editorFontSizeSaveFailed": "Failed to save editor font size: {message}",
|
||||
"errorInvalidEditorFontSize": "Invalid font size. Please enter a positive number.",
|
||||
"uiThemeJsonEditorTitle": "UI Theme JSON Editor",
|
||||
"uiThemeJsonEditorDesc": "Directly edit the UI theme configuration using JSON. Changes here will reflect in the color pickers above after blurring the textarea.",
|
||||
"errorInvalidJsonObject": "Invalid input. Please provide a valid JSON object.",
|
||||
"errorInvalidJsonConfig": "Invalid JSON configuration",
|
||||
"editAsCopy": "Edit as Copy",
|
||||
"cannotDeletePreset": "Cannot delete preset theme",
|
||||
"applyThemeTooltip": "Apply this theme",
|
||||
"terminalThemeJsonEditorTitle": "Terminal Theme JSON Editor",
|
||||
"terminalThemeJsonEditorDesc": "Directly edit the terminal theme configuration using JSON. Changes here will reflect in the color pickers below after blurring the textarea.",
|
||||
"terminalThemeColorEditorTitle": "Terminal Theme Color Editor",
|
||||
"errorFixJsonBeforeSave": "Please fix the JSON format errors before saving.",
|
||||
"applyButton": "Apply",
|
||||
"searchThemePlaceholder": "Search theme name...",
|
||||
"exportActiveThemeTooltip": "Export the currently active theme as a JSON file",
|
||||
"exportActiveTheme": "Export Active Theme",
|
||||
"themeModeLabel": "Theme Mode:",
|
||||
"defaultMode": "Default Mode",
|
||||
"darkMode": "Dark Mode",
|
||||
"darkModeApplied": "Dark mode applied",
|
||||
"darkModeApplyFailed": "Failed to apply dark mode: {message}"
|
||||
},
|
||||
"login": {
|
||||
"title": "User Login",
|
||||
"username": "Username",
|
||||
"password": "Password",
|
||||
"loginButton": "Login",
|
||||
"loggingIn": "Logging in...",
|
||||
"twoFactorPrompt": "Enter your two-factor authentication code:",
|
||||
"verifyButton": "Verify",
|
||||
"rememberMe": "Remember Me",
|
||||
"captchaPrompt": "Please complete the verification below:",
|
||||
"error": {
|
||||
"captchaLoadFailed": "Failed to load CAPTCHA. Please try refreshing.",
|
||||
"captchaRequired": "Please complete the CAPTCHA verification."
|
||||
},
|
||||
"recaptchaV3Notice": "This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply."
|
||||
},
|
||||
"connections": {
|
||||
"addConnection": "Add New Connection",
|
||||
"noConnections": "No connections yet. Click 'Add New Connection' to create one!",
|
||||
"addFirstConnection": "Add your first connection",
|
||||
"table": {
|
||||
"name": "Name",
|
||||
"host": "Host",
|
||||
"port": "Port",
|
||||
"user": "User",
|
||||
"authMethod": "Auth Method",
|
||||
"tags": "Tags",
|
||||
"lastConnected": "Last Connected",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"actions": {
|
||||
"connect": "Connect",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"test": "Test",
|
||||
"testing": "Testing..."
|
||||
},
|
||||
"form": {
|
||||
"title": "Add New Connection",
|
||||
"name": "Name:",
|
||||
"host": "Host/IP:",
|
||||
"port": "Port:",
|
||||
"username": "Username:",
|
||||
"authMethod": "Authentication Method:",
|
||||
"authMethodPassword": "Password",
|
||||
"authMethodKey": "SSH Key",
|
||||
"password": "Password:",
|
||||
"privateKey": "Private Key:",
|
||||
"passphrase": "Passphrase:",
|
||||
"optional": "Optional",
|
||||
"confirm": "Confirm Add",
|
||||
"adding": "Adding...",
|
||||
"cancel": "Cancel",
|
||||
"errorRequiredFields": "Please fill in all required fields.",
|
||||
"errorPasswordRequired": "Password is required for password authentication.",
|
||||
"errorPrivateKeyRequired": "Private key is required for key authentication.",
|
||||
"errorPasswordRequiredOnSwitch": "Password is required when switching to password authentication.",
|
||||
"errorPrivateKeyRequiredOnSwitch": "Private key is required when switching to key authentication.",
|
||||
"errorPort": "Port must be between 1 and 65535.",
|
||||
"errorAdd": "Failed to add connection: {error}",
|
||||
"titleEdit": "Edit Connection",
|
||||
"confirmEdit": "Confirm Edit",
|
||||
"saving": "Saving...",
|
||||
"errorUpdate": "Failed to update connection: {error}",
|
||||
"keyUpdateNote": "Leave private key and passphrase blank to keep the existing key.",
|
||||
"proxy": "Proxy:",
|
||||
"noProxy": "No Proxy",
|
||||
"tags": "Tags:",
|
||||
"sectionBasic": "Basic Information",
|
||||
"sectionAuth": "Authentication",
|
||||
"sectionAdvanced": "Advanced Options",
|
||||
"testConnection": "Test Connection",
|
||||
"testing": "Testing..."
|
||||
},
|
||||
"test": {
|
||||
"success": "Connection test successful!",
|
||||
"failed": "Connection test failed: {error}",
|
||||
"latencyTooltip": "This measures the time to establish a new SSH connection (TCP, Proxy, SSH Handshake, Auth). It's typically higher than interaction latency on an already established connection.",
|
||||
"errorMissingFields": "Please fill in Host, Port, Username, and select an Auth Method.",
|
||||
"errorUnknown": "An unknown error occurred during testing.",
|
||||
"errorNetwork": "Network error or server unreachable.",
|
||||
"testingInProgress": "Testing...",
|
||||
"errorPrefix": "Error:"
|
||||
},
|
||||
"prompts": {
|
||||
"confirmDelete": "Are you sure you want to delete the connection \"{name}\"? This cannot be undone."
|
||||
},
|
||||
"errors": {
|
||||
"deleteFailed": "Failed to delete connection: {error}"
|
||||
},
|
||||
"status": {
|
||||
"never": "Never"
|
||||
},
|
||||
"untaggedGroup": "Untagged",
|
||||
"noUntaggedConnections": "No untagged connections found."
|
||||
},
|
||||
"proxies": {
|
||||
"title": "Proxy Management",
|
||||
"addProxy": "Add New Proxy",
|
||||
"loading": "Loading proxies...",
|
||||
"error": "Failed to load proxies: {error}",
|
||||
"noProxies": "No proxies yet. Click 'Add New Proxy' to create one!",
|
||||
"actions": {
|
||||
"edit": "Edit",
|
||||
"delete": "Delete"
|
||||
},
|
||||
"form": {
|
||||
"title": "Add New Proxy",
|
||||
"titleEdit": "Edit Proxy",
|
||||
"name": "Name:",
|
||||
"type": "Type:",
|
||||
"host": "Host/IP:",
|
||||
"port": "Port:",
|
||||
"username": "Username:",
|
||||
"password": "Password:",
|
||||
"optional": "Optional",
|
||||
"confirm": "Confirm Add",
|
||||
"confirmEdit": "Confirm Edit",
|
||||
"adding": "Adding...",
|
||||
"saving": "Saving...",
|
||||
"cancel": "Cancel",
|
||||
"errorRequiredFields": "Please fill in all required fields.",
|
||||
"errorPort": "Port must be between 1 and 65535.",
|
||||
"errorAdd": "Failed to add proxy: {error}",
|
||||
"errorUpdate": "Failed to update proxy: {error}",
|
||||
"passwordUpdateNote": "Leave password blank to keep the existing password."
|
||||
},
|
||||
"prompts": {
|
||||
"confirmDelete": "Are you sure you want to delete the proxy \"{name}\"? This cannot be undone."
|
||||
},
|
||||
"errors": {
|
||||
"deleteFailed": "Failed to delete proxy: {error}"
|
||||
}
|
||||
},
|
||||
"workspace": {
|
||||
"terminal": {
|
||||
"reconnectingMsg": "Attempting to reconnect..."
|
||||
}
|
||||
},
|
||||
"fileManager": {
|
||||
"currentPath": "Current Path",
|
||||
"loading": "Loading directory...",
|
||||
"emptyDirectory": "Directory is empty",
|
||||
"uploadTasks": "Upload Tasks",
|
||||
"actions": {
|
||||
"refresh": "Refresh",
|
||||
"parentDirectory": "Parent Directory",
|
||||
"uploadFile": "Upload File",
|
||||
"upload": "Upload",
|
||||
"newFolder": "New Folder",
|
||||
"rename": "Rename",
|
||||
"changePermissions": "Change Permissions",
|
||||
"newFile": "New File",
|
||||
"delete": "Delete",
|
||||
"deleteMultiple": "Delete {count} items",
|
||||
"download": "Download",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"closeTab": "Close Tab",
|
||||
"closeEditor": "Close Editor"
|
||||
},
|
||||
"headers": {
|
||||
"type": "Type",
|
||||
"name": "Name",
|
||||
"size": "Size",
|
||||
"permissions": "Permissions",
|
||||
"modified": "Modified"
|
||||
},
|
||||
"uploadStatus": {
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"errors": {
|
||||
"generic": "Error",
|
||||
"missingConnectionId": "Cannot get current connection ID",
|
||||
"createFolderFailed": "Failed to create folder",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"renameFailed": "Failed to rename",
|
||||
"chmodFailed": "Failed to change permissions",
|
||||
"invalidPermissionsFormat": "Invalid permissions format. Please enter 3 or 4 octal digits (e.g., 755 or 0755).",
|
||||
"readFileError": "Error reading file",
|
||||
"readFileFailed": "Failed to read file",
|
||||
"fileDecodeError": "File decoding failed (likely not UTF-8)",
|
||||
"saveFailed": "Failed to save file",
|
||||
"saveTimeout": "Save timed out",
|
||||
"fileExists": "File \"{name}\" already exists.",
|
||||
"loadDirectoryFailed": "Failed to load directory"
|
||||
},
|
||||
"prompts": {
|
||||
"enterFolderName": "Enter the name for the new folder:",
|
||||
"confirmOverwrite": "File \"{name}\" already exists. Overwrite?",
|
||||
"confirmDeleteMultiple": "Are you sure you want to delete the selected {count} items? This cannot be undone.",
|
||||
"confirmDeleteFolder": "Are you sure you want to delete the directory \"{name}\" and all its contents? This cannot be undone.",
|
||||
"confirmDeleteFile": "Are you sure you want to delete the file \"{name}\"? This cannot be undone.",
|
||||
"enterNewName": "Enter the new name for \"{oldName}\":",
|
||||
"enterNewPermissions": "Enter new permissions for \"{name}\" (octal, e.g., 755):",
|
||||
"enterFileName": "Enter the name for the new file:"
|
||||
},
|
||||
"editingFile": "Editing",
|
||||
"loadingFile": "Loading file...",
|
||||
"saving": "Saving",
|
||||
"saveSuccess": "Save successful",
|
||||
"saveError": "Save error",
|
||||
"editPathTooltip": "Click path to edit",
|
||||
"noOpenFile": "No file open",
|
||||
"selectFileToEdit": "Select a file from the file manager to start editing.",
|
||||
"searchPlaceholder": "Search files..."
|
||||
},
|
||||
"statusMonitor": {
|
||||
"title": "Server Status",
|
||||
"errorPrefix": "Error:",
|
||||
"loading": "Waiting for data...",
|
||||
"cpuModelLabel": "CPU Model:",
|
||||
"osLabel": "OS:",
|
||||
"cpuLabel": "CPU:",
|
||||
"memoryLabel": "Memory:",
|
||||
"swapLabel": "Swap:",
|
||||
"diskLabel": "Disk:",
|
||||
"networkLabel": "Network",
|
||||
"notAvailable": "N/A",
|
||||
"bytesPerSecond": "B/s",
|
||||
"kiloBytesPerSecond": "KB/s",
|
||||
"megaBytesPerSecond": "MB/s",
|
||||
"gigaBytesPerSecond": "GB/s",
|
||||
"megaBytes": "MB",
|
||||
"gigaBytes": "GB",
|
||||
"swapNotAvailable": "Swap Unavailable"
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tag Management",
|
||||
"addTag": "Add New Tag",
|
||||
"loading": "Loading tags...",
|
||||
"error": "Failed to load tags: {error}",
|
||||
"noTags": "No tags yet. Click 'Add New Tag' to create one!",
|
||||
"prompts": {
|
||||
"confirmDelete": "Are you sure you want to delete the tag \"{name}\"? This cannot be undone."
|
||||
},
|
||||
"inputPlaceholder": "Type to search or create tags...",
|
||||
"removeSelection": "Remove this tag selection",
|
||||
"deleteTagGlobally": "Delete this tag globally"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"category": {
|
||||
"security": "Security Settings",
|
||||
"appearance": "Appearance Settings",
|
||||
"system": "System Settings"
|
||||
},
|
||||
"changePassword": {
|
||||
"title": "Change Password",
|
||||
"currentPassword": "Current Password:",
|
||||
"newPassword": "New Password:",
|
||||
"confirmPassword": "Confirm New Password:",
|
||||
"submit": "Change Password",
|
||||
"success": "Password changed successfully!",
|
||||
"error": {
|
||||
"passwordsDoNotMatch": "New password and confirmation do not match.",
|
||||
"generic": "Failed to change password. Please try again later."
|
||||
}
|
||||
},
|
||||
"twoFactor": {
|
||||
"title": "Two-Factor Authentication (TOTP)",
|
||||
"status": {
|
||||
"enabled": "Two-factor authentication is enabled.",
|
||||
"disabled": "Two-factor authentication is currently disabled."
|
||||
},
|
||||
"enable": {
|
||||
"button": "Enable Two-Factor Authentication"
|
||||
},
|
||||
"setup": {
|
||||
"scanQrCode": "Scan the QR code below with your authenticator app:",
|
||||
"orEnterSecret": "Or manually enter the secret key:",
|
||||
"enterCode": "Enter the 6-digit code from your authenticator app:",
|
||||
"verifyButton": "Verify & Activate"
|
||||
},
|
||||
"disable": {
|
||||
"button": "Disable Two-Factor Authentication",
|
||||
"passwordPrompt": "Enter your current password to confirm disabling:"
|
||||
},
|
||||
"success": {
|
||||
"activated": "Two-factor authentication activated successfully!",
|
||||
"disabled": "Two-factor authentication disabled successfully."
|
||||
},
|
||||
"error": {
|
||||
"setupFailed": "Failed to get two-factor setup information.",
|
||||
"codeRequired": "Please enter the verification code.",
|
||||
"verificationFailed": "Invalid or expired verification code.",
|
||||
"passwordRequiredForDisable": "Current password is required to disable.",
|
||||
"disableFailed": "Failed to disable two-factor authentication."
|
||||
}
|
||||
},
|
||||
"ipWhitelist": {
|
||||
"title": "IP Whitelist",
|
||||
"description": "Configure allowed IP addresses or ranges to access this application. Leave empty to allow all IPs.",
|
||||
"label": "Allowed IP Addresses/Ranges (one per line or comma-separated):",
|
||||
"hint": "Supports IPv4, IPv6, and CIDR (e.g., 192.168.1.100, 10.0.0.0/8, 2001:db8::/32).",
|
||||
"saveButton": "Save Whitelist",
|
||||
"success": {
|
||||
"saved": "IP whitelist saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save IP whitelist."
|
||||
}
|
||||
},
|
||||
"popupEditor": {
|
||||
"title": "Popup File Editor",
|
||||
"enableLabel": "Show popup editor when opening files",
|
||||
"saveButton": "Save Setting",
|
||||
"success": {
|
||||
"saved": "Popup editor setting saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save popup editor setting."
|
||||
}
|
||||
},
|
||||
"shareEditorTabs": {
|
||||
"title": "Editor Tabs",
|
||||
"enableLabel": "Share editor tabs across all sessions",
|
||||
"description": "If enabled, all SSH sessions will share the same set of open file editor tabs. If disabled, each session will have its own independent set of tabs.",
|
||||
"saveButton": "Save Setting",
|
||||
"success": {
|
||||
"saved": "Editor tab sharing setting saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save editor tab sharing setting."
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"title": "Language Settings",
|
||||
"selectLabel": "Interface Language:",
|
||||
"saveButton": "Save Language",
|
||||
"success": {
|
||||
"saved": "Language settings saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save language settings."
|
||||
}
|
||||
},
|
||||
"passkey": {
|
||||
"title": "Passkey Settings",
|
||||
"description": "Use Passkeys (biometrics or security keys) for passwordless authentication to enhance security and convenience.",
|
||||
"nameLabel": "Passkey Name",
|
||||
"namePlaceholder": "e.g., My Laptop",
|
||||
"registerButton": "Register New Passkey",
|
||||
"error": {
|
||||
"nameRequired": "Please enter a Passkey name.",
|
||||
"cancelled": "Passkey registration was cancelled by the user.",
|
||||
"genericRegistration": "Could not register Passkey: {message}",
|
||||
"verificationFailed": "Registration failed: {message}"
|
||||
},
|
||||
"success": {
|
||||
"registered": "Passkey registered successfully!"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notification Settings",
|
||||
"addChannel": "Add Notification Channel",
|
||||
"noChannels": "No notification channels configured yet.",
|
||||
"triggers": "Triggers",
|
||||
"noEventsEnabled": "No events enabled",
|
||||
"confirmDelete": "Are you sure you want to delete the notification channel \"{name}\"? This cannot be undone.",
|
||||
"types": {
|
||||
"webhook": "Webhook",
|
||||
"email": "Email",
|
||||
"telegram": "Telegram"
|
||||
},
|
||||
"form": {
|
||||
"addTitle": "Add Notification Channel",
|
||||
"editTitle": "Edit Notification Channel",
|
||||
"name": "Channel Name:",
|
||||
"channelType": "Channel Type:",
|
||||
"channelTypeEditNote": "Channel type cannot be changed after creation.",
|
||||
"webhookMethod": "HTTP Method:",
|
||||
"webhookHeaders": "Custom Headers",
|
||||
"webhookBodyTemplate": "Body Template (Optional)",
|
||||
"webhookBodyPlaceholder": "Default: JSON payload. Use",
|
||||
"emailTo": "Recipient Email(s):",
|
||||
"emailToHelp": "Comma-separated list.",
|
||||
"emailSubjectTemplate": "Subject Template (Optional)",
|
||||
"emailSubjectPlaceholder": "Default: Notification:",
|
||||
"smtpHost": "SMTP Host:",
|
||||
"smtpPort": "SMTP Port:",
|
||||
"smtpSecure": "Use TLS/SSL",
|
||||
"smtpUser": "SMTP Username:",
|
||||
"smtpPass": "SMTP Password:",
|
||||
"smtpFrom": "Sender Email:",
|
||||
"smtpFromHelp": "Email address used in the 'From' field.",
|
||||
"testButton": "Test Notification",
|
||||
"testSuccess": "Test notification sent successfully!",
|
||||
"testFailed": "Test notification failed",
|
||||
"fillRequiredToTest": "Fill required fields to enable testing.",
|
||||
"telegramToken": "Bot Token:",
|
||||
"telegramTokenHelp": "Store securely. Consider environment variables.",
|
||||
"telegramChatId": "Chat ID:",
|
||||
"telegramMessageTemplate": "Message Template (Optional)",
|
||||
"telegramMessagePlaceholder": "Default: Markdown format. Use",
|
||||
"enabledEvents": "Enabled Events:",
|
||||
"templateHelp": "Placeholders:",
|
||||
"invalidJson": "Invalid JSON"
|
||||
},
|
||||
"events": {
|
||||
"LOGIN_SUCCESS": "Login Success",
|
||||
"LOGIN_FAILURE": "Login Failure",
|
||||
"LOGOUT": "Logout",
|
||||
"PASSWORD_CHANGED": "Password Changed",
|
||||
"2FA_ENABLED": "2FA Enabled",
|
||||
"2FA_DISABLED": "2FA Disabled",
|
||||
"PASSKEY_REGISTERED": "Passkey Registered",
|
||||
"PASSKEY_DELETED": "Passkey Deleted",
|
||||
"CONNECTION_CREATED": "Connection Created",
|
||||
"CONNECTION_UPDATED": "Connection Updated",
|
||||
"CONNECTION_DELETED": "Connection Deleted",
|
||||
"CONNECTION_TESTED": "Connection Tested",
|
||||
"CONNECTIONS_IMPORTED": "Connections Imported",
|
||||
"CONNECTIONS_EXPORTED": "Connections Exported",
|
||||
"PROXY_CREATED": "Proxy Created",
|
||||
"PROXY_UPDATED": "Proxy Updated",
|
||||
"PROXY_DELETED": "Proxy Deleted",
|
||||
"TAG_CREATED": "Tag Created",
|
||||
"TAG_UPDATED": "Tag Updated",
|
||||
"TAG_DELETED": "Tag Deleted",
|
||||
"SETTINGS_UPDATED": "Settings Updated",
|
||||
"IP_WHITELIST_UPDATED": "IP Whitelist Updated",
|
||||
"NOTIFICATION_SETTING_CREATED": "Notification Setting Created",
|
||||
"NOTIFICATION_SETTING_UPDATED": "Notification Setting Updated",
|
||||
"NOTIFICATION_SETTING_DELETED": "Notification Setting Deleted",
|
||||
"SFTP_ACTION": "SFTP Action",
|
||||
"SSH_CONNECT_SUCCESS": "SSH Connection Successful",
|
||||
"SSH_CONNECT_FAILURE": "SSH Connection Failed",
|
||||
"SSH_SHELL_FAILURE": "SSH Shell Open Failed",
|
||||
"SERVER_STARTED": "Server Started",
|
||||
"SERVER_ERROR": "Server Error",
|
||||
"DATABASE_MIGRATION": "Database Migration",
|
||||
"ADMIN_SETUP_COMPLETE": "Initial Admin Setup Completed"
|
||||
}
|
||||
},
|
||||
"appearance": {
|
||||
"title": "Appearance Settings",
|
||||
"description": "Customize the visual theme and background of the application.",
|
||||
"customizeButton": "Customize Appearance"
|
||||
},
|
||||
"autoCopyOnSelect": {
|
||||
"title": "Terminal Auto Copy",
|
||||
"enableLabel": "Copy text automatically on selection release",
|
||||
"saveButton": "Save",
|
||||
"success": {
|
||||
"saved": "Auto copy setting saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save auto copy setting."
|
||||
}
|
||||
},
|
||||
"docker": {
|
||||
"title": "Docker Manager Settings",
|
||||
"refreshIntervalLabel": "Status Refresh Interval (seconds):",
|
||||
"refreshIntervalHint": "How often to fetch Docker container status and stats (minimum 1).",
|
||||
"defaultExpandLabel": "Expand container details by default",
|
||||
"saveButton": "Save Docker Settings",
|
||||
"success": {
|
||||
"saved": "Docker settings saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save Docker settings.",
|
||||
"invalidInterval": "Refresh interval must be a positive integer."
|
||||
}
|
||||
},
|
||||
"statusMonitor": {
|
||||
"title": "Status Monitor Settings",
|
||||
"refreshIntervalLabel": "Status Refresh Interval (seconds):",
|
||||
"refreshIntervalHint": "How often to fetch server CPU, memory, disk, etc. status (minimum 1).",
|
||||
"saveButton": "Save Status Monitor Settings",
|
||||
"success": {
|
||||
"saved": "Status monitor settings saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save status monitor settings.",
|
||||
"invalidInterval": "Refresh interval must be a positive integer."
|
||||
}
|
||||
},
|
||||
"workspace": {
|
||||
"title": "Workspace & Terminal",
|
||||
"sidebarPersistentTitle": "Sidebar Behavior",
|
||||
"sidebarPersistentLabel": "Pin sidebar when opened (prevent auto-collapse)",
|
||||
"sidebarPersistentDescription": "When enabled, clicking outside the sidebar will not automatically collapse it.",
|
||||
"success": {
|
||||
"sidebarPersistentSaved": "Sidebar setting saved."
|
||||
},
|
||||
"error": {
|
||||
"sidebarPersistentSaveFailed": "Failed to save sidebar setting."
|
||||
}
|
||||
},
|
||||
"ipBlacklist": {
|
||||
"title": "IP Blacklist Management",
|
||||
"description": "Configure login attempt limits and automatic ban duration. Local addresses (127.0.0.1, ::1) will not be banned.",
|
||||
"maxAttemptsLabel": "Max Failed Attempts:",
|
||||
"banDurationLabel": "Ban Duration (seconds):",
|
||||
"saveConfigButton": "Save Configuration",
|
||||
"currentBannedTitle": "Currently Banned IP Addresses",
|
||||
"loadingList": "Loading blacklist...",
|
||||
"noBannedIps": "No IP addresses are currently in the blacklist.",
|
||||
"confirmRemoveIp": "Are you sure you want to remove the IP address \"{ip}\" from the blacklist?",
|
||||
"table": {
|
||||
"ipAddress": "IP Address",
|
||||
"attempts": "Attempts",
|
||||
"lastAttempt": "Last Attempt",
|
||||
"bannedUntil": "Banned Until",
|
||||
"actions": "Actions",
|
||||
"removeButton": "Remove",
|
||||
"deleting": "Deleting..."
|
||||
},
|
||||
"success": {
|
||||
"configUpdated": "Blacklist configuration updated successfully."
|
||||
},
|
||||
"error": {
|
||||
"fetchFailed": "Failed to fetch blacklist",
|
||||
"deleteFailed": "Failed to delete",
|
||||
"invalidMaxAttempts": "Max failed attempts must be a positive integer.",
|
||||
"invalidBanDuration": "Ban duration must be a positive integer (seconds).",
|
||||
"updateConfigFailed": "Failed to update blacklist configuration"
|
||||
}
|
||||
},
|
||||
"captcha": {
|
||||
"title": "CAPTCHA Settings",
|
||||
"description": "Configure CAPTCHA verification for the login page to prevent automated attacks.",
|
||||
"enableLabel": "Enable CAPTCHA on Login Page",
|
||||
"providerLabel": "CAPTCHA Provider:",
|
||||
"providerNone": "None (Disabled)",
|
||||
"hcaptchaHint": "Get keys from",
|
||||
"recaptchaHint": "Get keys from",
|
||||
"siteKeyLabel": "Site Key (Public):",
|
||||
"secretKeyLabel": "Secret Key (Private):",
|
||||
"secretKeyHint": "Keep this secret. It is stored securely on the server.",
|
||||
"saveButton": "Save CAPTCHA Settings",
|
||||
"success": {
|
||||
"saved": "CAPTCHA settings saved successfully."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save CAPTCHA settings."
|
||||
}
|
||||
},
|
||||
"commandInputSync": {
|
||||
"title": "Command Input Sync",
|
||||
"selectLabel": "Sync Target:",
|
||||
"targetNone": "None",
|
||||
"targetQuickCommands": "Quick Commands",
|
||||
"targetCommandHistory": "Command History",
|
||||
"description": "Sync the content of the command input bar to the search box of the selected panel in real-time.",
|
||||
"success": {
|
||||
"saved": "Sync target saved."
|
||||
},
|
||||
"error": {
|
||||
"saveFailed": "Failed to save sync target."
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"loading": "Loading...",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"testing": "Testing...",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"settings": "Settings",
|
||||
"errorOccurred": "An error occurred.",
|
||||
"close": "Close",
|
||||
"remove": "Remove",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse",
|
||||
"search": "Search",
|
||||
"all": "All",
|
||||
"filter": "Filter"
|
||||
},
|
||||
"layoutConfigurator": {
|
||||
"title": "Layout Configurator",
|
||||
"availablePanes": "Available Panes",
|
||||
"layoutPreview": "Layout Preview",
|
||||
"resetDefault": "Reset to Default",
|
||||
"noAvailablePanes": "All panes are already in the layout",
|
||||
"emptyLayout": "Layout is empty. Drag panes from the left or add a container.",
|
||||
"leftSidebar": "Left Sidebar Panes",
|
||||
"rightSidebar": "Right Sidebar Panes",
|
||||
"dropHere": "Drop panes from available list here",
|
||||
"saveError": "Error saving layout. Please try again later.",
|
||||
"confirmClearLayout": "Are you sure you want to clear the entire layout? All panes will return to the available list."
|
||||
},
|
||||
"layoutNodeEditor": {
|
||||
"containerLabel": "Container ({direction})",
|
||||
"horizontal": "Horizontal",
|
||||
"vertical": "Vertical",
|
||||
"toggleDirection": "Toggle Direction",
|
||||
"addHorizontalContainer": "Add Horizontal Container",
|
||||
"addVerticalContainer": "Add Vertical Container",
|
||||
"removeNode": "Remove this node",
|
||||
"dragHandle": "Drag to reorder or move",
|
||||
"dropHere": "Drop panes or containers here"
|
||||
},
|
||||
"auditLog": {
|
||||
"title": "Audit Logs",
|
||||
"searchPlaceholder": "Search details...",
|
||||
"noLogs": "No audit logs found.",
|
||||
"table": {
|
||||
"timestamp": "Timestamp",
|
||||
"actionType": "Action Type",
|
||||
"details": "Details"
|
||||
},
|
||||
"paginationInfo": "Page {currentPage} of {totalPages} ({totalLogs} total logs)",
|
||||
"actions": {
|
||||
"LOGIN_SUCCESS": "Login Success",
|
||||
"LOGIN_FAILURE": "Login Failure",
|
||||
"LOGOUT": "Logout",
|
||||
"PASSWORD_CHANGED": "Password Changed",
|
||||
"2FA_ENABLED": "2FA Enabled",
|
||||
"2FA_DISABLED": "2FA Disabled",
|
||||
"PASSKEY_REGISTERED": "Passkey Registered",
|
||||
"PASSKEY_DELETED": "Passkey Deleted",
|
||||
"CONNECTION_CREATED": "Connection Created",
|
||||
"CONNECTION_UPDATED": "Connection Updated",
|
||||
"CONNECTION_DELETED": "Connection Deleted",
|
||||
"CONNECTION_TESTED": "Connection Tested",
|
||||
"CONNECTIONS_IMPORTED": "Connections Imported",
|
||||
"CONNECTIONS_EXPORTED": "Connections Exported",
|
||||
"PROXY_CREATED": "Proxy Created",
|
||||
"PROXY_UPDATED": "Proxy Updated",
|
||||
"PROXY_DELETED": "Proxy Deleted",
|
||||
"TAG_CREATED": "Tag Created",
|
||||
"TAG_UPDATED": "Tag Updated",
|
||||
"TAG_DELETED": "Tag Deleted",
|
||||
"SETTINGS_UPDATED": "Settings Updated",
|
||||
"IP_WHITELIST_UPDATED": "IP Whitelist Updated",
|
||||
"NOTIFICATION_SETTING_CREATED": "Notification Setting Created",
|
||||
"NOTIFICATION_SETTING_UPDATED": "Notification Setting Updated",
|
||||
"NOTIFICATION_SETTING_DELETED": "Notification Setting Deleted",
|
||||
"API_KEY_CREATED": "API Key Created",
|
||||
"API_KEY_DELETED": "API Key Deleted",
|
||||
"SFTP_ACTION": "SFTP Action",
|
||||
"SSH_CONNECT_SUCCESS": "SSH Connection Successful",
|
||||
"SSH_CONNECT_FAILURE": "SSH Connection Failed",
|
||||
"SSH_SHELL_FAILURE": "SSH Shell Open Failed",
|
||||
"SERVER_STARTED": "Server Started",
|
||||
"SERVER_ERROR": "Server Error",
|
||||
"DATABASE_MIGRATION": "Database Migration",
|
||||
"ADMIN_SETUP_COMPLETE": "Initial Admin Setup Completed",
|
||||
"REMOTE_DESKTOP_CONNECTING": "Remote Desktop Connecting",
|
||||
"REMOTE_DESKTOP_CONNECTED": "Remote Desktop Connected",
|
||||
"REMOTE_DESKTOP_DISCONNECTED": "Remote Desktop Disconnected"
|
||||
}
|
||||
},
|
||||
"workspaceConnectionList": {
|
||||
"untagged": "Untagged",
|
||||
"searchPlaceholder": "Search name or host...",
|
||||
"noResults": "No connections found matching \"{searchTerm}\"."
|
||||
},
|
||||
"commandInputBar": {
|
||||
"placeholder": "Enter command and press Enter to send...",
|
||||
"searchPlaceholder": "Search in terminal...",
|
||||
"openSearch": "Open terminal search",
|
||||
"closeSearch": "Close terminal search",
|
||||
"findPrevious": "Find previous",
|
||||
"findNext": "Find next",
|
||||
"configureFocusSwitch": "Configure Focus Switcher"
|
||||
},
|
||||
"layout": {
|
||||
"loading": "Loading...",
|
||||
"configure": "Configure Layout",
|
||||
"pane": {
|
||||
"connections": "Connections",
|
||||
"terminal": "Terminal",
|
||||
"commandBar": "Command Bar",
|
||||
"fileManager": "File Manager",
|
||||
"editor": "Editor",
|
||||
"statusMonitor": "Status Monitor",
|
||||
"commandHistory": "Command History",
|
||||
"quickCommands": "Quick Commands",
|
||||
"dockerManager": "Docker Manager"
|
||||
},
|
||||
"noActiveSession": {
|
||||
"title": "No Active Session",
|
||||
"message": "Please connect to a session first",
|
||||
"fileManagerSidebar": "File Manager requires an active session",
|
||||
"statusMonitorSidebar": "Status Monitor requires an active session"
|
||||
}
|
||||
},
|
||||
"header": {
|
||||
"hide": "Hide"
|
||||
},
|
||||
"commandHistory": {
|
||||
"searchPlaceholder": "Search history...",
|
||||
"clear": "Clear",
|
||||
"copy": "Copy",
|
||||
"delete": "Delete",
|
||||
"loading": "Loading...",
|
||||
"empty": "No history records",
|
||||
"confirmClear": "Are you sure you want to clear all history?",
|
||||
"copied": "Copied to clipboard",
|
||||
"copyFailed": "Copy failed"
|
||||
},
|
||||
"quickCommands": {
|
||||
"searchPlaceholder": "Search name or command...",
|
||||
"add": "Add",
|
||||
"sortByName": "Name",
|
||||
"sortByUsage": "Usage Frequency",
|
||||
"usageCount": "Usage Count",
|
||||
"empty": "No quick commands. Click '+' to create one!",
|
||||
"confirmDelete": "Are you sure you want to delete the quick command \"{name}\"?",
|
||||
"form": {
|
||||
"titleAdd": "Add Quick Command",
|
||||
"titleEdit": "Edit Quick Command",
|
||||
"name": "Name:",
|
||||
"namePlaceholder": "Optional, for quick identification",
|
||||
"command": "Command:",
|
||||
"commandPlaceholder": "e.g., ls -alh /home/user",
|
||||
"errorCommandRequired": "Command cannot be empty",
|
||||
"add": "Add"
|
||||
}
|
||||
},
|
||||
"setup": {
|
||||
"title": "Initial Setup",
|
||||
"description": "Create the first administrator account.",
|
||||
"username": "Username",
|
||||
"usernamePlaceholder": "Enter username",
|
||||
"password": "Password",
|
||||
"passwordPlaceholder": "Enter password",
|
||||
"confirmPassword": "Confirm Password",
|
||||
"confirmPasswordPlaceholder": "Confirm your password",
|
||||
"submitButton": "Create Account",
|
||||
"settingUp": "Creating account...",
|
||||
"success": "Account created successfully! Redirecting to login...",
|
||||
"error": {
|
||||
"passwordsDoNotMatch": "Passwords do not match.",
|
||||
"fieldsRequired": "Username and password are required.",
|
||||
"generic": "An error occurred during setup. Please check the server logs."
|
||||
}
|
||||
},
|
||||
"focusSwitcher": {
|
||||
"configTitle": "Configure Focus Switcher",
|
||||
"availableInputs": "Available Inputs",
|
||||
"configuredSequence": "Configured Sequence (Drag to Sort)",
|
||||
"dragHere": "Drag inputs from the left here",
|
||||
"allInputsConfigured": "All available inputs are configured",
|
||||
"input": {
|
||||
"commandHistorySearch": "Command History Search",
|
||||
"quickCommandsSearch": "Quick Commands Search",
|
||||
"fileManagerSearch": "File Manager Search",
|
||||
"commandInput": "Command Input",
|
||||
"terminalSearch": "Terminal Search",
|
||||
"connectionListSearch": "Connection List Search",
|
||||
"fileEditorActive": "File Editor",
|
||||
"fileManagerPathInput": "File Manager Path Input"
|
||||
},
|
||||
"confirmClose": "You have unsaved changes. Are you sure you want to close?",
|
||||
"shortcutPlaceholder": "e.g., Alt+K",
|
||||
"shortcutSettings": "Shortcut Settings",
|
||||
"noInputsAvailable": "No configurable inputs available"
|
||||
},
|
||||
"dockerManager": {
|
||||
"loading": "Loading Docker Containers...",
|
||||
"notAvailable": "Docker Not Available on Remote Host",
|
||||
"installHintRemote": "Please ensure Docker is installed and running on the remote host.",
|
||||
"error": {
|
||||
"fetchFailed": "Failed to fetch remote container status",
|
||||
"commandFailed": "Failed to execute remote command '{command}'",
|
||||
"invalidResponse": "Received invalid response from server",
|
||||
"noActiveSession": "No active session",
|
||||
"connectFirst": "Please connect to a session first",
|
||||
"sshDisconnected": "SSH session disconnected.",
|
||||
"sshError": "SSH Connection Error",
|
||||
"sshNotConnected": "SSH session is not connected."
|
||||
},
|
||||
"noContainers": "No running or stopped containers found on remote host.",
|
||||
"header": {
|
||||
"name": "Name",
|
||||
"image": "Image",
|
||||
"status": "Status",
|
||||
"ports": "Ports",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"action": {
|
||||
"restart": "Restart",
|
||||
"stop": "Stop",
|
||||
"start": "Start",
|
||||
"remove": "Remove"
|
||||
},
|
||||
"waitingForSsh": "Waiting for SSH connection...",
|
||||
"stats": {
|
||||
"noData": "No stats data available.",
|
||||
"cpu": "CPU %",
|
||||
"memory": "Memory Usage / Limit",
|
||||
"netIO": "Network I/O",
|
||||
"blockIO": "Block I/O",
|
||||
"pids": "PIDs"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"recentConnections": "Recent Connections",
|
||||
"lastConnected": "Last connected:",
|
||||
"noRecentConnections": "No recent connection records",
|
||||
"viewAllConnections": "View All Connections",
|
||||
"recentActivity": "Recent Activity",
|
||||
"noRecentActivity": "No recent activity records",
|
||||
"viewFullAuditLog": "View Full Audit Log"
|
||||
},
|
||||
"terminalTabBar": {
|
||||
"selectServerTitle": "Select server to connect"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user