2026-07-11 03:25:58 +08:00

2156 lines
131 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { TranslationKey } from './en'
export const zh: Record<TranslationKey, string> = {
// ─── Common ──────────────────────────────────────
'common.cancel': '取消',
'common.save': '保存',
'common.delete': '删除',
'common.add': '添加',
'common.run': '运行',
'common.send': '发送',
'common.stop': '停止',
'common.tokens': '{count} tokens',
'common.rename': '重命名',
'common.retry': '重试',
'common.loading': '加载中...',
'common.select': '选择',
'common.enable': '启用',
'common.disable': '禁用',
'common.active': '已激活',
'common.error': '错误',
'common.copyFailed': '复制失败。',
'common.copied': '已复制',
// ─── Sidebar ──────────────────────────────────────
'sidebar.newSession': '新建会话',
'sidebar.scheduled': '定时任务',
'sidebar.skills': '技能',
'sidebar.terminal': '终端',
'sidebar.settings': '设置',
'sidebar.searchPlaceholder': '搜索会话...',
'sidebar.noSessions': '暂无会话',
'sidebar.noMatching': '没有匹配的会话',
'sidebar.sessionListFailed': '会话列表加载失败',
'sidebar.refreshSessions': '刷新会话列表',
'search.global.trigger': '搜索聊天',
'search.global.placeholder': '搜索全部聊天内容…',
'search.global.recentTitle': '近期会话',
'search.global.noResults': '没有找到匹配内容',
'search.global.matchCount': '{count} 条匹配',
'search.global.truncated': '仅显示前 {count} 个会话,请细化关键词',
'search.global.roleUser': '你',
'search.global.roleAssistant': '助手',
'search.global.loading': '搜索中…',
'search.global.error': '搜索失败',
'search.global.close': '关闭',
'sidebar.projects': '项目',
'sidebar.projectMenu': '项目菜单',
'sidebar.newProject': '新建项目',
'sidebar.archiveAllChats': '归档所有聊天',
'sidebar.organizeSidebar': '整理侧边栏',
'sidebar.sortCondition': '排序条件',
'sidebar.organizeByProject': '按项目',
'sidebar.organizeByRecentProject': '近期项目',
'sidebar.organizeByTime': '按时间顺序',
'sidebar.sortByCreatedAt': '创建时间',
'sidebar.sortByUpdatedAt': '更新时间',
'sidebar.newBlankProject': '新建空白项目',
'sidebar.useExistingFolder': '使用现有文件夹',
'sidebar.chooseProjectFolderUnavailable': '选择文件夹仅在桌面端可用。',
'sidebar.projectActions': '{project} 项目操作',
'sidebar.pinProject': '置顶项目',
'sidebar.unpinProject': '取消置顶项目',
'sidebar.openInFinder': '在“访达”中打开',
'sidebar.openInFinderFailed': '无法在访达中打开项目。',
'sidebar.openInFinderUnavailable': '没有可用的文件管理器。',
'sidebar.hideProjectFromSidebar': '从侧边栏隐藏',
'sidebar.restoreProjectToSidebar': '恢复到侧边栏',
'sidebar.restoreHiddenProjects': '恢复隐藏项目({count}',
'sidebar.projectHidden': '已从侧边栏隐藏 {project},已有会话不会被删除。',
'sidebar.newSessionInProject': '在 {project} 中新建会话',
'sidebar.showMoreSessions': '展开显示',
'sidebar.showFewerSessions': '折叠显示',
'sidebar.expandProject': '展开 {project}',
'sidebar.collapseProject': '折叠 {project}',
'sidebar.worktree': 'worktree',
'sidebar.sessionRunning': '会话运行中',
'sidebar.missingDir': '目录缺失',
'sidebar.confirmDelete': '确定要删除这个会话吗?此操作不可撤销。',
'sidebar.batchManage': '批量管理',
'sidebar.batchSelectedCount': '已选 {count} 个',
'sidebar.batchSelectAll': '全选',
'sidebar.batchDeselectAll': '取消全选',
'sidebar.batchSelectGroup': '选择{group}',
'sidebar.batchDeleteSelected': '删除已选 ({count})',
'sidebar.batchDeleteConfirm': '确定要删除 {count} 个会话吗?此操作不可撤销。',
'sidebar.batchDeleteConfirmBody': '以下会话将被删除:',
'sidebar.batchDeleteMore': '...还有 {count} 条',
'sidebar.batchExit': '退出批量管理',
'sidebar.batchDeleteSucceeded': '已删除 {count} 个会话。',
'sidebar.batchDeleteFailed': '有 {count} 个会话删除失败。',
'sidebar.allProjects': '所有项目',
'sidebar.other': '其他',
'sidebar.timeGroup.today': '今天',
'sidebar.timeGroup.yesterday': '昨天',
'sidebar.timeGroup.last7days': '最近 7 天',
'sidebar.timeGroup.last30days': '最近 30 天',
'sidebar.timeGroup.older': '更早',
'sidebar.collapse': '折叠侧边栏',
'sidebar.expand': '展开侧边栏',
// ─── Title Bar ──────────────────────────────────────
'titlebar.code': '代码',
'titlebar.terminal': '终端',
'titlebar.history': '历史',
// ─── Open Project ──────────────────────────────────────
'openProject.openProject': '打开项目',
'openProject.openIn': '用 {target} 打开',
'openProject.openFailed': '无法打开项目',
// ─── Open With ─────────────────────────────────────
'openWith.title': '打开方式',
'openWith.inAppBrowser': '应用内浏览器',
'openWith.systemBrowser': '系统浏览器',
'openWith.workspacePreview': '工作台预览',
'openWith.openInTarget': '用 {target} 打开',
'openWith.revealInTarget': '在 {target} 中显示',
'openWith.fileType.document': '文档',
'openWith.fileType.web': '网页',
'openWith.fileType.image': '图片',
'openWith.fileType.code': '代码',
'openWith.fileType.file': '文件',
// ─── Assistant Output Targets ──────────────────────
'assistantOutputs.kind.markdown': 'Markdown',
'assistantOutputs.kind.html': 'HTML',
'assistantOutputs.kind.image': '图片',
'assistantOutputs.kind.localhost': '本地服务',
'assistantOutputs.moreOutputs': '+{count} 个输出',
'assistantOutputs.open': '打开',
// ─── Workspace Panel ───────────────────────────────
'workspace.changedFiles': '已更改文件',
'workspace.allFiles': '所有文件',
'workspace.viewTabs': '工作区视图',
'workspace.previewTabs': '预览标签',
'workspace.filterPlaceholder': '筛选文件...',
'workspace.clearFilter': '清除文件筛选',
'workspace.refresh': '刷新工作区',
'workspace.closePanel': '关闭工作区面板',
'workspace.resizePanel': '调整工作区宽度',
'workspace.showNavigator': '显示文件导航',
'workspace.hideNavigator': '隐藏文件导航',
'workbench.modeSwitch': '工作台模式',
'workbench.modeWorkspace': '文件',
'workbench.modeBrowser': '浏览器',
'workbench.expand': '展开面板',
'workbench.close': '关闭',
'workbench.tabTitle': '工作台',
'workspace.closeTab': '关闭标签',
'workspace.preview': '预览',
'workspace.previewEmpty': '选择一个文件进行预览。',
'workspace.notGitRepo': '当前目录不是 Git 仓库。',
'workspace.missingWorkdir': '工作目录不存在。',
'workspace.loadError': '工作区数据加载失败。',
'workspace.noChanges': '没有变更',
'workspace.noFiles': '没有文件',
'workspace.noMatchingFiles': '没有匹配的文件',
'workspace.previewKind.diff': 'Diff',
'workspace.previewKind.file': '文件',
'workspace.previewState.loading': '正在加载预览...',
'workspace.previewState.binary': '二进制文件暂不支持预览。',
'workspace.previewState.tooLarge': '文件过大,无法预览。',
'workspace.previewState.missing': '文件不存在。',
'workspace.imagePreviewUnavailable': '图片无法预览。',
'workspace.previewLineLimit': '正在显示已加载内容的前 {count} / {total} 行。',
'workspace.previewAllLines': '正在显示全部 {total} 行已加载内容。',
'workspace.showAllLoadedLines': '显示全部已加载行',
'workspace.collapsePreview': '收起预览',
'workspace.addToChat': '添加到聊天',
'workspace.addSelectionToChat': '添加到对话',
'workspace.copyPath': '复制路径',
'workspace.copyAbsolutePath': '复制绝对路径',
'workspace.pathCopied': '路径已复制。',
'workspace.localComment': '本地评论',
'workspace.commentLine': '评论第 {line} 行',
'workspace.commentLineTarget': '第 {line} 行',
'workspace.commentPlaceholder': '描述你希望这里怎么改...',
'workspace.addCommentToChat': '添加评论',
// ─── Status Bar ──────────────────────────────────────
'status.connected': '已连接',
'status.connecting': '连接中...',
'status.reconnecting': '重连中...',
'status.disconnected': '已断开',
// ─── Settings ──────────────────────────────────────
'settings.title': '设置',
'settings.tab.providers': '服务商',
'settings.tab.permissions': '权限',
'settings.tab.activity': 'Token 用量',
'settings.tab.trace': 'Trace',
'settings.tab.general': '通用',
'settings.tab.h5Access': 'H5 访问',
'settings.tab.terminal': '终端',
'settings.tab.skills': '技能',
'settings.tab.mcp': 'MCP',
'settings.tab.plugins': '插件',
'settings.tab.diagnostics': '诊断',
// Settings > Usage
'settings.activity.title': 'Token 用量',
'settings.activity.profileTitle': '个人资料',
'settings.activity.profilePrivacy': '仅本地',
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
'settings.activity.editProfile': '编辑个人资料',
'settings.activity.displayName': '显示名称',
'settings.activity.subtitle': '第二行',
'settings.activity.displayNameHelper': '修改主名称和第二行;第二行如果是网址会自动作为链接打开。',
'settings.activity.avatar': '头像',
'settings.activity.avatarHelper': '支持 PNG、JPEG 或 WebP最大 2 MB。',
'settings.activity.changeAvatar': '更换头像',
'settings.activity.removeAvatar': '移除头像',
'settings.activity.saveProfile': '保存',
'settings.activity.cancelEdit': '取消',
'settings.activity.profileSaved': '已保存到本地',
'settings.activity.profileSaveFailed': '保存个人资料失败',
'settings.activity.subtitleLoading': '基于本机 Claude Code CLI 会话记录统计',
'settings.activity.totalTokens': '累计 Token 数',
'settings.activity.peakTokens': '峰值 Token 数',
'settings.activity.longestTask': '最长任务时长',
'settings.activity.currentStreak': '当前连续天数',
'settings.activity.longestStreak': '最长连续天数',
'settings.activity.noDuration': '0 分钟',
'settings.activity.tokenActivity': 'Token 活动',
'settings.activity.mode.daily': '每日',
'settings.activity.mode.weekly': '每周',
'settings.activity.mode.cumulative': '累计',
'settings.activity.modeHelp.daily': '每日:每个格子表示当天 Token 用量。',
'settings.activity.modeHelp.weekly': '每周:每一列表示这一周的 Token 总量。',
'settings.activity.modeHelp.cumulative': '累计:每一列表示截至该周的累计 Token 总量。',
'settings.activity.emptyTitle': '暂无本地用量',
'settings.activity.emptyBody': '启动 CLI 或桌面会话并完成模型回复后,这里会显示统计。',
'settings.activity.metric.yesterday': '昨天',
'settings.activity.metric.today': '今天',
'settings.activity.metric.last4': '近 4 天',
'settings.activity.metric.last30': '30 天',
'settings.activity.metric.streak': '连续活跃',
'settings.activity.metric.bestStreak': '最长 {days} 天',
'settings.activity.heatmapLabel': '按天统计的 Token 用量',
'settings.activity.weekRange': '{start} - {end}',
'settings.activity.cumulativeThrough': '截至 {date}',
'settings.activity.tokenValue': '{tokens} Token',
'settings.activity.count.sessionOne': '{count} 次会话',
'settings.activity.count.sessionOther': '{count} 次会话',
'settings.activity.count.dayOne': '{count} 天',
'settings.activity.count.dayOther': '{count} 天',
'settings.activity.count.runOne': '{count} 次运行',
'settings.activity.count.runOther': '{count} 次运行',
'settings.activity.weekday.mon': '周一',
'settings.activity.weekday.wed': '周三',
'settings.activity.weekday.fri': '周五',
'settings.activity.selectedDay': '选中日期',
'settings.activity.sessions': '会话',
'settings.activity.tokens': 'Token',
'settings.activity.messages': '消息',
'settings.activity.tools': '工具',
'settings.activity.activityInsights': '活动洞察',
'settings.activity.activeRate': '活跃率',
'settings.activity.mostUsedModel': '最常用模型',
'settings.activity.exploredSkills': '已使用的技能',
'settings.activity.totalSkillUses': '技能使用总数',
'settings.activity.totalToolCalls': '工具调用',
'settings.activity.totalSessions': '会话总数',
'settings.activity.mostUsedPluginsAndSkills': '最常用的插件和技能',
'settings.activity.none': '暂无',
'settings.activity.less': '少',
'settings.activity.more': '多',
// Settings > Terminal
'settings.terminal.title': '终端',
'settings.terminal.description': '直接运行宿主机命令用于安装插件、Skills、MCP 等扩展。桌面端已内置 claude-haha文档里的 claude <参数> 可替换成 claude-haha <参数>,例如 claude-haha plugin install ... 或 claude-haha mcp add ...',
'settings.terminal.infoLabel': '终端安装说明',
'settings.terminal.clear': '清屏',
'settings.terminal.restart': '重启',
'settings.terminal.windowTitle': '宿主机 Shell',
'settings.terminal.unavailableTitle': '需要桌面端运行时',
'settings.terminal.unavailableBody': '请在打包后的桌面端里打开这个页面,才能启动交互式终端。',
'settings.terminal.preferencesTitle': '启动 Shell',
'settings.terminal.preferencesBody': '用于新开的终端会话,以及点击重启后的终端。',
'settings.terminal.startupShell': '启动 Shell',
'settings.terminal.customPath': '自定义 Shell 路径',
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
'settings.terminal.customPathRequired': '保存前请先填写 Shell 路径。',
'settings.terminal.customPathAbsolute': '自定义 Shell 路径必须是绝对 Windows 路径。',
'settings.terminal.saveShell': '保存 Shell',
'settings.terminal.saveShellSuccess': '已保存。重启终端或新开终端后生效。',
'settings.terminal.shell.system': '系统默认',
'settings.terminal.shell.systemDesc': '保持当前基于 COMSPEC 的行为。',
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
'settings.terminal.shell.pwshDesc': '安装了 pwsh.exe 时优先使用它。',
'settings.terminal.shell.powershell': 'Windows PowerShell',
'settings.terminal.shell.powershellDesc': '使用系统自带的 powershell.exe。',
'settings.terminal.shell.cmd': '命令提示符',
'settings.terminal.shell.cmdDesc': '明确使用 cmd.exe。',
'settings.terminal.shell.custom': '自定义可执行文件',
'settings.terminal.shell.customDesc': '启动一个绝对路径的 Shell 可执行文件。',
'settings.terminal.status.idle': '空闲',
'settings.terminal.status.starting': '启动中',
'settings.terminal.status.running': '运行中',
'settings.terminal.status.exited': '已退出',
'settings.terminal.status.error': '错误',
'settings.terminal.status.unavailable': '不可用',
'settings.terminal.bashPathLabel': 'Bash 路径',
'settings.terminal.bashPathDescription': 'Windows 下默认使用 CMD 作为终端。如果工具调用 grep、sed 等 Unix 命令,请在此配置 Bash 可执行文件路径(如 Git Bash。',
'settings.terminal.bashPathSave': '保存',
'settings.terminal.bashPathReset': '恢复默认',
'settings.terminal.bashPathSaved': '已保存',
'settings.terminal.bashPathInvalid': '路径不存在,请选择有效的 Bash 可执行文件',
'terminal.newTab': '新建终端',
'terminal.openInTab': '在 Tab 中打开',
'terminal.closePanel': '关闭终端面板',
'terminal.resizePanel': '调整终端面板大小',
// Settings > Diagnostics
'settings.diagnostics.title': '诊断',
'settings.diagnostics.description': '记录服务端与 CLI 的启动、服务商、会话运行错误,便于复现和定位问题。',
'settings.diagnostics.refresh': '刷新',
'settings.diagnostics.totalSize': '日志大小',
'settings.diagnostics.events': '事件数',
'settings.diagnostics.recentErrors': '24h 警告',
'settings.diagnostics.retention': '保留策略',
'settings.diagnostics.retentionValue': '{days} 天 / {size}',
'settings.diagnostics.logDirectory': '日志目录',
'settings.diagnostics.openDirectory': '打开',
'settings.diagnostics.exportBundle': '导出诊断包',
'settings.diagnostics.copySummary': '复制错误摘要',
'settings.diagnostics.clearLogs': '清理日志',
'settings.diagnostics.recentEvents': '最近事件',
'settings.diagnostics.privacyNote': '导出的诊断包会脱敏,不包含聊天内容、文件内容、完整环境变量或 API Key。',
'settings.diagnostics.noEvents': '暂无诊断事件。',
'settings.diagnostics.noRecentErrors': '最近没有警告或错误。',
'settings.diagnostics.loadFailed': '加载诊断信息失败。',
'settings.diagnostics.openFailed': '打开诊断目录失败。',
'settings.diagnostics.exportFailed': '导出诊断包失败。',
'settings.diagnostics.exported': '已导出 {file}',
'settings.diagnostics.summaryCopied': '错误摘要已复制。',
'settings.diagnostics.copyFailed': '复制错误摘要失败。',
'settings.diagnostics.confirmClear': '确定清理所有本地诊断日志和已导出的诊断包?',
'settings.diagnostics.cleared': '诊断日志已清理。',
'settings.diagnostics.clearFailed': '清理诊断日志失败。',
'settings.diagnostics.eventDetails': '详情',
'settings.diagnostics.doctorTitle': 'Doctor',
'settings.diagnostics.doctorDescription': '用于启动和界面状态问题的安全桌面修复。',
'settings.diagnostics.doctorProtectedData': '绝不会触碰聊天历史、模型配置、Skills、MCP、IM 或 OAuth。',
'settings.diagnostics.doctorSafeKeys': '只会清理cc-haha-open-tabs、cc-haha-session-runtime、cc-haha-theme、cc-haha-locale 和 cc-haha.persistence.schemaVersion。',
'settings.diagnostics.runDoctor': '运行 Doctor',
'settings.diagnostics.doctorCompleted': 'Doctor 已执行完成。',
'settings.diagnostics.doctorPartial': 'Doctor 已完成,但有 {count} 个本地清理项处理失败。',
'settings.diagnostics.doctorFailed': 'Doctor 执行失败。',
'settings.diagnostics.doctorResultLocal': '已清理 {count} 个安全 UI 键。',
'settings.diagnostics.doctorResultFailedKeys': '有 {count} 个键无法移除。',
'settings.diagnostics.doctorServerRan': '服务端 Doctor 修复也已执行。',
'settings.diagnostics.doctorServerUnavailable': '服务端 Doctor 不可用,因此只执行了本地修复。',
'errorBoundary.title': '出现异常。',
'errorBoundary.description': '错误已记录到诊断日志。',
// Settings > Claude Official Login
'settings.claudeOfficialLogin.intro': '使用官方 Claude 模型需要登录你的 Claude.ai 账号。点击下方按钮,浏览器会打开 Claude 官方登录页面,授权后自动回到这里。',
'settings.claudeOfficialLogin.loginButton': '登录 Claude 账号',
'settings.claudeOfficialLogin.loginStarting': '正在启动…',
'settings.claudeOfficialLogin.logoutButton': '登出',
'settings.claudeOfficialLogin.logoutProcessing': '处理中…',
'settings.claudeOfficialLogin.loggedInPrefix': '已登录(Claude',
'settings.claudeOfficialLogin.subTypeUnknown': '未知',
'settings.claudeOfficialLogin.errorPrefix': '错误:',
'settings.claudeOfficialLogin.openBrowserFailed': '无法打开浏览器,请手动访问授权链接。',
// Settings > ChatGPT Official Login
'settings.chatgptOfficialLogin.intro': '登录 ChatGPT 后,就可以在桌面端会话里使用 GPT 模型。',
'settings.chatgptOfficialLogin.loginButton': '登录 ChatGPT',
'settings.chatgptOfficialLogin.loginStarting': '正在启动登录...',
'settings.chatgptOfficialLogin.logoutButton': '退出登录',
'settings.chatgptOfficialLogin.logoutProcessing': '正在退出...',
'settings.chatgptOfficialLogin.loggedInPrefix': '已登录',
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT 账号',
'settings.chatgptOfficialLogin.openBrowserFailed': '无法打开浏览器。请复制授权链接并手动打开。',
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '复制授权链接',
'settings.chatgptOfficialLogin.copyLinkFailed': '无法复制授权链接。',
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth 错误:',
// Settings > Providers
'settings.providers.title': '服务商',
'settings.providers.description': '管理 API 服务商以访问模型。',
'settings.providers.addProvider': '添加服务商',
'settings.providers.officialName': 'Claude 官方',
'settings.providers.officialDesc': 'Anthropic 原生接入 — 无需 API 密钥',
'settings.providers.openaiOfficialName': 'ChatGPT 官方',
'settings.providers.openaiOfficialDesc': '通过 ChatGPT 账号完成 OpenAI OAuth — 无需 API 密钥',
'settings.providers.connected': '已连接 ({latency}ms)',
'settings.providers.failed': '失败: {error}',
'settings.providers.connectivityOk': '① 连通 ({latency}ms)',
'settings.providers.connectivityFailed': '① 连通失败: {error}',
'settings.providers.proxyOk': '② 代理转换 ({latency}ms)',
'settings.providers.proxyFailed': '② 代理转换失败: {error}',
'settings.providers.confirmDelete': '删除服务商 "{name}"?此操作不可撤销。',
'settings.providers.activate': '激活',
'settings.providers.default': '默认',
'settings.providers.setDefault': '设为默认',
'settings.providers.test': '测试',
'settings.providers.edit': '编辑',
'settings.providers.dragToReorder': '拖动排序',
'settings.providers.requestFailed': '请求失败',
'settings.providers.addTitle': '添加服务商',
'settings.providers.editTitle': '编辑服务商',
'settings.providers.preset': '预设',
'settings.providers.name': '名称',
'settings.providers.namePlaceholder': '服务商名称',
'settings.providers.notes': '备注',
'settings.providers.notesPlaceholder': '可选备注...',
'settings.providers.baseUrl': '接口地址',
'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
'settings.providers.apiKey': 'API 密钥',
'settings.providers.apiKeyKeep': 'API 密钥(留空保持不变)',
'settings.providers.getApiKey': '获取 API Key',
'settings.providers.modelMapping': '模型映射',
'settings.providers.mainModel': '主模型',
'settings.providers.haikuModel': 'Haiku 模型',
'settings.providers.sonnetModel': 'Sonnet 模型',
'settings.providers.opusModel': 'Opus 模型',
'settings.providers.model1mSupportShort': '1M',
'settings.providers.modelIdPlaceholder': '模型 ID',
'settings.providers.sameAsMain': '与主模型相同',
'settings.providers.contextSettingsTitle': '上下文与自动压缩',
'settings.providers.contextSettingsDesc': '预设会自动应用模型窗口。只有服务商调整限制,或使用自定义模型 ID 时才需要修改。',
'settings.providers.contextSettingsEdit': '高级',
'settings.providers.contextSettingsHide': '收起',
'settings.providers.contextSummaryAuto': '自动识别已配置模型;未知模型使用内置兜底',
'settings.providers.contextFallbackAuto': '未知模型:自动',
'settings.providers.contextFallbackSummary': '未知模型:{tokens}',
'settings.providers.modelContextWindows': '模型上下文窗口',
'settings.providers.mainContextWindow': '主模型上下文',
'settings.providers.haikuContextWindow': 'Haiku 模型上下文',
'settings.providers.sonnetContextWindow': 'Sonnet 模型上下文',
'settings.providers.opusContextWindow': 'Opus 模型上下文',
'settings.providers.contextWindowPlaceholder': '例如 200000',
'settings.providers.modelContextWindowsDesc': '按每个模型的真实上下文填写,内置预设会自动带出,留空则走内置识别或默认 200K。',
'settings.providers.modelContextWindowNumberError': '请输入整数。',
'settings.providers.modelContextWindowRangeError': '范围必须在 16000 到 10000000 之间。',
'settings.providers.autoCompactWindow': '未知模型兜底窗口',
'settings.providers.autoCompactWindowPlaceholder': '可选,例如 200000',
'settings.providers.autoCompactWindowDesc': '仅用于无法识别的模型;已配置的模型窗口会优先使用。',
'settings.providers.autoCompactWindowNumberError': '请输入整数。',
'settings.providers.autoCompactWindowRangeError': '范围必须在 16000 到 10000000 之间。',
'settings.providers.testConnection': '测试连接',
'settings.providers.settingsJson': '设置 JSON',
'settings.providers.settingsJsonDesc': '~/.claude/cc-haha/settings.json — 直接编辑,保存时写入。',
'settings.providers.jsonError': 'JSON 语法错误: {error}',
'settings.providers.apiFormat': 'API 格式',
'settings.providers.apiFormatAnthropic': 'Anthropic Messages (原生)',
'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completions (代理转换)',
'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses API (代理转换)',
'settings.providers.proxyHint': '请求将通过本地代理转换协议格式',
'settings.providers.authStrategy': '认证变量',
'settings.providers.authStrategyApiKey': 'API Key (ANTHROPIC_API_KEY)',
'settings.providers.authStrategyApiKeyDesc': '直连 Anthropic 官方 API发送 x-api-key。',
'settings.providers.authStrategyAuthToken': 'Bearer Token (ANTHROPIC_AUTH_TOKEN)',
'settings.providers.authStrategyAuthTokenDesc': '大多数第三方 Anthropic 兼容服务,发送 Authorization Bearer。',
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 清空 API_KEY',
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'OpenRouter/Ollama 等场景,避免回退到 Anthropic API key。',
'settings.providers.authStrategyDualSameToken': '两个变量写同一个 Token',
'settings.providers.authStrategyDualSameTokenDesc': 'Hugging Face Router 等同时检查两个变量的服务。',
'settings.providers.authStrategyDualDummy': '两个变量写 dummy',
'settings.providers.authStrategyDualDummyDesc': 'vLLM 等本地兼容服务,只需要占位认证值。',
'settings.providers.toolSearchEnabled': '启用 Tool Search',
'settings.providers.toolSearchDesc': '按需加载 MCP 和延迟工具,减少首轮工具 schema token。弱模型或不支持 tool_reference 的服务商可以关闭。',
'settings.providers.toolSearchUnsupported': '当前仅 Anthropic Messages 格式支持 Tool SearchOpenAI 代理格式会保留完整工具 schema。',
'settings.providers.disableExperimentalBetas': '关闭实验性 Beta 头',
'settings.providers.disableExperimentalBetasDesc': '为此服务商设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1避免第三方通道拒绝 beta API 形态。',
// Settings > Permissions
'settings.permissions.title': '权限模式',
'settings.permissions.description': '控制工具执行权限的处理方式。',
'settings.permissions.default': '询问权限',
'settings.permissions.defaultDesc': '执行工具前先询问',
'settings.permissions.acceptEdits': '接受编辑',
'settings.permissions.acceptEditsDesc': '自动批准文件编辑,其他操作仍询问',
'settings.permissions.plan': '计划模式',
'settings.permissions.planDesc': '仅思考和规划,不执行操作',
'settings.permissions.bypass': '跳过全部',
'settings.permissions.bypassDesc': '跳过所有权限检查(危险)',
// Settings > Adapters
'settings.tab.adapters': 'IM 接入',
'settings.adapters.description': '配置即时通讯适配器,通过 Telegram、微信、钉钉、WhatsApp 或飞书与 Claude Code 对话。首次配置请参考',
'settings.adapters.configurationDocs': '文档地址',
'settings.adapters.descriptionAfterDocs': '。',
'settings.adapters.telegram': 'Telegram',
'settings.adapters.feishu': '飞书',
'settings.adapters.wechat': '微信',
'settings.adapters.dingtalk': '钉钉',
'settings.adapters.whatsapp': 'WhatsApp',
'settings.adapters.botToken': 'Bot Token',
'settings.adapters.botTokenPlaceholder': '粘贴从 @BotFather 获取的 Token',
'settings.adapters.appId': 'App ID',
'settings.adapters.appIdPlaceholder': '如 cli_xxx',
'settings.adapters.appSecret': 'App Secret',
'settings.adapters.appSecretPlaceholder': '从飞书开放平台获取',
'settings.adapters.feishuCreateBotTitle': '还没有飞书机器人?',
'settings.adapters.feishuCreateBotDesc': '使用文档中的官方 OpenClaw 模板,一键创建已预配权限的飞书机器人。创建后把 App ID 和 App Secret 填到下方。',
'settings.adapters.feishuCreateBotAction': '一键创建飞书机器人',
'settings.adapters.feishuCreateBotStepCreate': '点击模板创建机器人。',
'settings.adapters.feishuCreateBotStepFill': '复制 App ID 和 App Secret回到这里填写。',
'settings.adapters.encryptKey': 'Encrypt Key',
'settings.adapters.encryptKeyPlaceholder': '可选',
'settings.adapters.verificationToken': 'Verification Token',
'settings.adapters.verificationTokenPlaceholder': '可选',
'settings.adapters.allowedUsers': '允许的用户',
'settings.adapters.allowedUsersHint': '逗号分隔。留空则只允许已配对用户。',
'settings.adapters.tgAllowedUsersPlaceholder': '如 123456789, 987654321',
'settings.adapters.fsAllowedUsersPlaceholder': '如 ou_xxx, ou_yyy',
'settings.adapters.wcAllowedUsersPlaceholder': '如 wx_user_id_1, wx_user_id_2',
'settings.adapters.dtAllowedUsersPlaceholder': '如 manager001, staff_yyy',
'settings.adapters.waAllowedUsersPlaceholder': '如 15551234567@s.whatsapp.net',
'settings.adapters.defaultProject': '默认项目',
'settings.adapters.defaultProjectHint': '新 IM 会话的默认工作目录。留空则使用当前用户工作目录。',
'settings.adapters.streamingCard': '流式卡片模式',
'settings.adapters.streamingCardDesc': '实时更新消息内容,体验更好',
'settings.adapters.serverUrl': '服务器地址',
'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:3456',
'settings.adapters.save': '保存',
'settings.adapters.saved': '已保存',
'settings.adapters.saving': '保存中...',
'settings.adapters.startHint': '保存后运行适配器cd adapters && bun run {platform}',
'settings.adapters.pairing': '配对管理',
'settings.adapters.pairingDesc': '生成配对码后在 IM 私聊中发送给 Bot完成身份绑定。',
'settings.adapters.generateCode': '生成配对码',
'settings.adapters.regenerateCode': '重新生成',
'settings.adapters.codeExpired': '已过期',
'settings.adapters.codeExpiresIn': '有效期剩余',
'settings.adapters.minutes': '分钟',
'settings.adapters.pairingCodeHint': '请在钉钉、飞书、微信、WhatsApp 或 Telegram 私聊中发送此配对码给 Bot。微信和 WhatsApp 需要先完成扫码绑定。',
'settings.adapters.pairedUsers': '已配对用户',
'settings.adapters.noPairedUsers': '暂无已配对用户',
'settings.adapters.unbind': '解绑',
'settings.adapters.unbindConfirm': '确定要解绑该用户吗?解绑后需重新配对才能使用。',
'settings.adapters.platform.telegram': 'Telegram',
'settings.adapters.platform.feishu': '飞书',
'settings.adapters.platform.wechat': '微信',
'settings.adapters.platform.dingtalk': '钉钉',
'settings.adapters.platform.whatsapp': 'WhatsApp',
'settings.adapters.dingtalkQrTitle': '扫码绑定钉钉机器人',
'settings.adapters.dingtalkQrDesc': '使用钉钉手机 App 扫码,一键创建并授权机器人。成功后会自动保存 Client ID / Secret 并重启适配器。',
'settings.adapters.dingtalkStartAuth': '扫码绑定',
'settings.adapters.dingtalkUnbindBot': '解除机器人绑定',
'settings.adapters.dingtalkQrAlt': '钉钉授权二维码',
'settings.adapters.dingtalkWaiting': '等待钉钉扫码确认...',
'settings.adapters.dingtalkBound': '钉钉机器人已绑定。',
'settings.adapters.dingtalkAuthFailed': '钉钉扫码授权失败。',
'settings.adapters.dingtalkAuthExpired': '钉钉扫码授权已过期,请重新生成二维码。',
'settings.adapters.dingtalkUnbindFailed': '钉钉解绑失败。',
'settings.adapters.dingtalkUnbindBotConfirm': '确定解除这个钉钉机器人绑定吗?解除后需要重新扫码,钉钉才能继续收发消息。',
'settings.adapters.dingtalkClientId': 'Client ID',
'settings.adapters.dingtalkClientIdPlaceholder': '扫码后自动填写,也可手动输入',
'settings.adapters.dingtalkClientSecret': 'Client Secret',
'settings.adapters.dingtalkClientSecretPlaceholder': '扫码后自动填写,也可手动输入',
'settings.adapters.dingtalkEndpoint': 'Stream Endpoint',
'settings.adapters.dingtalkEndpointPlaceholder': '默认 https://api.dingtalk.com',
'settings.adapters.dingtalkPermissionCardTemplateId': '权限卡片模板 ID',
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '可选,互动卡片模板 ID',
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '填写后权限请求会优先发送钉钉互动卡片;留空则使用 /allow、/always、/deny 文本授权。',
'settings.adapters.wechatBind': '扫码绑定',
'settings.adapters.wechatRebind': '重新扫码',
'settings.adapters.wechatConnected': '微信已绑定',
'settings.adapters.wechatNotConnected': '微信未绑定',
'settings.adapters.wechatQrHint': '生成二维码后使用微信扫码并确认,绑定完成后适配器会自动重启。',
'settings.adapters.wechatQrAlt': '微信绑定二维码',
'settings.adapters.wechatWaiting': '等待微信扫码确认...',
'settings.adapters.wechatBindSuccess': '微信绑定成功。',
'settings.adapters.wechatUnbindAccount': '解除微信绑定',
'settings.adapters.wechatUnbindAccountConfirm': '确定解除这个微信账号绑定吗?解除后需要重新扫码,微信才能继续收发消息。',
'settings.adapters.wechatUnbound': '微信绑定已解除。',
'settings.adapters.wechatUnbindFailed': '微信解绑失败。',
'settings.adapters.wechatAllowedUsersHint': '微信扫码只绑定账号能力;用户仍需发送配对码,或在这里额外填写允许的微信用户 ID。',
'settings.adapters.whatsappBind': '扫码绑定',
'settings.adapters.whatsappRebind': '重新扫码',
'settings.adapters.whatsappConnected': 'WhatsApp 已绑定',
'settings.adapters.whatsappNotConnected': 'WhatsApp 未绑定',
'settings.adapters.whatsappQrHint': '生成二维码后,在 WhatsApp 的「已关联设备」中扫码确认。绑定完成后适配器会自动重启。',
'settings.adapters.whatsappQrAlt': 'WhatsApp 绑定二维码',
'settings.adapters.whatsappWaiting': '等待 WhatsApp 扫码确认...',
'settings.adapters.whatsappBindSuccess': 'WhatsApp 绑定成功。',
'settings.adapters.whatsappBindFailed': 'WhatsApp 绑定失败。',
'settings.adapters.whatsappUnbindAccount': '解除 WhatsApp 绑定',
'settings.adapters.whatsappUnbindAccountConfirm': '确定解除这个 WhatsApp 账号绑定吗解除后需要重新扫码WhatsApp 才能继续收发消息。',
'settings.adapters.whatsappUnbound': 'WhatsApp 绑定已解除。',
'settings.adapters.whatsappUnbindFailed': 'WhatsApp 解绑失败。',
'settings.adapters.whatsappAllowedUsersHint': 'WhatsApp 扫码只绑定 Web 账号能力;用户仍需发送配对码,或在这里额外填写允许的 WhatsApp JID。',
// Settings > MCP
'settings.mcp.title': 'MCP 服务',
'settings.mcp.description': '在桌面端直接管理外部工具与数据源。Local、Project、User 三种范围与 CLI 保持一致。',
'settings.mcp.addServer': '添加服务',
'settings.mcp.empty': '还没有配置 MCP 服务',
'settings.mcp.emptyHint': '先添加一个自定义的 STDIO、HTTP 或 SSE MCP 服务。',
'settings.mcp.stats.total': '服务总数',
'settings.mcp.stats.connected': '当前已连接',
'settings.mcp.stats.attention': '需要处理',
'settings.mcp.scope.project': '项目共享',
'settings.mcp.scope.local': '项目私有',
'settings.mcp.scope.user': '全局用户',
'settings.mcp.scope.plugin': '插件',
'settings.mcp.scopeDesc.local': '只对你自己生效,但绑定到某一个项目。配置写在用户配置里,同时带上选中的项目上下文。',
'settings.mcp.scopeDesc.project': '写入选中项目的 `.mcp.json`,项目成员共享。',
'settings.mcp.scopeDesc.user': '写入你的全局 Claude 配置,对所有项目生效。',
'settings.mcp.scope.dynamic': '内置',
'settings.mcp.scope.enterprise': '企业托管',
'settings.mcp.scope.claudeai': 'Claude.ai',
'settings.mcp.scope.managed': '受管控',
'settings.mcp.transport.http': 'Streamable HTTP',
'settings.mcp.globalOnlyHint': '选择项目私有、项目共享或全局用户范围。',
'settings.mcp.currentProjectHint': '当前项目:{path}',
'settings.mcp.form.back': '返回服务列表',
'settings.mcp.form.createTitle': '连接自定义 MCP',
'settings.mcp.form.createHint': '按当前 Claude Code 支持的字段添加一个自定义 MCP 服务。',
'settings.mcp.form.editTitle': '配置 {name} MCP',
'settings.mcp.form.editHint': '查看连接信息、保存修改,或直接在桌面端重连这个服务。',
'settings.mcp.form.transportLocked': '如果你想切换 MCP 服务类型,请先卸载后重新添加。',
'settings.mcp.form.uninstall': '卸载',
'settings.mcp.form.reconnect': '重连',
'settings.mcp.form.save': '保存',
'settings.mcp.form.name': '名称',
'settings.mcp.form.namePlaceholder': 'MCP 服务名称',
'settings.mcp.form.scope': '配置范围',
'settings.mcp.form.transport': '传输方式',
'settings.mcp.form.status': '状态',
'settings.mcp.form.location': '配置位置',
'settings.mcp.form.rawConfig': '原始配置',
'settings.mcp.form.command': '启动命令',
'settings.mcp.form.commandPlaceholder': 'npx',
'settings.mcp.form.commandHostHint': 'STDIO MCP 命令会直接在宿主机上运行。像 Node.js、Python、Bun、uv 这类运行时需要用户自己安装,并确保这个命令在 PATH 里可用。',
'settings.mcp.form.arguments': '参数',
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
'settings.mcp.form.addArgument': '添加参数',
'settings.mcp.form.environmentVariables': '环境变量',
'settings.mcp.form.addEnv': '添加环境变量',
'settings.mcp.form.keyPlaceholder': '键',
'settings.mcp.form.valuePlaceholder': '值',
'settings.mcp.form.url': 'URL',
'settings.mcp.form.sseUrl': 'SSE 地址',
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
'settings.mcp.form.headers': '请求头',
'settings.mcp.form.addHeader': '添加请求头',
'settings.mcp.form.oauthClientId': 'OAuth Client ID',
'settings.mcp.form.oauthClientIdPlaceholder': '可选 Client ID',
'settings.mcp.form.oauthCallbackPort': 'OAuth 回调端口',
'settings.mcp.form.oauthCallbackPortPlaceholder': '可选固定回调端口',
'settings.mcp.form.headersHelper': 'Headers Helper 脚本',
'settings.mcp.form.headersHelperPlaceholder': '可选的辅助脚本路径',
'settings.mcp.form.deleteTitle': '删除 MCP 服务',
'settings.mcp.form.cancel': '取消',
'settings.mcp.form.confirmDelete': '删除',
'settings.mcp.form.deleteConfirm': '确定删除 MCP 服务 “{name}” 吗?此操作不可撤销。',
'settings.mcp.form.deleteConfirmBody': '确定删除 MCP 服务 “{name}” 吗?此操作不可撤销。',
'settings.mcp.targetProject.title': '目标项目',
'settings.mcp.targetProject.selected': '当前展示的是这个项目下的私有/共享 MCP{path}',
'settings.mcp.targetProject.empty': '先选择一个项目,才能查看项目私有或项目共享的 MCP。',
'settings.mcp.targetProject.emptyWithCurrent': '请先选择目标项目。当前激活会话的项目是:{path}',
'settings.mcp.targetProject.localSelected': '这个 MCP 会作为“项目私有”安装到:{path}',
'settings.mcp.targetProject.localEmpty': '请选择要安装这个私有 MCP 的项目。',
'settings.mcp.targetProject.projectSelected': '这个 MCP 会写入:{path}/.mcp.json作为项目共享配置。',
'settings.mcp.targetProject.projectEmpty': '请选择要写入 `.mcp.json` 的项目。',
'settings.mcp.targetProject.globalTitle': '全局安装目标',
'settings.mcp.targetProject.globalHint': '全局用户不需要选择项目。它会写入你的全局 Claude 配置,并对所有项目生效。',
'settings.mcp.toast.created': '已创建 MCP 服务 “{name}”',
'settings.mcp.toast.saved': '已保存 MCP 服务 “{name}”',
'settings.mcp.toast.deleted': '已删除 MCP 服务 “{name}”',
'settings.mcp.toast.enabled': '已启用 MCP 服务 “{name}”',
'settings.mcp.toast.disabled': '已禁用 MCP 服务 “{name}”',
'settings.mcp.toast.reconnected': '已重连 MCP 服务 “{name}”',
'settings.mcp.toast.saveFailed': '保存 MCP 服务失败',
'settings.mcp.toast.deleteFailed': '删除 MCP 服务失败',
'settings.mcp.toast.toggleFailed': '更新 MCP 服务状态失败',
'settings.mcp.toast.reconnectFailed': '重连 MCP 服务失败',
// Settings > Agents
'settings.tab.agents': 'Agents',
'settings.agents.title': '已安装的 Agents',
'settings.agents.description': '浏览 Claude 当前可用的 Agents包括内置、项目和用户来源。可在 TUI 中使用 /agents 查看当前生效项与覆盖关系。',
'settings.agents.browserTitle': '浏览已安装 Agents',
'settings.agents.browserEyebrow': 'Agent 浏览器',
'settings.agents.entryEyebrow': 'Agent 档案',
'settings.agents.empty': '暂无可用 Agent。',
'settings.agents.emptyHint': '在 Claude 设置或当前项目中添加 Agent 定义后,就会显示在这里。',
'settings.agents.model': '模型',
'settings.agents.tools': '工具',
'settings.agents.systemPrompt': '系统提示词',
'settings.agents.noDescription': '暂无描述',
'settings.agents.noSystemPrompt': '未定义系统提示词。',
'settings.agents.backToList': '返回列表',
'settings.agents.agentCount': '{count} 个 Agent',
'settings.agents.summary.totalAgents': 'Agent 总数',
'settings.agents.summary.activeAgents': '生效中',
'settings.agents.summary.sources': '来源类型',
'settings.agents.summary.source': '来源',
'settings.agents.summary.model': '模型',
'settings.agents.summary.tools': '工具',
'settings.agents.summary.status': '状态',
'settings.agents.groupHint': '{source}中有 {count} 个 Agent 可用',
'settings.agents.status.active': '已生效',
'settings.agents.status.available': '可查看',
'settings.agents.overriddenBy': '被 {source} 覆盖',
'settings.agents.overriddenByShort': '被 {source} 覆盖',
'settings.agents.toolCount': '{count} 个工具',
'settings.agents.noTools': '未限制工具',
'settings.agents.promptHint': '阅读当前 system prompt并对比这个 Agent 的职责范围。',
'settings.agents.source.userSettings': '用户',
'settings.agents.source.projectSettings': '项目',
'settings.agents.source.localSettings': '本地',
'settings.agents.source.policySettings': '托管',
'settings.agents.source.plugin': '插件',
'settings.agents.source.flagSettings': 'CLI 参数',
'settings.agents.source.built-in': '内置',
// Settings > Skills
'settings.skills.title': '已安装技能',
'settings.skills.description': '技能扩展 Claude 的能力。在 ~/.claude/skills/ 中管理技能。',
'settings.skills.redirectDescription': '技能现在统一放在技能中心管理,市场和已安装技能会放在同一个入口里。',
'settings.skills.browserTitle': '浏览已安装技能',
'settings.skills.browserEyebrow': '技能浏览器',
'settings.skills.browserDescription': '查看内置、项目和用户技能,比较它们的来源与规模,并打开技能目录阅读文档和源码文件。',
'settings.skills.searchLabel': '搜索技能',
'settings.skills.searchPlaceholder': '搜索技能名称、描述或来源...',
'settings.skills.searchResultCount': '匹配 {count} / {total} 个技能',
'settings.skills.clearSearch': '清空技能搜索',
'settings.skills.noSearchResults': '没有匹配的技能',
'settings.skills.noSearchResultsHint': '换一个关键词,或清空搜索查看全部技能。',
'settings.skills.entryEyebrow': '技能入口',
'settings.skills.slashCommand': '/斜杠命令',
'settings.skills.tokenEstimate': '约 {count} tokens',
'settings.skills.tokenEstimateShort': '约 {count}',
'settings.skills.summary.totalSkills': '技能总数',
'settings.skills.summary.totalFiles': '文件数',
'settings.skills.summary.sources': '来源类型',
'settings.skills.summary.tokens': '预估 tokens',
'settings.skills.summary.source': '来源',
'settings.skills.summary.entry': '入口文件',
'settings.skills.groupHint': '{source}中有 {count} 个技能可用',
'settings.skills.ready': '可查看',
'settings.skills.unavailable': '不可用',
'settings.skills.empty': '暂无已安装技能',
'settings.skills.emptyHint': '在 ~/.claude/skills/ 中添加技能即可开始',
'settings.skills.back': '返回列表',
'settings.skills.files': '个文件',
'settings.skills.entryFile': '入口文件',
'settings.skills.metaTitle': '技能元数据',
'settings.skills.filesPanel': '文件',
'settings.skills.filesPanelHint': '浏览入口文件及其配套实现文件。',
'settings.skills.readingMode': '当前为{mode}',
'settings.skills.docMode': '文档模式',
'settings.skills.codeMode': '代码模式',
'settings.skills.source.user': '用户',
'settings.skills.source.project': '项目',
'settings.skills.source.plugin': '插件',
'settings.skills.source.mcp': 'MCP',
'settings.skills.source.bundled': '内置',
// Settings > Memory
'settings.tab.memory': '记忆',
'settings.memory.title': '项目记忆',
'settings.memory.description': '查看和编辑 Claude 为每个项目写入的 Markdown 记忆文件。这些文件存放在 ~/.claude/projects/<project>/memory/,会被 CLI 运行时加载。',
'settings.memory.refresh': '刷新',
'settings.memory.projects': '项目',
'settings.memory.files': '记忆文件',
'settings.memory.resourceManager': '资源管理器',
'settings.memory.editor': '编辑',
'settings.memory.edit': '编辑',
'settings.memory.preview': '预览',
'settings.memory.rendered': '已渲染',
'settings.memory.emptyProjects': '还没有找到记忆项目。',
'settings.memory.emptyFiles': '还没有找到记忆文件。',
'settings.memory.selectFile': '选择一个记忆文件。',
'settings.memory.selectProject': '选择一个项目。',
'settings.memory.noFileSelected': '未选择文件',
'settings.memory.current': '当前',
'settings.memory.indexFile': '索引',
'settings.memory.missing': '目录缺失',
'settings.memory.fileCount': '{count} 个文件',
'settings.memory.unsaved': '未保存',
'settings.memory.saved': '已保存',
'settings.memory.revert': '还原',
'settings.memory.discardUnsavedConfirm': '要放弃未保存的记忆修改吗?',
'settings.memory.projectSearchPlaceholder': '按路径搜索项目...',
'settings.memory.fileSearchPlaceholder': '搜索记忆文件...',
'settings.memory.resourceSearchPlaceholder': '搜索项目或记忆文件...',
'settings.memory.noProjectMatches': '没有匹配的项目。',
'settings.memory.noFileMatches': '没有匹配的记忆文件。',
'settings.memory.clearSearch': '清空搜索',
'settings.memory.toggleFolder': '展开或折叠 {name}',
// Settings > Plugins
'settings.plugins.title': '已安装插件',
'settings.plugins.description': '查看已安装插件、运行状态,并把插件变更应用到桌面端运行时。',
'settings.plugins.browserTitle': '浏览已安装插件',
'settings.plugins.browserEyebrow': '插件管理',
'settings.plugins.browserDescription': '插件会把技能、Agent、Hook、MCP 服务和语言工具打包在一起。这里先聚焦已安装插件、健康状态和应用变更反馈,不把 CLI 的整套复杂交互直接搬过来。',
'settings.plugins.entryEyebrow': '插件详情',
'settings.plugins.summary.total': '插件总数',
'settings.plugins.summary.enabled': '已启用',
'settings.plugins.summary.attention': '需关注',
'settings.plugins.summary.marketplaces': '市场',
'settings.plugins.summary.skills': '技能',
'settings.plugins.summary.agents': 'Agents',
'settings.plugins.summary.mcp': 'MCP',
'settings.plugins.summary.hooks': 'Hooks',
'settings.plugins.group.attention': '需关注',
'settings.plugins.group.enabled': '已启用',
'settings.plugins.group.disabled': '已禁用',
'settings.plugins.groupHint': '此分组下共有 {count} 个插件',
'settings.plugins.refresh': '刷新',
'settings.plugins.apply': '应用变更',
'settings.plugins.applyHint': '启用、禁用或更新后,需要把插件变更重新应用到当前桌面端运行时。',
'settings.plugins.lastReload': '最近一次应用:{enabled} 个活跃插件,{skills} 个插件技能,{errors} 个错误。',
'settings.plugins.reloadToast': '插件变更已应用:{enabled} 个活跃插件,{skills} 个技能,{errors} 个错误。',
'settings.plugins.marketplacesTitle': '已知插件市场',
'settings.plugins.marketplacesHint': '这里只展示当前机器已经配置好的 marketplace 来源摘要。',
'settings.plugins.marketplaceAutoUpdateOn': '自动更新开',
'settings.plugins.marketplaceAutoUpdateOff': '自动更新关',
'settings.plugins.marketplaceInstalledCount': '已安装 {count} 个',
'settings.plugins.marketplaceUpdatedAt': '更新于 {value}',
'settings.plugins.status.enabled': '已启用',
'settings.plugins.status.disabled': '已禁用',
'settings.plugins.status.attention': '需关注',
'settings.plugins.scope.user': '用户',
'settings.plugins.scope.project': '项目',
'settings.plugins.scope.local': '本地',
'settings.plugins.scope.managed': '托管',
'settings.plugins.scope.builtin': '内置',
'settings.plugins.empty': '暂无已安装插件',
'settings.plugins.emptyHint': '先在 Claude Code 里安装插件,桌面端就可以在这里管理。',
'settings.plugins.back': '返回列表',
'settings.plugins.noDescription': '这个插件没有可用描述。',
'settings.plugins.errorCount': '{count} 个错误',
'settings.plugins.enable': '启用',
'settings.plugins.disable': '禁用',
'settings.plugins.update': '更新',
'settings.plugins.uninstall': '卸载',
'settings.plugins.confirmUninstall': '确定卸载插件“{name}”吗?会删除当前 scope 下的安装副本。',
'settings.plugins.selectionCount': '已选择 {count} 个',
'settings.plugins.clearSelection': '清除',
'settings.plugins.enableSelected': '启用所选',
'settings.plugins.disableSelected': '禁用所选',
'settings.plugins.selectPlugin': '选择 {name}',
'settings.plugins.bulkEnableTitle': '启用已选择的 {count} 个插件?',
'settings.plugins.bulkDisableTitle': '禁用已选择的 {count} 个插件?',
'settings.plugins.bulkEnableBody': '将启用 {names},并把插件变更应用到当前桌面端运行时。',
'settings.plugins.bulkDisableBody': '将禁用 {names},并把插件变更应用到当前桌面端运行时。',
'settings.plugins.bulkEnableToast': '已启用 {count} 个插件,并应用插件变更。',
'settings.plugins.bulkDisableToast': '已禁用 {count} 个插件,并应用插件变更。',
'settings.plugins.author': '作者:{value}',
'settings.plugins.projectPath': '项目:{value}',
'settings.plugins.installPath': '安装位置:{value}',
'settings.plugins.managedHint': '这个插件由策略托管,不能在桌面端修改。',
'settings.plugins.builtinHint': '内置插件支持在这里重新应用,但不开放安装和卸载操作。',
'settings.plugins.errorsTitle': '插件错误',
'settings.plugins.capabilitiesTitle': '打包能力',
'settings.plugins.capabilitiesHint': '根据插件 manifest 和运行时集成解析出的能力列表。',
'settings.plugins.sharedNavigationDisabled': '先启用插件并应用变更才能在共享管理页中打开它的技能、Agent 或 MCP 条目。',
'settings.plugins.capabilityEmpty': '没有暴露',
'settings.plugins.capability.skills': '{count} 个技能',
'settings.plugins.capability.agents': '{count} 个 Agent',
'settings.plugins.capability.mcpServers': '{count} 个 MCP 服务',
'settings.plugins.capabilityLabel.skills': '技能',
'settings.plugins.capabilityLabel.commands': '命令',
'settings.plugins.capabilityLabel.agents': 'Agents',
'settings.plugins.capabilityLabel.hooks': 'Hooks',
'settings.plugins.capabilityLabel.mcpServers': 'MCP 服务',
'settings.plugins.capabilityLabel.lspServers': 'LSP 服务',
// Settings > About
'settings.tab.about': '关于',
'settings.about.version': '版本',
'settings.about.changelog': '更新日志',
'settings.about.repo': 'GitHub 仓库',
'settings.about.starHint': '如果这个项目对你有帮助,欢迎给个 Star',
'settings.about.feedback': '反馈问题',
'settings.about.feedbackDesc': '遇到 Bug 或使用问题,前往 GitHub Issue 提交反馈',
'settings.about.author': '作者',
'settings.about.socialMedia': '社交媒体',
'settings.about.updates': '应用更新',
'settings.about.updatesDesc': '检查 GitHub Releases下载安装包并在安装后自动重启。',
// Settings > Computer Use
'settings.tab.computerUse': 'Computer Use',
'settings.computerUse.title': 'Computer Use',
'settings.computerUse.description': '允许 Claude 截屏、点击、打字并控制你的电脑。需要 Python 3macOS 上还需要辅助功能权限。',
'settings.computerUse.enabledToggle': '启用',
'settings.computerUse.disabledHint': 'Computer Use 已关闭。新会话不会注入 computer-use MCP也不会把桌面控制工具暴露给 Coding Agent。',
'settings.computerUse.notSupported': 'Computer Use 仅支持 macOS 和 Windows。',
'settings.computerUse.python': 'Python 3',
'settings.computerUse.pythonNotFound': '未安装,请先安装 Python 3。',
'settings.computerUse.pythonFound': '已安装',
'settings.computerUse.pythonCustomInvalid': '自定义解释器不可用',
'settings.computerUse.pythonPathLabel': 'Python 解释器路径',
'settings.computerUse.pythonPathPlaceholder': '自动检测,或选择 python.exe / python3',
'settings.computerUse.pythonPathHint': '留空则自动检测;选择 conda、pyenv 或自定义环境里的 Python 可执行文件后会优先使用它创建运行环境。',
'settings.computerUse.pythonPathBrowse': '选择',
'settings.computerUse.pythonPathSave': '应用',
'settings.computerUse.pythonPathAuto': '自动',
'settings.computerUse.pythonPathSaved': '已保存,重新检测会优先使用这个解释器。',
'settings.computerUse.pythonPathSaveFailed': '保存失败,请稍后重试。',
'settings.computerUse.pythonPathDialogTitle': '选择 Python 解释器',
'settings.computerUse.pythonPathDialogFailed': '无法打开文件选择器,请手动粘贴路径。',
'settings.computerUse.venv': '虚拟环境',
'settings.computerUse.venvReady': '已就绪',
'settings.computerUse.venvNotReady': '未创建',
'settings.computerUse.deps': '依赖包',
'settings.computerUse.depsReady': '已安装',
'settings.computerUse.depsNotReady': '未安装',
'settings.computerUse.accessibility': '辅助功能权限',
'settings.computerUse.screenRecording': '屏幕录制权限',
'settings.computerUse.permGranted': '已授权',
'settings.computerUse.permDenied': '未授权 — 请前往「系统设置 > 隐私与安全性」授权',
'settings.computerUse.permUnknown': '请先安装环境后检测',
'settings.computerUse.permScreenRecordingUnknownSoft': '自动检测结果不稳定;如果系统设置里已授权,通常可以直接使用',
'settings.computerUse.permScreenRecordingManual': '无法自动检测 — 请在系统设置中手动确认已授权',
'settings.computerUse.setupBtn': '安装环境',
'settings.computerUse.setupRunning': '安装中...',
'settings.computerUse.setupSuccess': '环境安装完成!',
'settings.computerUse.setupFail': '安装失败',
'settings.computerUse.allReady': '所有检查通过Computer Use 已就绪。',
'settings.computerUse.downloadPython': '下载 Python 3',
'settings.computerUse.recheckBtn': '重新检测',
'settings.computerUse.requirementsLabel': '需要的 Python 包',
'settings.computerUse.appsTitle': '已授权应用',
'settings.computerUse.appsDescription': '预先授权 AppClaude 将可以直接控制这些 App无需运行时弹窗确认。',
'settings.computerUse.appsLoading': '加载已安装的 App...',
'settings.computerUse.appsEmpty': '未找到已安装的 App请先安装环境。',
'settings.computerUse.appsSearch': '搜索 App...',
'settings.computerUse.appsSaved': '已保存',
'settings.computerUse.openAccessibility': '打开辅助功能设置',
'settings.computerUse.openScreenRecording': '打开屏幕录制设置',
'settings.computerUse.permRestartHint': '授权后需重启 App 才能生效。',
'settings.computerUse.flagClipboard': '剪贴板访问',
'settings.computerUse.flagSystemKeys': '系统快捷键',
// Settings > General - Storage
'settings.general.modeSwitchTitle': '切换数据存储位置?',
'settings.general.modeSwitchConfirm': '保存并重启',
'settings.general.storageTitle': '数据存储位置',
'settings.general.storageDescription': '低频高级设置。切换后会话记录、Skills、MCP、插件、Provider 配置、任务和缓存都会从新的目录读取。',
'settings.general.storageSystemTitle': '使用系统目录',
'settings.general.storageSystemDescription': '回到默认数据源。若启动环境设置了 CLAUDE_CONFIG_DIR则仍会优先使用该环境变量指定的目录。',
'settings.general.storagePortableTitle': '使用便携目录',
'settings.general.storagePortableDescription': '把桌面端数据写入你选择的文件夹,适合放在移动硬盘或和应用一起打包迁移。',
'settings.general.storagePortableDirLabel': '便携数据目录',
'settings.general.storagePortableDirPlaceholder': '选择一个用于保存 cc-haha 数据的文件夹',
'settings.general.storageChooseDir': '选择目录',
'settings.general.storageChooseDirTitle': '选择便携数据目录',
'settings.general.storageUseDefaultPortableDir': '使用应用旁边的默认便携目录',
'settings.general.storageApplyPortable': '使用这个目录并重启',
'settings.general.storageActiveDir': '当前实际读取目录',
'settings.general.storageEnvironmentHint': '当前目录由 CLAUDE_CONFIG_DIR 环境变量控制。应用内切换不会覆盖这个环境变量;如需回到系统目录,请先移除启动环境里的 CLAUDE_CONFIG_DIR。',
'settings.general.storageEnvironmentSwitchBlocked': '当前由 CLAUDE_CONFIG_DIR 环境变量控制。请先移除启动环境里的 CLAUDE_CONFIG_DIR再切回系统目录。',
'settings.general.storageRestartHint': '已保存切换请求。请重启应用,让新的数据目录生效。',
'settings.general.storageMoveHint': '切换目录不会自动搬迁旧数据。如果希望旧会话继续出现,请把原目录下的 projects、skills、plugins、cc-haha 等数据复制到新目录。要做便携包,建议把目录放在应用旁边并一起压缩。',
'settings.general.storageNoDirError': '请先选择或填写一个便携数据目录。',
'settings.general.storagePickerError': '无法打开目录选择器,请手动粘贴目录路径。',
'settings.general.storageRestartError': '切换已保存,但自动重启失败,请手动重启应用。',
'settings.general.storageSwitchPortableBody': '切换后桌面端会从下面这个目录读取和写入会话、配置、Skills、MCP、插件、任务和缓存。',
'settings.general.storageSwitchDefaultBody': '切回系统目录后,桌面端会回到系统默认数据源。当前便携目录中的数据不会被删除,也不会自动迁回。',
'settings.general.storageSwitchRestartBody': '应用将先关闭本地服务和适配器进程,然后自动重启。重启后新目录才会生效。',
// Settings > General
'settings.general.appearanceTitle': '配色主题',
'settings.general.appearanceDescription': '在经典暖色、暗色与纯白工作区之间切换。',
'settings.general.appearance.light': '经典暖色',
'settings.general.appearance.dark': '暗色',
'settings.general.appearance.white': '纯白',
'settings.general.languageTitle': '语言',
'settings.general.languageDescription': '选择应用程序的显示语言。',
'settings.general.responseLangTitle': '回复语言',
'settings.general.responseLangDescription': '指定 Claude 始终以某种语言回复。',
'settings.general.responseLangDefault': '默认(英语)',
'settings.general.outputStyleTitle': '输出风格',
'settings.general.outputStyleDescription': '选择 Claude 在新会话或重启后的会话中如何表达。',
'settings.general.outputStyleBuiltin.default.label': '默认',
'settings.general.outputStyleBuiltin.default.description': 'Claude 会高效完成编码任务,并提供简洁回复',
'settings.general.outputStyleBuiltin.explanatory.label': '解释型',
'settings.general.outputStyleBuiltin.explanatory.description': 'Claude 会解释实现选择和代码库模式',
'settings.general.outputStyleBuiltin.learning.label': '学习型',
'settings.general.outputStyleBuiltin.learning.description': 'Claude 会暂停并请你编写小段代码进行实战练习',
'settings.general.outputStyleSelectLabel': '选择输出风格',
'settings.general.outputStyleLoading': '正在加载输出风格...',
'settings.general.outputStyleSaved': '输出风格已保存。',
'settings.general.outputStyleRestartHint': '正在运行的会话会继续使用当前提示词。新建会话、在新进程中继续,或重启会话后生效。',
'settings.general.outputStyleScopeLocal': '当前项目',
'settings.general.outputStyleScopeUser': '用户设置',
'settings.general.outputStyleScopeLocalHint': '已保存到当前项目的 .claude/settings.local.json。',
'settings.general.outputStyleScopeUserHint': '当前未选择项目,因此保存到用户设置。',
'settings.general.outputStyleSourceBuiltIn': '内置',
'settings.general.outputStyleSourceUser': '用户风格',
'settings.general.outputStyleSourceProject': '项目风格',
'settings.general.outputStyleSourceLocal': '项目本地风格',
'settings.general.outputStyleSourcePolicy': '受管风格',
'settings.general.outputStyleSourcePlugin': '插件风格',
'settings.general.defaultPermissionTitle': '默认会话权限',
'settings.general.defaultPermissionDescription': '选择桌面端新建聊天会话时默认使用的权限模式。',
'settings.general.defaultPermissionLabel': '新会话权限模式',
'settings.general.defaultPermissionHint': '每个会话内部仍然可以通过聊天区的权限选择器单独修改。',
'settings.general.defaultPermissionScope': '每个新会话的工作区',
'settings.general.effortTitle': '推理强度',
'settings.general.effortDescription': '控制模型使用的计算量。',
'settings.general.effort.low': '低',
'settings.general.effort.medium': '中',
'settings.general.effort.high': '高',
'settings.general.effort.xhigh': '极高',
'settings.general.effort.max': '最大',
'settings.general.thinkingTitle': '思考模式',
'settings.general.thinkingDescription': '控制新会话是否启用模型思考。关闭后DeepSeek 等兼容供应商会收到显式非思考模式参数。',
'settings.general.thinkingEnabled': '启用思考模式',
'settings.general.thinkingHint': '关闭后会以 --thinking disabled 启动新会话;适合 DeepSeek V4 Flash/Pro 等需要非思考模式的模型。',
'settings.general.autoDreamTitle': '自动做梦',
'settings.general.autoDreamDescription': '在积累足够会话后,后台定期整理和压缩 auto-memory。',
'settings.general.autoDreamEnabled': '启用自动做梦',
'settings.general.autoDreamHintOn': '符合条件的会话结束后,桌面端可以在后台执行记忆整理。',
'settings.general.autoDreamHintOff': '默认关闭,因为它可能发起后台模型调用。',
'settings.general.autoDreamConfirmTitle': '启用自动做梦?',
'settings.general.autoDreamConfirmKeepRunning': '请保持桌面端处于启用状态,这样符合条件的会话结束后才能启动后台记忆整理。',
'settings.general.autoDreamConfirmTokenCost': '自动做梦会在审查和改写记忆文件时额外消耗模型 Token。',
'settings.general.autoDreamConfirmEnable': '启用自动做梦',
'settings.general.notificationsTitle': '系统通知',
'settings.general.notificationsDescription': '使用操作系统原生通知提醒授权确认、Agent 回复完成和定时任务结果。',
'settings.general.notificationsEnabled': '启用系统通知',
'settings.general.notificationsHintOn': '开启后会请求系统通知权限,并通过系统通知中心提醒。',
'settings.general.notificationsHintOff': '关闭后授权确认、Agent 回复和定时任务都不会发送桌面通知。',
'settings.general.notificationsStatus': '权限',
'settings.general.notificationsStatusGranted': '已授权',
'settings.general.notificationsStatusDenied': '已被系统设置阻止',
'settings.general.notificationsStatusDefault': '尚未请求',
'settings.general.notificationsStatusUnsupported': '当前环境不可用',
'settings.general.notificationsAuthorize': '授权通知',
'settings.general.notificationsOpenSettings': '打开系统设置',
'settings.general.notificationsTestTitle': 'Claude Code Haha 通知已启用',
'settings.general.notificationsTestBody': '后续授权确认和 Agent 回复完成都会通过系统通知提醒。',
'settings.general.traceTitle': 'Agent Trace',
'settings.general.traceDescription': '收集本地会话的模型请求链路,用于排查卡住、失败和异常等待。',
'settings.general.traceEnabled': '收集 Agent Trace',
'settings.general.traceHintOn': '新会话会把精简请求、响应、状态事件写入本机 cc-haha traces 目录。',
'settings.general.traceHintOff': '关闭后不会写入新的 Trace已有记录仍可在 Trace 列表里查看。',
'settings.general.chatSendBehaviorTitle': '消息发送方式',
'settings.general.chatSendBehaviorDescription': '选择桌面端对话输入框如何发送消息。',
'settings.general.chatSendBehaviorEnter': 'Enter 发送',
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter 换行。',
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter 发送',
'settings.general.chatSendBehaviorModifierDescription': 'Enter 和 Shift+Enter 都会换行。',
'settings.general.h5AccessTitle': 'H5 访问',
'settings.general.h5AccessDescription': '在局域网内暴露桌面端 H5 应用。手机通过带 H5 token 的二维码快速连接。',
'settings.general.h5AccessEnabled': '启用 H5 访问',
'settings.general.h5AccessEnabledHint': '桌面服务会监听局域网地址,并开放桌面会话相关能力。',
'settings.general.h5AccessStatusEnabled': '已启用',
'settings.general.h5AccessTokenPreview': '令牌预览',
'settings.general.h5AccessDisabledValue': '未启用',
'settings.general.h5AccessDisable': '关闭',
'settings.general.h5AccessGenerateToken': '生成令牌',
'settings.general.h5AccessRegenerate': '重新生成令牌',
'settings.general.h5AccessGeneratedToken': '生成的令牌',
'settings.general.h5AccessGeneratedTokenHint': '仅显示一次,请立即复制并像密码一样保存。',
'settings.general.h5AccessShowToken': '显示令牌',
'settings.general.h5AccessCopy': '复制',
'settings.general.h5AccessCopyUrl': '复制 H5 链接',
'settings.general.h5AccessCopyLaunchUrl': '复制扫码链接',
'settings.general.h5AccessUrlCopied': 'H5 链接已复制。',
'settings.general.h5AccessLaunchUrlCopied': '扫码链接已复制。',
'settings.general.h5AccessHideToken': '隐藏令牌',
'settings.general.h5AccessTokenNotAvailable': '旧版本的令牌无法找回。重新生成一次后,令牌将长期保存,可随时查看。',
'settings.general.h5AccessPublicHost': '访问主机 / IP',
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
'settings.general.h5AccessCurrentPort': '当前端口',
'settings.general.h5AccessCurrentPortUnknown': '自动',
'settings.general.h5AccessFixedPort': '固定端口',
'settings.general.h5AccessFixedPortPlaceholder': '自动',
'settings.general.h5AccessFixedPortInvalid': '端口需为 1024-65535 之间的整数。',
'settings.general.h5AccessFixedPortHint': '不设固定端口时会自动复用上次的端口;反向代理等需要稳定端口的场景建议固定。修改端口后重启应用生效。',
'settings.general.h5AccessFixedPortRestartNote': '固定端口 {fixedPort} 将在重启应用后生效,当前仍运行在 {activePort}。',
'settings.general.h5AccessDisconnectGrace': '断连保活(秒)',
'settings.general.h5AccessDisconnectGracePlaceholder': '30',
'settings.general.h5AccessDisconnectGraceInvalid': '需为 5-86400 之间的整数秒。',
'settings.general.h5AccessDisconnectGraceHint': '手机锁屏或切后台导致断连后,正在执行的任务不会被打断,会在后台跑完、重连即可看到结果;只有任务空闲且无人连接时才在此时长后停止 CLI默认 30 秒)。出门远程操作可调大,例如 600。',
'settings.general.h5AccessPublicUrl': '公开访问 URL',
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
'settings.general.h5AccessAllowedOrigins': '允许的来源',
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
'settings.general.h5AccessOriginsHint': '每行一个来源,或使用逗号分隔多个来源。',
'settings.general.h5AccessOpenHint': '普通局域网访问只改主机 / IP端口使用当前服务端口。反向代理可直接填完整 URL。',
'settings.general.h5AccessSave': '保存 H5 设置',
'settings.general.h5AccessUrl': 'H5 链接',
'settings.general.h5AccessQrTitle': '手机连接',
'settings.general.h5AccessQrHint': '扫码会直接打开 H5并自动带上 token。',
'settings.general.h5AccessQrRefreshHint': '点击“生成令牌”后会创建可扫码的连接。',
'settings.general.h5AccessQrEmptyHint': '生成令牌后会在这里显示二维码。',
'settings.general.h5AccessQrAlt': 'H5 访问二维码',
'settings.general.h5AccessSafetyNote': '只在可信网络中启用。拿到二维码链接的人可以访问 H5 暴露的桌面能力。',
'settings.general.h5AccessConfirmTitle': '启用局域网 H5 访问?',
'settings.general.h5AccessConfirmBody': '这会把桌面 H5 应用暴露到局域网地址和端口。持有二维码 token 的设备可以访问桌面会话和相关控制能力。请只在可信网络中继续。',
'settings.general.h5AccessConfirmEnable': '启用 H5 访问',
'settings.general.h5AccessError': '更新 H5 设置失败。',
'settings.general.h5AccessStaleHostTitle': '当前保存的访问主机已不可达',
'settings.general.h5AccessStaleHostBody': '保存的 {storedHost} 不在本机当前的任何网卡上。手机扫码会连不上。建议切到本机当前的局域网 IP。',
'settings.general.h5AccessStaleHostNoSuggestion': '保存的 {storedHost} 不在本机当前的任何网卡上。手机扫码会连不上。请检查本机的网络连接,或改填反向代理 URL。',
'settings.general.h5AccessStaleHostApply': '切到 {suggestedHost}',
'settings.general.h5AccessProxyNote': '当前使用的是反向代理 URL手机扫码会经公网/隧道返回桌面端。请确认你的反代仍能工作。',
'settings.general.networkTitle': '网络',
'settings.general.networkDescription': '控制桌面会话发起的服务商 API 请求。',
'settings.general.networkProxyModeDirect': '直连',
'settings.general.networkProxyModeDirectDescription': '服务商 API 请求不使用应用进程继承到的代理。',
'settings.general.networkProxyModeSystem': '系统代理',
'settings.general.networkProxyModeSystemDescription': '使用应用进程继承到的代理设置。',
'settings.general.networkProxyModeManual': '手动代理',
'settings.general.networkProxyModeManualDescription': '使用下方填写的 HTTP 或 HTTPS 代理地址。',
'settings.general.networkProxyUrl': '代理地址',
'settings.general.networkProxyUrlHint': '支持 HTTP 和 HTTPS 代理。需要认证时可填写 http://user:password@127.0.0.1:7890该 URL 会随网络设置保存。',
'settings.general.networkProxyUrlInvalid': '请输入 HTTP 或 HTTPS 代理地址。',
'settings.general.networkProxyUrlRequired': '请输入代理地址。',
'settings.general.networkTimeout': 'AI 请求超时',
'settings.general.networkTimeoutValue': '{seconds} 秒',
'settings.general.networkTimeoutHint': '用于服务商请求、流式首个响应,以及服务商连接测试。支持 30-1800 秒;部分服务商在大上下文下首个流式字节可能需要等待数分钟。',
'settings.general.networkTimeoutUnit': '秒',
'settings.general.networkTimeoutDecrease': '减少 30 秒',
'settings.general.networkTimeoutIncrease': '增加 30 秒',
'settings.general.networkTimeoutRequired': '请输入超时时间。',
'settings.general.networkTimeoutRange': '请输入 {min}-{max} 秒之间的整数。',
'settings.general.networkSaved': '网络设置已保存。',
'settings.general.networkScopeHint': '不会影响单独的应用更新代理。',
'settings.general.networkSave': '保存',
'settings.general.webFetchPreflightTitle': 'WebFetch 预检',
'settings.general.webFetchPreflightDescription': '桌面端默认跳过 Claude 的域名预检,避免第三方服务商或受限网络下出现误报失败。',
'settings.general.webFetchPreflightEnabled': '跳过 WebFetch 域名预检',
'settings.general.webFetchPreflightHint': '只有在你明确需要恢复上游默认安全预检时,才建议关闭这个选项。',
'settings.general.webSearchTitle': 'WebSearch',
'settings.general.webSearchDescription': '配置 Agent 联网搜索在 Claude 原生、第三方供应商和本地 fallback key 之间如何选择。',
'settings.general.webSearch.mode.auto': '自动',
'settings.general.webSearch.mode.tavily': 'Tavily',
'settings.general.webSearch.mode.brave': 'Brave',
'settings.general.webSearch.mode.anthropic': 'Claude',
'settings.general.webSearch.mode.disabled': '关闭',
'settings.general.webSearchTavilyKey': 'Tavily API Key',
'settings.general.webSearchBraveKey': 'Brave Search API Key',
'settings.general.webSearchBravePlaceholder': 'Brave Search token',
'settings.general.webSearchGetApiKey': '获取 API Key',
'settings.general.webSearchTavilyApiKeyLink': '获取 Tavily API Key',
'settings.general.webSearchBraveApiKeyLink': '获取 Brave Search API Key',
'settings.general.webSearchTavilyFreeHint': '注册账号即可复制 API Key免费额度包含 1000 Credits。',
'settings.general.webSearchBraveFreeHint': '注册账号后可创建 Search API Key免费额度可用于测试。',
'settings.general.webSearchHint': '自动模式会对 Claude 模型名优先使用原生 WebSearch失败或非 Claude 模型时再使用 Tavily/Brave。',
'settings.general.webSearchSave': '保存',
'settings.general.uiZoom': '界面缩放',
'settings.general.uiZoomDescription': '调整整个界面的显示大小。',
'settings.general.uiZoomShortcutHint': '快捷键更直接:',
'settings.general.uiZoomShortcutMac': 'macOS',
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
'settings.general.uiZoomShortcutResetHint': '0 表示恢复到 100%。',
'settings.general.uiZoomReset': '重置界面缩放到 100%',
// ─── Empty Session ──────────────────────────────────────
'empty.title': '新建会话',
'empty.subtitle': '开始一个新的编码会话。Claude 已准备好帮你构建、调试和设计你的项目。',
'empty.placeholder': '随便问点什么...',
'empty.addFiles': '添加文件或图片',
'empty.slashCommands': '斜杠命令',
'empty.failedToCreate': '创建会话失败',
'empty.createError.workdirMissing': '项目目录不存在或不是文件夹。请选择一个存在的项目后重试。',
'empty.createError.notGit': '当前项目不是 Git 仓库,无法选择分支启动。可以直接在当前目录开始,或改选一个 Git 项目。',
'empty.createError.branchNotFound': '选中的分支已经不存在。请刷新项目上下文后重新选择分支。',
'empty.createError.dirtyWorktree': '当前项目有未提交改动,已阻止直接切换分支。请开启“独立工作树”,或先提交/暂存这些改动。',
'empty.createError.branchCheckedOut': '该分支已在其他工作树中检出。请开启“独立工作树”,或选择其他分支。',
'empty.createError.worktreeCreateFailed': '无法创建独立工作树。请确认 Git 可以写入此仓库后重试。详情:{detail}',
'empty.createError.switchFailed': '无法切换当前项目分支。请先确认 Git 错误并保护好本地改动后重试。详情:{detail}',
'empty.createError.contextFailed': '无法检查这个 Git 项目。请确认仓库状态后重试。',
// ─── Repository Launch Controls ──────────────────────────────────────
'repoLaunch.selectBranch': '选择分支',
'repoLaunch.searchBranch': '搜索分支',
'repoLaunch.noBranch': '无分支',
'repoLaunch.noBranchMatch': '没有匹配的分支',
'repoLaunch.currentBranch': '当前分支',
'repoLaunch.localBranch': '本地分支',
'repoLaunch.remoteBranch': '远程分支',
'repoLaunch.checkedOut': '已在其他工作树中检出',
'repoLaunch.worktreeCurrent': '当前工作树',
'repoLaunch.worktreeIsolated': '独立工作树',
'repoLaunch.selectWorktree': '选择工作树模式',
'repoLaunch.missingWorkdir': '工作目录不存在。',
'repoLaunch.dirtyWarning': '检测到未提交变更,直接切换可能会被阻止;使用独立工作树可以继续,且不会改动当前目录。',
'repoLaunch.checkedOutWarning': '选中的分支已在其他工作树中检出。直接启动可能会被 Git 阻止;使用“独立工作树”可以避免切换当前目录。',
// ─── Chat Input ──────────────────────────────────────
'chat.placeholder': '让 Claude 编辑、调试或解释代码...',
'chat.placeholderMissing': '此会话指向的工作目录缺失。请新建会话或选择其他项目。',
'chat.addFiles': '添加文件或图片',
'chat.dropFilesTitle': '松手添加文件',
'chat.dropFilesHint': '会以文件路径附加到当前输入。',
'chat.workspaceReferencesOnly': '已添加 {count} 个工作区引用',
'chat.contextReferencesOnly': '已添加 {count} 个引用',
'chat.addSelectionToChat': '添加到对话',
'chat.branchFromHere': 'Fork 一个新对话',
'chat.branchSuccess': '已 Fork 新对话“{title}”。',
'chat.branchError': '从该消息 Fork 新对话失败。详情:{detail}',
'chat.userMessageReference': '用户消息',
'chat.assistantMessageReference': 'AI 回复',
'chat.slashCommands': '斜杠命令',
'chat.pendingMessageGuide': '引导',
'chat.pendingMessageGuideNow': '立即引导',
'chat.pendingMessageEdit': '编辑排队消息',
'chat.pendingMessageDelete': '删除排队消息',
'chat.pendingMessageEditInput': '排队消息文本',
'chat.goalEvent.created': '目标已设置',
'chat.goalEvent.replaced': '目标已设置',
'chat.goalEvent.statusTitle': '目标状态',
'chat.goalEvent.paused': '目标已暂停',
'chat.goalEvent.resumed': '目标已恢复',
'chat.goalEvent.completed': '目标已完成',
'chat.goalEvent.cleared': '目标已清除',
'chat.goalEvent.continuing': '目标继续执行',
'chat.goalEvent.message': '目标更新',
'chat.goalEvent.objective': '目标:{value}',
'chat.goalEvent.statusValue': '状态:{value}',
'chat.goalEvent.budget': '预算:{value}',
'chat.goalEvent.continuations': '续作次数:{value}',
'chat.compactSummary.compacting': '上下文正在压缩',
'chat.compactSummary.title': '上下文已压缩',
'chat.compactSummary.autoTitle': '上下文已自动压缩',
'chat.compactSummary.manualTitle': '上下文已手动压缩',
'chat.compactSummary.trigger.manual': '手动',
'chat.compactSummary.trigger.auto': '自动',
'chat.compactSummary.tokens': '压缩前 {count} tokens',
'chat.compactSummary.messages': '已摘要 {count} 条消息',
'chat.activeGoal.title': '当前目标',
'chat.activeGoal.running': '自循环运行中',
'chat.activeGoal.active': '进行中',
'chat.activeGoal.paused': '已暂停',
'chat.activeGoal.completed': '已完成',
'chat.activeGoal.budget': '预算 {value}',
'chat.activeGoal.continuations': '续作次数 {value}',
'chat.activeGoal.elapsed': '已用时 {value}',
'chat.backgroundAgents.title': '后台 Agent',
'chat.backgroundAgents.count': '{count} 个运行中或最近任务',
'chat.backgroundAgents.agent': 'agent',
'chat.backgroundTasks.title': '后台任务',
'chat.backgroundTasks.runningCountOne': '{count} 个运行中任务',
'chat.backgroundTasks.runningCountMany': '{count} 个运行中任务',
'chat.backgroundTasks.finishedCountOne': '{count} 个已完成任务',
'chat.backgroundTasks.finishedCountMany': '{count} 个已完成任务',
'chat.backgroundTasks.running': '运行中',
'chat.backgroundTasks.finished': '已完成',
'chat.backgroundTasks.clear': '清除',
'chat.backgroundTasks.close': '关闭后台任务',
'chat.backgroundTasks.command': '后台命令',
'chat.backgroundTasks.workflow': '后台工作流',
'chat.backgroundTasks.task': '后台任务',
'chat.backgroundTasks.type.agent': 'Agent',
'chat.backgroundTasks.type.bash': 'Bash',
'chat.backgroundTasks.type.workflow': '工作流',
'chat.backgroundTasks.type.task': '任务',
'chat.backgroundAgents.tokens': '{count} tokens',
'chat.backgroundAgents.status.running': '运行中',
'chat.backgroundAgents.status.completed': '已完成',
'chat.backgroundAgents.status.failed': '失败',
'chat.backgroundAgents.status.stopped': '已停止',
'chat.duration.seconds': '{seconds} 秒',
'chat.duration.minutesSeconds': '{minutes} 分 {seconds} 秒',
'slash.mcp.title': '可用 MCP 工具',
'slash.mcp.subtitle': '展示当前聊天上下文里的全局 MCP 和当前项目 MCP。',
'slash.mcp.subtitleWithProject': '当前展示全局 MCP 以及这个项目的 MCP{path}',
'slash.mcp.emptyTitle': '没有可用的 MCP 服务',
'slash.mcp.emptyBody': '当前聊天上下文里没有可用的全局或项目 MCP 服务。',
'slash.mcp.projectBadge': '项目:{name}',
'slash.skills.title': '可用技能',
'slash.skills.subtitle': '展示当前上下文里可直接调用的技能。',
'slash.skills.subtitleWithProject': '当前展示项目下的技能:{path}',
'slash.skills.emptyTitle': '没有可用技能',
'slash.skills.emptyBody': '当前上下文里没有找到可直接调用的技能。',
'slash.plugins.title': '插件',
'slash.plugins.subtitle': '插件管理后续会接到这个斜杠命令面板里。',
'slash.plugins.emptyTitle': '插件面板即将接入',
'slash.plugins.emptyBody': '这套共享的斜杠命令面板已经接通,插件数据下一步接进来。',
'slash.help.title': '斜杠命令',
'slash.help.subtitle': '运行 Agent 工作流、查看会话状态,或打开桌面端面板。',
'slash.help.group.context': '上下文',
'slash.help.group.project': '项目',
'slash.help.group.desktop': '桌面端',
'slash.help.group.more': '更多',
'slash.help.moreAvailable': '还有 {count} 条命令可用。输入 / 可以搜索完整命令列表。',
'slash.inspector.title': '会话检查器',
'slash.inspector.close': '关闭会话检查器',
'slash.inspector.loading': '正在加载会话数据',
'slash.inspector.error.noActiveSession': '当前没有选中的活跃会话。',
'slash.inspector.error.unavailable': '会话检查器数据不可用。请重启桌面端后端,让 /api/sessions/:id/inspection 接口生效。',
'slash.inspector.tab.status': '状态',
'slash.inspector.tab.usage': '用量',
'slash.inspector.tab.context': '上下文',
'slash.inspector.status.cliStatus': 'CLI 状态',
'slash.inspector.status.running': '运行中',
'slash.inspector.status.notRunning': '未运行',
'slash.inspector.status.activeModel': '当前模型',
'slash.inspector.status.unknown': '未知',
'slash.inspector.status.mcpConnections': 'MCP 连接',
'slash.inspector.status.connected': '已连接',
'slash.inspector.status.failed': '失败',
'slash.inspector.status.registeredTools': '注册工具',
'slash.inspector.status.commands': '条命令',
'slash.inspector.status.sessionMetadata': '会话元数据',
'slash.inspector.status.version': '版本',
'slash.inspector.status.sessionId': '会话 ID',
'slash.inspector.status.workingDirectory': '工作目录',
'slash.inspector.status.permissionMode': '权限模式',
'slash.inspector.status.authToken': '认证令牌',
'slash.inspector.status.outputStyle': '输出样式',
'slash.inspector.status.default': '默认',
'slash.inspector.status.mcpServers': 'MCP 服务',
'slash.inspector.status.refresh': '刷新',
'slash.inspector.status.contextWindow': '上下文窗口',
'slash.inspector.usage.emptyTitle': '暂无用量数据',
'slash.inspector.usage.emptyBody': 'CLI 会话启动并完成至少一轮回复后,这里会显示用量。',
'slash.inspector.usage.contextSnapshotNotice': '当前展示来自上下文快照的 token 用量。上下文数据刷新后会同步更新。',
'slash.inspector.usage.transcriptNotice': '当前展示从会话记录重建的用量。API 耗时只对正在运行的 CLI 进程可用。',
'slash.inspector.usage.unknownCost': '部分模型价格未知,费用统计可能不准确。',
'slash.inspector.usage.totalCost': '总费用',
'slash.inspector.usage.source': '来源',
'slash.inspector.usage.source.contextSnapshot': '上下文快照',
'slash.inspector.usage.source.transcript': '会话记录',
'slash.inspector.usage.source.currentProcess': '当前进程',
'slash.inspector.usage.apiDuration': 'API 耗时',
'slash.inspector.usage.wallDuration': '总耗时',
'slash.inspector.usage.usageSpan': '用量跨度',
'slash.inspector.usage.codeChanges': '代码改动',
'slash.inspector.usage.input': '输入',
'slash.inspector.usage.output': '输出',
'slash.inspector.usage.cacheReadWrite': '缓存读 / 写',
'slash.inspector.usage.webSearch': '网页搜索',
'slash.inspector.usage.byModel': '按模型统计',
'slash.inspector.usage.tokens': 'Tokens',
'slash.inspector.usage.noModelTitle': '暂无模型用量',
'slash.inspector.usage.noModelBody': '记录到模型回复后,这里会显示 token 用量。',
'slash.inspector.context.loading': '正在加载上下文数据',
'slash.inspector.context.emptyTitle': '暂无上下文数据',
'slash.inspector.context.emptyBody': '上下文用量需要活跃的 CLI 会话。',
'slash.inspector.context.windowUsage': '上下文窗口用量',
'slash.inspector.context.used': '已使用',
'slash.inspector.context.free': '剩余',
'slash.inspector.context.messages': '消息',
'slash.inspector.context.assistant': '助手',
'slash.inspector.context.toolResults': '工具结果',
'slash.inspector.context.context': '上下文',
'slash.inspector.context.categoryTitle': '按类别估算',
'slash.inspector.context.noCategoriesTitle': '暂无上下文分类',
'slash.inspector.context.noCategoriesBody': 'CLI 返回上下文分析后,这里会显示分类数据。',
'slash.inspector.context.memoryFiles': '记忆文件',
'slash.inspector.context.noMemoryFiles': '当前会话没有加载记忆文件。',
'slash.inspector.context.openMemory': '打开记忆',
'contextIndicator.ariaLabel': '上下文用量 {percent}',
'contextIndicator.pendingAria': '上下文用量待计算',
'contextIndicator.loadingAria': '上下文用量加载中',
'contextIndicator.unavailableAria': '上下文用量不可用',
'contextIndicator.title': '上下文',
'contextIndicator.modelUnknown': '未知模型',
'contextIndicator.used': '已使用',
'contextIndicator.free': '剩余',
'contextIndicator.window': '窗口',
'contextIndicator.loading': '正在加载上下文用量...',
'contextIndicator.pendingDetail': '会话启动后计算上下文用量。',
'contextIndicator.unavailable': '不可用',
'contextIndicator.unavailableDetail': '此会话暂时无法获取上下文用量。',
'contextIndicator.updatedUnknown': '尚未刷新',
'contextIndicator.updatedNow': '刚刚更新',
'contextIndicator.updatedMinutes': '{count} 分钟前更新',
'contextIndicator.estimate': '估算',
'chat.navigate': '导航',
'chat.select': '选择',
'chat.dismiss': '关闭',
'chat.stopTitle': '停止生成 (Cmd+.)',
'chat.jumpToLatest': '回到最新',
'chat.memorySavedTitle': '已保存 {count} 个记忆文件',
'chat.memorySavedFromToolsTitle': '保存了 {count} 条记忆',
'chat.memoryReferencedTitle': '{count} 条记忆引用',
'chat.memoryOpenSettings': '打开记忆',
'chat.memoryMoreFiles': '还有 {count} 个',
'chat.memoryTechnicalDetails': '工具详情',
'chat.rewindSuccessWithCode': '已回滚 {count} 条消息,并恢复相关文件。',
'chat.rewindSuccessConversationOnly': '已回滚 {count} 条消息。这一轮没有可用的文件检查点。',
'chat.turnChangesTitle': '{count} 个文件已更改',
'chat.turnChangesLatestCardLabel': '轮次已更改文件',
'chat.turnChangesHistoricalCardLabel': '轮次已更改文件',
'chat.turnChangesLatestSubtitle': '当前轮次检查点',
'chat.turnChangesHistoricalSubtitle': '历史轮次检查点',
'chat.turnChangesLatestUndo': '撤销当前轮次',
'chat.turnChangesHistoricalUndo': '回滚到这一轮之前',
'chat.turnChangesUndoing': '正在撤销...',
'chat.turnChangesLatestUndoAria': '撤销当前轮次变更',
'chat.turnChangesHistoricalUndoAria': '回滚到这一轮之前',
'chat.turnChangesLatestConfirmTitle': '撤销当前轮次?',
'chat.turnChangesHistoricalConfirmTitle': '回滚到这一轮之前?',
'chat.turnChangesLatestConfirmBody': '这会回滚最近一次助手回复,并恢复这一轮中被跟踪的文件变更。',
'chat.turnChangesHistoricalConfirmBody': '这会把会话回滚到这一轮之前,并恢复该检查点对应的文件变更。',
'chat.turnChangesLatestConfirmUndo': '撤销当前轮次',
'chat.turnChangesHistoricalConfirmUndo': '回滚到这一轮之前',
'chat.turnChangesOpenInWorkspaceAria': '在工作区打开 {path}',
'chat.turnChangesShowMore': '再显示 {count} 个文件',
'chat.turnChangesShowLess': '收起',
// ─── Streaming Indicator ──────────────────────────────────────
'streaming.thinking': '思考中',
'streaming.running': '运行中',
'streaming.working': '工作中',
// ─── Permission Dialog ──────────────────────────────────────
'permission.allowEditFile': '允许 Claude {toolName} {fileName}',
'permission.allowEditFileGeneric': '允许 Claude {toolName}此文件?',
'permission.allowBash': '允许 Claude 执行此命令?',
'permission.allowTool': '允许 Claude 使用 {toolName}',
'permission.awaitingApproval': '等待审批',
'permission.responded': '已响应',
'permission.allow': '允许',
'permission.allowForSession': '本次会话允许',
'permission.deny': '拒绝',
'permission.hideDetails': '隐藏详情',
'permission.showFullInput': '显示完整输入',
'permission.replacingContent': '替换文件内容',
'permission.planReadyTitle': '准备开始编码?',
'permission.planPreviewTitle': 'Claude 的计划',
'permission.planRequestedPermissions': '请求的权限',
'permission.planApprove': '批准计划',
'permission.planKeepPlanning': '继续规划',
'permission.planFeedbackPlaceholder': '告诉 Claude 需要修改什么',
'permission.planEmpty': '暂无计划内容。',
'permission.planApproved': '计划已批准',
'permission.planRejected': '计划已拒绝',
// ─── Computer Use Approval ──────────────────────────────────────
'computerUseApproval.titleApps': 'Computer Use 想控制这些应用',
'computerUseApproval.titleTcc': 'Computer Use 需要 macOS 权限',
'computerUseApproval.reason': '请求原因',
'computerUseApproval.allow': '本次会话允许',
'computerUseApproval.deny': '拒绝',
'computerUseApproval.alreadyGranted': '本次会话已授权',
'computerUseApproval.notInstalled': '应用未安装',
'computerUseApproval.sensitiveApp': '该应用属于高敏感类别,请额外确认后再授权。',
'computerUseApproval.alsoRequested': '同时请求了',
'computerUseApproval.hideWhileWorking': 'Claude 工作时会隐藏另外 {count} 个应用。',
'computerUseApproval.hideWhileWorkingRestore': 'Claude 工作时会隐藏另外 {count} 个应用,结束后会自动恢复。',
'computerUseApproval.accessibility': '辅助功能',
'computerUseApproval.screenRecording': '屏幕录制',
'computerUseApproval.granted': '已授权',
'computerUseApproval.notGranted': '未授权',
'computerUseApproval.openAccessibility': '打开辅助功能设置',
'computerUseApproval.openScreenRecording': '打开屏幕录制设置',
'computerUseApproval.tryAgain': '稍后重试',
'computerUseApproval.tccHint': '先在系统设置里授予缺失权限,返回后再点“稍后重试”。',
'computerUseApproval.tryAgainHint': '“稍后重试”会把控制权交还给 Claude让它在 macOS 权限生效后重新调用 request_access。',
// ─── Ask User Question ──────────────────────────────────────
'question.needsInput': 'Claude 需要你的输入',
'question.answered': '已回答',
'question.completed': '已结束',
'question.customResponse': '或输入自定义回复:',
'question.typePlaceholder': '输入你的回答...',
'question.submit': '提交',
'question.answeredPrefix': '已回答: ',
'question.resultPrefix': '结果: ',
// ─── Thinking Block ──────────────────────────────────────
'thinking.label': '思考中',
'thinking.labelDone': '已思考',
// ─── Tool Calls ──────────────────────────────────────
'tool.errorOutput': '错误输出',
'tool.toolOutput': '工具输出',
'tool.toolInput': '工具输入',
'tool.partialInput': '部分输入',
'tool.writerPreview': 'Writer',
'tool.writerPreviewLatest': '正在显示最新 {visible} / {total} 行',
'tool.contentStats': '{lines} · {chars}',
'tool.contentStatsLatest': '最新 {visible} / {total} 行 · {chars}',
'tool.lineCountSingular': '{count} 行',
'tool.lineCountPlural': '{count} 行',
'tool.charCountSingular': '{count} 字符',
'tool.charCountPlural': '{count} 字符',
'tool.generatingContent': '正在生成内容',
'tool.preparingEdit': '正在准备编辑',
'tool.preparingTool': '正在准备工具',
'tool.stopped': '已停止',
'tool.readFileContents': '读取文件内容',
'tool.createFile': '创建文件',
'tool.updateFileContents': '更新文件内容',
'tool.linesChanged': '{count} 行已更改',
'tool.linesCreated': '{count} 行已创建',
'tool.linesOutput': '{count} 行输出',
'tool.result': '{toolName} 结果',
'tool.resultGeneric': '工具结果',
'tool.error': '错误',
'tool.success': '成功',
'tool.showLess': '收起',
'tool.showMore': '展开 {count} 个字符',
// ─── Tool Group Verbs ──────────────────────────────────────
'toolGroup.readOne': '读取了 1 个文件',
'toolGroup.readMany': '读取了 {count} 个文件',
'toolGroup.createdOne': '创建了一个文件',
'toolGroup.createdMany': '创建了 {count} 个文件',
'toolGroup.editedOne': '编辑了一个文件',
'toolGroup.editedMany': '编辑了 {count} 个文件',
'toolGroup.ranOne': '执行了一条命令',
'toolGroup.ranMany': '执行了 {count} 条命令',
'toolGroup.foundFiles': '查找到文件',
'toolGroup.searchedOne': '搜索了代码',
'toolGroup.searchedMany': '搜索了 {count} 个模式',
'toolGroup.agentOne': '派遣了一个代理',
'toolGroup.agentMany': '派遣了 {count} 个代理',
'agentStatus.starting': '开始中',
'agentStatus.running': '进行中',
'agentStatus.done': '完成',
'agentStatus.failed': '失败',
'agentStatus.stopped': '已停止',
'agentStatus.noActivity': '暂时还没有工具活动',
'agentStatus.viewResult': '查看结果',
'agentStatus.resultTitle': 'Agent 结果',
'toolGroup.searchedWeb': '搜索了网页',
'toolGroup.fetchedOne': '获取了一个页面',
'toolGroup.fetchedMany': '获取了 {count} 个页面',
// ─── Tasks ──────────────────────────────────────
'tasks.title': '任务',
'tasks.completed': '已完成的任务',
'tasks.dismissCompleted': '隐藏已完成任务',
'tasks.newTask': '+ 新建任务',
'tasks.emptyTitle': '暂无定时任务。',
'tasks.emptyDesc': '创建定时任务来自动化你的工程工作流。',
'tasks.createNew': '创建新任务',
'tasks.totalTasks': '总任务数',
'tasks.active': '活跃',
'tasks.disabled': '已禁用',
// ─── New Task Modal ──────────────────────────────────────
'newTask.title': '新建定时任务',
'newTask.localWarning': '本地任务仅在电脑唤醒时运行。',
'newTask.fullPermissions': '所有权限',
'newTask.name': '名称',
'newTask.namePlaceholder': 'daily-code-review',
'newTask.description': '描述',
'newTask.descPlaceholder': '审查昨天的提交并标记可疑之处',
'newTask.frequency': '频率',
'newTask.everyNMinutes': '每 N 分钟',
'newTask.everyNHours': '每 N 小时',
'newTask.daily': '每天',
'newTask.weekdays': '工作日(周一至周五)',
'newTask.specificDays': '指定星期几',
'newTask.monthly': '每月',
'newTask.customCron': '自定义 Cron 表达式',
'newTask.intervalMinutes': '每 {n} 分钟',
'newTask.intervalHours': '每 {n} 小时',
'newTask.atMinute': '在第 :{m} 分钟',
'newTask.onMonthDay': '每月第 {d} 天',
'newTask.cronFormatHint': '格式:分 时 日 月 星期',
'newTask.invalidCron': '无效的 Cron 表达式',
'newTask.daySun': '日',
'newTask.dayMon': '一',
'newTask.dayTue': '二',
'newTask.dayWed': '三',
'newTask.dayThu': '四',
'newTask.dayFri': '五',
'newTask.daySat': '六',
'newTask.delayNote': '定时任务会使用随机延迟以优化服务器性能。',
'newTask.create': '创建任务',
'newTask.promptPlaceholder': '查看过去 24 小时的提交。总结变更内容,标记有风险的模式或缺失的测试,并记录值得跟进的事项。',
'newTask.notification': '通知',
'newTask.notifyOnComplete': '完成后推送通知',
'newTask.notifyChannels': '通知渠道',
'newTask.notifyHint': '任务完成后发送原生桌面通知或 IM 消息。',
'newTask.notifyDesktop': '桌面',
'newTask.notConfigured': '未配置',
'newTask.noChannelConfigured': '尚未配置任何 IM 渠道,请前往 设置 → IM 接入 进行配置。',
'newTask.noChannelSelected': '请至少选择一个通知渠道。',
// ─── Cron 描述 ──────────────────────────────────────
'cron.everyMinute': '每分钟执行',
'cron.everyNMinutes': '每 {n} 分钟执行',
'cron.everyHour': '每小时执行',
'cron.everyNHours': '每 {n} 小时执行',
'cron.everyNHoursAtMinute': '每 {n} 小时在第 :{m} 分钟执行',
'cron.dailyAt': '每天 {time} 执行',
'cron.weekdaysAt': '工作日 {time} 执行',
'cron.specificDaysAt': '每{days} {time} 执行',
'cron.monthlyAt': '每月 {day} 日 {time} 执行',
'cron.customSchedule': '自定义:{cron}',
'cron.dow.0': '周日',
'cron.dow.1': '周一',
'cron.dow.2': '周二',
'cron.dow.3': '周三',
'cron.dow.4': '周四',
'cron.dow.5': '周五',
'cron.dow.6': '周六',
// ─── 任务操作与日志 ──────────────────────────────────────
'tasks.runNow': '立即执行',
'tasks.confirmRun': '确定要立即执行此任务吗?',
'tasks.confirmDisable': '确定要禁用此定时任务吗?',
'tasks.confirmEnable': '确定要启用此定时任务吗?',
'tasks.confirmDelete': '确定要永久删除此任务及其所有日志吗?',
'tasks.running': '执行中...',
'tasks.viewLogs': '日志',
'tasks.logsTitle': '执行记录',
'tasks.noLogs': '暂无执行记录',
'tasks.runStatus.running': '运行中',
'tasks.runStatus.completed': '已完成',
'tasks.runStatus.failed': '失败',
'tasks.runStatus.timeout': '超时',
'tasks.duration': '{s}秒',
'tasks.viewOutput': '摘要',
'tasks.hideOutput': '收起',
'tasks.close': '关闭',
'tasks.edit': '编辑',
'tasks.editTitle': '编辑定时任务',
'tasks.saveChanges': '保存修改',
'tasks.openSession': '查看完整对话',
'tasks.createdAt': '创建于 ',
'tasks.lastRunAt': '上次执行 ',
'tasks.outputHintSession': '点击「查看完整对话」可在会话中查看完整输出。',
'tasks.noOutputText': '暂无输出内容。',
// ─── Prompt Editor ──────────────────────────────────────
'promptEditor.worktree': '工作树',
'promptEditor.bypassWarning': '跳过模式将授予完整系统访问权限',
'promptEditor.within': '范围',
'promptEditor.selectFolder': '— 选择文件夹以限制范围',
// ─── Permission Mode Selector ──────────────────────────────────────
'permMode.executionPermissions': '执行权限',
'permMode.askPermissions': '询问权限',
'permMode.askPermDesc': 'CLI 请求时确认文件编辑和高风险命令',
'permMode.autoAccept': '自动接受编辑',
'permMode.autoAcceptDesc': 'Claude 无需询问即可写入磁盘',
'permMode.planMode': '计划模式',
'permMode.planModeDesc': '仅架构和推理,不操作文件',
'permMode.bypass': '跳过权限',
'permMode.bypassDesc': '对 Shell 和文件系统的完整工具访问',
'permMode.dontAsk': '不询问',
'permMode.enableBypassTitle': '启用跳过权限?',
'permMode.enableBypassSubtitle': '这将授予对系统的完全访问权限',
'permMode.enableBypassBody': 'Claude 将拥有<strong>不受限制的</strong>权限来执行 Shell 命令和修改以下目录中的文件:',
'permMode.permReadWrite': '读取、写入和删除任何文件',
'permMode.permShell': '执行任意 Shell 命令',
'permMode.permPackages': '安装或移除软件包',
'permMode.enableBypassBtn': '启用跳过',
'permMode.disabledDuringTurn': '会话进行中,无法切换权限',
// Mode labels (compact, for chips)
'permMode.label.default': '询问权限',
'permMode.label.acceptEdits': '自动接受',
'permMode.label.plan': '计划模式',
'permMode.label.bypassPermissions': '跳过',
'permMode.label.dontAsk': '不询问',
// ─── Model Selector ──────────────────────────────────────
'model.selectModel': '选择模型',
'model.configuration': '模型配置',
'model.effort': '推理强度',
// ─── Directory Picker ──────────────────────────────────────
'dirPicker.selectProject': '选择项目...',
'dirPicker.recent': '最近',
'dirPicker.noRecent': '暂无最近项目',
'dirPicker.chooseFolder': '选择其他文件夹',
'dirPicker.chooseProjectFolder': '选择项目文件夹',
'dirPicker.useThisFolder': '使用此文件夹',
'dirPicker.noSubdirs': '无子目录',
// ─── File Search ──────────────────────────────────────
'fileSearch.searching': '搜索中...',
'fileSearch.noMatch': '没有匹配的文件',
'fileSearch.noFiles': '此目录下无文件',
'fileSearch.accessDenied': '无法访问此目录',
'fileSearch.loadFailed': '目录加载失败',
'fileSearch.navigate': '导航',
'fileSearch.attach': '附加',
'fileSearch.select': '选择',
'fileSearch.open': '打开目录',
'fileSearch.close': '关闭',
'fileSearch.directory': '目录',
'fileSearch.currentDirectory': '当前目录',
'fileSearch.folderTag': '目录',
'fileSearch.fileTag': '文件',
'fileSearch.openFolder': '打开目录',
// ─── Teams ──────────────────────────────────────
'teams.backToLeader': '\u2190 返回主控',
'teams.viewing': '查看:',
'teams.transcript': '记录',
'teams.noMessages': '暂无消息',
'teams.team': '团队:',
'teams.members': '名成员',
'teams.working': '正在工作中...',
'teams.thinking': '正在思考中...',
'teams.running': '运行中',
'teams.leader': '主控',
'teams.memberPlaceholder': '直接给这个 Agent 发消息...',
'teams.memberSessionHint': '这里发送的消息会直接投递给该 Agent同时继续刷新它的 transcript。',
// ─── Session Activity ──────────────────────────────────────
'session.activity.title': '活动',
'session.activity.close': '关闭活动',
'session.activity.clearFinished': '清除已完成',
'session.activity.openTeamMember': '打开团队成员 {name}',
'session.activity.openRun': '打开运行 {name}',
'session.activity.openBackgroundTask': '打开后台任务 {name}',
'session.activity.stopBackgroundTask': '停止后台任务 {name}',
'session.activity.stoppingBackgroundTask': '正在停止后台任务 {name}',
'session.activity.details.title': '详情',
'session.activity.details.type': '类型',
'session.activity.details.description': '描述',
'session.activity.details.summary': '摘要',
'session.activity.details.outputFile': '输出文件',
'session.activity.details.usage': '用量',
'session.activity.section.tasks': '任务',
'session.activity.section.team': '团队',
'session.activity.section.backgroundTasks': '后台任务',
'session.activity.section.subagents': 'SubAgent',
'session.activity.section.sources': '来源',
'session.activity.empty.tasks': '暂无任务',
'session.activity.empty.team': '暂无团队成员',
'session.activity.empty.backgroundTasks': '暂无后台任务',
'session.activity.empty.subagents': '暂无 SubAgent',
'session.activity.empty.sources': '暂无来源',
'session.activity.task.completed': '任务已完成',
'session.activity.task.inProgress': '任务进行中',
'session.activity.task.pending': '任务待处理',
'session.activity.tasks.earlier': '历史任务',
'session.activity.tasks.earlierSummary': '历史轮次:{completed}/{total} 已完成',
'session.activity.status.pending': '待处理',
'session.activity.status.inProgress': '进行中',
'session.activity.status.completed': '已完成',
'session.activity.status.running': '运行中',
'session.activity.status.failed': '失败',
'session.activity.status.stopped': '已停止',
'session.activity.status.idle': '空闲',
'session.activity.status.error': '错误',
'session.activity.status.unknown': '未知',
// ─── SubAgent Run ──────────────────────────────────────
'subagentRun.refresh': '刷新 SubAgent 运行',
'subagentRun.loading': '正在加载 SubAgent 运行...',
'subagentRun.source': '来源',
'subagentRun.agent': 'Agent',
'subagentRun.unknown': '未知',
'subagentRun.task': '任务',
'subagentRun.updated': '更新时间',
'subagentRun.output': '输出',
'subagentRun.agentInvocation': 'Agent 调用',
'subagentRun.parentToolInput': '父级 Agent 工具输入',
'subagentRun.parentToolCall': '父级 Agent 工具调用',
'subagentRun.transcript': '运行记录',
'subagentRun.noTranscript': '没有捕获到这个 SubAgent 的本地运行记录。',
'subagentRun.truncated': '显示前 50 条和最新 950 条记录',
'subagentRun.source.transcript': '运行记录',
'subagentRun.source.sessionHistory': '会话历史',
'subagentRun.source.liveTask': '实时任务',
'subagentRun.source.none': '无',
'subagentRun.status.completed': '已完成',
'subagentRun.status.failed': '失败',
'subagentRun.status.stopped': '已停止',
'subagentRun.status.running': '运行中',
'subagentRun.status.unknown': '未知',
'subagentRun.result.completedFallback': 'SubAgent 已完成,但没有结果内容。',
'subagentRun.result.failedFallback': 'SubAgent 已失败,但没有错误内容。',
'subagentRun.result.stoppedFallback': 'SubAgent 已停止,但没有结果内容。',
'subagentRun.result.noneFallback': '暂无结果。',
// ─── Scheduled Tasks Pages ──────────────────────────────────────
'scheduledPage.title': '定时任务',
'scheduledPage.subtitle': '按计划或在需要时运行任务。在任意会话中输入 {code} 即可创建。',
'scheduledPage.desktopNotice': '定时任务仅在桌面应用打开时运行。请确保应用持续运行以按时触发任务。',
'scheduledPage.oldSubtitle': '管理自动化运维流程和后台维护任务。',
'scheduledPage.executionMode': '执行模式',
'scheduledPage.localMode': '本地模式',
'scheduledPage.remoteMode': '远程模式',
'scheduledPage.nextRun': '下次运行',
'scheduledPage.systemHealth': '系统健康',
'scheduledPage.activeSession': '活跃会话',
'scheduledPage.colTaskName': '任务名称',
'scheduledPage.colFrequency': '频率',
'scheduledPage.colLastResult': '上次结果',
'scheduledPage.colNextExecution': '下次执行',
'scheduledPage.colActions': '操作',
'scheduledPage.endOfList': '任务列表结束',
'scheduledPage.pausedTasks': '另有 9 个任务当前已暂停或因维护而禁用。',
'scheduledPage.recentLogs': '最近输出日志',
'scheduledPage.viewArtifacts': '查看完整产物',
'scheduledPage.resourceAllocation': '资源分配',
'scheduledPage.cpuCapacity': 'CPU 容量',
'scheduledPage.memoryLoad': '内存负载',
'scheduledPage.connectedLocal': '已连接到本地节点',
'scheduledPage.thisMonth': '本月 {count}',
// ─── 更新检查 ──────────────────────────────────────
'update.available': 'v{version} 可用',
'update.availableLabel': '可更新版本',
'update.checking': '正在检查更新...',
'update.checkNow': '检查更新',
'update.checkedAt': '上次检查时间 {time}',
'update.currentVersionUnknown': '未知版本',
'update.newVersion': '新版本 v{version} 可用',
'update.downloading': '下载中...',
'update.downloaded': '更新已下载。方便时重启即可使用新版。',
'update.idle': '点击检查更新,对比当前安装版本和 GitHub Releases 的最新版本。',
'update.installAndRestart': '安装并重启',
'update.installing': '正在安装更新...',
'update.now': '立即更新',
'update.later': '稍后',
'update.progress': '正在下载更新... {progress}%',
'update.progressBytes': '正在下载更新... 已下载 {downloaded}',
'update.proxyAdvanced': '高级更新代理',
'update.proxyModeManual': '手动代理',
'update.proxyModeManualDescription': '使用你填写的本地 HTTP 代理地址。',
'update.proxyModeSystem': '系统代理',
'update.proxyModeSystemDescription': '自动使用系统 HTTP/HTTPS 代理。',
'update.proxySave': '保存',
'update.proxyScopeHint': '这里只影响应用自身的更新检查和安装包下载。',
'update.proxyUrl': '代理地址',
'update.proxyUrlHint': '支持 HTTP 和 HTTPS 代理,例如 http://127.0.0.1:7890。',
'update.proxyUrlInvalid': '请输入 HTTP 或 HTTPS 代理地址。',
'update.proxyUrlRequired': '请输入代理地址。',
'update.releaseNotes': '更新说明',
'update.readyBody': 'v{version} 已下载。方便时重启即可使用新版。',
'update.readyTitle': '更新已准备好',
'update.restarting': '正在重启以完成更新...',
'update.upToDate': '当前已是最新版本 v{version}。',
'update.failed': '更新失败: {error}',
// ─── 活跃会话 ──────────────────────────────────────
'session.untitled': '未命名会话',
'session.active': '会话活跃中',
'session.lastUpdated': '最后更新 {time}',
'session.messages': '{count} 条消息',
'session.historyLoadFailed': '历史会话加载失败。',
'session.workspaceUnavailable': '工作目录不可用: {dir}',
'session.timeJustNow': '刚刚',
'session.timeMinutes': '{n}分钟前',
'session.timeHours': '{n}小时前',
'session.timeDays': '{n}天前',
'trace.open': 'Trace',
'trace.title': '模型 Trace',
'trace.loadFailed': 'Trace 加载失败',
'trace.apiCalls': 'API 调用',
'trace.failedCalls': '失败',
'trace.duration': '耗时',
'trace.elapsed': '已用时',
'trace.completed': '完成',
'trace.wallTime': '墙钟时间',
'trace.modelTime': '模型耗时',
'trace.toolTime': '工具耗时',
'trace.models': '模型',
'trace.request': '请求',
'trace.response': '响应',
'trace.status': '状态',
'trace.live': '实时',
'trace.updatedAt': '更新',
'trace.copySessionId': '复制 Session ID',
'trace.refresh': '刷新 Trace',
'trace.openWindow': '在独立窗口打开',
'trace.delete': '删除 Trace',
'trace.noResponse': '未捕获响应正文',
'trace.emptyTitle': '暂无 Trace 调用',
'trace.emptyBody': '这个会话还没有捕获到模型调用。新的桌面会话会自动记录精简的请求和响应预览。',
'trace.tokens': 'Tokens',
'trace.snapshotEmpty': 'Trace 快照为空。',
'trace.errors': '错误',
'trace.focus': '关注点',
'trace.searchSpans': '搜索 Span',
'trace.noMatchingSpans': '没有匹配的 Span',
'trace.filter.all': '全部',
'trace.filter.llm': 'LLM',
'trace.filter.tools': '工具',
'trace.filter.errors': '错误',
'trace.sidechain': '子链',
'trace.turnLabel': '第 {index} 轮',
'trace.waitingForResult': '等待结果',
'trace.started': '开始',
'trace.provider': 'Provider',
'trace.model': '模型',
'trace.childSpans': '子 Span',
'trace.requestBody': '请求正文',
'trace.requestHeaders': '请求头',
'trace.responseBody': '响应正文',
'trace.responseHeaders': '响应头',
'trace.toolResult': '工具结果',
'trace.truncatedShort': '已截断',
'trace.noData': '无数据',
'trace.llmCalls': 'LLM 调用',
'trace.toolCalls': '工具调用',
'trace.status.ok': '正常',
'trace.status.error': '错误',
'trace.status.pending': '等待中',
'trace.message.user': '用户消息',
'trace.message.assistant': '助手消息',
'trace.message.system': '系统消息',
'trace.message.toolRequest': '助手请求工具',
'trace.message.toolResult': '工具结果',
'trace.toolError': '工具错误',
'trace.modelCall': '模型调用',
'trace.sessionActivity': '会话活动',
'trace.diagnosis.modelError': '模型调用失败',
'trace.diagnosis.toolError': '工具执行失败',
'trace.diagnosis.eventError': '链路事件失败',
'trace.diagnosis.pendingModel': '正在等待模型响应',
'trace.diagnosis.pendingTool': '正在等待工具结果',
'trace.diagnosis.waitingForAgent': '用户消息尚未进入 agent 步骤',
'trace.diagnosis.empty': '没有可诊断事件',
'trace.diagnosis.healthy': '未发现阻塞点',
'trace.event.apiCallStarted': 'API 调用开始',
'trace.event.apiCallCompleted': 'API 调用完成',
'trace.event.apiCallFailed': 'API 调用失败',
'trace.event.apiCallAborted': 'API 调用中断',
'trace.event.responseCaptureFailed': '响应捕获失败',
'trace.event.upstreamFetchStarted': '上游请求开始',
'trace.event.upstreamFetchCompleted': '上游请求完成',
'trace.event.upstreamFetchFailed': '上游请求失败',
'trace.section.response': '响应',
'trace.section.messages': '消息',
'trace.section.systemPrompt': '系统提示词',
'trace.section.tools': '工具',
'trace.section.parameters': '参数',
'trace.section.raw': '原始数据',
'trace.section.input': '输入',
'trace.section.result': '结果',
'trace.section.meta': '元信息',
'trace.section.content': '内容',
'trace.section.event': '事件',
'trace.section.metadata': '元数据',
'trace.detail.stopReason': '停止原因',
'trace.detail.streaming': '等待模型响应...',
'trace.detail.aborted': '请求在响应完成前被中断(超时或取消)。',
'trace.status.aborted': '已中断',
'trace.detail.legacyTruncated': '该记录为旧格式截断数据,无法解析语义视图,请查看下方原始数据。',
'trace.detail.fetchFailed': '完整记录加载失败,以下展示截断预览。',
'trace.detail.earlierMessages': '展开更早的 {count} 条消息',
'trace.detail.chars': '{count} 字符',
'trace.detail.thinking': '思考',
'trace.detail.toolUseId': 'Tool use ID',
'trace.detail.phase': '阶段',
'trace.detail.severity': '级别',
'trace.detail.message': '消息',
'trace.tree.aria': 'Trace 时间线',
'trace.tree.toggleTurn': '折叠/展开轮次',
'trace.list.eyebrow': 'Agent Trace',
'trace.list.title': 'Trace 列表',
'trace.list.collecting': '正在收集',
'trace.list.paused': '已暂停',
'trace.list.settings': 'Trace 设置',
'trace.list.sessions': '会话',
'trace.list.searchPlaceholder': '搜索标题、Session ID 或项目路径',
'trace.list.emptyTitle': '还没有 Trace 记录',
'trace.list.emptyBody': '开启收集后,新的桌面会话会把模型调用链路写入本地 traces 目录。',
'trace.list.loadFailed': 'Trace 列表加载失败',
'trace.list.loadedCount': '已显示 {shown} / {total}',
'trace.list.loadMore': '加载更多',
'trace.list.deleteConfirmTitle': '删除 Trace 会话',
'trace.list.deleteConfirmBody': '删除“{title}”的 Trace 数据?聊天记录不会被删除。',
'trace.list.deleteFailed': 'Trace 会话删除失败',
// ─── 应用外壳 ──────────────────────────────────────
'app.serverFailed': '本地服务启动失败',
'app.serverFailedHint': '反馈这个问题时,请把这块诊断信息截图一起发到 issue 里。',
'app.startupError': '启动错误',
'app.serverLogs': '服务日志',
'app.copyDiagnostics': '复制诊断信息',
'app.copiedDiagnostics': '已复制',
'app.launching': '正在启动本地工作区...',
// ─── Error Codes ──────────────────────────────────────
'error.CLI_NOT_RUNNING': 'CLI 进程未运行。会话可能已结束或进程已崩溃。',
'error.CLI_START_FAILED': 'CLI 进程启动失败。',
'error.CLI_AUTH_REQUIRED': '需要认证。请先登录。',
'error.CLI_SESSION_CONFLICT': '会话已被其他进程占用。',
'error.CLI_SPAWN_FAILED': 'CLI 子进程启动失败。',
'error.CLI_ERROR': '处理过程中发生错误。',
'error.WORKDIR_INVALID': '工作目录无效或不存在。',
'error.PARSE_ERROR': '消息格式无效。',
'error.UNKNOWN_TYPE': '未知的消息类型。',
'error.BAD_REQUEST': '请求无效。',
'error.NOT_FOUND': '资源未找到。',
'error.INTERNAL_ERROR': '内部服务器错误。',
// ─── 业务错误 ──────────────────────────────────────
'businessError.pdf_too_large': '这个 PDF 超出了当前模型可处理的大小。请先转成文本,或换一个更小的 PDF。',
'businessError.pdf_password_protected': '这个 PDF 有密码保护。请先解锁或转换后再发送。',
'businessError.pdf_invalid': '这个 PDF 文件无效。请先转成文本,或换一个文件发送。',
'businessError.image_too_large': '这张图片超出了当前模型可处理的大小。请压缩图片,或换一张更小的图片。',
'businessError.image_unsupported': '当前模型不支持图片。请继续使用文字,或切换到支持视觉的模型后重新发送图片。',
'businessError.request_too_large': '这次请求超出了当前模型可处理的大小。请移除大文件,或缩短消息后重试。',
'businessError.prompt_too_long': '当前上下文超出了模型限制。请先压缩会话,或减少上下文后重试。',
'businessError.auto_mode_unavailable': '当前套餐不支持自动模式。',
// ─── Server Status Verbs ──────────────────────────────────────
'serverVerb.Thinking': '思考中',
'serverVerb.Compacting conversation': '正在压缩上下文',
'serverVerb.Running': '运行中',
'serverVerb.Working': '处理中',
'serverVerb.Creating worktree': '正在创建工作树',
'serverVerb.Task started': '任务已启动',
'serverVerb.Task in progress': '任务进行中',
'chat.retry.title': '请求失败,正在重试',
'chat.retry.attempt': '第 {attempt}/{max} 次',
'chat.retry.httpStatus': 'HTTP {status}',
'chat.retry.networkError': '网络错误',
'chat.retry.waiting': '等待 {seconds}s',
'chat.retry.retrying': '正在重试…',
'chat.fallback.title': '网络波动,已切换为非流式请求',
'chat.fallback.detail': '响应将一次性返回,可能需要较长时间',
// ─── Tabs ──────────────────────────────────────
'tabs.close': '关闭',
'tabs.closeOthers': '关闭其他',
'tabs.closeLeft': '关闭左侧',
'tabs.closeRight': '关闭右侧',
'tabs.closeAll': '关闭所有',
'tabs.closeConfirmTitle': '会话运行中',
'tabs.closeConfirmMessage': '此会话仍在运行,你想要怎么做?',
'tabs.closeConfirmKeep': '保持运行',
'tabs.closeConfirmStop': '停止并关闭',
'tabs.closeAllConfirmTitle': '多个会话运行中',
// ─── Slash Command Descriptions ──────────────────────────────────────
'slashCmd.agent.description': '使用指定 Agent 执行提示',
'slashCmd.mcp.description': '打开当前聊天上下文中可用的 MCP 工具',
'slashCmd.skills.description': '浏览当前上下文中可直接调用的技能',
'slashCmd.help.description': '查看可用的桌面端与 Agent 命令',
'slashCmd.status.description': '查看会话状态、用量和上下文',
'slashCmd.cost.description': '查看会话用量和费用',
'slashCmd.context.description': '查看当前上下文用量',
'slashCmd.plugin.description': '在设置中打开插件管理',
'slashCmd.memory.description': '在设置中打开项目记忆文件',
'slashCmd.doctor.description': '在诊断中打开 Doctor',
'slashCmd.compact.description': '压缩会话上下文',
'slashCmd.clear.description': '清空会话历史',
'slashCmd.goal.description': '设定完成目标',
'slashCmd.review.description': '审查代码变更',
'slashCmd.commit.description': '创建 git 提交',
'slashCmd.pr.description': '创建 Pull Request',
'slashCmd.init.description': '初始化项目 CLAUDE.md',
'slashCmd.bug.description': '报告 Bug',
'slashCmd.config.description': '打开配置',
'slashCmd.login.description': '切换 Anthropic 账户',
'slashCmd.logout.description': '登出当前账户',
'slashCmd.model.description': '切换 AI 模型',
'slashCmd.permissions.description': '查看或管理工具权限',
'slashCmd.terminal-setup.description': '设置终端集成',
'slashCmd.vim.description': '切换 vim 编辑模式',
'tabs.closeAllConfirmMessage': '仍有 {count} 个会话正在运行。关闭这些标签前是否停止它们?',
'tabs.closeAllConfirmStop': '全部停止并关闭',
'tabs.sessionRunning': '会话运行中',
'tabs.openTerminal': '打开终端',
'tabs.showWorkspace': '显示工作区',
'tabs.hideWorkspace': '隐藏工作区',
'tabs.showBrowser': '显示浏览器',
'tabs.hideBrowser': '隐藏浏览器',
// 技能市场
'sidebar.market': '技能市场',
'market.title': '技能市场',
'market.subtitle': '浏览、预览并安装来自 ClawHub 与 SkillHub 的技能。',
'market.searchPlaceholder': '按名称、关键词搜索技能…',
'market.clearSearch': '清除搜索',
'market.resultCount': '{count} 个技能',
'market.loadMore': '加载更多',
'market.loadingMore': '正在加载更多…',
'market.loading': '正在加载技能…',
'market.empty': '暂无可用技能',
'market.emptyHint': '两个来源都没有返回结果,请检查上方的来源状态。',
'market.emptySearch': '没有匹配的技能',
'market.emptySearchHint': '换个关键词试试,或清除筛选条件。',
'market.error.list': '技能市场加载失败',
'market.retry': '重试',
'market.filter.source': '来源',
'market.filter.security': '安全状态',
'market.filter.installed': '安装状态',
'market.source.all': '全部来源',
'market.source.clawhub': 'ClawHub',
'market.source.skillhub': 'SkillHub',
'market.security.all': '全部安全状态',
'market.security.verified': '已认证',
'market.security.benign': '扫描无风险',
'market.security.unknown': '未审计',
'market.security.flagged': '存在风险',
'market.securityHint.verified': '发布者已认证,且通过来源方安全扫描。',
'market.securityHint.benign': '来源方安全扫描未发现风险。',
'market.securityHint.unknown': '来源方未提供安全审计数据,安装前请自行检查文件内容。',
'market.securityHint.flagged': '来源方安全扫描标记该技能存在潜在风险。',
'market.disclaimer.title': '第三方技能,谨慎使用。',
'market.disclaimer.body': '技能来自社区第三方来源,本应用不对其内容做安全审计。安装前请先查看技能文件,建议先让 AI 扫描一遍、确认安全后再使用。',
'market.disclaimer.dismiss': '关闭免责声明',
'market.installedFilter.all': '全部技能',
'market.installedFilter.installed': '已安装',
'market.installedFilter.installable': '未安装',
'market.sourceStatus.ok': '正常',
'market.sourceStatus.degraded': '降级',
'market.sourceStatus.failed': '不可用',
'market.sourceStatus.cached': '缓存',
'market.sourceStatus.cachedAt': '缓存于 {time}',
'market.card.by': '作者 {author}',
'market.card.moreTags': '+{count}',
'market.install.state.installed': '已安装',
'market.install.state.installable': '可安装',
'market.install.state.notInstallable': '不可安装',
'market.install.action': '安装',
'market.install.installing': '安装中…',
'market.uninstall.action': '卸载',
'market.uninstall.uninstalling': '卸载中…',
'market.uninstall.confirmTitle': '卸载技能',
'market.uninstall.confirmMessage': '确定从本地移除「{name}」吗?{path} 下的文件将被删除。',
'market.uninstall.success': '「{name}」已卸载。',
'market.reason.empty-file-list': '该技能没有可安装的文件(缺少 SKILL.md。',
'market.reason.file-too-large': '该技能包含超过大小限制的文件。',
'market.reason.too-many-files': '该技能文件数量过多,无法安全安装。',
'market.reason.invalid-name': '技能名称无法作为本地目录名使用。',
'market.reason.name-conflict': '本地已存在同名技能,请先重命名或删除后再安装。',
'market.reason.source-unavailable': '该技能所属的来源当前不可用。',
'market.detail.back': '返回市场',
'market.detail.overview': '概览',
'market.detail.files': '文件',
'market.detail.author': '作者',
'market.detail.version': '版本',
'market.detail.updated': '更新时间',
'market.detail.category': '分类',
'market.detail.license': '许可证',
'market.detail.downloads': '下载量',
'market.detail.installs': '安装量',
'market.detail.stars': '收藏',
'market.detail.securityReport': '安全报告',
'market.detail.viewReport': '查看报告',
'market.detail.mirror': '也收录于 {source}',
'market.detail.requiresApiKey': '需要 API Key',
'market.detail.loadError': '技能详情加载失败',
'market.detail.noDescription': '该技能未提供说明。',
'market.file.empty': '在左侧选择一个文件进行预览。',
'market.file.truncated': '预览已截断——文件超出预览大小限制。',
'market.file.loadError': '文件加载失败',
'market.file.noFiles': '该技能暂无可预览文件。',
'market.installConfirm.title': '安装技能',
'market.installConfirm.message': '确定从 {source} 安装「{name}」吗?',
'market.installConfirm.location': '安装位置',
'market.installConfirm.effectNote': '安装完成后,技能将在新会话中生效。',
'market.installConfirm.riskBenign': '安全扫描未发现该技能存在风险。',
'market.installConfirm.riskVerified': '该技能来自已认证发布者,并通过了安全扫描。',
'market.installConfirm.riskUnknown': '该技能未经过安全审计,安装前请先检查其文件内容。',
'market.installConfirm.riskFlagged': '安全扫描标记该技能存在潜在风险,仅在您信任它时安装。',
'market.installConfirm.confirm': '安装',
'market.installConfirm.cancel': '取消',
'market.installSuccess': '「{name}」安装成功,将在新会话中生效。',
'market.installError.network': '安装失败:无法连接技能来源,请检查网络后重试。',
'market.installError.checksum': '安装已中止:下载文件未通过完整性校验。在确认来源可信前请勿重试。',
'market.installError.exists': '安装失败:该技能已安装或正在安装中。',
'market.installError.disk': '安装失败:写入磁盘失败,请检查权限与剩余空间。',
'market.installError.notInstallable': '安装失败:该技能不可安装。',
'market.installError.generic': '安装失败:{message}',
}