Dev 1.5.0 (#159)

* Add comprehensive Chinese internationalization support

- Implemented i18n framework with react-i18next for multi-language support
- Added Chinese (zh) and English (en) translation files with comprehensive coverage
- Localized Admin interface, authentication flows, and error messages
- Translated FileManager operations and UI elements
- Updated HomepageAuth component with localized authentication messages
- Localized LeftSidebar navigation and host management
- Added language switcher component (shown after login only)
- Configured default language as English with Chinese as secondary option
- Localized TOTPSetup two-factor authentication interface
- Updated Docker build to include translation files
- Achieved 95%+ UI localization coverage across core components

Co-Authored-By: Claude <noreply@anthropic.com>

* Extend Chinese localization coverage to Host Manager components

- Added comprehensive translations for HostManagerHostViewer component
- Localized all host management UI text including import/export features
- Translated error messages and confirmation dialogs for host operations
- Added translations for HostManagerHostEditor validation messages
- Localized connection details, organization settings, and form labels
- Fixed syntax error in FileManagerOperations component
- Achieved near-complete localization of SSH host management interface
- Updated placeholders and tooltips for better user guidance

Co-Authored-By: Claude <noreply@anthropic.com>

* Complete comprehensive Chinese localization for Termix

- Added full localization support for Tunnel components (connected/disconnected states, retry messages)
- Localized all tunnel status messages and connection errors
- Added translations for port forwarding UI elements
- Verified Server, TopNavbar, and Tab components already have complete i18n support
- Achieved 99%+ localization coverage across entire application
- All core UI components now fully support Chinese and English languages

This completes the comprehensive internationalization effort for the Termix SSH management platform.

Co-Authored-By: Claude <noreply@anthropic.com>

* Localize additional Host Manager components and authentication settings

- Added translations for all authentication options (Password, Key, SSH Private Key)
- Localized form labels in HostManagerHostEditor (Pin Connection, Enable Terminal/Tunnel/FileManager)
- Translated Upload/Update Key button states
- Localized Host Viewer and Add/Edit Host tab labels
- Added Chinese translations for all host management settings
- Fixed duplicate translation keys in JSON files

Co-Authored-By: Claude <noreply@anthropic.com>

* Extend localization coverage to UI components and common strings

- Added comprehensive common translations (online/offline, success/error, etc.)
- Localized status indicator component with all status states
- Updated FileManagerLeftSidebar toast messages for rename/delete operations
- Added translations for UI elements (close, toggle sidebar, etc.)
- Expanded placeholder translations for form inputs
- Added Chinese translations for all new common strings
- Improved consistency across component status messages

Co-Authored-By: Claude <noreply@anthropic.com>

* Complete Chinese localization for remaining UI components

- Add comprehensive Chinese translations for Host Manager component
  - Translate all form labels, buttons, and descriptions
  - Add translations for SSH configuration warnings and instructions
  - Localize tunnel connection settings and port forwarding options

- Localize SSH Tools panel
  - Translate key recording functionality
  - Add translations for settings and configuration options

- Translate homepage welcome messages and navigation elements
  - Add Chinese translations for login success messages
  - Localize "Updates & Releases" section title
  - Translate sidebar "Host Manager" button

- Fix translation key display issues
  - Remove duplicate translation keys in both language files
  - Ensure all components properly reference translation keys
  - Fix hosts.tunnelConnections key mapping

This completes the full Chinese localization of the Termix application,
achieving near 100% UI translation coverage while maintaining English
as the default language.

* Complete final Chinese localization for Host Manager tunnel configuration

- Add Chinese translations for authentication UI elements
  - Translate "Authentication", "Password", and "Key" tab labels
  - Localize SSH private key and key password fields
  - Add translations for key type selector

- Localize tunnel connection configuration descriptions
  - Translate retry attempts and retry interval descriptions
  - Add dynamic tunnel forwarding description with port parameters
  - Localize endpoint SSH configuration labels

- Fix missing translation keys
  - Add "upload" translation for file upload button
  - Ensure all FormLabel and FormDescription elements use translation keys

This completes the comprehensive Chinese localization of the entire
Termix application, achieving 100% UI translation coverage.

* Fix OIDC errors for "Failed to get user information"

* Fix OIDC errors for "Failed to get user information"

* Fix spelling error

* Fix PR feedback: Improve Profile section translations and UX

- Fixed password reset translations in Profile section
- Moved language selector from TopNavbar to Profile page
- Added profile.selectPreferredLanguage translation key
- Improved user experience for language preferences

* Migrate everything to alert system, update user.ts for OIDC updates.

* Update env

* Fix OIDC errors for "Failed to get user information"

* Fix OIDC errors for "Failed to get user information"

* Fix spelling error

* Migrate everything to alert system, update user.ts for OIDC updates.

* Translation update

* Translation update

* Translation update

* Translate tunnels

* Comment update

* Update build workflow naming

* Add more translations, fix user delete failing

* Fix config editor erorrs causing user delete failure

---------

Co-authored-by: ZacharyZcR <PayasoNorahC@protonmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit was merged in pull request #159.
This commit is contained in:
Karmaa
2025-09-03 00:14:49 -05:00
committed by GitHub
parent 26c1cacc9d
commit 61db35daad
41 changed files with 2781 additions and 924 deletions

View File

@@ -0,0 +1,855 @@
{
"sshTools": {
"title": "SSH 工具",
"closeTools": "关闭 SSH 工具",
"keyRecording": "按键录制",
"startKeyRecording": "开始按键录制",
"stopKeyRecording": "停止按键录制",
"selectTerminals": "选择终端:",
"typeCommands": "输入命令(支持所有按键):",
"commandsWillBeSent": "命令将发送到 {{count}} 个选中的终端。",
"settings": "设置",
"enableRightClickCopyPaste": "启用右键复制/粘贴",
"shareIdeas": "对 SSH 工具有什么想法?在此分享"
},
"homepage": {
"loggedInTitle": "登录成功!",
"loggedInMessage": "您已登录!使用侧边栏访问所有可用工具。要开始使用,请在 SSH 管理器选项卡中创建 SSH 主机。创建后,您可以使用侧边栏中的其他应用程序连接到该主机。",
"failedToLoadAlerts": "加载警报失败",
"failedToDismissAlert": "关闭警报失败"
},
"common": {
"close": "关闭",
"online": "在线",
"offline": "离线",
"maintenance": "维护中",
"degraded": "降级",
"discord": "Discord",
"error": "错误",
"warning": "警告",
"info": "信息",
"success": "成功",
"loading": "加载中",
"required": "必填",
"optional": "可选",
"toggleSidebar": "切换侧边栏",
"sidebar": "侧边栏",
"home": "首页",
"expired": "已过期",
"expiresToday": "今天过期",
"expiresTomorrow": "明天过期",
"expiresInDays": "{{days}} 天后过期",
"updateAvailable": "有可用更新",
"sshPath": "SSH 路径",
"localPath": "本地路径",
"loading": "加载中...",
"noAuthCredentials": "此 SSH 主机没有可用的身份验证凭据",
"noReleases": "没有发布版本",
"updatesAndReleases": "更新与发布",
"newVersionAvailable": "有新版本 ({{version}}) 可用。",
"failedToFetchUpdateInfo": "获取更新信息失败",
"preRelease": "预发布版本",
"noReleasesFound": "未找到发布版本。",
"yourBackupCodes": "您的备份代码",
"sendResetCode": "发送重置代码",
"verifyCode": "验证代码",
"resetPassword": "重置密码",
"resetCode": "重置代码",
"newPassword": "新密码",
"sshPath": "SSH 路径",
"localPath": "本地路径",
"folder": "文件夹",
"file": "文件",
"renamedSuccessfully": "重命名成功",
"deletedSuccessfully": "删除成功",
"noAuthCredentials": "此 SSH 主机没有可用的认证凭据",
"noTunnelConnections": "没有配置隧道连接",
"sshTools": "SSH 工具",
"english": "英语",
"chinese": "中文",
"login": "登录",
"logout": "登出",
"register": "注册",
"username": "用户名",
"password": "密码",
"confirmPassword": "确认密码",
"back": "返回",
"email": "邮箱",
"submit": "提交",
"cancel": "取消",
"save": "保存",
"delete": "删除",
"edit": "编辑",
"add": "添加",
"search": "搜索",
"loading": "加载中...",
"error": "错误",
"success": "成功",
"warning": "警告",
"info": "信息",
"confirm": "确认",
"yes": "是",
"no": "否",
"ok": "确定",
"close": "关闭",
"enabled": "已启用",
"disabled": "已禁用",
"important": "重要",
"notEnabled": "未启用",
"settingUp": "设置中...",
"back": "返回",
"next": "下一步",
"previous": "上一步",
"refresh": "刷新",
"settings": "设置",
"profile": "个人资料",
"help": "帮助",
"about": "关于",
"language": "语言",
"autoDetect": "自动检测",
"changeAccountPassword": "修改您的账户密码",
"enterSixDigitCode": "输入来自 docker 容器日志中用户的 6 位数代码:",
"enterNewPassword": "为用户输入新密码:",
"passwordsDoNotMatch": "密码不匹配",
"passwordMinLength": "密码长度至少为 6 个字符",
"passwordResetSuccess": "密码重置成功!您现在可以使用新密码登录。",
"failedToInitiatePasswordReset": "启动密码重置失败",
"failedToVerifyResetCode": "验证重置代码失败",
"failedToCompletePasswordReset": "完成密码重置失败"
},
"nav": {
"home": "首页",
"hosts": "主机",
"terminal": "终端",
"tunnels": "隧道",
"fileManager": "文件管理器",
"serverStats": "服务器统计",
"admin": "管理员",
"tools": "工具",
"newTab": "新标签页",
"splitScreen": "分屏",
"closeTab": "关闭标签页",
"sshManager": "SSH 管理器",
"hostManager": "主机管理器",
"cannotSplitTab": "无法分割此标签页"
},
"admin": {
"title": "管理员设置",
"users": "用户",
"userManagement": "用户管理",
"makeAdmin": "设为管理员",
"removeAdmin": "移除管理员",
"deleteUser": "删除用户",
"allowRegistration": "允许注册",
"oidcSettings": "OIDC 设置",
"clientId": "客户端 ID",
"clientSecret": "客户端密钥",
"issuerUrl": "颁发者 URL",
"authorizationUrl": "授权 URL",
"tokenUrl": "令牌 URL",
"updateSettings": "更新设置",
"confirmDelete": "确定要删除此用户吗?",
"confirmMakeAdmin": "确定要将此用户设为管理员吗?",
"confirmRemoveAdmin": "确定要移除此用户的管理员权限吗?",
"externalAuthentication": "外部认证 (OIDC)",
"configureExternalProvider": "配置 OIDC/OAuth2 认证的外部身份提供者。",
"userIdentifierPath": "用户标识符路径",
"displayNamePath": "显示名称路径",
"scopes": "作用域",
"saving": "保存中...",
"saveConfiguration": "保存配置",
"reset": "重置",
"success": "成功",
"loading": "加载中...",
"refresh": "刷新",
"loadingUsers": "加载用户中...",
"username": "用户名",
"type": "类型",
"actions": "操作",
"external": "外部",
"local": "本地",
"adminManagement": "管理员管理",
"makeUserAdmin": "设置用户为管理员",
"adding": "添加中...",
"currentAdmins": "当前管理员",
"adminBadge": "管理员",
"removeAdminButton": "移除管理员",
"general": "常规",
"userRegistration": "用户注册",
"allowNewAccountRegistration": "允许新账户注册",
"missingRequiredFields": "缺少必填字段:{{fields}}",
"oidcConfigurationUpdated": "OIDC 配置更新成功!",
"failedToUpdateOidcConfig": "更新 OIDC 配置失败",
"enterUsernameToMakeAdmin": "输入用户名以设为管理员",
"userIsNowAdmin": "用户 {{username}} 现在是管理员",
"failedToMakeUserAdmin": "设为管理员失败",
"removeAdminStatus": "移除 {{username}} 的管理员权限吗?",
"adminStatusRemoved": "已移除 {{username}} 的管理员权限",
"failedToRemoveAdminStatus": "移除管理员权限失败",
"deleteUser": "删除用户 {{username}} 吗?此操作无法撤销。",
"userDeletedSuccessfully": "用户 {{username}} 删除成功",
"failedToDeleteUser": "删除用户失败",
"overrideUserInfoUrl": "覆盖用户信息 URL非必填"
},
"hosts": {
"title": "主机管理",
"sshHosts": "SSH 主机",
"noHosts": "没有 SSH 主机",
"noHostsMessage": "您还没有添加任何 SSH 主机。点击\"添加主机\"开始使用。",
"loadingHosts": "加载主机中...",
"failedToLoadHosts": "加载主机失败",
"retry": "重试",
"refresh": "刷新",
"hostsCount": "{{count}} 个主机",
"importJson": "导入 JSON",
"importing": "导入中...",
"importJsonTitle": "从 JSON 导入 SSH 主机",
"importJsonDesc": "上传 JSON 文件以批量导入多个 SSH 主机(最多 100 个)。",
"downloadSample": "下载示例",
"formatGuide": "格式指南",
"uncategorized": "未分类",
"confirmDelete": "确定要删除 \"{{name}}\" 吗?",
"failedToDeleteHost": "删除主机失败",
"jsonMustContainHosts": "JSON 必须包含 \"hosts\" 数组或是一个主机数组",
"noHostsInJson": "JSON 文件中未找到主机",
"maxHostsAllowed": "每次导入最多允许 100 个主机",
"importCompleted": "导入完成:{{success}} 个成功,{{failed}} 个失败",
"importFailed": "导入失败",
"importError": "导入错误",
"failedToImportJson": "导入 JSON 文件失败",
"connectionDetails": "连接详情",
"organization": "组织",
"ipAddress": "IP 地址",
"port": "端口",
"name": "名称",
"username": "用户名",
"folder": "文件夹",
"tags": "标签",
"passwordRequired": "使用密码认证时需要密码",
"sshKeyRequired": "使用密钥认证时需要 SSH 私钥",
"keyTypeRequired": "使用密钥认证时需要密钥类型",
"mustSelectValidSshConfig": "必须从列表中选择有效的 SSH 配置",
"addHost": "添加主机",
"editHost": "编辑主机",
"deleteHost": "删除主机",
"hostName": "主机名",
"ipAddress": "IP 地址",
"port": "端口",
"authType": "认证类型",
"passwordAuth": "密码",
"keyAuth": "SSH 密钥",
"keyPassword": "密钥密码",
"keyType": "密钥类型",
"folder": "文件夹",
"tags": "标签",
"pin": "固定",
"enableTerminal": "启用终端",
"enableTunnel": "启用隧道",
"enableFileManager": "启用文件管理器",
"defaultPath": "默认路径",
"testConnection": "测试连接",
"connect": "连接",
"disconnect": "断开连接",
"connected": "已连接",
"disconnected": "已断开",
"connecting": "连接中...",
"connectionFailed": "连接失败",
"connectionSuccess": "连接成功",
"connectionDetails": "连接详情",
"organization": "组织管理",
"addTags": "添加标签(空格添加)",
"sourcePort": "源端口",
"sourcePortDesc": "(源指通用标签页中的当前连接详情)",
"endpointPort": "目标端口",
"endpointSshConfig": "目标 SSH 配置",
"retryInterval": "重试间隔(秒)",
"connection": "连接",
"remove": "移除",
"addConnection": "添加连接",
"sshpassRequired": "密码认证需要安装 Sshpass",
"sshpassInstallCommand": "安装命令sudo apt install sshpass",
"sshServerConfig": "需要配置 SSH 服务器",
"sshServerConfigInstructions": "运行以下命令以允许密码认证:",
"sshConfigCommand1": "sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config",
"sshConfigCommand2": "sudo systemctl restart sshd",
"localPortForwarding": "本地端口转发",
"localPortForwardingDesc": "通过 SSH 连接将本地端口转发到远程服务器",
"remotePortForwarding": "远程端口转发",
"remotePortForwardingDesc": "通过 SSH 连接将远程端口转发到本地服务器",
"dynamicPortForwarding": "动态端口转发SOCKS 代理)",
"dynamicPortForwardingDesc": "在本地计算机上创建 SOCKS 代理,通过 SSH 连接路由流量",
"bindAddress": "绑定地址",
"hostViewer": "主机查看器",
"configuration": "配置",
"maxRetries": "最大重试次数",
"tunnelConnections": "隧道连接",
"enableTerminalDesc": "启用/禁用在终端选项卡中显示此主机",
"enableTunnelDesc": "启用/禁用在隧道选项卡中显示此主机",
"enableFileManagerDesc": "启用/禁用在文件管理器选项卡中显示此主机",
"autoStartDesc": "容器启动时自动启动此隧道",
"defaultPathDesc": "打开此主机文件管理器时的默认目录",
"tunnelForwardDescription": "此隧道将从源计算机(常规选项卡中的当前连接详情)的端口 {{sourcePort}} 转发流量到端点计算机的端口 {{endpointPort}}。",
"endpointSshConfiguration": "端点 SSH 配置",
"sourcePortDescription": "(源指的是常规选项卡中的当前连接详情)",
"autoStartContainer": "容器启动时自动启动",
"upload": "上传",
"authentication": "认证方式",
"password": "密码",
"key": "密钥",
"sshPrivateKey": "SSH 私钥",
"keyPassword": "密钥密码",
"keyType": "密钥类型",
"maxRetriesDescription": "隧道连接的最大重试次数。",
"retryIntervalDescription": "重试尝试之间的等待时间。",
"otherInstallMethods": "其他安装方法:",
"sshpassOSInstructions": {
"centos": "CentOS/RHEL/Fedora: sudo yum install sshpass 或 sudo dnf install sshpass",
"macos": "macOS: brew install hudochenkov/sshpass/sshpass",
"windows": "Windows: 使用 WSL 或考虑使用 SSH 密钥认证"
},
"sshServerConfigReverse": "对于反向 SSH 隧道,端点 SSH 服务器必须允许:",
"gatewayPorts": "GatewayPorts yes绑定远程端口",
"allowTcpForwarding": "AllowTcpForwarding yes端口转发",
"permitRootLogin": "PermitRootLogin yes如果使用 root",
"editSshConfig": "编辑 /etc/ssh/sshd_config 并重启 SSH: sudo systemctl restart sshd",
"updateHost": "更新主机",
"hostUpdatedSuccessfully": "主机 \"{{name}}\" 更新成功!",
"hostAddedSuccessfully": "主机 \"{{name}}\" 添加成功!",
"hostDeletedSuccessfully": "主机 \"{{name}}\" 删除成功!",
"failedToSaveHost": "保存主机失败,请重试。",
"autoDetect": "自动检测",
"rsa": "RSA",
"ed25519": "ED25519",
"ecdsaNistP256": "ECDSA NIST P-256",
"ecdsaNistP384": "ECDSA NIST P-384",
"ecdsaNistP521": "ECDSA NIST P-521",
"dsa": "DSA",
"rsaSha2256": "RSA SHA2-256",
"rsaSha2512": "RSA SHA2-512",
"updateKey": "更新密钥",
"addTagsSpaceToAdd": "添加标签(空格添加)",
"terminalBadge": "终端",
"tunnelBadge": "隧道",
"fileManagerBadge": "文件管理器",
"general": "常规",
"terminal": "终端",
"tunnel": "隧道",
"fileManager": "文件管理器"
},
"terminal": {
"title": "终端",
"connect": "连接主机",
"disconnect": "断开连接",
"clear": "清屏",
"copy": "复制",
"paste": "粘贴",
"find": "查找",
"fullscreen": "全屏",
"splitHorizontal": "水平分屏",
"splitVertical": "垂直分屏",
"closePanel": "关闭面板",
"reconnect": "重新连接",
"sessionEnded": "会话已结束",
"connectionLost": "连接已断开",
"error": "错误",
"disconnected": "已断开连接",
"connectionClosed": "连接已关闭",
"connectionError": "连接错误"
},
"fileManager": {
"title": "文件管理器",
"file": "文件",
"folder": "文件夹",
"connectToSsh": "连接 SSH 以使用文件操作",
"uploadFile": "上传文件",
"newFile": "新建文件",
"newFolder": "新建文件夹",
"rename": "重命名",
"renameItem": "重命名项目",
"deleteItem": "删除项目",
"currentPath": "当前路径",
"uploadFileTitle": "上传文件",
"maxFileSize": "最大100MBJSON/ 200MB二进制",
"removeFile": "移除文件",
"clickToSelectFile": "点击选择文件",
"chooseFile": "选择文件",
"uploading": "上传中...",
"createNewFile": "创建新文件",
"fileName": "文件名",
"creating": "创建中...",
"createFile": "创建文件",
"createNewFolder": "创建新文件夹",
"folderName": "文件夹名",
"createFolder": "创建文件夹",
"warningCannotUndo": "警告:此操作无法撤销",
"itemPath": "项目路径",
"thisIsDirectory": "这是一个目录(将递归删除)",
"deleting": "删除中...",
"currentPathLabel": "当前路径",
"newName": "新名称",
"thisIsDirectoryRename": "这是一个目录",
"renaming": "重命名中...",
"fileUploadedSuccessfully": "文件 \"{{name}}\" 上传成功",
"failedToUploadFile": "上传文件失败",
"fileCreatedSuccessfully": "文件 \"{{name}}\" 创建成功",
"failedToCreateFile": "创建文件失败",
"folderCreatedSuccessfully": "文件夹 \"{{name}}\" 创建成功",
"failedToCreateFolder": "创建文件夹失败",
"itemDeletedSuccessfully": "{{type}}删除成功",
"failedToDeleteItem": "删除项目失败",
"itemRenamedSuccessfully": "{{type}}重命名成功",
"failedToRenameItem": "重命名项目失败",
"upload": "上传",
"download": "下载",
"newFile": "新建文件",
"newFolder": "新建文件夹",
"rename": "重命名",
"delete": "删除",
"permissions": "权限",
"size": "大小",
"modified": "修改时间",
"path": "路径",
"fileName": "文件名",
"folderName": "文件夹名",
"confirmDelete": "确定要删除 {{name}} 吗?",
"uploadSuccess": "文件上传成功",
"uploadFailed": "文件上传失败",
"downloadSuccess": "文件下载成功",
"downloadFailed": "文件下载失败",
"permissionDenied": "权限被拒绝",
"checkDockerLogs": "请检查 Docker 日志以获取详细的错误信息",
"internalServerError": "内部服务器错误发生",
"serverError": "服务器错误",
"error": "错误",
"requestFailed": "请求失败,状态码",
"unknown": "未知",
"cannotReadFile": "无法读取文件",
"noSshSessionId": "没有可用的 SSH 会话 ID",
"noFilePath": "没有可用的文件路径",
"noCurrentHost": "没有可用的当前主机",
"fileSavedSuccessfully": "文件保存成功",
"saveTimeout": "保存操作超时。文件可能已成功保存,但操作用时过长。请检查 Docker 日志以确认。",
"failedToSaveFile": "保存文件失败",
"folder": "文件夹",
"file": "文件",
"deletedSuccessfully": "删除成功",
"failedToDeleteItem": "删除项目失败",
"connectToServer": "连接到服务器",
"selectServerToEdit": "从侧边栏选择服务器以开始编辑文件",
"fileOperations": "文件操作",
"confirmDeleteMessage": "确定要删除 <strong>{{name}}</strong> 吗?",
"deleteDirectoryWarning": "这将删除文件夹及其所有内容。",
"actionCannotBeUndone": "此操作无法撤销。",
"recent": "最近的",
"pinned": "固定的",
"folderShortcuts": "文件夹快捷方式",
"noRecentFiles": "没有最近的文件。",
"noPinnedFiles": "没有固定的文件。",
"enterFolderPath": "输入文件夹路径",
"noShortcuts": "没有快捷方式。",
"searchFilesAndFolders": "搜索文件和文件夹...",
"noFilesOrFoldersFound": "没有找到文件或文件夹。",
"failedToConnectSSH": "连接 SSH 失败",
"failedToReconnectSSH": "重新连接 SSH 会话失败",
"failedToListFiles": "列出文件失败",
"fetchHomeDataTimeout": "获取主页数据超时",
"sshStatusCheckTimeout": "SSH 状态检查超时",
"sshReconnectionTimeout": "SSH 重新连接超时",
"saveOperationTimeout": "保存操作超时",
"cannotSaveFile": "无法保存文件"
},
"tunnels": {
"title": "SSH 隧道",
"noSshTunnels": "没有 SSH 隧道",
"createFirstTunnelMessage": "您还没有创建任何 SSH 隧道。在主机管理器中配置隧道连接以开始使用。",
"connected": "已连接",
"disconnected": "已断开",
"connecting": "连接中...",
"disconnecting": "断开中...",
"unknown": "未知",
"error": "错误",
"failed": "失败",
"retrying": "重试中",
"waiting": "等待中",
"waitingForRetry": "等待重试",
"retryingConnection": "重试连接",
"canceling": "取消中...",
"connect": "连接",
"disconnect": "断开连接",
"cancel": "取消",
"port": "端口",
"attempt": "第 {{current}} 次尝试,共 {{max}} 次",
"nextRetryIn": "{{seconds}} 秒后重试",
"checkDockerLogs": "查看 Docker 日志以了解错误原因,加入",
"noTunnelConnections": "未配置隧道连接",
"tunnelConnections": "隧道连接",
"addTunnel": "添加隧道",
"editTunnel": "编辑隧道",
"deleteTunnel": "删除隧道",
"tunnelName": "隧道名称",
"localPort": "本地端口",
"remoteHost": "远程主机",
"remotePort": "远程端口",
"autoStart": "自动启动",
"status": "状态",
"active": "活动",
"inactive": "未激活",
"start": "启动",
"stop": "停止",
"restart": "重启",
"connectionType": "连接类型",
"local": "本地",
"remote": "远程",
"dynamic": "动态",
"noSshTunnels": "没有 SSH 隧道",
"createFirstTunnelMessage": "创建您的第一个 SSH 隧道以开始使用。使用 SSH 管理器添加具有隧道连接的主机。",
"unknown": "未知",
"connected": "已连接",
"connecting": "连接中...",
"disconnecting": "断开连接中...",
"disconnected": "已断开连接",
"portMapping": "端口 {{sourcePort}} → {{endpointHost}}:{{endpointPort}}",
"disconnect": "断开连接",
"connect": "连接",
"canceling": "取消中...",
"endpointHostNotFound": "未找到端点主机"
},
"serverStats": {
"title": "服务器统计",
"cpu": "CPU",
"memory": "内存",
"disk": "磁盘",
"network": "网络",
"uptime": "运行时间",
"loadAverage": "平均负载",
"processes": "进程",
"connections": "连接",
"usage": "使用率",
"available": "可用",
"total": "总计",
"free": "空闲",
"used": "已用",
"percentage": "百分比",
"refreshStatusAndMetrics": "刷新状态和指标",
"refreshStatus": "刷新状态",
"fileManagerAlreadyOpen": "此主机的文件管理器已打开",
"openFileManager": "打开文件管理器",
"cpuCores_one": "{{count}} 个 CPU",
"cpuCores_other": "{{count}} 个 CPU",
"naCpus": "N/A CPU",
"loadAverage": "平均: {{avg1}}, {{avg5}}, {{avg15}}",
"loadAverageNA": "平均: N/A",
"cpuUsage": "CPU 使用率",
"memoryUsage": "内存使用率",
"rootStorageSpace": "根目录存储空间",
"of": "的",
"feedbackMessage": "对服务器管理的下一步功能有想法?在这里分享吧"
},
"auth": {
"loginTitle": "登录 Termix",
"registerTitle": "创建账户",
"loginButton": "登录",
"registerButton": "注册",
"forgotPassword": "忘记密码?",
"rememberMe": "记住我",
"noAccount": "还没有账户?",
"hasAccount": "已有账户?",
"loginSuccess": "登录成功",
"loginFailed": "登录失败",
"registerSuccess": "注册成功",
"registerFailed": "注册失败",
"logoutSuccess": "登出成功",
"invalidCredentials": "用户名或密码错误",
"accountCreated": "账户创建成功",
"passwordReset": "密码重置链接已发送",
"twoFactorAuth": "双因素认证",
"enterCode": "输入验证码",
"backupCode": "使用备用码",
"verifyCode": "验证码",
"enableTwoFactor": "启用双因素认证",
"disableTwoFactor": "禁用双因素认证",
"scanQRCode": "使用您的身份验证器应用扫描此二维码",
"backupCodes": "备用码",
"saveBackupCodes": "请将这些备用码保存在安全的地方",
"twoFactorEnabledSuccess": "双因素认证启用成功!",
"twoFactorDisabled": "双因素认证已禁用",
"newBackupCodesGenerated": "新备用码已生成",
"backupCodesDownloaded": "备用码已下载",
"pleaseEnterSixDigitCode": "请输入 6 位验证码",
"invalidVerificationCode": "无效的验证码",
"failedToDisableTotp": "禁用 TOTP 失败",
"failedToGenerateBackupCodes": "生成备用码失败",
"enterPassword": "输入您的密码",
"lockedOidcAuth": "已锁定 (OIDC 认证)",
"twoFactorTitle": "双因素认证",
"twoFactorProtected": "您的账户已启用双因素认证保护",
"twoFactorActive": "双因素认证当前在您的账户上处于活动状态",
"disable2FA": "禁用 2FA",
"disableTwoFactorWarning": "禁用双因素认证将降低您账户的安全性",
"passwordOrTotpCode": "密码或 TOTP 验证码",
"or": "或",
"generateNewBackupCodesText": "如果您丢失了现有的备用码,请生成新的备用码",
"generateNewBackupCodes": "生成新的备用码",
"yourBackupCodes": "您的备用码",
"download": "下载",
"setupTwoFactorTitle": "设置双因素认证",
"step1ScanQR": "步骤 1使用您的身份验证器应用扫描二维码",
"manualEntryCode": "手动输入代码",
"cannotScanQRText": "如果无法扫描二维码,请在身份验证器应用中手动输入此代码",
"nextVerifyCode": "下一步:验证代码",
"verifyAuthenticator": "验证您的身份验证器",
"step2EnterCode": "步骤 2输入身份验证器应用中的6位数代码",
"verificationCode": "验证码",
"back": "返回",
"verifyAndEnable": "验证并启用",
"saveBackupCodesTitle": "保存您的备用码",
"step3StoreCodesSecurely": "步骤 3将这些代码保存在安全的地方",
"importantBackupCodesText": "请将这些备用码保存在安全的地方。如果您丢失了身份验证器设备,可以使用它们访问您的账户。",
"completeSetup": "完成设置",
"notEnabledText": "双因素认证通过在登录时要求来自身份验证器应用的代码,为您的账户增加额外的安全层。",
"enableTwoFactorButton": "启用双因素认证",
"addExtraSecurityLayer": "为您的账户添加额外的安全层",
"firstUser": "首位用户",
"firstUserMessage": "您是第一个用户,将被设为管理员。您可以在侧边栏用户下拉菜单中查看管理员设置。如果您认为这是错误,请检查 docker 日志,或创建",
"external": "外部",
"loginWithExternal": "使用外部提供商登录",
"loginWithExternalDesc": "使用您配置的外部身份提供商登录",
"resetPasswordButton": "重置密码",
"sendResetCode": "发送重置代码",
"resetCodeDesc": "输入您的用户名以接收密码重置代码。代码将记录在 docker 容器日志中。",
"resetCode": "重置代码",
"verifyCodeButton": "验证代码",
"enterResetCode": "输入来自 docker 容器日志中用户的 6 位数代码:",
"goToLogin": "转到登录",
"newPassword": "新密码",
"confirmNewPassword": "确认密码",
"enterNewPassword": "为用户输入新密码:",
"passwordResetSuccess": "成功!",
"passwordResetSuccessDesc": "您的密码已成功重置!您现在可以使用新密码登录。",
"signUp": "注册"
},
"errors": {
"notFound": "页面未找到",
"unauthorized": "未授权访问",
"forbidden": "访问被禁止",
"serverError": "服务器错误",
"networkError": "网络错误",
"databaseConnection": "无法连接到数据库。请稍后再试。",
"unknownError": "未知错误",
"failedPasswordReset": "无法启动密码重置",
"failedVerifyCode": "验证重置代码失败",
"failedCompleteReset": "无法完成密码重置",
"invalidTotpCode": "无效的 TOTP 代码",
"failedOidcLogin": "无法启动 OIDC 登录",
"failedUserInfo": "OIDC 登录后无法获取用户信息",
"oidcAuthFailed": "OIDC 认证失败",
"noTokenReceived": "登录未收到令牌",
"invalidAuthUrl": "从后端收到无效的授权 URL",
"connectionTimeout": "连接超时",
"invalidInput": "输入无效",
"requiredField": "此字段为必填项",
"minLength": "最小长度为 {{min}}",
"maxLength": "最大长度为 {{max}}",
"invalidEmail": "邮箱地址无效",
"passwordMismatch": "密码不匹配",
"weakPassword": "密码强度太弱",
"usernameExists": "用户名已存在",
"emailExists": "邮箱已存在",
"loadFailed": "加载数据失败",
"saveError": "保存失败"
},
"messages": {
"saveSuccess": "保存成功",
"saveError": "保存失败",
"deleteSuccess": "删除成功",
"deleteError": "删除失败",
"updateSuccess": "更新成功",
"updateError": "更新失败",
"copySuccess": "已复制到剪贴板",
"copyError": "复制失败",
"copiedToClipboard": "{{item}} 已复制到剪贴板",
"connectionEstablished": "连接已建立",
"connectionClosed": "连接已关闭",
"reconnecting": "重新连接中...",
"processing": "处理中...",
"pleaseWait": "请稍候...",
"registrationDisabled": "新用户注册已被管理员禁用。请登录或联系管理员。"
},
"profile": {
"title": "用户资料",
"description": "管理您的账户设置和安全",
"security": "安全",
"changePassword": "修改密码",
"twoFactorAuth": "双因素认证",
"accountInfo": "账户信息",
"role": "角色",
"admin": "管理员",
"user": "用户",
"authMethod": "认证方式",
"local": "本地",
"external": "外部 (OIDC)",
"selectPreferredLanguage": "选择您的界面首选语言"
},
"placeholders": {
"enterCode": "000000",
"ipAddress": "127.0.0.1",
"port": "22",
"maxRetries": "3",
"retryInterval": "10",
"language": "语言",
"username": "用户名",
"hostname": "主机名",
"folder": "文件夹",
"password": "密码",
"keyPassword": "密钥密码",
"sshConfig": "端点 SSH 配置",
"homePath": "/home",
"clientId": "您的客户端 ID",
"clientSecret": "您的客户端密钥",
"authUrl": "https://your-provider.com/application/o/authorize/",
"redirectUrl": "https://your-provider.com/application/o/termix/",
"tokenUrl": "https://your-provider.com/application/o/token/",
"userIdField": "sub",
"usernameField": "name",
"scopes": "openid email profile",
"enterUsername": "输入用户名以设为管理员",
"searchHosts": "按名称、用户名、IP、文件夹、标签搜索主机...",
"enterPassword": "输入您的密码",
"totpCode": "6 位 TOTP 验证码",
"searchHostsAny": "按任意信息搜索主机...",
"confirmPassword": "输入您的密码以确认",
"typeHere": "在此输入",
"fileName": "输入文件名例如example.txt",
"folderName": "输入文件夹名",
"fullPath": "输入项目的完整路径",
"currentPath": "输入项目的当前路径",
"newName": "输入新名称"
},
"leftSidebar": {
"failedToLoadHosts": "加载主机失败",
"noFolder": "无文件夹",
"passwordRequired": "需要输入密码",
"failedToDeleteAccount": "删除账户失败",
"failedToMakeUserAdmin": "设为管理员失败",
"userIsNowAdmin": "用户 {{username}} 现在是管理员",
"removeAdminConfirm": "确定要移除 {{username}} 的管理员权限吗?",
"deleteUserConfirm": "确定要删除用户 {{username}} 吗?此操作无法撤销。",
"deleteAccount": "删除账户",
"closeDeleteAccount": "关闭删除账户",
"deleteAccountWarning": "此操作无法撤销。这将永久删除您的账户和所有相关数据。",
"deleteAccountWarningDetails": "删除您的账户将删除所有数据,包括 SSH 主机、配置和设置。此操作不可逆。",
"cannotDeleteAccount": "无法删除账户",
"lastAdminWarning": "您是最后一个管理员用户。您不能删除自己的账户,否则系统将没有任何管理员。请先将其他用户设为管理员,或联系系统支持。",
"confirmPassword": "确认密码",
"deleting": "删除中...",
"cancel": "取消"
},
"interface": {
"sidebar": "侧边栏",
"toggleSidebar": "切换侧边栏",
"close": "关闭",
"online": "在线",
"offline": "离线",
"maintenance": "维护中",
"degraded": "降级",
"noTunnelConnections": "未配置隧道连接",
"discord": "Discord",
"connectToSshForOperations": "连接 SSH 以使用文件操作",
"uploadFile": "上传文件",
"newFile": "新建文件",
"newFolder": "新建文件夹",
"rename": "重命名",
"deleteItem": "删除项目",
"createNewFile": "创建新文件",
"createNewFolder": "创建新文件夹",
"deleteItem": "删除项目",
"renameItem": "重命名项目",
"clickToSelectFile": "点击选择文件",
"noSshHosts": "没有 SSH 主机",
"sshHosts": "SSH 主机",
"importSshHosts": "从 JSON 导入 SSH 主机",
"clientId": "客户端 ID",
"clientSecret": "客户端密钥",
"error": "错误",
"warning": "警告",
"deleteAccount": "删除账户",
"closeDeleteAccount": "关闭删除账户",
"cannotDeleteAccount": "无法删除账户",
"confirmPassword": "确认密码",
"deleting": "删除中...",
"externalAuth": "外部认证 (OIDC)",
"configureExternalProvider": "配置外部身份提供者",
"waitingForRetry": "等待重试",
"retryingConnection": "重试连接中",
"resetSplitSizes": "重置分屏大小",
"sshManagerAlreadyOpen": "SSH 管理器已打开",
"disabledDuringSplitScreen": "分屏期间禁用",
"unknown": "未知",
"connected": "已连接",
"disconnected": "已断开连接",
"maxRetriesExhausted": "已达到最大重试次数",
"endpointHostNotFound": "未找到端点主机",
"administrator": "管理员",
"user": "用户",
"external": "外部",
"local": "本地",
"saving": "保存中...",
"saveConfiguration": "保存配置",
"loading": "加载中...",
"refresh": "刷新",
"adding": "添加中...",
"makeAdmin": "设为管理员",
"verifying": "验证中...",
"verifyAndEnable": "验证并启用",
"secretKey": "密钥",
"totpQrCode": "TOTP 二维码",
"passwordRequired": "使用密码认证时需要密码",
"sshKeyRequired": "使用密钥认证时需要 SSH 私钥",
"keyTypeRequired": "使用密钥认证时需要密钥类型",
"validSshConfigRequired": "必须从列表中选择有效的 SSH 配置",
"updateHost": "更新主机",
"addHost": "添加主机",
"editHost": "编辑主机",
"pinConnection": "固定连接",
"authentication": "认证",
"password": "密码",
"key": "密钥",
"sshPrivateKey": "SSH 私钥",
"keyPassword": "密钥密码",
"keyType": "密钥类型",
"enableTerminal": "启用终端",
"enableTunnel": "启用隧道",
"enableFileManager": "启用文件管理器",
"defaultPath": "默认路径",
"tunnelConnections": "隧道连接",
"maxRetries": "最大重试次数",
"upload": "上传",
"updateKey": "更新密钥",
"sshpassRequired": "密码认证需要 Sshpass",
"sshServerConfigRequired": "需要 SSH 服务器配置",
"sshManagerAlreadyOpen": "SSH 管理器已打开",
"disabledDuringSplitScreen": "分屏期间禁用",
"productionFolder": "生产环境",
"databaseServer": "数据库服务器",
"unknownError": "未知错误",
"failedToInitiatePasswordReset": "启动密码重置失败",
"failedToVerifyResetCode": "验证重置代码失败",
"failedToCompletePasswordReset": "完成密码重置失败",
"invalidTotpCode": "无效的 TOTP 代码",
"failedToStartOidcLogin": "启动 OIDC 登录失败",
"failedToGetUserInfoAfterOidc": "OIDC 登录后获取用户信息失败",
"loginWithExternalProvider": "使用外部提供者登录",
"loginWithExternal": "使用外部提供者登录",
"sendResetCode": "发送重置代码",
"verifyCode": "验证代码",
"resetPassword": "重置密码",
"login": "登录",
"signUp": "注册",
"failedToUpdateOidcConfig": "更新 OIDC 配置失败",
"failedToMakeUserAdmin": "设为管理员失败",
"failedToStartTotpSetup": "启动 TOTP 设置失败",
"invalidVerificationCode": "无效的验证码",
"failedToDisableTotp": "禁用 TOTP 失败",
"failedToGenerateBackupCodes": "生成备用码失败"
}
}