This commit is contained in:
Baobhan Sith
2025-04-24 11:07:28 +08:00
parent 2f93355203
commit b5cba6d23a
2 changed files with 148 additions and 452 deletions
+75 -227
View File
@@ -2,17 +2,13 @@
"appName": "Nexus Terminal",
"nav": {
"dashboard": "Dashboard",
"connections": "Connections",
"terminal": "Terminal",
"proxies": "Proxies",
"login": "Login",
"logout": "Logout",
"tags": "Tags",
"notifications": "Notifications",
"auditLogs": "Audit Logs",
"settings": "Settings",
"hideLayout": "Hide Layout Elements",
"showLayout": "Show Layout Elements",
"customizeStyle": "Customize Style"
},
"styleCustomizer": {
@@ -21,9 +17,6 @@
"terminalStyles": "Terminal Styles",
"backgroundSettings": "Background",
"uiDescription": "Adjust colors, fonts, etc. for the application interface.",
"terminalDescription": "Customize the color scheme and font for the terminal.",
"resetDefault": "Reset to Default",
"saveChanges": "Save Changes",
"resetUiTheme": "Reset UI Theme",
"saveUiTheme": "Save UI Theme",
"terminalFontFamily": "Terminal Font",
@@ -31,17 +24,12 @@
"terminalFontDescription": "Enter font names, separated by commas. Use quotes for names with spaces.",
"terminalThemeSelection": "Terminal Theme",
"activeTheme": "Active Theme",
"selectThemePrompt": "Select a theme...",
"preset": "Preset",
"addNewTheme": "New Theme",
"importTheme": "Import Theme",
"exportTheme": "Export Selected",
"editThemeTitle": "Edit Terminal Theme",
"newThemeTitle": "New Terminal Theme",
"newThemeDefaultName": "New Theme",
"themeName": "Theme Name",
"confirmDeleteTheme": "Are you sure you want to delete the theme \"{name}\"? This action cannot be undone.",
"confirmCloseEditing": "You are currently editing a theme. Closing will discard unsaved changes. Are you sure?",
"errorThemeNameRequired": "Theme name cannot be empty.",
"themeUpdatedSuccess": "Theme updated successfully.",
"themeCreatedSuccess": "Theme created successfully.",
@@ -58,18 +46,12 @@
"removePageBg": "Remove Page Bg",
"uploadTerminalBg": "Upload Terminal Bg",
"removeTerminalBg": "Remove Terminal Bg",
"pageBgOpacity": "Page Bg Opacity",
"terminalBgOpacity": "Terminal Bg Opacity",
"uploadFailed": "Upload failed: {message}",
"pageBgUploadSuccess": "Page background uploaded successfully.",
"terminalBgUploadSuccess": "Terminal background uploaded successfully.",
"confirmRemovePageBg": "Are you sure you want to remove the page background image?",
"confirmRemoveTerminalBg": "Are you sure you want to remove the terminal background image?",
"pageBgRemoved": "Page background removed.",
"terminalBgRemoved": "Terminal background removed.",
"removeBgFailed": "Failed to remove background: {message}",
"setOpacityFailed": "Failed to set opacity: {message}",
"uiThemeSaved": "UI theme saved.",
"uiThemeSaveFailed": "Failed to save UI theme: {message}",
"uiThemeReset": "UI theme reset to default.",
"uiThemeResetFailed": "Failed to reset UI theme: {message}",
@@ -90,7 +72,6 @@
"errorInvalidJsonObject": "Invalid input. Please provide a valid JSON object.",
"errorInvalidJsonConfig": "Invalid JSON configuration",
"editAsCopy": "Edit as Copy",
"copySuffix": "Copy",
"cannotDeletePreset": "Cannot delete preset theme",
"applyThemeTooltip": "Apply this theme",
"terminalThemeJsonEditorTitle": "Terminal Theme JSON Editor",
@@ -99,9 +80,6 @@
"errorFixJsonBeforeSave": "Please fix the JSON format errors before saving.",
"applyButton": "Apply",
"searchThemePlaceholder": "Search theme name...",
"sortBy": "Sort by:",
"sortAsc": "Name Asc",
"sortDesc": "Name Desc",
"exportActiveThemeTooltip": "Export the currently active theme as a JSON file",
"exportActiveTheme": "Export Active Theme"
},
@@ -111,16 +89,12 @@
"password": "Password",
"loginButton": "Login",
"loggingIn": "Logging in...",
"error": "Login failed. Please check your username and password.",
"twoFactorPrompt": "Enter your two-factor authentication code:",
"verifyButton": "Verify",
"rememberMe": "Remember Me (7 days)"
},
"connections": {
"title": "Connection Management",
"addConnection": "Add New Connection",
"loading": "Loading connections...",
"error": "Failed to load connections: {error}",
"noConnections": "No connections yet. Click 'Add New Connection' to create one!",
"table": {
"name": "Name",
@@ -177,37 +151,26 @@
"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.",
"errorPasswordUndefined": "Password field is required for password authentication.",
"errorPrivateKeyRequired": "Private key is required for key authentication.",
"errorUnknown": "An unknown error occurred during testing.",
"errorNetwork": "Network error or server unreachable.",
"testingInProgress": "Testing...",
"errorPrefix": "Error:"
"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."
"confirmDelete": "Are you sure you want to delete the connection \"{name}\"? This cannot be undone."
},
"errors": {
"deleteFailed": "Failed to delete connection: {error}"
"deleteFailed": "Failed to delete connection: {error}"
},
"status": {
"never": "Never"
},
"filterAllTags": "All Tags",
"untaggedGroup": "Untagged",
"noUntaggedConnections": "No untagged connections found.",
"exportConnections": "Export Connections",
"importConnections": "Import Connections",
"exportError": "Failed to export connections: {message}",
"importError": "Failed to import connections: {message}",
"importErrorFileType": "Invalid file type. Please select a JSON file.",
"importErrorUnknown": "Unknown import error occurred.",
"importErrorNetwork": "Network error during import.",
"importSuccess": "Import completed. Successful: {successCount}, Failed: {failureCount}."
"noUntaggedConnections": "No untagged connections found."
},
"proxies": {
"title": "Proxy Management",
@@ -215,15 +178,6 @@
"loading": "Loading proxies...",
"error": "Failed to load proxies: {error}",
"noProxies": "No proxies yet. Click 'Add New Proxy' to create one!",
"table": {
"name": "Name",
"type": "Type",
"host": "Host",
"port": "Port",
"user": "User",
"updatedAt": "Updated At",
"actions": "Actions"
},
"actions": {
"edit": "Edit",
"delete": "Delete"
@@ -250,47 +204,14 @@
"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."
"confirmDelete": "Are you sure you want to delete the proxy \"{name}\"? This cannot be undone."
},
"errors": {
"deleteFailed": "Failed to delete proxy: {error}"
"deleteFailed": "Failed to delete proxy: {error}"
}
},
"workspace": {
"noActiveSession": "No Active Session",
"selectConnectionPrompt": "Please select a connection",
"selectConnectionHint": "Select a connection from the left list, or click the 'Add New Connection' button to create a new one.",
"statusBar": "Status: {status} | Connection: {id}",
"status": {
"initializing": "Initializing...",
"connectingWs": "Connecting to {url}...",
"wsConnected": "WebSocket connected, requesting SSH session...",
"connectingSsh": "Connecting to {host}...",
"sshConnected": "SSH connected, opening shell...",
"connected": "Connected",
"disconnected": "Disconnected: {reason}",
"wsClosed": "WebSocket closed (Code: {code})",
"error": "Error: {message}",
"wsError": "WebSocket connection error",
"sshError": "SSH Error: {message}",
"decryptError": "Cannot decrypt credentials.",
"noConnInfo": "Connection config not found for ID {id}.",
"noPassword": "Connection config is missing password.",
"shellError": "Failed to open shell: {message}",
"alreadyConnected": "An active SSH connection already exists.",
"unknown": "Unknown status",
"wsClosedWillRetry": "WebSocket connection closed, will attempt reconnect {attempt} in {seconds} seconds...",
"reconnecting": "Attempting to reconnect...",
"reconnectFailed": "Reconnect failed"
},
"terminal": {
"infoPrefix": "[INFO]",
"errorPrefix": "[ERROR]",
"disconnectMsg": "--- SSH Connection Closed ({reason}) ---",
"wsCloseMsg": "--- WebSocket Connection Closed (Code: {code}) ---",
"wsErrorMsg": "--- WebSocket Connection Error ---",
"decryptErrorMsg": "--- Error: Could not decrypt connection credentials ---",
"genericErrorMsg": "--- Error: {message} ---",
"terminal": {
"reconnectingMsg": "Attempting to reconnect..."
}
},
@@ -321,20 +242,13 @@
"name": "Name",
"size": "Size",
"permissions": "Permissions",
"modified": "Modified",
"actions": "Actions"
"modified": "Modified"
},
"uploadStatus": {
"pending": "Pending",
"uploading": "Uploading",
"paused": "Paused",
"success": "Success",
"error": "Error",
"cancelled": "Cancelled"
},
"errors": {
"generic": "Error",
"websocketNotConnected": "WebSocket not connected",
"missingConnectionId": "Cannot get current connection ID",
"createFolderFailed": "Failed to create folder",
"deleteFailed": "Failed to delete",
@@ -365,8 +279,6 @@
"saveSuccess": "Save successful",
"saveError": "Save error",
"editPathTooltip": "Click path to edit",
"noActiveSession": "No active session",
"loadDirectoryFailed": "Failed to load directory",
"noOpenFile": "No file open",
"selectFileToEdit": "Select a file from the file manager to start editing.",
"searchPlaceholder": "Search files..."
@@ -389,8 +301,7 @@
"gigaBytesPerSecond": "GB/s",
"megaBytes": "MB",
"gigaBytes": "GB",
"swapNotAvailable": "Swap Unavailable",
"noActiveSession": "No active session"
"swapNotAvailable": "Swap Unavailable"
},
"tags": {
"title": "Tag Management",
@@ -398,49 +309,20 @@
"loading": "Loading tags...",
"error": "Failed to load tags: {error}",
"noTags": "No tags yet. Click 'Add New Tag' to create one!",
"table": {
"name": "Name",
"updatedAt": "Updated At",
"actions": "Actions"
},
"actions": {
"edit": "Edit",
"delete": "Delete"
},
"form": {
"title": "Add New Tag",
"titleEdit": "Edit Tag",
"name": "Tag Name:",
"confirm": "Confirm Add",
"confirmEdit": "Confirm Edit",
"adding": "Adding...",
"saving": "Saving...",
"cancel": "Cancel",
"errorNameRequired": "Tag name cannot be empty.",
"errorAdd": "Failed to add tag: {error}",
"errorUpdate": "Failed to update tag: {error}"
},
"prompts": {
"confirmDelete": "Are you sure you want to delete the tag \"{name}\"? This cannot be undone."
},
"errors": {
"deleteFailed": "Failed to delete tag: {error}"
},
"status": {
"never": "Never"
"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",
"workspace": "Workspace Settings",
"system": "System Settings"
},
"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:",
@@ -494,7 +376,6 @@
"saved": "IP whitelist saved successfully."
},
"error": {
"fetchFailed": "Failed to fetch IP whitelist settings.",
"saveFailed": "Failed to save IP whitelist."
}
},
@@ -529,7 +410,6 @@
"saved": "Language settings saved successfully."
},
"error": {
"fetchFailed": "Failed to fetch language settings.",
"saveFailed": "Failed to save language settings."
}
},
@@ -539,15 +419,11 @@
"nameLabel": "Passkey Name",
"namePlaceholder": "e.g., My Laptop",
"registerButton": "Register New Passkey",
"deleteButton": "Delete Passkey",
"confirmDelete": "Are you sure you want to delete the Passkey '{name}'?",
"noPasskeys": "No Passkeys registered yet.",
"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}",
"unknown": "Registration failed: Unknown error."
"verificationFailed": "Registration failed: {message}"
},
"success": {
"registered": "Passkey registered successfully!"
@@ -589,7 +465,6 @@
"testButton": "Test Notification",
"testSuccess": "Test notification sent successfully!",
"testFailed": "Test notification failed",
"saveToTest": "Save the settings before testing.",
"fillRequiredToTest": "Fill required fields to enable testing.",
"telegramToken": "Bot Token:",
"telegramTokenHelp": "Store securely. Consider environment variables.",
@@ -636,10 +511,10 @@
"ADMIN_SETUP_COMPLETE": "Initial Admin Setup Completed"
}
},
"appearance": {
"title": "Appearance Settings",
"description": "Customize the visual theme and background of the application.",
"customizeButton": "Customize Appearance"
"appearance": {
"title": "Appearance Settings",
"description": "Customize the visual theme and background of the application.",
"customizeButton": "Customize Appearance"
},
"autoCopyOnSelect": {
"title": "Terminal Auto Copy",
@@ -653,44 +528,44 @@
}
},
"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."
}
}
"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."
}
}
},
"common": {
"loading": "Loading...",
@@ -704,9 +579,13 @@
"disabled": "Disabled",
"settings": "Settings",
"errorOccurred": "An error occurred.",
"dismiss": "Dismiss",
"close": "Close",
"remove": "Remove"
"remove": "Remove",
"expand": "Expand",
"collapse": "Collapse",
"search": "Search",
"all": "All",
"filter": "Filter"
},
"layoutConfigurator": {
"title": "Layout Configurator",
@@ -779,7 +658,6 @@
"closeSearch": "Close terminal search",
"findPrevious": "Find previous",
"findNext": "Find next",
"noResults": "No results",
"configureFocusSwitch": "Configure Focus Switcher"
},
"layout": {
@@ -801,7 +679,6 @@
"hide": "Hide"
},
"commandHistory": {
"title": "Command History",
"searchPlaceholder": "Search history...",
"clear": "Clear",
"copy": "Copy",
@@ -813,10 +690,8 @@
"copyFailed": "Copy failed"
},
"quickCommands": {
"title": "Quick Commands",
"searchPlaceholder": "Search name or command...",
"add": "Add",
"sortBy": "Sort by:",
"sortByName": "Name",
"sortByUsage": "Usage Frequency",
"usageCount": "Usage Count",
@@ -874,7 +749,6 @@
"dockerManager": {
"loading": "Loading Docker Containers...",
"notAvailable": "Docker Not Available on Remote Host",
"installHint": "Please ensure Docker is installed and running on the remote host.",
"installHintRemote": "Please ensure Docker is installed and running on the remote host.",
"error": {
"fetchFailed": "Failed to fetch remote container status",
@@ -895,8 +769,6 @@
"actions": "Actions"
},
"action": {
"up": "Start/Up",
"down": "Remove/Down",
"restart": "Restart",
"stop": "Stop",
"start": "Start",
@@ -904,9 +776,6 @@
},
"waitingForSsh": "Waiting for SSH connection...",
"stats": {
"loading": "Loading stats...",
"error": "Error loading stats",
"errorGeneric": "Could not load container statistics.",
"noData": "No stats data available.",
"cpu": "CPU %",
"memory": "Memory Usage / Limit",
@@ -914,26 +783,5 @@
"blockIO": "Block I/O",
"pids": "PIDs"
}
},
"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.",
"dismiss": "Dismiss",
"close": "Close",
"remove": "Remove",
"expand": "Expand",
"collapse": "Collapse",
"search": "Search",
"all": "All",
"filter": "Filter"
}
}
+73 -225
View File
@@ -2,17 +2,13 @@
"appName": "星枢终端",
"nav": {
"dashboard": "仪表盘",
"connections": "连接管理",
"terminal": "终端",
"proxies": "代理管理",
"login": "登录",
"logout": "登出",
"tags": "标签管理",
"notifications": "通知管理",
"auditLogs": "审计日志",
"settings": "设置",
"hideLayout": "隐藏布局元素",
"showLayout": "显示布局元素",
"customizeStyle": "自定义外观"
},
"styleCustomizer": {
@@ -21,9 +17,6 @@
"terminalStyles": "终端样式",
"backgroundSettings": "背景设置",
"uiDescription": "调整应用程序界面的颜色、字体等。",
"terminalDescription": "自定义终端的颜色方案和字体。",
"resetDefault": "恢复默认",
"saveChanges": "保存更改",
"resetUiTheme": "重置界面主题",
"saveUiTheme": "保存界面主题",
"terminalFontFamily": "终端字体",
@@ -31,17 +24,12 @@
"terminalFontDescription": "输入字体名称,用英文逗号分隔。如果字体名称包含空格,请用引号括起来。",
"terminalThemeSelection": "终端主题",
"activeTheme": "当前主题",
"selectThemePrompt": "选择一个主题...",
"preset": "预设",
"addNewTheme": "新建主题",
"importTheme": "导入主题",
"exportTheme": "导出选中主题",
"editThemeTitle": "编辑终端主题",
"newThemeTitle": "新建终端主题",
"newThemeDefaultName": "新主题",
"themeName": "主题名称",
"confirmDeleteTheme": "确定要删除主题 \"{name}\" 吗?此操作不可撤销。",
"confirmCloseEditing": "您正在编辑主题,关闭将丢失未保存的更改。确定要关闭吗?",
"errorThemeNameRequired": "主题名称不能为空。",
"themeUpdatedSuccess": "主题更新成功。",
"themeCreatedSuccess": "主题创建成功。",
@@ -58,18 +46,12 @@
"removePageBg": "移除页面背景",
"uploadTerminalBg": "上传终端背景",
"removeTerminalBg": "移除终端背景",
"pageBgOpacity": "页面背景不透明度",
"terminalBgOpacity": "终端背景不透明度",
"uploadFailed": "上传失败: {message}",
"pageBgUploadSuccess": "页面背景上传成功。",
"terminalBgUploadSuccess": "终端背景上传成功。",
"confirmRemovePageBg": "确定要移除页面背景图片吗?",
"confirmRemoveTerminalBg": "确定要移除终端背景图片吗?",
"pageBgRemoved": "页面背景已移除。",
"terminalBgRemoved": "终端背景已移除。",
"removeBgFailed": "移除背景失败: {message}",
"setOpacityFailed": "设置透明度失败: {message}",
"uiThemeSaved": "界面主题已保存。",
"uiThemeSaveFailed": "保存界面主题失败: {message}",
"uiThemeReset": "界面主题已重置为默认值。",
"uiThemeResetFailed": "重置界面主题失败: {message}",
@@ -90,7 +72,6 @@
"errorInvalidJsonObject": "输入无效。请输入一个有效的 JSON 对象。",
"errorInvalidJsonConfig": "无效的 JSON 配置",
"editAsCopy": "编辑副本",
"copySuffix": "副本",
"cannotDeletePreset": "无法删除预设主题",
"applyThemeTooltip": "应用此主题",
"terminalThemeJsonEditorTitle": "终端主题 JSON 编辑器",
@@ -99,9 +80,6 @@
"errorFixJsonBeforeSave": "请先修复 JSON 格式错误再保存。",
"applyButton": "应用",
"searchThemePlaceholder": "搜索主题名称...",
"sortBy": "排序:",
"sortAsc": "名称升序",
"sortDesc": "名称降序",
"exportActiveThemeTooltip": "将当前激活的主题导出为 JSON 文件",
"exportActiveTheme": "导出当前主题"
},
@@ -111,16 +89,12 @@
"password": "密码",
"loginButton": "登录",
"loggingIn": "正在登录...",
"error": "登录失败,请检查用户名或密码。",
"twoFactorPrompt": "请输入两步验证码:",
"verifyButton": "验证",
"rememberMe": "记住我 (7 天)"
},
"connections": {
"title": "连接管理",
"addConnection": "添加新连接",
"loading": "正在加载连接...",
"error": "加载连接失败: {error}",
"noConnections": "还没有任何连接。点击'添加新连接'来创建一个吧!",
"table": {
"name": "名称",
@@ -177,37 +151,26 @@
"testing": "测试中..."
},
"test": {
"success": "连接测试成功!",
"failed": "连接测试失败: {error}",
"latencyTooltip": "此延迟测量建立全新 SSH 连接所需的时间(包括 TCP 连接、代理协商、SSH 握手、认证等步骤),通常高于已建立连接上的交互延迟。",
"errorMissingFields": "请填写主机、端口、用户名并选择认证方式。",
"errorPasswordUndefined": "密码认证方式需要提供密码字段。",
"errorPrivateKeyRequired": "密钥认证方式需要提供私钥。",
"errorUnknown": "测试过程中发生未知错误。",
"errorNetwork": "网络错误或服务器无法访问。",
"testingInProgress": "测试中...",
"errorPrefix": "错误:"
"success": "连接测试成功!",
"failed": "连接测试失败: {error}",
"latencyTooltip": "此延迟测量建立全新 SSH 连接所需的时间(包括 TCP 连接、代理协商、SSH 握手、认证等步骤),通常高于已建立连接上的交互延迟。",
"errorMissingFields": "请填写主机、端口、用户名并选择认证方式。",
"errorUnknown": "测试过程中发生未知错误。",
"errorNetwork": "网络错误或服务器无法访问。",
"testingInProgress": "测试中...",
"errorPrefix": "错误:"
},
"prompts": {
"confirmDelete": "确定要删除连接 \"{name}\" 吗?此操作不可撤销。"
"confirmDelete": "确定要删除连接 \"{name}\" 吗?此操作不可撤销。"
},
"errors": {
"deleteFailed": "删除连接失败: {error}"
"deleteFailed": "删除连接失败: {error}"
},
"status": {
"never": "从未"
},
"filterAllTags": "所有标签",
"untaggedGroup": "未标记",
"noUntaggedConnections": "没有未标记的连接。",
"exportConnections": "导出连接",
"importConnections": "导入连接",
"exportError": "导出连接失败: {message}",
"importError": "导入连接失败: {message}",
"importErrorFileType": "文件类型无效。请选择 JSON 文件。",
"importErrorUnknown": "发生未知导入错误。",
"importErrorNetwork": "导入过程中发生网络错误。",
"importSuccess": "导入完成。成功: {successCount}, 失败: {failureCount}."
"noUntaggedConnections": "没有未标记的连接。"
},
"proxies": {
"title": "代理管理",
@@ -215,15 +178,6 @@
"loading": "正在加载代理...",
"error": "加载代理列表失败: {error}",
"noProxies": "还没有任何代理配置。点击'添加新代理'来创建一个吧!",
"table": {
"name": "名称",
"type": "类型",
"host": "主机",
"port": "端口",
"user": "用户名",
"updatedAt": "更新时间",
"actions": "操作"
},
"actions": {
"edit": "编辑",
"delete": "删除"
@@ -250,47 +204,14 @@
"passwordUpdateNote": "将密码留空以保留现有密码。"
},
"prompts": {
"confirmDelete": "确定要删除代理 \"{name}\" 吗?此操作不可撤销。"
"confirmDelete": "确定要删除代理 \"{name}\" 吗?此操作不可撤销。"
},
"errors": {
"deleteFailed": "删除代理失败: {error}"
"deleteFailed": "删除代理失败: {error}"
}
},
"workspace": {
"noActiveSession": "无活动会话",
"statusBar": "状态: {status} | 连接: {id}",
"status": {
"initializing": "正在初始化...",
"connectingWs": "正在连接到 {url}...",
"wsConnected": "WebSocket 已连接,正在请求 SSH 会话...",
"connectingSsh": "正在连接到 {host}...",
"sshConnected": "SSH 连接成功,正在打开 Shell...",
"connected": "已连接",
"disconnected": "已断开: {reason}",
"wsClosed": "WebSocket 已关闭 (代码: {code})",
"error": "错误: {message}",
"wsError": "WebSocket 连接错误",
"sshError": "SSH 错误: {message}",
"decryptError": "无法解密连接凭证。",
"noConnInfo": "未找到 ID 为 {id} 的连接配置。",
"noPassword": "连接配置缺少密码信息。",
"shellError": "打开 Shell 失败: {message}",
"alreadyConnected": "已存在活动的 SSH 连接。",
"unknown": "未知状态",
"wsClosedWillRetry": "WebSocket 连接已关闭,将在 {seconds} 秒后尝试第 {attempt} 次重连...",
"reconnecting": "正在尝试重新连接...",
"reconnectFailed": "重连失败"
},
"selectConnectionPrompt": "请选择一个连接",
"selectConnectionHint": "从左侧列表中选择一个连接,或点击'添加新连接'按钮创建一个新连接。",
"terminal": {
"infoPrefix": "[信息]",
"errorPrefix": "[错误]",
"disconnectMsg": "--- SSH 连接已关闭 ({reason}) ---",
"wsCloseMsg": "--- WebSocket 连接已关闭 (代码: {code}) ---",
"wsErrorMsg": "--- WebSocket 连接错误 ---",
"decryptErrorMsg": "--- 错误:无法解密连接凭证 ---",
"genericErrorMsg": "--- 错误: {message} ---",
"terminal": {
"reconnectingMsg": "正在尝试重新连接..."
}
},
@@ -321,20 +242,13 @@
"name": "名称",
"size": "大小",
"permissions": "权限",
"modified": "修改时间",
"actions": "操作"
"modified": "修改时间"
},
"uploadStatus": {
"pending": "等待中",
"uploading": "上传中",
"paused": "已暂停",
"success": "成功",
"error": "错误",
"cancelled": "已取消"
},
"errors": {
"generic": "错误",
"websocketNotConnected": "WebSocket 未连接",
"missingConnectionId": "无法获取当前连接 ID",
"createFolderFailed": "创建文件夹失败",
"deleteFailed": "删除失败",
@@ -365,8 +279,6 @@
"saveSuccess": "保存成功",
"saveError": "保存出错",
"editPathTooltip": "点击路径进行编辑",
"noActiveSession": "无活动会话",
"loadDirectoryFailed": "加载目录失败",
"noOpenFile": "未打开文件",
"selectFileToEdit": "请从文件管理器中选择文件以开始编辑。",
"searchPlaceholder": "搜索文件..."
@@ -389,8 +301,7 @@
"gigaBytesPerSecond": "GB/s",
"megaBytes": "MB",
"gigaBytes": "GB",
"swapNotAvailable": "Swap 不可用",
"noActiveSession": "无活动会话"
"swapNotAvailable": "Swap 不可用"
},
"tags": {
"title": "标签管理",
@@ -398,49 +309,20 @@
"loading": "正在加载标签...",
"error": "加载标签列表失败: {error}",
"noTags": "还没有任何标签。点击'添加新标签'来创建一个吧!",
"table": {
"name": "名称",
"updatedAt": "更新时间",
"actions": "操作"
},
"actions": {
"edit": "编辑",
"delete": "删除"
},
"form": {
"title": "添加新标签",
"titleEdit": "编辑标签",
"name": "标签名称:",
"confirm": "确认添加",
"confirmEdit": "确认编辑",
"adding": "正在添加...",
"saving": "正在保存...",
"cancel": "取消",
"errorNameRequired": "标签名称不能为空。",
"errorAdd": "添加标签失败: {error}",
"errorUpdate": "更新标签失败: {error}"
},
"prompts": {
"confirmDelete": "确定要删除标签 \"{name}\" 吗?此操作不可撤销。"
},
"errors": {
"deleteFailed": "删除标签失败: {error}"
},
"status": {
"never": "从未"
"confirmDelete": "确定要删除标签 \"{name}\" 吗?此操作不可撤销。"
},
"inputPlaceholder": "输入搜索或创建标签...",
"removeSelection": "移除此标签选择",
"deleteTagGlobally": "全局删除此标签"
},
"settings": {
"title": "设置",
"category": {
"security": "安全设置",
"appearance": "外观设置",
"workspace": "工作区设置",
"system": "系统设置"
},
},
"settings": {
"title": "设置",
"category": {
"security": "安全设置",
"appearance": "外观设置",
"system": "系统设置"
},
"changePassword": {
"title": "修改密码",
"currentPassword": "当前密码:",
@@ -494,7 +376,6 @@
"saved": "IP 白名单已成功保存。"
},
"error": {
"fetchFailed": "获取 IP 白名单设置失败。",
"saveFailed": "保存 IP 白名单失败。"
}
},
@@ -529,7 +410,6 @@
"saved": "语言设置已成功保存。"
},
"error": {
"fetchFailed": "获取语言设置失败。",
"saveFailed": "保存语言设置失败。"
}
},
@@ -539,15 +419,11 @@
"nameLabel": "Passkey 名称",
"namePlaceholder": "例如:我的笔记本电脑",
"registerButton": "注册新 Passkey",
"deleteButton": "删除 Passkey",
"confirmDelete": "确定要删除 Passkey '{name}'吗?",
"noPasskeys": "尚未注册任何 Passkey。",
"error": {
"nameRequired": "请输入 Passkey 名称。",
"cancelled": "Passkey 注册已被用户取消。",
"genericRegistration": "无法注册 Passkey: {message}",
"verificationFailed": "注册失败: {message}",
"unknown": "注册失败: 未知错误。"
"verificationFailed": "注册失败: {message}"
},
"success": {
"registered": "Passkey 注册成功!"
@@ -589,7 +465,6 @@
"testButton": "测试通知",
"testSuccess": "测试通知发送成功!",
"testFailed": "测试通知发送失败",
"saveToTest": "请先保存设置再进行测试。",
"fillRequiredToTest": "请填写必填字段以启用测试。",
"telegramToken": "机器人 Token:",
"telegramTokenHelp": "请安全存储。建议使用环境变量。",
@@ -637,9 +512,9 @@
}
},
"appearance": {
"title": "外观设置",
"description": "自定义应用程序的视觉主题和背景。",
"customizeButton": "自定义外观"
"title": "外观设置",
"description": "自定义应用程序的视觉主题和背景。",
"customizeButton": "自定义外观"
},
"autoCopyOnSelect": {
"title": "终端自动复制",
@@ -653,44 +528,44 @@
}
},
"docker": {
"title": "Docker 管理器设置",
"refreshIntervalLabel": "状态刷新间隔 (秒):",
"refreshIntervalHint": "获取 Docker 容器状态和统计信息的频率(最小为 1)。",
"defaultExpandLabel": "默认展开容器详情",
"saveButton": "保存 Docker 设置",
"success": {
"saved": "Docker 设置已成功保存。"
},
"error": {
"saveFailed": "保存 Docker 设置失败。",
"invalidInterval": "刷新间隔必须是正整数。"
}
},
"statusMonitor": {
"title": "状态监控设置",
"refreshIntervalLabel": "状态刷新间隔 (秒):",
"refreshIntervalHint": "获取服务器 CPU、内存、磁盘等状态的频率(最小为 1)。",
"saveButton": "保存状态监控设置",
"success": {
"saved": "状态监控设置已成功保存。"
},
"error": {
"saveFailed": "保存状态监控设置失败。",
"invalidInterval": "刷新间隔必须是正整数。"
}
},
"workspace": {
"title": "工作区与终端",
"sidebarPersistentTitle": "侧边栏行为",
"sidebarPersistentLabel": "弹出后固定侧边栏 (不自动收回)",
"sidebarPersistentDescription": "开启后,点击侧边栏外部区域不会自动收回侧边栏。",
"success": {
"sidebarPersistentSaved": "侧边栏设置已保存。"
},
"error": {
"sidebarPersistentSaveFailed": "保存侧边栏设置失败。"
}
}
"title": "Docker 管理器设置",
"refreshIntervalLabel": "状态刷新间隔 (秒):",
"refreshIntervalHint": "获取 Docker 容器状态和统计信息的频率(最小为 1)。",
"defaultExpandLabel": "默认展开容器详情",
"saveButton": "保存 Docker 设置",
"success": {
"saved": "Docker 设置已成功保存。"
},
"error": {
"saveFailed": "保存 Docker 设置失败。",
"invalidInterval": "刷新间隔必须是正整数。"
}
},
"statusMonitor": {
"title": "状态监控设置",
"refreshIntervalLabel": "状态刷新间隔 (秒):",
"refreshIntervalHint": "获取服务器 CPU、内存、磁盘等状态的频率(最小为 1)。",
"saveButton": "保存状态监控设置",
"success": {
"saved": "状态监控设置已成功保存。"
},
"error": {
"saveFailed": "保存状态监控设置失败。",
"invalidInterval": "刷新间隔必须是正整数。"
}
},
"workspace": {
"title": "工作区与终端",
"sidebarPersistentTitle": "侧边栏行为",
"sidebarPersistentLabel": "弹出后固定侧边栏 (不自动收回)",
"sidebarPersistentDescription": "开启后,点击侧边栏外部区域不会自动收回侧边栏。",
"success": {
"sidebarPersistentSaved": "侧边栏设置已保存。"
},
"error": {
"sidebarPersistentSaveFailed": "保存侧边栏设置失败。"
}
}
},
"common": {
"loading": "加载中...",
@@ -704,9 +579,13 @@
"disabled": "已禁用",
"settings": "设置",
"errorOccurred": "发生错误。",
"dismiss": "关闭",
"close": "关闭",
"remove": "移除"
"remove": "移除",
"expand": "展开",
"collapse": "折叠",
"search": "搜索",
"all": "全部",
"filter": "筛选"
},
"layoutConfigurator": {
"title": "布局管理器",
@@ -784,7 +663,6 @@
"closeSearch": "关闭终端搜索",
"findPrevious": "查找上一个",
"findNext": "查找下一个",
"noResults": "无结果",
"configureFocusSwitch": "配置焦点切换器"
},
"layout": {
@@ -806,7 +684,6 @@
"hide": "隐藏"
},
"commandHistory": {
"title": "命令历史",
"searchPlaceholder": "搜索历史记录...",
"clear": "清空",
"copy": "复制",
@@ -818,10 +695,8 @@
"copyFailed": "复制失败"
},
"quickCommands": {
"title": "快捷指令",
"searchPlaceholder": "搜索名称或指令...",
"add": "添加",
"sortBy": "排序:",
"sortByName": "名称",
"sortByUsage": "使用频率",
"usageCount": "使用次数",
@@ -879,7 +754,6 @@
"dockerManager": {
"loading": "正在加载 Docker 容器...",
"notAvailable": "远程主机 Docker 不可用",
"installHint": "请确保远程主机上已安装并运行 Docker。",
"installHintRemote": "请确保远程主机上已安装并运行 Docker。",
"error": {
"fetchFailed": "获取远程容器状态失败",
@@ -900,8 +774,6 @@
"actions": "操作"
},
"action": {
"up": "启动/Up",
"down": "移除/Down",
"restart": "重启",
"stop": "停止",
"start": "启动",
@@ -909,9 +781,6 @@
},
"waitingForSsh": "等待 SSH 连接...",
"stats": {
"loading": "正在加载状态...",
"error": "加载状态出错",
"errorGeneric": "无法加载容器统计信息。",
"noData": "无可用状态数据。",
"cpu": "CPU 使用率",
"memory": "内存使用 / 限制",
@@ -919,26 +788,5 @@
"blockIO": "磁盘 I/O",
"pids": "进程数"
}
},
"common": {
"loading": "加载中...",
"cancel": "取消",
"save": "保存",
"saving": "保存中...",
"testing": "测试中...",
"edit": "编辑",
"delete": "删除",
"enabled": "已启用",
"disabled": "已禁用",
"settings": "设置",
"errorOccurred": "发生错误。",
"dismiss": "忽略",
"close": "关闭",
"remove": "移除",
"expand": "展开",
"collapse": "折叠",
"search": "搜索",
"all": "全部",
"filter": "筛选"
}
}