Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
1137 lines
63 KiB
TypeScript
1137 lines
63 KiB
TypeScript
import type { Messages } from '../types';
|
||
|
||
export const zhCNCoreMessages: Messages = {
|
||
// Common
|
||
'common.save': '保存',
|
||
'common.cancel': '取消',
|
||
'common.close': '关闭',
|
||
'common.reset': '重置',
|
||
'common.zoomIn': '放大',
|
||
'common.zoomOut': '缩小',
|
||
'common.settings': '设置',
|
||
'common.search': '搜索',
|
||
'common.connect': '连接',
|
||
'common.terminal': '终端',
|
||
'common.create': '创建',
|
||
'common.add': '添加',
|
||
'common.rename': '重命名',
|
||
'common.refresh': '刷新',
|
||
'common.continue': '继续',
|
||
'common.enabled': '已启用',
|
||
'common.disabled': '已禁用',
|
||
'common.unknownError': '未知错误',
|
||
'common.noResultsFound': '没有匹配结果',
|
||
'common.back': '返回',
|
||
'common.apply': '应用',
|
||
'common.use': '使用',
|
||
'common.useGlobal': '跟随全局',
|
||
'common.left': '左侧',
|
||
'common.right': '右侧',
|
||
'common.more': '更多',
|
||
'toolbar.layout.customize': '自定义工具栏',
|
||
'toolbar.layout.show': '显示',
|
||
'toolbar.layout.collapse': '折叠',
|
||
'toolbar.layout.hide': '隐藏',
|
||
'toolbar.layout.moveEarlier': '前移',
|
||
'toolbar.layout.moveLater': '后移',
|
||
'toolbar.layout.reset': '恢复默认',
|
||
'common.selectAHost': '选择主机',
|
||
'sort.manual': '手动顺序',
|
||
'sort.az': 'A-z',
|
||
'sort.za': 'Z-a',
|
||
'sort.newest': '从新到旧',
|
||
'sort.oldest': '从旧到新',
|
||
'sort.group': '按分组',
|
||
'field.label': 'Label',
|
||
'field.type': '类型',
|
||
'auth.keyType': '类型 {type}',
|
||
'auth.showAllKeys': '显示全部 keys',
|
||
|
||
// Dialogs / prompts
|
||
'confirm.deleteHost': '删除主机 "{name}"?',
|
||
'confirm.deleteIdentity': '删除身份 "{name}"?',
|
||
'confirm.removeProvider': '移除提供商 "{name}"?',
|
||
'confirm.closeBusyTerminal.title': '确认关闭',
|
||
'confirm.closeBusyTerminal.message': '进程 "{command}" 仍在运行,关闭后会被终止。',
|
||
'confirm.closeBusyTerminal.messageWithMore': '进程 "{command}" 及其他 {count} 个正在运行的进程将被终止。',
|
||
'confirm.closeBusyTerminal.cancel': '取消',
|
||
'confirm.closeBusyTerminal.close': '关闭',
|
||
'dialog.renameWorkspace.title': '重命名工作区',
|
||
'dialog.renameSession.title': '重命名会话',
|
||
'field.name': '名称',
|
||
'placeholder.workspaceName': '工作区名称',
|
||
'placeholder.sessionName': '会话名称',
|
||
'toast.settingsUnavailable': '当前平台无法打开设置窗口。',
|
||
'credentials.protectionUnavailable.title': '凭据保护不可用',
|
||
'credentials.protectionUnavailable.message': '当前设备无法自动解密已保存的密码和密钥。连接前请重新输入凭据。',
|
||
'credentials.protectionUnavailable.action': '打开设置',
|
||
|
||
// App Lock
|
||
'appLock.title': 'NetMesh 已锁定',
|
||
'appLock.reason.default': '输入锁定密码以继续。',
|
||
'appLock.reason.startup': '每次打开此窗口时,NetMesh 都会锁定。',
|
||
'appLock.reason.idle': 'NetMesh 已因长时间无操作而锁定。',
|
||
'appLock.reason.manual': 'NetMesh 已被手动锁定。',
|
||
'appLock.passwordLabel': '锁定密码',
|
||
'appLock.passwordPlaceholder': '输入密码解锁',
|
||
'appLock.unlock': '解锁',
|
||
'appLock.unlocking': '正在解锁...',
|
||
'appLock.usePassword': '使用密码解锁',
|
||
'appLock.error.emptyPassword': '请输入锁定密码。',
|
||
'appLock.error.incorrectPassword': '锁定密码不正确。',
|
||
'appLock.systemUnlock.unlockWith': '使用 {label} 解锁',
|
||
'appLock.systemUnlock.preparing': '正在准备 {label}...',
|
||
'appLock.systemUnlock.verifying': '正在等待 {label}...',
|
||
'appLock.systemUnlock.error': '系统解锁未完成。请使用锁定密码继续。',
|
||
'appLock.logoLabel': 'NetMesh',
|
||
'appLock.reset.title': '重置应用锁定',
|
||
'appLock.reset.description': '这会删除当前锁定密码并关闭应用锁定。需要再次使用时,请到设置里创建新密码。',
|
||
'appLock.reset.cancel': '取消',
|
||
'appLock.reset.confirm': '重置应用锁定',
|
||
'appLock.reset.resetting': '正在重置...',
|
||
'appLock.reset.error': '无法重置应用锁定,请重试。',
|
||
'topTabs.lockApp': '锁定 NetMesh',
|
||
|
||
// Settings shell
|
||
'settings.title': '设置',
|
||
'settings.tab.application': '应用',
|
||
'settings.tab.appearance': '外观',
|
||
'settings.tab.terminal': '终端',
|
||
'settings.tab.shortcuts': '快捷键',
|
||
'settings.tab.ai': 'AI',
|
||
'settings.tab.syncCloud': '同步与云',
|
||
'settings.tab.system': '系统',
|
||
'settings.search.open': '搜索设置',
|
||
'settings.search.placeholder': '搜索设置项…',
|
||
'settings.search.noResults': '没有匹配的设置项',
|
||
'settings.terminal.connection.verifyHostKeys': '校验 SSH 主机密钥',
|
||
'settings.terminal.connection.verifyHostKeys.desc': '连接到新的或已变化的 SSH 主机密钥前先询问。只建议在可信内网中关闭。',
|
||
'settings.terminal.section.sidePanel': '侧边栏',
|
||
'settings.terminal.sidePanel.autoOpen': '打开终端时展开侧边栏',
|
||
'settings.terminal.sidePanel.autoOpen.desc': '终端连接成功后自动打开一个侧边栏。',
|
||
'settings.terminal.sidePanel.autoOpenPane': '默认侧边栏',
|
||
'settings.terminal.sidePanel.autoOpenPane.desc': '选择优先打开哪个面板。',
|
||
'settings.terminal.sidePanel.pane.sftp': 'SFTP',
|
||
'settings.terminal.sidePanel.pane.scripts': '脚本',
|
||
'settings.terminal.sidePanel.pane.history': '历史',
|
||
'settings.terminal.sidePanel.pane.theme': '主题',
|
||
'settings.terminal.sidePanel.pane.system': '系统',
|
||
'settings.terminal.sidePanel.pane.notes': '笔记',
|
||
'settings.terminal.sidePanel.pane.ai': 'AI',
|
||
|
||
// Settings > System
|
||
'settings.system.title': '系统',
|
||
'settings.system.description': '系统信息与临时文件管理。',
|
||
'settings.system.tempDirectory': '临时文件',
|
||
'settings.system.location': '位置',
|
||
'settings.system.fileCount': '文件数量',
|
||
'settings.system.totalSize': '占用空间',
|
||
'settings.system.openFolder': '打开文件夹',
|
||
'settings.system.refresh': '刷新',
|
||
'settings.system.clearTempFiles': '清理临时文件',
|
||
'settings.system.clearing': '清理中...',
|
||
'settings.system.clearResult': '已删除 {deleted} 个文件,{failed} 个失败。',
|
||
'settings.system.tempDirectoryHint': '临时文件在使用外部应用打开远程文件时创建。SFTP 会话关闭时会自动清理。',
|
||
'settings.system.credentials.title': '凭据保护',
|
||
'settings.system.credentials.status': '状态',
|
||
'settings.system.credentials.checking': '检查中...',
|
||
'settings.system.credentials.available': '可用(系统钥匙串正常)',
|
||
'settings.system.credentials.unavailable': '不可用(无法解密已保存凭据)',
|
||
'settings.system.credentials.unknown': '未知(当前环境不支持)',
|
||
'settings.system.credentials.unavailableHint': '在其他用户或机器上加密的凭据无法在此处解密。请在当前设备重新输入并保存凭据。',
|
||
'settings.system.credentials.portabilityHint': '云同步可跨设备,因为使用主密钥加密;本地 safeStorage 加密仅绑定当前系统用户/设备。',
|
||
|
||
// Settings > System > App Lock
|
||
'settings.appLock.title': '应用锁定',
|
||
'settings.appLock.description': '在 NetMesh 打开、长时间无操作或手动锁定后,要求输入本地锁定密码。',
|
||
'settings.appLock.setupTitle': '设置锁定密码',
|
||
'settings.appLock.setupDescription': '在下方创建密码,保存后会立即启用应用锁定。',
|
||
'settings.appLock.manageTitle': '应用锁定已准备就绪',
|
||
'settings.appLock.enabledStatus': '已启用。NetMesh 会在启动、长时间无操作或手动锁定时要求输入密码。',
|
||
'settings.appLock.disabledStatus': '密码已保存,但应用锁定当前关闭。',
|
||
'settings.appLock.disableTitle': '关闭应用锁定',
|
||
'settings.appLock.disableDescription': '输入当前锁定密码后停止锁定 NetMesh。已保存的密码会被删除;以后重新启用时需要创建新密码。',
|
||
'settings.appLock.disable': '关闭应用锁定',
|
||
'settings.appLock.disabling': '正在关闭...',
|
||
'settings.appLock.setupPasswordTitle': '创建锁定密码',
|
||
'settings.appLock.setupPasswordDescription': '此密码用于解锁 NetMesh,也用于以后修改或关闭应用锁定。',
|
||
'settings.appLock.changePasswordTitle': '修改锁定密码',
|
||
'settings.appLock.changePasswordDescription': '先输入当前锁定密码,再设置新密码。',
|
||
'settings.appLock.enable': '启用应用锁定',
|
||
'settings.appLock.enableDesc': '启动时锁定,并在达到所选无操作时间后锁定。',
|
||
'settings.appLock.timeout': '无操作超时',
|
||
'settings.appLock.timeoutDesc': '无操作时锁定,关闭到托盘时也会锁定。选择“不自动锁定”则两者都不会锁定。',
|
||
'settings.appLock.timeout.0': '不自动锁定',
|
||
'settings.appLock.timeout.1': '1 分钟',
|
||
'settings.appLock.timeout.5': '5 分钟',
|
||
'settings.appLock.timeout.15': '15 分钟',
|
||
'settings.appLock.timeout.30': '30 分钟',
|
||
'settings.appLock.timeout.60': '60 分钟',
|
||
'settings.appLock.systemUnlock.label': '{label} 解锁',
|
||
'settings.appLock.systemUnlock.desc': '在此设备上使用 {label} 作为解锁 NetMesh 的另一种方式。',
|
||
'settings.appLock.systemUnlock.unavailableDesc': '此设备当前无法使用 {label}。',
|
||
'settings.appLock.systemUnlock.unavailable': '此设备当前无法使用系统解锁。',
|
||
'settings.appLock.systemUnlock.locked': '请先解锁 NetMesh,再更改系统解锁。',
|
||
'settings.appLock.systemUnlock.autoPrompt.label': '自动弹出 {label}',
|
||
'settings.appLock.systemUnlock.autoPrompt.desc': '当 NetMesh 等待解锁时,自动显示 {label} 验证提示。',
|
||
'settings.appLock.currentPassword': '当前密码',
|
||
'settings.appLock.currentPasswordPlaceholder': '禁用或替换时需要',
|
||
'settings.appLock.currentPasswordForDisablePlaceholder': '用于关闭应用锁定的当前密码',
|
||
'settings.appLock.currentPasswordForChangePlaceholder': '用于修改密码的当前密码',
|
||
'settings.appLock.newPassword': '新密码',
|
||
'settings.appLock.newPasswordPlaceholder': '设置锁定密码',
|
||
'settings.appLock.confirmPassword': '确认密码',
|
||
'settings.appLock.confirmPasswordPlaceholder': '再次输入密码',
|
||
'settings.appLock.savePassword': '设置并启用',
|
||
'settings.appLock.savingPassword': '正在保存...',
|
||
'settings.appLock.passwordSet': '密码已配置',
|
||
'settings.appLock.replacePassword': '替换密码',
|
||
'settings.appLock.enableAfterPassword': '请先设置锁定密码,再启用应用锁定。',
|
||
'settings.appLock.localOnlyHint': '仅限本设备的隐私锁。不会同步,也不是系统级安全边界。',
|
||
'settings.appLock.validation.currentRequired': '请输入当前锁定密码。',
|
||
'settings.appLock.validation.newRequired': '请输入新的锁定密码。',
|
||
'settings.appLock.validation.confirmRequired': '请确认新的锁定密码。',
|
||
'settings.appLock.validation.mismatch': '两次输入的新密码不一致。',
|
||
'settings.appLock.validation.incorrect': '当前锁定密码不正确。',
|
||
|
||
// Settings > System > Auto Launch
|
||
'settings.autoLaunch.title': '开机自启动',
|
||
'settings.autoLaunch.enabled': '开机自动启动',
|
||
'settings.autoLaunch.enabledDesc': '系统启动时自动运行 NetMesh,并隐藏到系统托盘。',
|
||
'settings.autoLaunch.unsupportedDesc': '当前平台不支持此功能,或处于开发环境。',
|
||
|
||
// Settings > System > Network Proxy
|
||
'settings.system.networkProxy.title': '网络代理',
|
||
'settings.system.networkProxy.description': '用于云同步与 AI 服务商的 HTTP(S) 代理。与 SSH 的 ProxyJump / ProxyCommand 配置无关。',
|
||
'settings.system.networkProxy.mode': '代理模式',
|
||
'settings.system.networkProxy.mode.system': '系统代理',
|
||
'settings.system.networkProxy.mode.direct': '直连(不使用代理)',
|
||
'settings.system.networkProxy.mode.custom': '自定义代理',
|
||
'settings.system.networkProxy.url': '代理地址',
|
||
'settings.system.networkProxy.url.placeholder': 'http://127.0.0.1:7890',
|
||
'settings.system.networkProxy.url.desc': '支持 http://、https://、socks5:// 的 host:port 地址。代理 URL 中不支持账号密码。',
|
||
'settings.system.networkProxy.bypass': '绕过列表',
|
||
'settings.system.networkProxy.bypass.placeholder': '<local>,localhost,127.0.0.1',
|
||
'settings.system.networkProxy.bypass.desc': '逗号分隔、不走代理的主机。可用 <local> 表示本机与局域网名称。',
|
||
'settings.system.networkProxy.hint': '影响 Google Drive / OneDrive / GitHub 同步登录与 AI 服务商请求,不会改变 SSH 连接。',
|
||
|
||
// Settings > System > Crash Logs
|
||
'settings.system.crashLogs.title': '崩溃日志',
|
||
'settings.system.crashLogs.description': '查看主进程错误日志,帮助诊断异常行为。',
|
||
'settings.system.crashLogs.noLogs': '未找到崩溃日志。',
|
||
'settings.system.crashLogs.entries': '{count} 条记录',
|
||
'settings.system.crashLogs.clear': '清除所有日志',
|
||
'settings.system.crashLogs.cleared': '已清除 {count} 个日志文件。',
|
||
'settings.system.crashLogs.source': '来源',
|
||
'settings.system.crashLogs.time': '时间',
|
||
'settings.system.crashLogs.message': '消息',
|
||
'settings.system.crashLogs.stack': '堆栈跟踪',
|
||
'settings.system.crashLogs.hint': '崩溃日志保留 30 天,超期自动清理。',
|
||
'settings.system.crashLogs.collapse': '收起',
|
||
'settings.system.crashLogs.expand': '查看详情',
|
||
|
||
// Settings > System > Software Update
|
||
'settings.update.title': '软件更新',
|
||
'settings.update.currentVersion': '当前版本',
|
||
'settings.update.checkForUpdates': '检查更新',
|
||
'settings.update.checking': '检查中...',
|
||
'settings.update.upToDate': '当前已是最新版本。',
|
||
'settings.update.available': '新版本 {version} 已发布。',
|
||
'settings.update.download': '下载更新',
|
||
'settings.update.downloading': '正在下载... {percent}%',
|
||
'settings.update.readyToInstall': '更新已下载,准备安装。',
|
||
'settings.update.restartNow': '重启并更新',
|
||
'settings.update.error': '检查更新失败。',
|
||
'settings.update.downloadError': '下载失败。',
|
||
'settings.update.manualDownload': '前往 GitHub 下载',
|
||
'settings.update.manualDownloadHint': '当前平台不支持自动更新,请前往 GitHub 下载最新版本。',
|
||
'settings.update.hint': 'NetMesh 从 GitHub Releases 检查更新。',
|
||
'settings.update.lastCheckedJustNow': '刚刚',
|
||
'settings.update.lastCheckedMinutesAgo': '{n} 分钟前',
|
||
'settings.update.lastCheckedHoursAgo': '{n} 小时前',
|
||
'settings.update.lastCheckedPrefix': '上次检查:',
|
||
'settings.update.autoUpdateEnabled': '自动更新',
|
||
'settings.update.autoUpdateEnabledDesc': '有新版本时自动检查并下载更新。',
|
||
|
||
// Settings > Session Restore
|
||
'settings.sessionRestore.title': '会话恢复',
|
||
'settings.sessionRestore.startupLanding': '启动时打开',
|
||
'settings.sessionRestore.startupLandingDesc': '当没有可恢复的会话时,选择启动后进入主机主页还是直接打开本地终端。',
|
||
'settings.sessionRestore.startupLanding.vault': '主页(主机)',
|
||
'settings.sessionRestore.startupLanding.localTerminal': '本地终端',
|
||
'settings.sessionRestore.restorePreviousSession': '恢复上次的标签页和工作区',
|
||
'settings.sessionRestore.restorePreviousSessionDesc': '启动时重新打开上次的终端标签页和工作区布局。',
|
||
'settings.sessionRestore.restoreTerminalCwd': '恢复终端工作目录',
|
||
'settings.sessionRestore.restoreTerminalCwdDesc': '重新连接恢复的终端时,尝试回到上次记录的目录;失败时不会阻塞连接。',
|
||
'terminal.restore.placeholder.title': '已恢复的会话',
|
||
'terminal.restore.placeholder.desc': '此终端当前已断开。准备好后可以重新连接,为这个标签页启动新的 shell。',
|
||
'terminal.restore.placeholder.reconnect': '重新连接',
|
||
'terminal.restore.cwdLog': '正在恢复工作目录:{cwd}',
|
||
|
||
// Settings > Session Logs
|
||
'settings.sessionLogs.title': '会话日志',
|
||
'settings.sessionLogs.description': '配置会话日志导出和自动保存设置。',
|
||
'settings.sessionLogs.autoSave': '自动保存',
|
||
'settings.sessionLogs.enableAutoSave': '启用自动保存',
|
||
'settings.sessionLogs.enableAutoSaveDesc': '在终端会话结束时自动保存会话日志。',
|
||
'settings.sessionLogs.directory': '保存目录',
|
||
'settings.sessionLogs.noDirectory': '未选择目录',
|
||
'settings.sessionLogs.browse': '浏览',
|
||
'settings.sessionLogs.openFolder': '打开文件夹',
|
||
'settings.sessionLogs.directoryHint': '日志将按主机名组织在子目录中。',
|
||
'settings.sessionLogs.format': '日志格式',
|
||
'settings.sessionLogs.formatDesc': '选择保存日志文件的格式。',
|
||
'settings.sessionLogs.formatTxt': '纯文本 (.txt)',
|
||
'settings.sessionLogs.formatRaw': '原始格式 (.log)',
|
||
'settings.sessionLogs.formatHtml': 'HTML (.html)',
|
||
'settings.sessionLogs.timestamps': '添加时间戳',
|
||
'settings.sessionLogs.timestampsDesc': '为纯文本和 HTML 日志的每一行添加本地时间。',
|
||
'settings.sessionLogs.hint': '会话日志用于记录终端输出,便于故障排查和审计。',
|
||
'settings.sessionLogs.clearAll': '清空所有日志',
|
||
'settings.sessionLogs.clearAllDesc': '删除保存目录中所有会话日志文件及主机子目录。',
|
||
'settings.sessionLogs.clearConfirm': '此操作将永久删除保存目录中的所有会话日志文件,且无法撤销,是否继续?',
|
||
|
||
// Settings > SSH Debug Logs
|
||
'settings.sshDebugLogs.title': 'SSH 调试日志',
|
||
'settings.sshDebugLogs.enable': '启用 SSH 调试日志',
|
||
'settings.sshDebugLogs.enableDesc': '记录连接、认证、握手、断开和错误原因,不记录终端输出。',
|
||
'settings.sshDebugLogs.location': '日志位置',
|
||
'settings.sshDebugLogs.status': '状态',
|
||
'settings.sshDebugLogs.statusOn': '已开启',
|
||
'settings.sshDebugLogs.statusOff': '未开启',
|
||
'settings.sshDebugLogs.size': '大小',
|
||
'settings.sshDebugLogs.hint': '开启后,新发起的 SSH 连接会写入诊断信息,方便排查堡垒机、认证和异常断开问题。',
|
||
|
||
// Settings > Global Hotkey (Quake Mode)
|
||
'settings.globalHotkey.title': '全局快捷键',
|
||
'settings.globalHotkey.toggleWindow': '切换窗口',
|
||
'settings.globalHotkey.toggleWindowDesc': '按下组合键以设置显示/隐藏窗口的全局快捷键。',
|
||
'settings.globalHotkey.notSet': '未设置',
|
||
'settings.globalHotkey.reset': '恢复默认',
|
||
'settings.globalHotkey.closeToTray': '关闭时最小化到托盘',
|
||
'settings.globalHotkey.closeToTrayDesc': '启用后,关闭窗口将最小化到系统托盘而不是退出程序。',
|
||
'settings.globalHotkey.enabled': '启用全局快捷键',
|
||
'settings.globalHotkey.enabledDesc': '注册系统级键盘快捷键。禁用后将取消所有全局快捷键注册。',
|
||
'settings.globalHotkey.hint': '全局快捷键在系统范围内工作,可快速显示或隐藏窗口(下拉式终端风格)。',
|
||
|
||
// Tray Panel
|
||
'tray.openMainWindow': '打开主窗口',
|
||
'tray.sessions': '会话',
|
||
'tray.portForwarding': '端口转发',
|
||
'tray.status.connected': '已连接',
|
||
'tray.status.connecting': '连接中',
|
||
'tray.status.disconnected': '已断开',
|
||
'tray.status.active': '已启用',
|
||
'tray.status.inactive': '未启用',
|
||
'tray.status.error': '错误',
|
||
'tray.status.unknown': '未知',
|
||
'tray.recentHosts': '最近连接的主机',
|
||
'tray.empty.title': '一切都很安静',
|
||
'tray.empty.subtitle': '去连接个服务器吧,它们想念你了 🚀',
|
||
'tray.quit': '退出 NetMesh',
|
||
'tray.closeSession': '关闭会话',
|
||
|
||
// Vault Sidebar
|
||
'vault.sidebar.collapse': '收起侧边栏',
|
||
'vault.sidebar.expand': '展开侧边栏',
|
||
'vault.sidebar.resize': '调整侧边栏宽度',
|
||
|
||
// Settings > Application
|
||
'settings.application.checkUpdates': '检查更新',
|
||
'settings.application.reportProblem': '反馈问题',
|
||
'settings.application.reportProblem.subtitle': '生成预填的 GitHub issue',
|
||
'settings.application.community': '社区',
|
||
'settings.application.community.subtitle': 'GitHub Discussions',
|
||
'settings.application.github': 'GitHub',
|
||
'settings.application.github.subtitle': '源代码',
|
||
'settings.application.whatsNew': '更新内容',
|
||
'settings.application.whatsNew.subtitle': '查看发布说明',
|
||
'settings.application.openExternal.failedTitle': '无法打开链接',
|
||
'settings.application.openExternal.failedBody': '系统浏览器和内置浏览器窗口都无法打开该链接。',
|
||
'settings.vault.title': '主机库',
|
||
'settings.vault.showRecentHosts': '显示最近连接的主机',
|
||
'settings.vault.showRecentHostsDesc': '在主机列表顶部显示最近连接过的主机',
|
||
'settings.vault.selectBeforeConnect': '先选中再连接',
|
||
'settings.vault.selectBeforeConnectDesc': '单击选中主机(网格模式显示强调色边框),再次单击连接;分组同理。默认仍为单击直接连接。',
|
||
'settings.vault.showOnlyUngroupedHostsInRoot': '根目录只显示未分组主机',
|
||
'settings.vault.showOnlyUngroupedHostsInRootDesc': '开启后,主机库根目录的主机列表只显示没有分组的主机,已分组主机请从左侧分组进入查看。',
|
||
'settings.vault.showSftpTab': '显示 SFTP 标签页',
|
||
'settings.vault.showSftpTabDesc': '在顶部标签栏显示独立的 SFTP 视图。关闭后可改用会话内左侧的 SFTP 侧栏。',
|
||
'settings.vault.showHostTreeSidebar': '显示主机列表侧栏',
|
||
'settings.vault.showHostTreeSidebarDesc': '在终端和编辑器标签页显示主机列表侧栏及顶部开关。',
|
||
'settings.vault.autoImportSystemKnownHosts': '自动导入系统 known_hosts',
|
||
'settings.vault.autoImportSystemKnownHostsDesc': '打开主机库时静默导入 OpenSSH known_hosts 中的记录。关闭后,NetMesh 已知主机与系统信任库保持独立;仍可通过「扫描系统」手动导入。',
|
||
'settings.vault.notesFont': '代码字体',
|
||
'settings.vault.notesFontDesc': '自定义笔记中代码块与行内代码使用的字体',
|
||
'settings.vault.notesFontSize': '笔记字号',
|
||
'settings.vault.notesFontSizeDesc': '自定义笔记正文字体大小',
|
||
'settings.vault.notesCodeFontSize': '代码字号',
|
||
'settings.vault.notesCodeFontSizeDesc': '自定义笔记中代码块与行内代码的字体大小',
|
||
|
||
// Update notifications
|
||
'update.available.title': '发现新版本',
|
||
'update.available.message': '新版本 {version} 已发布,点击前往下载。',
|
||
'update.checking': '正在检查更新...',
|
||
'update.upToDate.title': '已是最新版本',
|
||
'update.upToDate.message': '当前版本 ({version}) 已是最新。',
|
||
'update.error': '检查更新失败',
|
||
'update.downloadNow': '立即下载',
|
||
'update.viewInSettings': '在设置中查看',
|
||
'update.readyToInstall.title': '更新已就绪',
|
||
'update.readyToInstall.message': '版本 {version} 已下载完成,准备安装。',
|
||
'update.restartNow': '立即重启',
|
||
'update.downloadFailed.title': '更新失败',
|
||
'update.downloadFailed.message': '下载更新失败,可前往 GitHub 手动下载。',
|
||
'update.needsSave.title': '有未保存内容',
|
||
'update.needsSave.message': '请先保存已打开的编辑器,然后再次点击「立即重启」以安装更新。',
|
||
'update.openReleases': '打开 Releases',
|
||
'update.remindLater': '稍后提醒',
|
||
'update.skipVersion': '跳过此版本',
|
||
|
||
// Settings > Appearance
|
||
'settings.appearance.uiTheme': '界面主题',
|
||
'settings.appearance.theme': '主题',
|
||
'settings.appearance.theme.desc': '选择浅色、深色或跟随系统设置',
|
||
'settings.appearance.theme.light': '浅色',
|
||
'settings.appearance.theme.dark': '深色',
|
||
'settings.appearance.theme.system': '系统',
|
||
'settings.appearance.accentColor': '强调色',
|
||
'settings.appearance.customColor': '自定义颜色',
|
||
'settings.appearance.accentColor.mode': '使用自定义强调色',
|
||
'settings.appearance.accentColor.mode.desc': '覆盖主题自带的强调色',
|
||
'settings.appearance.accentColor.custom': '自定义强调色',
|
||
'settings.appearance.themeColor': '主题色',
|
||
'settings.appearance.themeColor.desc': '为浅色与深色主题选择预设配色',
|
||
'settings.appearance.themeColor.light': '浅色主题',
|
||
'settings.appearance.themeColor.dark': '深色主题',
|
||
'settings.appearance.customCss': '自定义 CSS',
|
||
'settings.appearance.customCss.desc':
|
||
'使用自定义 CSS 个性化界面,修改会立即生效。',
|
||
'settings.appearance.customCss.help.ariaLabel': '自定义 CSS 说明',
|
||
'settings.appearance.customCss.help.title': '自定义 CSS 说明',
|
||
'settings.appearance.customCss.help.body': `主要 UI 区块都暴露了 \`data-section\` 属性,供你用 CSS 定位。编辑后会立即生效。
|
||
|
||
### 如何选择元素
|
||
|
||
使用属性选择器:
|
||
|
||
\`\`\`css
|
||
[data-section="terminal-side-panel"] {
|
||
border: 2px solid #00c851 !important;
|
||
border-radius: 6px !important;
|
||
}
|
||
\`\`\`
|
||
|
||
部分行 / 窗格还支持 \`[data-selected="true"]\`、\`[data-focused="true"]\` 等状态钩子。
|
||
|
||
由于 Tailwind 工具类优先级较高,覆盖样式时通常需要使用 \`!important\`。
|
||
|
||
### 顶部标签栏
|
||
|
||
- \`top-tabs\`
|
||
- \`top-tabs-toolbar-actions\` — 右侧菜单和工具栏
|
||
- \`top-tabs-host-tree-toggle\`
|
||
- \`top-tabs-quick-switcher-toggle\`
|
||
|
||
### 保险库
|
||
|
||
- \`vault-view\`
|
||
- \`vault-sidebar\`
|
||
- \`vault-main\`
|
||
- \`vault-hosts-header\`
|
||
- \`vault-host-list\`
|
||
|
||
### 终端工作区
|
||
|
||
- \`terminal-workspace\`
|
||
- \`terminal-toolbar\` — 终端操作工具栏
|
||
- \`terminal-toolbar-menu\` — 终端工具栏溢出菜单和子菜单
|
||
- \`terminal-workspace-sidebar\` — Focus 模式终端列表
|
||
- \`terminal-host-tree-sidebar\`
|
||
- \`terminal-host-tree-sidebar-content\`
|
||
- \`terminal-host-tree-sidebar-row\`
|
||
- \`terminal-split-pane\`
|
||
- \`terminal-split-resizer\`
|
||
|
||
### 终端侧栏
|
||
|
||
- \`terminal-side-panel\` — SFTP / 脚本 / 主题 / AI 侧栏(仅在打开时存在)
|
||
- \`terminal-side-panel-tabs\`
|
||
- \`terminal-side-panel-content\`
|
||
|
||
### SFTP
|
||
|
||
- \`terminal-sftp-panel\`
|
||
- \`terminal-sftp-host-header\`
|
||
- \`terminal-sftp-pane\`
|
||
- \`terminal-sftp-toolbar\`
|
||
- \`terminal-sftp-path\`
|
||
- \`terminal-sftp-filter-bar\`
|
||
- \`terminal-sftp-list\`
|
||
- \`terminal-sftp-list-header\`
|
||
- \`terminal-sftp-list-row\`
|
||
- \`terminal-sftp-tree\`
|
||
- \`terminal-sftp-tree-row\`
|
||
- \`terminal-sftp-transfer-queue\`
|
||
- \`terminal-sftp-transfer-row\`
|
||
|
||
### 详情 / 工具面板
|
||
|
||
- \`snippets-panel\`
|
||
- \`host-details-panel\`
|
||
- \`group-details-panel\`
|
||
- \`serial-host-details-panel\`
|
||
- \`ai-chat-panel\`
|
||
|
||
### 示例
|
||
|
||
放大菜单和工具栏图标:
|
||
|
||
\`\`\`css
|
||
[data-section="top-tabs-toolbar-actions"] button > svg,
|
||
[data-section="terminal-toolbar"] button > svg,
|
||
[data-section="terminal-toolbar-menu"] button > svg,
|
||
[data-section="terminal-toolbar"] button [data-plugin-icon-kind="package"] {
|
||
width: 20px !important;
|
||
height: 20px !important;
|
||
}
|
||
\`\`\`
|
||
|
||
隐藏顶部标签栏里的主机列表开关:
|
||
|
||
\`\`\`css
|
||
[data-section="top-tabs-host-tree-toggle"] {
|
||
width: 0 !important;
|
||
opacity: 0 !important;
|
||
pointer-events: none !important;
|
||
}
|
||
\`\`\`
|
||
|
||
修改选中的 SFTP 文件行:
|
||
|
||
\`\`\`css
|
||
[data-section="terminal-sftp-list-row"][data-selected="true"] {
|
||
background-color: #00c851 !important;
|
||
color: #001b10 !important;
|
||
}
|
||
\`\`\`
|
||
|
||
高亮当前聚焦的分屏:
|
||
|
||
\`\`\`css
|
||
[data-section="terminal-split-pane"][data-focused="true"] {
|
||
outline: 2px solid hsl(var(--primary)) !important;
|
||
outline-offset: -2px;
|
||
}
|
||
\`\`\`
|
||
`,
|
||
'settings.appearance.customCss.placeholder':
|
||
'/* 示例 — 由于 Tailwind 优先级较高,需要使用 !important */\n\n/* 隐藏顶部标签栏里的主机列表开关 */\n[data-section="top-tabs-host-tree-toggle"] {\n width: 0 !important;\n opacity: 0 !important;\n pointer-events: none !important;\n}\n\n/* 隐藏打开快速切换器的加号按钮 */\n[data-section="top-tabs-quick-switcher-toggle"] {\n display: none !important;\n}\n\n/* SFTP / 操作侧栏边框(关闭侧栏后不会残留) */\n[data-section="terminal-side-panel"] {\n border: 2px solid #00c851 !important;\n border-radius: 6px !important;\n}\n\n/* 修改整个操作侧栏背景,而不只是顶部标签 */\n[data-section="terminal-side-panel"],\n[data-section="terminal-side-panel-tabs"],\n[data-section="terminal-side-panel-content"],\n[data-section="terminal-sftp-panel"],\n[data-section="terminal-sftp-pane"],\n[data-section="terminal-sftp-list"],\n[data-section="terminal-sftp-tree"],\n[data-section="terminal-sftp-transfer-queue"] {\n background-color: #1c384a !important;\n}\n\n/* 修改选中的 SFTP 文件行 */\n[data-section="terminal-sftp-list-row"][data-selected="true"] {\n background-color: #00c851 !important;\n color: #001b10 !important;\n}\n\n/* 加粗分屏分割线 */\n[data-section="terminal-split-resizer-bar"] {\n background-color: hsl(var(--primary)) !important;\n transform: scale(2) !important;\n}\n\n/* 高亮当前聚焦的分屏 */\n[data-section="terminal-split-pane"][data-focused="true"] {\n outline: 2px solid hsl(var(--primary)) !important;\n outline-offset: -2px;\n}\n\n/* 也可在 设置 → 终端 → 工作区聚焦指示 → 聚焦窗格显示边框 */',
|
||
'settings.appearance.language': '语言',
|
||
'settings.appearance.language.desc': '选择界面语言',
|
||
'settings.appearance.uiFont': '界面字体',
|
||
'settings.appearance.uiFont.desc': '选择软件界面使用的字体',
|
||
'settings.appearance.windowOpacity': '窗口透明度',
|
||
'settings.appearance.windowOpacity.desc': '调节整个应用窗口的透明度,方便叠在其他内容上方。较低时终端文字也会变淡;部分 Linux 桌面环境可能不支持。',
|
||
'settings.appearance.appIcon': '应用图标',
|
||
'settings.appearance.appIcon.desc': '选择 Dock/任务栏图标风格,切换应用时更容易找到 NetMesh。运行时生效,安装包内的图标不会改变。',
|
||
'settings.appearance.appIcon.original': '原始',
|
||
'settings.appearance.appIcon.bright': '明亮',
|
||
'settings.appearance.appIcon.dark': '深色',
|
||
'settings.appearance.appIcon.colorful': '彩色',
|
||
'settings.appearance.appIcon.highContrast': '高对比',
|
||
'settings.appearance.appIcon.group.classic': '彩色底',
|
||
'settings.appearance.appIcon.group.white': '白底',
|
||
'settings.appearance.appIcon.group.special': '隐藏款',
|
||
'settings.appearance.appIcon.whiteNavy': '白底 · 海军蓝猫',
|
||
'settings.appearance.appIcon.whiteSky': '白底 · 天蓝猫',
|
||
'settings.appearance.appIcon.whiteRose': '白底 · 玫红猫',
|
||
'settings.appearance.appIcon.whiteEmerald': '白底 · 翡翠猫',
|
||
'settings.appearance.appIcon.whiteAmber': '白底 · 琥珀猫',
|
||
'settings.appearance.appIcon.whiteViolet': '白底 · 紫罗兰猫',
|
||
'settings.appearance.appIcon.rainbow': '彩虹猫',
|
||
// Context menus / common actions
|
||
'action.newHost': '新建主机',
|
||
'action.newSubfolder': '新建文件夹',
|
||
'action.copyPublicKey': '复制公钥',
|
||
'action.keyExport': '导出密钥',
|
||
'action.edit': '编辑',
|
||
'action.delete': '删除',
|
||
'action.remove': '移除',
|
||
'action.convertToHost': '转换为主机',
|
||
|
||
// Sync
|
||
'sync.cloudSync': '云同步',
|
||
'sync.settings': '同步设置',
|
||
'sync.active': '云同步已启用',
|
||
'sync.pending': '有待同步的更改',
|
||
'sync.syncing': '正在同步…',
|
||
'sync.error': '同步错误',
|
||
'sync.notConfigured': '未配置',
|
||
'sync.failed': '同步失败',
|
||
'sync.connected': '已连接',
|
||
'sync.syncNow': '立即同步',
|
||
'sync.recentActivity': '最近活动',
|
||
'sync.history.uploaded': '已 Upload',
|
||
'sync.history.downloaded': '已 Download',
|
||
'sync.history.resolved': '已处理',
|
||
'sync.toast.completedMessage': '同步完成',
|
||
'sync.toast.errorTitle': '同步错误',
|
||
'sync.autoSync.failedTitle': '同步失败',
|
||
'sync.autoSync.inspectFailedTitle': '同步已暂停',
|
||
'sync.autoSync.inspectFailedMessage': '无法访问云端以检查变更。数据改动或下次启动时会自动重试。',
|
||
'sync.autoSync.syncedTitle': '已从云端同步',
|
||
'sync.autoSync.syncedMessage': '你的数据已从云端更新。',
|
||
'sync.autoSync.noProvider': '未连接云同步 provider。请打开 设置 → Sync & Cloud 进行连接。',
|
||
'sync.autoSync.alreadySyncing': '同步正在进行中。',
|
||
'sync.autoSync.restoreInProgress': '另一个窗口中的本地备份恢复正在进行中,请等待其完成。',
|
||
'sync.autoSync.interruptedApplyTitle': '同步已暂停 — 上次恢复未完成',
|
||
'sync.autoSync.interruptedApplyMessage': '上次本地恢复过程未正常结束,本地数据可能处于半应用状态。请打开「设置 → Sync & Cloud → 恢复」,从保护性备份中恢复后再让自动同步继续。',
|
||
'sync.autoSync.vaultLocked': 'Vault 处于锁定状态。请打开 设置 → Sync & Cloud 解锁。',
|
||
'sync.autoSync.conflictDetected': '检测到同步冲突。请打开 设置 → Sync & Cloud 处理。',
|
||
'sync.autoSync.syncFailed': '同步失败',
|
||
'sync.autoSync.restoredTitle': '已恢复',
|
||
'sync.autoSync.restoredMessage': '已从云端恢复主机库数据。',
|
||
'sync.autoSync.keptLocalTitle': '已保留本地数据',
|
||
'sync.autoSync.keptLocalMessage': '保留了空的本地主机库,未应用云端数据。',
|
||
'sync.autoSync.emptyVaultConflict.title': '检测到空主机库',
|
||
'sync.autoSync.emptyVaultConflict.description': '本地主机库为空,但云端有数据。这通常发生在应用更新或存储重置之后。请选择如何处理:',
|
||
'sync.autoSync.emptyVaultConflict.cloudLabel': '云端',
|
||
'sync.autoSync.emptyVaultConflict.restore': '从云端恢复',
|
||
'sync.autoSync.emptyVaultConflict.restoreDesc': '推荐 — 从云端备份恢复主机、密钥和代码片段',
|
||
'sync.autoSync.emptyVaultConflict.keepEmpty': '保持为空',
|
||
'sync.autoSync.emptyVaultConflict.keepEmptyDesc': '从头开始,使用空的主机库',
|
||
'sync.autoSync.emptyVaultConflict.cloudSummary': '{hosts} 台主机,{keys} 个密钥,{snippets} 个代码片段,{notes} 条笔记,{proxyProfiles} 个代理',
|
||
'sync.autoSync.emptyVaultManual': '无法同步:本地 vault 为空。请先从本地备份恢复,或在同步面板里使用"强制推送"。',
|
||
|
||
'sync.blocked.title': '同步已暂停',
|
||
'sync.blocked.reason.bulkShrink': '即将从云端删除 {baseCount} 条 {entityType} 中的 {lost} 条(缩减 {percent}%)。',
|
||
'sync.blocked.reason.largeShrink': '即将从云端删除 {lost} 条 {entityType}。',
|
||
'sync.blocked.detail': '通常是本地状态异常(钥匙串故障、数据加载不全)导致。请从本地备份恢复,如果确实要删这些条目请使用强制推送。',
|
||
'sync.blocked.restoreButton': '从本地备份恢复',
|
||
'sync.blocked.forcePushButton': '强制推送',
|
||
|
||
'sync.forcePush.title': '确认强制推送',
|
||
'sync.forcePush.body': '你将从云端移除 {lost} 条 {entityType},此操作不可撤销。继续?',
|
||
'sync.forcePush.confirm': '确认推送',
|
||
'sync.forcePush.cancel': '取消',
|
||
|
||
'sync.entityType.hosts': '主机',
|
||
'sync.entityType.keys': '密钥',
|
||
'sync.entityType.identities': '身份',
|
||
'sync.entityType.proxyProfiles': '代理配置',
|
||
'sync.entityType.snippets': '代码片段',
|
||
'sync.entityType.customGroups': '分组',
|
||
'sync.entityType.snippetPackages': '片段包',
|
||
'sync.entityType.knownHosts': '主机密钥记录',
|
||
'sync.entityType.portForwardingRules': '端口转发规则',
|
||
'sync.entityType.groupConfigs': '分组配置',
|
||
|
||
'sync.credentialsUnavailable': '当前设备无法解密部分已保存凭据。请先在本地重新输入凭据后再同步。',
|
||
'time.never': '从未',
|
||
'time.justNow': '刚刚',
|
||
'time.minutesAgo': '{minutes} 分钟前',
|
||
|
||
// Vault navigation
|
||
'vault.nav.hosts': '主机',
|
||
'vault.nav.keychain': '钥匙串',
|
||
'vault.nav.proxies': '代理',
|
||
'vault.nav.portForwarding': '端口转发',
|
||
'vault.nav.snippets': '脚本',
|
||
'vault.nav.notes': '笔记',
|
||
'vault.nav.knownHosts': '已知主机',
|
||
'vault.nav.logs': '日志',
|
||
|
||
'proxyProfiles.action.add': '添加代理',
|
||
'proxyProfiles.search.placeholder': '搜索代理…',
|
||
'proxyProfiles.section.proxies': '代理',
|
||
'proxyProfiles.count.items': '{count} 项',
|
||
'proxyProfiles.empty.title': '暂无代理',
|
||
'proxyProfiles.empty.desc': '创建可复用的 HTTP、SOCKS5 或命令代理,然后在主机详情里选择。',
|
||
'proxyProfiles.usage': '已关联 {count} 处',
|
||
'proxyProfiles.copyName': '{name} 副本',
|
||
'proxyProfiles.panel.newTitle': '新建代理',
|
||
'proxyProfiles.field.name': '代理名称',
|
||
'proxyProfiles.error.required': '名称和代理详情不能为空。',
|
||
'proxyProfiles.error.port': '端口必须在 1 到 65535 之间。',
|
||
'proxyProfiles.viewMode': '代理显示方式',
|
||
'proxyProfiles.delete.title': '删除代理?',
|
||
'proxyProfiles.delete.desc': '删除 "{name}" 会同时从 {count} 个主机或分组设置中解除关联。',
|
||
|
||
'vault.groups.title': '分组',
|
||
'vault.groups.total': '共 {count} 个',
|
||
'vault.groups.hostsCount': '{count} 台主机',
|
||
'vault.groups.newSubgroup': '新建子分组',
|
||
'vault.groups.rename': '重命名分组',
|
||
'vault.groups.unnamed': '未命名分组',
|
||
'vault.groups.delete': '删除分组',
|
||
'vault.groups.createSubfolder': '创建子分组',
|
||
'vault.groups.createRoot': '创建根分组',
|
||
'vault.groups.createDialog.desc': '创建新的分组用于组织主机。',
|
||
'vault.groups.renameDialogTitle': '重命名分组',
|
||
'vault.groups.renameDialog.desc': '重命名已有分组。',
|
||
'vault.groups.deleteDialogTitle': '删除分组',
|
||
'vault.groups.deleteDialog.desc': '这将永久删除该分组并将所有主机移动到根级别。',
|
||
'vault.groups.deleteDialog.managedDesc': '这是一个托管的 SSH config 分组。删除后将同时删除所有主机并断开与源文件的连接。',
|
||
'vault.groups.deleteDialog.deleteHosts': '同时删除该分组下的所有主机',
|
||
'vault.groups.deleteDialog.bulkTitle': '删除所选分组',
|
||
'vault.groups.deleteDialog.bulkDesc': '这将永久删除所选分组,并把其中的主机移动到根级别。',
|
||
'vault.groups.deleteDialog.bulkDeleteHosts': '同时删除所选分组下的所有主机',
|
||
'vault.groups.selectedCount': '已选择 {count} 个分组',
|
||
'vault.groups.deleteMultiple.success': '已删除 {count} 个所选项目',
|
||
'vault.groups.ungrouped': '未分组',
|
||
'vault.groups.field.name': '分组名称',
|
||
'vault.groups.placeholder.example': '例如:Production',
|
||
'vault.groups.parentLabel': '父级',
|
||
'vault.groups.pathLabel': '路径',
|
||
'vault.groups.settings': '分组设置',
|
||
'vault.groups.details': '分组详情',
|
||
'vault.groups.details.general': '常规',
|
||
'vault.groups.details.ssh': 'SSH',
|
||
'vault.groups.details.telnet': 'Telnet',
|
||
'vault.groups.details.advanced': '高级',
|
||
'vault.groups.details.appearance': '外观',
|
||
'vault.groups.details.mosh': 'Mosh',
|
||
'vault.groups.details.parentGroup': '父分组',
|
||
'vault.groups.details.none': '无',
|
||
'vault.groups.details.inherited': '继承自分组',
|
||
'vault.groups.details.addProtocol': '添加协议',
|
||
'vault.groups.details.removeProtocol': '移除协议',
|
||
'vault.groups.details.fontFamily': '字体',
|
||
'vault.groups.details.fontSize': '字号',
|
||
'vault.groups.errors.required': '分组名称不能为空。',
|
||
'vault.groups.errors.invalidChars': "分组名称不能包含 '/' 或 '\\\\'.",
|
||
'vault.groups.errors.duplicatePath': '该位置已存在同名分组。',
|
||
|
||
'vault.deleteConfirm.title': '删除“{name}”?',
|
||
'vault.deleteConfirm.desc': '此操作不可撤销。',
|
||
'vault.deleteConfirm.packageDesc': '这会删除脚本包,包内脚本会保留,并移出该脚本包。',
|
||
'vault.deleteConfirm.noteGroupDesc': '这会删除文件夹,文件夹内笔记会保留,并移出该文件夹。',
|
||
'vault.deleteConfirm.portForwardingDesc': '这会删除该端口转发规则。',
|
||
|
||
'vault.managedSource.unmanage': '取消托管',
|
||
'vault.managedSource.unmanageSuccess': '已取消托管分组',
|
||
|
||
'vault.hosts.header.entries': '{count} 条',
|
||
'vault.hosts.header.live': '{count} 个在线',
|
||
|
||
// Vault hosts header/actions
|
||
'vault.hosts.search.placeholder': '查找主机或 ssh user@hostname / ssh -p 2222 user@hostname…',
|
||
'vault.hosts.connect': '连接',
|
||
'vault.hosts.openSftp': '打开 SFTP',
|
||
'vault.view.grid': '网格',
|
||
'vault.view.list': '列表',
|
||
'vault.view.tree': '树形',
|
||
'vault.tree.expandAll': '展开全部',
|
||
'vault.tree.collapseAll': '折叠全部',
|
||
'vault.hosts.newHost': '新建主机',
|
||
'vault.hosts.newGroup': '新建分组',
|
||
'vault.hosts.import': '导入',
|
||
'vault.hosts.export': '导出',
|
||
'vault.hosts.export.toast.success': '已导出 {count} 个主机到 CSV',
|
||
'vault.hosts.export.toast.successWithSkipped': '已导出 {count} 个主机到 CSV(跳过 {skipped} 个不支持的主机)',
|
||
'vault.hosts.export.toast.passphrasesSkipped': '有 {count} 个已保存的密钥口令无法读取,导出时已留空',
|
||
'vault.hosts.export.toast.noHosts': '没有主机可导出',
|
||
'vault.hosts.allHosts': '全部主机',
|
||
'vault.hosts.pinned': '已置顶',
|
||
'vault.hosts.recentlyConnected': '最近连接',
|
||
'vault.hosts.pinToTop': '置顶',
|
||
'vault.hosts.unpin': '取消置顶',
|
||
'vault.hosts.copyCredentials': '复制账密信息',
|
||
'vault.hosts.copyCredentials.toast.success': '账密信息已复制到剪贴板',
|
||
'vault.hosts.copyCredentials.toast.noPassword': '该主机未保存密码',
|
||
'vault.hosts.multiSelect': '多选',
|
||
'vault.hosts.selected': '已选择 {count} 项',
|
||
'vault.hosts.selectedSummary': '已选择 {hosts} 个主机和 {groups} 个分组',
|
||
'vault.hosts.selectAll': '全选',
|
||
'vault.hosts.deselectAll': '取消全选',
|
||
'vault.hosts.deleteSelected': '删除 ({count})',
|
||
'vault.hosts.deleteMultiple.success': '已删除 {count} 个主机',
|
||
'vault.hosts.connectSelected': '连接 ({count})',
|
||
'vault.hosts.connectMultiple.success': '正在连接 {count} 个主机',
|
||
'vault.hosts.moveToGroup.success': '已将 {host} 移动到 {group}',
|
||
'vault.hosts.errors.nameRequired': '主机名称不能为空。',
|
||
'vault.hosts.empty.title': '设置你的主机',
|
||
'vault.hosts.empty.desc': '保存主机以快速连接到你的服务器、虚拟机和容器。',
|
||
'deepLink.ssh.invalid': '无效的 ssh:// 链接',
|
||
'deepLink.telnet.invalid': '无效的 telnet:// 链接',
|
||
'deepLink.jms.invalid': '无效的 JumpServer 链接',
|
||
'deepLink.jms.unsupported': '不支持的 JumpServer 协议:{{protocol}}',
|
||
|
||
// Vault import
|
||
'vault.import.title': '添加数据到你的 Vault',
|
||
'vault.import.desc': '从常见工具迁移连接信息。选择一种格式开始导入。',
|
||
'vault.import.chooseFormat': '选择文件格式',
|
||
'vault.import.destination.title': '导入的主机放到哪里?',
|
||
'vault.import.destination.preserve': '保留原始分组',
|
||
'vault.import.destination.existing': '选择已有分组',
|
||
'vault.import.destination.new': '新建分组',
|
||
'vault.import.destination.noGroups': '暂无可选分组',
|
||
'vault.import.destination.newPlaceholder': '输入新分组名称',
|
||
'vault.import.destination.settings': '导入位置',
|
||
'vault.import.destination.settingsHint': '设置主机放到哪个分组',
|
||
'vault.import.destination.done': '完成',
|
||
'vault.import.securecrt.directoryHint': '请选择 SecureCRT 的 Sessions 文件夹。',
|
||
'vault.import.securecrt.chooseSource': '选择 SecureCRT 导入来源。',
|
||
'vault.import.securecrt.sourceQuestion': '你想导入哪些会话?',
|
||
'vault.import.securecrt.promptTitle': '从 SecureCRT 导入',
|
||
'vault.import.securecrt.promptDesc':
|
||
'请选择 SecureCRT 的 Sessions 文件夹以导入全部会话并保留目录结构,也可以只导入单个 .ini 会话文件。',
|
||
'vault.import.securecrt.folder': 'Sessions 文件夹',
|
||
'vault.import.securecrt.folderDesc': '一次导入全部会话,并保留目录结构。',
|
||
'vault.import.securecrt.file': '单个会话文件',
|
||
'vault.import.securecrt.fileDesc': '导入一个 SecureCRT .ini 会话。',
|
||
'vault.import.csv.tip': '批量导入:可使用 CSV 模板填写后导入。',
|
||
'vault.import.csv.downloadTemplate': '下载 CSV 模板',
|
||
'vault.import.toast.start': '正在从 {format} 导入...',
|
||
'vault.import.toast.completedTitle': '导入完成',
|
||
'vault.import.toast.failedTitle': '导入失败',
|
||
'vault.import.toast.noEntries': '{format} 文件中没有可导入的条目。',
|
||
'vault.import.toast.noNewHosts': '从 {format} 没有导入到新的主机。',
|
||
'vault.import.toast.summary': '已导入 {count} 个主机(跳过 {skipped},重复 {duplicates})。',
|
||
'vault.import.toast.firstIssue': '首个问题:{issue}',
|
||
'vault.import.progress.title': '正在导入主机',
|
||
'vault.import.progress.reading': '正在读取文件',
|
||
'vault.import.progress.parsing': '正在解析主机',
|
||
'vault.import.progress.preparing': '正在整理导入内容',
|
||
'vault.import.progress.saving': '正在保存主机',
|
||
'vault.import.progress.complete': '导入完成',
|
||
'vault.import.progress.failed': '导入失败',
|
||
'vault.import.progress.persistFailed': '导入的主机无法保存。请清理本地存储空间后重试。',
|
||
'vault.import.progress.rollbackFailed': '导入内容无法安全回退,可能仍有部分主机留在仓库中。请检查后再重试。',
|
||
'vault.import.progress.summary': '已导入 {count} 台主机;跳过 {skipped} 条;重复 {duplicates} 条。',
|
||
'vault.import.progress.keepOpen': '导入正在后台进行,请保持 NetMesh 开启。',
|
||
'vault.import.progress.fileSummary': '{name} · {count} 个文件',
|
||
'vault.import.progress.fileCount': '已处理 {completed}/{total} 个文件',
|
||
'vault.import.mobaxterm.chooseEncoding': '选择如何读取 MobaXterm 文件。',
|
||
'vault.import.mobaxterm.encodingQuestion': '这个文件使用哪种文字编码?',
|
||
'vault.import.mobaxterm.auto': '自动检测',
|
||
'vault.import.mobaxterm.autoDesc': '推荐。能按 UTF-8 读取时使用 UTF-8,否则使用中文 Windows 编码。',
|
||
'vault.import.mobaxterm.utf8': 'UTF-8',
|
||
'vault.import.mobaxterm.utf8Desc': '适用于已保存或转换为 UTF-8 的文件。',
|
||
'vault.import.mobaxterm.gb18030': '中文 Windows',
|
||
'vault.import.mobaxterm.gb18030Desc': '适用于中文 Windows 上导出的旧版文件。',
|
||
'vault.import.mobaxterm.masterPassword': '主密码(可选)',
|
||
'vault.import.mobaxterm.masterPasswordPlaceholder': '输入 MobaXterm 主密码',
|
||
'vault.import.mobaxterm.masterPasswordHint':
|
||
'导入 .mobaconf 或 MobaXterm.ini 中保存的密码时需要填写。留空则只导入会话。',
|
||
'vault.import.sshConfig.chooseMode': '选择如何导入你的 SSH config 文件。',
|
||
'vault.import.sshConfig.modeQuestion': '你希望如何导入?',
|
||
'vault.import.sshConfig.importOnly': '仅导入',
|
||
'vault.import.sshConfig.importOnlyDesc': '一次性导入,修改不会同步回文件。',
|
||
'vault.import.sshConfig.managed': '托管同步',
|
||
'vault.import.sshConfig.managedDesc': '保持同步,修改会自动保存回文件。',
|
||
'vault.import.sshConfig.managedDestinationHint': '托管同步会使用独立的托管分组;上方目标分组只用于一次性导入。',
|
||
'vault.import.sshConfig.managedGroup': 'ssh config',
|
||
'vault.import.sshConfig.managedSuccess': '已导入 {count} 个主机,文件已托管。',
|
||
'vault.import.sshConfig.alreadyManaged': '该文件已被托管。',
|
||
'vault.import.sshConfig.alreadyManagedDesc': '该文件已在分组 "{group}" 下托管。如需重新导入,请先移除现有的托管源。',
|
||
'vault.import.sshConfig.noFilePath': '无法托管此文件。',
|
||
'vault.import.sshConfig.noFilePathDesc': '无法确定文件路径。托管同步需要访问文件系统。',
|
||
|
||
// Known Hosts
|
||
'knownHosts.search.placeholder': '搜索已知主机...',
|
||
'knownHosts.action.scanSystem': '扫描系统',
|
||
'knownHosts.action.importFile': '导入文件',
|
||
'knownHosts.action.browseFile': '浏览文件',
|
||
'knownHosts.empty.title': '暂无已知主机',
|
||
'knownHosts.empty.desc':
|
||
'Known Hosts 是你之前连接过的 SSH server。导入系统的 known_hosts 文件以开始。',
|
||
'knownHosts.results.showingLimited': '显示 {shown}/{total} 个主机。使用搜索查找特定主机。',
|
||
'knownHosts.toast.scanUnavailable': '当前平台无法扫描系统 known_hosts。',
|
||
'knownHosts.toast.scanNoFile': '未找到系统 known_hosts 文件。',
|
||
'knownHosts.toast.scanNoEntries': 'known_hosts 中没有可用条目。',
|
||
'knownHosts.toast.scanImported': '已导入 {count} 个新主机。',
|
||
'knownHosts.toast.scanNoNew': '没有发现新的主机。',
|
||
'knownHosts.toast.scanFailed': '扫描系统 known_hosts 失败。',
|
||
|
||
// Port Forwarding
|
||
'pf.empty.title': '配置端口转发规则',
|
||
'pf.empty.desc': '保存端口转发规则,用于访问数据库、Web 应用等服务。',
|
||
'pf.title': '端口转发规则',
|
||
'pf.rulesCount': '{count} 条规则',
|
||
'pf.wizard.editTitle': '编辑端口转发规则',
|
||
'pf.wizard.newTitle': '新建端口转发规则',
|
||
'pf.wizard.saveChanges': '保存修改',
|
||
'pf.wizard.done': '完成',
|
||
'pf.wizard.continue': '继续',
|
||
'pf.wizard.cancel': '取消',
|
||
'pf.wizard.skipWizard': '跳过向导',
|
||
'pf.error.hostNotFound': '未找到主机',
|
||
'pf.toast.titleWithLabel': '端口转发规则: {label}',
|
||
'pf.type.local': '本地转发',
|
||
'pf.type.remote': '远程转发',
|
||
'pf.type.dynamic': '动态转发',
|
||
'pf.type.menu.local': '本地转发',
|
||
'pf.type.menu.remote': '远程转发',
|
||
'pf.type.menu.dynamic': '动态转发',
|
||
'pf.type.local.desc': '本地转发让你像访问本地一样访问远程服务端口。',
|
||
'pf.type.remote.desc': '远程转发在远端开启端口,并将连接转发到本地(当前)主机。',
|
||
'pf.type.dynamic.desc': '动态转发将 NetMesh 作为 SOCKS 代理使用。',
|
||
'pf.wizard.type.title': '选择端口转发类型:',
|
||
'pf.wizard.localConfig.title': '设置本地端口与绑定地址:',
|
||
'pf.wizard.localConfig.desc': '该端口会在本地(当前设备)打开,并接收流量。',
|
||
'pf.wizard.localConfig.localPort': '本地端口 *',
|
||
'pf.wizard.bindAddress': '绑定地址',
|
||
'pf.wizard.remoteHost.title': '选择远端主机:',
|
||
'pf.wizard.remoteHost.desc': '选择要打开端口的远端主机。该端口的流量将转发到目标地址。',
|
||
'pf.wizard.remoteConfig.title': '设置端口与绑定地址:',
|
||
'pf.wizard.remoteConfig.desc': '将从所选主机的指定端口与网卡地址转发流量。',
|
||
'pf.wizard.remoteConfig.remotePort': '远端端口 *',
|
||
'pf.wizard.destination.title': '设置目标地址:',
|
||
'pf.wizard.destination.desc.local': '输入你希望通过 tunnel 访问的远端目标地址。',
|
||
'pf.wizard.destination.desc.remote': '要转发流量到的目标地址与端口。',
|
||
'pf.wizard.destination.address': '目标地址 *',
|
||
'pf.wizard.destination.addressPlaceholder': '例如:127.0.0.1 或 192.168.1.100',
|
||
'pf.wizard.destination.port': '目标端口 *',
|
||
'pf.wizard.sshServer.title': '选择 SSH server:',
|
||
'pf.wizard.sshServer.desc.dynamic': '选择作为 SOCKS proxy 的 SSH server。',
|
||
'pf.wizard.sshServer.desc.default': '选择用于将流量 tunnel 到目标地址的 SSH server。',
|
||
'pf.wizard.label.title': '设置 Label:',
|
||
'pf.wizard.label.placeholder.dynamic': '例如:SOCKS Proxy',
|
||
'pf.wizard.label.placeholder.default': '例如:MySQL Production',
|
||
'pf.wizard.label.placeholder.remoteRule': '例如:Remote Rule',
|
||
'pf.wizard.placeholders.portExample': '例如:{port}',
|
||
|
||
// SFTP
|
||
'sftp.newFolder': '新建文件夹',
|
||
'sftp.newFile': '新建文件',
|
||
'sftp.filter': '筛选',
|
||
'sftp.filter.placeholder': '按文件名筛选...',
|
||
'sftp.bookmark.add': '收藏此路径',
|
||
'sftp.bookmark.remove': '取消收藏',
|
||
'sftp.bookmark.list': '收藏路径',
|
||
'sftp.bookmark.addGlobal': '+全局',
|
||
'sftp.bookmark.addGlobalTooltip': '保存为全局收藏(所有主机共享)',
|
||
'sftp.bookmark.empty': '暂无收藏路径',
|
||
'sftp.bookmark.removeConfirm': '删除收藏 {path}?',
|
||
'sftp.bookmark.manage': '管理',
|
||
'sftp.bookmark.rename': '重命名收藏',
|
||
'sftp.bookmark.done': '完成',
|
||
'sftp.bookmark.moveUp': '上移 {label}',
|
||
'sftp.bookmark.moveDown': '下移 {label}',
|
||
'sftp.columns.name': '名称',
|
||
'sftp.columns.configure': '选择显示的列',
|
||
'sftp.columns.modified': '修改时间',
|
||
'sftp.columns.size': '大小',
|
||
'sftp.columns.kind': '类型',
|
||
'sftp.columns.owner': '所有者',
|
||
'sftp.columns.actions': '操作',
|
||
'sftp.sort.directoriesFirst': '目录置顶',
|
||
'sftp.emptyDirectory': '空目录',
|
||
'sftp.nav.up': '返回上层',
|
||
'sftp.nav.home': '返回主目录',
|
||
'sftp.nav.refresh': '刷新',
|
||
'sftp.upload': '上传',
|
||
'sftp.uploadFiles': '上传文件',
|
||
'sftp.uploadFolder': '上传文件夹',
|
||
'sftp.dragDropToUpload': '拖拽文件到这里上传',
|
||
'sftp.retry': '重试',
|
||
'sftp.context.open': '打开',
|
||
'sftp.context.navigateTo': '跳转到这里',
|
||
'sftp.context.moveTo': '移动到...',
|
||
'sftp.context.moveToParent': '移动到上级目录',
|
||
'sftp.moveTo.title': '移动到目录',
|
||
'sftp.moveTo.placeholder': '输入目标目录路径',
|
||
'sftp.moveTo.confirm': '移动',
|
||
'sftp.moveTo.pathNotFound': '目录不存在或无法访问',
|
||
'sftp.context.download': '下载',
|
||
'sftp.context.extract': '解压到当前目录',
|
||
'sftp.extract.extracting': '正在解压 {fileName}...',
|
||
'sftp.extract.success': '已解压 {fileName}',
|
||
'sftp.extract.error': '解压 {fileName} 失败:{error}',
|
||
'sftp.context.copyToOtherPane': '复制到另一侧',
|
||
'sftp.copyToOtherPane.unavailable': '请打开双栏 SFTP 文件管理,并连接目标侧后再复制文件。',
|
||
'sftp.copyCurrentPath': '复制当前路径',
|
||
'sftp.copyCurrentPath.success': '已复制当前路径',
|
||
'sftp.copyCurrentPath.error': '无法复制当前路径',
|
||
'sftp.viewMode.label': '视图模式',
|
||
'sftp.viewMode.list': '列表视图',
|
||
'sftp.viewMode.tree': '树形视图',
|
||
'sftp.viewMode.switchToList': '切换到列表视图',
|
||
'sftp.viewMode.switchToTree': '切换到树形视图',
|
||
'sftp.listDensity.compact': '紧凑列表',
|
||
'sftp.listDensity.comfortable': '宽松列表',
|
||
'sftp.listDensity.switchToCompact': '切换到紧凑列表',
|
||
'sftp.listDensity.switchToComfortable': '切换到宽松列表',
|
||
'sftp.tree.loadError': '加载目录失败',
|
||
'sftp.tree.loading': '加载中...',
|
||
'sftp.kind.folder': '文件夹',
|
||
'sftp.context.rename': '重命名',
|
||
'sftp.context.permissions': '权限',
|
||
'sftp.context.delete': '删除',
|
||
'sftp.context.refresh': '刷新',
|
||
'sftp.context.uploadFiles': '上传文件...',
|
||
'sftp.context.uploadFilesHere': '上传文件到这里...',
|
||
'sftp.context.uploadFolder': '上传文件夹...',
|
||
'sftp.context.uploadFolderHere': '上传文件夹到这里...',
|
||
'sftp.context.downloadSelected': '下载选中项({count})',
|
||
'sftp.context.deleteSelected': '删除选中项({count})',
|
||
'sftp.dropFilesHere': '拖拽文件到这里',
|
||
'sftp.itemsCount': '{count} 个项目',
|
||
'sftp.selectedCount': '已选 {count} 个',
|
||
'sftp.path.doubleClickToEdit': '双击编辑路径',
|
||
'sftp.showHiddenPaths': '隐藏的路径',
|
||
'sftp.task.waiting': '等待中...',
|
||
'sftp.transfer.preparing': '准备中...',
|
||
'sftp.status.loading': '加载中...',
|
||
'sftp.status.uploading': '上传中...',
|
||
'sftp.status.ready': '就绪',
|
||
'sftp.transfers': '传输',
|
||
'sftp.transfers.active': '{count} 个进行中',
|
||
'sftp.transfers.clearCompleted': '清除已完成',
|
||
'sftp.transfers.calculatingTotal': '正在统计总大小...',
|
||
'sftp.transfers.filesCount': '{count} 个文件',
|
||
'sftp.transfers.filesProgress': '{current}/{total} 个文件',
|
||
'sftp.transfers.filesDiscoveredProgress': '已完成 {completed} · 已发现 {discovered}',
|
||
'sftp.transfers.expandChildren': '展开文件',
|
||
'sftp.transfers.collapseChildren': '收起文件',
|
||
'sftp.transfers.expandChildList': '展开详情',
|
||
'sftp.transfers.collapseChildList': '收起',
|
||
'sftp.transfers.retryAction': '重试',
|
||
'sftp.transfers.dismissAction': '移除',
|
||
'sftp.transfers.openTargetFolder': '打开目标目录',
|
||
'sftp.transfers.openTargetFolderError': '无法打开目标目录',
|
||
'sftp.transfers.copyTargetPath': '复制目标路径',
|
||
'sftp.transfers.copyTargetPathSuccess': '已复制目标路径',
|
||
'sftp.transfers.copyTargetPathError': '无法复制目标路径',
|
||
'sftp.transfers.pathConflict.title': '无法开始传输',
|
||
'sftp.transfers.pathConflict.paused': '“{name}”已有传输任务处于暂停状态,请先继续或取消该任务。',
|
||
'sftp.transfers.pathConflict.inProgress': '“{name}”已有传输任务正在进行中。',
|
||
'sftp.transferCenter.title': '文件传输',
|
||
'sftp.transferCenter.quitConfirm': '还有 {count} 个文件传输任务未完成。退出后会保留进度,下次打开时需要手动继续。确定退出吗?',
|
||
'sftp.transferCenter.phase.scanning': '正在扫描',
|
||
'sftp.transferCenter.phase.compressing': '正在压缩',
|
||
'sftp.transferCenter.phase.uploading': '正在上传',
|
||
'sftp.transferCenter.phase.transferring': '传输中',
|
||
'sftp.transferCenter.phase.extracting': '正在解压',
|
||
'sftp.transferCenter.phase.verifying': '正在校验',
|
||
'sftp.transferCenter.bucket.active': '进行中',
|
||
'sftp.transferCenter.bucket.all': '全部',
|
||
'sftp.transferCenter.bucket.queued': '排队中',
|
||
'sftp.transferCenter.bucket.paused': '已暂停',
|
||
'sftp.transferCenter.bucket.failed': '失败',
|
||
'sftp.transferCenter.bucket.attention': '需要处理',
|
||
'sftp.transferCenter.bucket.completed': '已完成',
|
||
'sftp.transferCenter.status.pending': '准备中',
|
||
'sftp.transferCenter.status.resuming': '正在重新连接并续传…',
|
||
'sftp.transferCenter.status.queued': '排队中',
|
||
'sftp.transferCenter.status.transferring': '传输中',
|
||
'sftp.transferCenter.status.pausing': '正在暂停',
|
||
'sftp.transferCenter.status.paused': '已暂停',
|
||
'sftp.transferCenter.status.attention': '需要处理',
|
||
'sftp.transferCenter.status.interrupted': '已中断,请手动继续',
|
||
'sftp.transferCenter.status.completed': '已完成',
|
||
'sftp.transferCenter.status.failed': '失败',
|
||
'sftp.transferCenter.status.cancelled': '已取消',
|
||
'sftp.transferCenter.background': '后台',
|
||
'sftp.transferCenter.pause': '暂停',
|
||
'sftp.transferCenter.resume': '继续',
|
||
'sftp.transferCenter.prioritize': '优先传输',
|
||
'sftp.transferCenter.pauseAll': '全部暂停',
|
||
'sftp.transferCenter.resumeAll': '全部继续',
|
||
'sftp.transferCenter.empty': '当前分类没有传输任务',
|
||
'sftp.transferCenter.showBackground': '显示 {count} 个后台任务',
|
||
'sftp.transferCenter.hideBackground': '隐藏后台任务',
|
||
'sftp.transferCenter.clear': '清理记录',
|
||
'sftp.transferCenter.applyAll': '应用到全部',
|
||
'sftp.transfers.resizeNameColumn': '调整文件名列宽',
|
||
'sftp.transfers.dragToResize': '拖拽调整高度',
|
||
'sftp.goUp': '上一级',
|
||
'sftp.goToTerminalCwd': '定位到终端当前目录',
|
||
'sftp.locatePathInTerminal': '定位路径到终端',
|
||
'sftp.followTerminalCwd': '追随终端目录',
|
||
'sftp.followTerminalCwd.enable': '开启追随终端目录',
|
||
'sftp.followTerminalCwd.disable': '关闭追随终端目录',
|
||
'sftp.encoding.label': '文件名编码',
|
||
'sftp.encoding.auto': '自动',
|
||
'sftp.encoding.utf8': 'UTF-8',
|
||
'sftp.encoding.gb18030': 'GB18030',
|
||
'sftp.goHome': '返回主目录',
|
||
'sftp.goRoot': '回到根目录',
|
||
'sftp.folderName': '文件夹名称',
|
||
'sftp.folderName.placeholder': '输入文件夹名称',
|
||
'sftp.fileName': '文件名称',
|
||
'sftp.fileName.placeholder': '输入文件名称',
|
||
'sftp.prompt.newFolderName': '新建文件夹名称?',
|
||
'sftp.rename.title': '重命名',
|
||
'sftp.rename.newName': '新名称',
|
||
'sftp.rename.placeholder': '输入新名称',
|
||
'sftp.confirm.deleteOne': '删除 "{name}"?',
|
||
'sftp.deleteConfirm.single': '删除 "{name}"?',
|
||
'sftp.deleteConfirm.title': '删除 {count} 个项目?',
|
||
'sftp.deleteConfirm.desc': '此操作不可撤销,将删除以下内容:',
|
||
'sftp.deleteConfirm.descSingle': '此操作不可撤销。',
|
||
'sftp.deleteConfirm.host': '主机',
|
||
'sftp.deleteConfirm.path': '路径',
|
||
'sftp.error.loadFailed': '加载目录失败',
|
||
'sftp.error.downloadFailed': '下载失败',
|
||
'sftp.error.uploadFailed': '上传失败',
|
||
'sftp.error.deleteFailed': '删除失败',
|
||
'sftp.error.createFolderFailed': '创建文件夹失败',
|
||
'sftp.error.createFileFailed': '创建文件失败',
|
||
'sftp.error.invalidFileName': '文件名包含非法字符:{chars}',
|
||
'sftp.error.reservedName': '此文件名是系统保留名称',
|
||
'sftp.overwrite.title': '文件已存在',
|
||
'sftp.overwrite.desc': '名为"{name}"的文件已存在。是否要替换它?',
|
||
'sftp.overwrite.confirm': '替换',
|
||
'sftp.error.renameFailed': '重命名失败',
|
||
'sftp.picker.title': '选择主机',
|
||
'sftp.picker.desc': '为{side}窗格选择主机',
|
||
'sftp.picker.searchPlaceholder': '搜索主机...',
|
||
'sftp.picker.local.title': '本地文件系统',
|
||
'sftp.picker.local.desc': '浏览本地文件',
|
||
'sftp.picker.local.badge': '本地',
|
||
'sftp.picker.connected.section': '已连接',
|
||
'sftp.picker.connected.badge': '已连接',
|
||
'sftp.picker.connected.connecting': '连接中',
|
||
'sftp.picker.noMatch': '没有匹配的主机',
|
||
'sftp.permissions.title': '编辑权限',
|
||
'sftp.permissions.owner': '所有者',
|
||
'sftp.permissions.group': '群组',
|
||
'sftp.permissions.others': '其他',
|
||
'sftp.permissions.octal': '八进制',
|
||
'sftp.permissions.symbolic': '符号',
|
||
'sftp.permissions.success': '权限已更新',
|
||
'sftp.permissions.failed': '权限更新失败',
|
||
|
||
// Quick Switcher
|
||
'qs.search.placeholder': '搜索主机或标签页',
|
||
'qs.jumpTo': '跳转到',
|
||
'qs.localTerminal': '本地终端',
|
||
'qs.localShells': '本地 Shell',
|
||
'qs.default': '默认',
|
||
'settings.tab.plugins': '插件',
|
||
'settings.plugins.title': '插件设置',
|
||
'settings.plugins.description': '由开发插件提供、经 NetMesh 原生组件验证的设置。',
|
||
'settings.plugins.loading': '正在加载插件设置…',
|
||
'settings.plugins.empty': '当前没有已启用插件提供设置。',
|
||
'settings.plugins.scopeContext': '请在对应的 {scope} 上下文中打开此设置。',
|
||
'settings.plugins.pressKeybinding': '请按下组合键',
|
||
'settings.plugins.validJsonArray': '请输入有效的 JSON 数组。',
|
||
'settings.plugins.browse': '浏览',
|
||
'settings.plugins.restartRequired': '需要重启',
|
||
'settings.plugins.saving': '正在保存…',
|
||
'settings.plugins.storedSecurely': '已安全存储',
|
||
'settings.plugins.configuredReplacement': '已配置 — 输入新值以替换',
|
||
'settings.plugins.moveItemUp': '将 {label} 的第 {index} 项上移',
|
||
'settings.plugins.moveItemDown': '将 {label} 的第 {index} 项下移',
|
||
'settings.plugins.addItem': '添加项目',
|
||
'settings.plugins.removeItem': '删除项目',
|
||
'settings.plugins.scopeTargets': '插件设置作用域',
|
||
'settings.plugins.scopeTarget': '{scope} 目标',
|
||
'settings.plugins.noScopeTargets': '暂无可用目标',
|
||
'settings.plugins.thisDevice': '此设备',
|
||
'plugins.authentication.description': '请在此 NetMesh 对话框中完成认证请求。',
|
||
'plugins.authentication.value': '值',
|
||
'plugins.authentication.password': '密码',
|
||
'plugins.authentication.code': '一次性验证码',
|
||
'plugins.authentication.deviceCode': '设备代码',
|
||
'plugins.authentication.openBrowser': '打开浏览器',
|
||
'plugins.authentication.invalidUrl': '认证提供程序返回了不安全或无效的网址。',
|
||
'plugins.authentication.responseFailed': '无法发送认证响应。请重试或取消此请求。',
|
||
'plugins.authentication.responseFailedWithMessage': '无法发送认证响应:{message}。请重试或取消此请求。',
|
||
'plugins.authentication.continue': '继续',
|
||
|
||
};
|