mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-17 13:13:35 +08:00
1454 lines
86 KiB
TypeScript
1454 lines
86 KiB
TypeScript
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.rename': '重命名',
|
||
'common.retry': '重试',
|
||
'common.loading': '加载中...',
|
||
'common.select': '选择',
|
||
'common.enable': '启用',
|
||
'common.disable': '禁用',
|
||
'common.active': '已激活',
|
||
'common.copyFailed': '复制失败。',
|
||
|
||
// ─── Sidebar ──────────────────────────────────────
|
||
'sidebar.newSession': '新建会话',
|
||
'sidebar.scheduled': '定时任务',
|
||
'sidebar.terminal': '终端',
|
||
'sidebar.settings': '设置',
|
||
'sidebar.searchPlaceholder': '搜索会话...',
|
||
'sidebar.noSessions': '暂无会话',
|
||
'sidebar.noMatching': '没有匹配的会话',
|
||
'sidebar.sessionListFailed': '会话列表加载失败',
|
||
'sidebar.refreshSessions': '刷新会话列表',
|
||
'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.projectHidden': '已从侧边栏移除 {project}。',
|
||
'sidebar.newSessionInProject': '在 {project} 中新建会话',
|
||
'sidebar.showMoreSessions': '展开显示',
|
||
'sidebar.showFewerSessions': '折叠显示',
|
||
'sidebar.expandProject': '展开 {project}',
|
||
'sidebar.collapseProject': '折叠 {project}',
|
||
'sidebar.worktree': 'worktree',
|
||
'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': '无法打开项目',
|
||
|
||
// ─── Workspace Panel ───────────────────────────────
|
||
'workspace.changedFiles': '已更改文件',
|
||
'workspace.allFiles': '所有文件',
|
||
'workspace.viewTabs': '工作区视图',
|
||
'workspace.previewTabs': '预览标签',
|
||
'workspace.filterPlaceholder': '筛选文件...',
|
||
'workspace.clearFilter': '清除文件筛选',
|
||
'workspace.refresh': '刷新工作区',
|
||
'workspace.closePanel': '关闭工作区面板',
|
||
'workspace.resizePanel': '调整工作区宽度',
|
||
'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.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.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.subtitleLoading': '基于本机 Claude Code 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.count.sessionOne': '{count} 次会话',
|
||
'settings.activity.count.sessionOther': '{count} 次会话',
|
||
'settings.activity.count.dayOne': '{count} 天',
|
||
'settings.activity.count.dayOther': '{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.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.clear': '清屏',
|
||
'settings.terminal.restart': '重启',
|
||
'settings.terminal.windowTitle': '宿主机 Shell',
|
||
'settings.terminal.unavailableTitle': '需要桌面端运行时',
|
||
'settings.terminal.unavailableBody': '请在打包后的桌面端里打开这个页面,才能启动交互式终端。',
|
||
'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 > Providers
|
||
'settings.providers.title': '服务商',
|
||
'settings.providers.description': '管理 API 服务商以访问模型。',
|
||
'settings.providers.addProvider': '添加服务商',
|
||
'settings.providers.officialName': 'Claude 官方',
|
||
'settings.providers.officialDesc': 'Anthropic 原生接入 — 无需 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.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.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 > 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 或飞书与 Claude Code 对话。',
|
||
'settings.adapters.telegram': 'Telegram',
|
||
'settings.adapters.feishu': '飞书',
|
||
'settings.adapters.wechat': '微信',
|
||
'settings.adapters.dingtalk': '钉钉',
|
||
'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.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.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': '请在钉钉、飞书、微信或 Telegram 私聊中发送此配对码给 Bot。微信需要先完成扫码绑定。',
|
||
'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.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.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.wechatUnbound': '微信绑定已解除。',
|
||
'settings.adapters.wechatUnbindFailed': '微信解绑失败。',
|
||
'settings.adapters.wechatAllowedUsersHint': '微信扫码只绑定账号能力;用户仍需发送配对码,或在这里额外填写允许的微信用户 ID。',
|
||
|
||
// Settings > MCP
|
||
'settings.mcp.title': 'MCP 服务',
|
||
'settings.mcp.description': '在桌面端直接管理外部工具与数据源。你可以添加、编辑、重连或禁用 MCP 服务。',
|
||
'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': '这个页面只管理全局用户 MCP,以保证速度和清晰度。项目级 MCP 将放到聊天页的斜杠命令体验里。',
|
||
'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.browserTitle': '浏览已安装技能',
|
||
'settings.skills.browserEyebrow': '技能浏览器',
|
||
'settings.skills.browserDescription': '查看内置、项目和用户技能,比较它们的来源与规模,并打开技能目录阅读文档和源码文件。',
|
||
'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.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.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.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 3,macOS 上还需要辅助功能权限。',
|
||
'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': '预先授权 App,Claude 将可以直接控制这些 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
|
||
// Settings > General - Mode
|
||
'settings.general.modeTitle': '运行模式',
|
||
'settings.general.modeDescription': '选择应用程序数据的存储位置。默认模式下,如果设置了 CLAUDE_CONFIG_DIR 环境变量则使用该路径,否则使用系统目录。便携模式将数据存储在自定义目录中。',
|
||
'settings.general.modeDefault': '默认模式',
|
||
'settings.general.modePortable': '便携模式',
|
||
'settings.general.modeDefaultHint': 'CLAUDE_CONFIG_DIR 环境变量指定的路径,或系统目录(Windows 上为 %APPDATA%)。',
|
||
'settings.general.modePortableDir': '便携配置目录',
|
||
'settings.general.modeSwitchTitle': '切换模式?',
|
||
'settings.general.modeSwitchBody': '切换到{mode}?此更改需要重启后生效。',
|
||
'settings.general.modeSwitchConfirm': '切换,稍后重启',
|
||
'settings.general.modeRestartTitle': '需要重启',
|
||
'settings.general.modeRestartHint': '重启应用使模式切换生效。下次启动时将更新配置目录。',
|
||
|
||
// 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.effortTitle': '推理强度',
|
||
'settings.general.effortDescription': '控制模型使用的计算量。',
|
||
'settings.general.effort.low': '低',
|
||
'settings.general.effort.medium': '中',
|
||
'settings.general.effort.high': '高',
|
||
'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.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.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.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': '留空时使用自动探测的局域网地址。只有通过固定地址暴露 H5 时才需要填写。',
|
||
'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.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.userMessageReference': '用户消息',
|
||
'chat.assistantMessageReference': 'AI 回复',
|
||
'chat.slashCommands': '斜杠命令',
|
||
'chat.goalEvent.created': '目标已设置',
|
||
'chat.goalEvent.replaced': '目标已设置',
|
||
'chat.goalEvent.statusTitle': '目标状态',
|
||
'chat.goalEvent.paused': '目标已暂停',
|
||
'chat.goalEvent.resumed': '目标已恢复',
|
||
'chat.goalEvent.completed': '目标已完成',
|
||
'chat.goalEvent.cleared': '目标已清除',
|
||
'chat.goalEvent.message': '目标更新',
|
||
'chat.goalEvent.objective': '目标:{value}',
|
||
'chat.goalEvent.statusValue': '状态:{value}',
|
||
'chat.goalEvent.budget': '预算:{value}',
|
||
'chat.goalEvent.continuations': '续作次数:{value}',
|
||
'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.backgroundAgents.tokens': '{count} tokens',
|
||
'chat.backgroundAgents.status.running': '运行中',
|
||
'chat.backgroundAgents.status.completed': '已完成',
|
||
'chat.backgroundAgents.status.failed': '失败',
|
||
'chat.backgroundAgents.status.stopped': '已停止',
|
||
'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.turnChangesShowDiffAria': '查看 {path} 的 diff',
|
||
'chat.turnChangesHideDiffAria': '收起 {path} 的 diff',
|
||
'chat.turnChangesDiffLoading': '正在加载 diff...',
|
||
'chat.turnChangesDiffUnavailable': 'Diff 不可用。',
|
||
|
||
// ─── 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': '替换文件内容',
|
||
|
||
// ─── 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.customResponse': '或输入自定义回复:',
|
||
'question.typePlaceholder': '输入你的回答...',
|
||
'question.submit': '提交',
|
||
'question.answeredPrefix': '已回答: ',
|
||
|
||
// ─── Thinking Block ──────────────────────────────────────
|
||
'thinking.label': '思考中',
|
||
|
||
// ─── Tool Calls ──────────────────────────────────────
|
||
'tool.errorOutput': '错误输出',
|
||
'tool.toolOutput': '工具输出',
|
||
'tool.toolInput': '工具输入',
|
||
'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.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': '启用跳过',
|
||
|
||
// 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。',
|
||
|
||
// ─── 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.idle': '点击检查更新,对比当前安装版本和 GitHub Releases 的最新版本。',
|
||
'update.now': '立即更新',
|
||
'update.later': '稍后',
|
||
'update.progress': '正在下载更新... {progress}%',
|
||
'update.progressBytes': '正在下载更新... 已下载 {downloaded}',
|
||
'update.releaseNotes': '更新说明',
|
||
'update.restarting': '正在重启以完成更新...',
|
||
'update.upToDate': '当前已是最新版本 v{version}。',
|
||
'update.failed': '更新失败: {error}',
|
||
|
||
// ─── 活跃会话 ──────────────────────────────────────
|
||
'session.untitled': '未命名会话',
|
||
'session.active': '会话活跃中',
|
||
'session.lastUpdated': '最后更新 {time}',
|
||
'session.messages': '{count} 条消息',
|
||
'session.workspaceUnavailable': '工作目录不可用: {dir}',
|
||
'session.timeJustNow': '刚刚',
|
||
'session.timeMinutes': '{n}分钟前',
|
||
'session.timeHours': '{n}小时前',
|
||
'session.timeDays': '{n}天前',
|
||
|
||
// ─── 应用外壳 ──────────────────────────────────────
|
||
'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': '内部服务器错误。',
|
||
|
||
// ─── Server Status Verbs ──────────────────────────────────────
|
||
'serverVerb.Thinking': '思考中',
|
||
'serverVerb.Running': '运行中',
|
||
'serverVerb.Working': '处理中',
|
||
'serverVerb.Creating worktree': '正在创建工作树',
|
||
'serverVerb.Task started': '任务已启动',
|
||
'serverVerb.Task in progress': '任务进行中',
|
||
|
||
// ─── Tabs ──────────────────────────────────────
|
||
'tabs.close': '关闭',
|
||
'tabs.closeOthers': '关闭其他',
|
||
'tabs.closeLeft': '关闭左侧',
|
||
'tabs.closeRight': '关闭右侧',
|
||
'tabs.closeAll': '关闭所有',
|
||
'tabs.closeConfirmTitle': '会话运行中',
|
||
'tabs.closeConfirmMessage': '此会话仍在运行,你想要怎么做?',
|
||
'tabs.closeConfirmKeep': '保持运行',
|
||
'tabs.closeConfirmStop': '停止并关闭',
|
||
'tabs.openTerminal': '打开终端',
|
||
'tabs.showWorkspace': '显示工作区',
|
||
'tabs.hideWorkspace': '隐藏工作区',
|
||
}
|