mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-17 13:13:35 +08:00
The Settings terminal added a full xterm plus Tauri PTY stack for a job that is better handled by dedicated install and configuration flows. This change removes the Settings tab, frontend terminal wiring, Tauri terminal commands, and the terminal-only dependencies so the desktop settings surface stays narrower and less fragile. Constraint: The worktree already contains unrelated desktop icon and UI changes, so this commit stages only the terminal-removal slice Rejected: Keep a hidden or runtime-only terminal stub | it would still preserve the heavy cross-layer maintenance surface Rejected: Remove only the Settings tab and leave the Tauri PTY backend | that would leave dead code and unused dependencies behind Confidence: high Scope-risk: narrow Reversibility: clean Directive: If future install workflows need more power, prefer Settings-native actions and runtime refresh over reintroducing a general shell tab Tested: bun x vitest run src/__tests__/generalSettings.test.tsx src/__tests__/skillsSettings.test.tsx src/__tests__/pluginsSettings.test.tsx src/__tests__/agentsSettings.test.tsx src/__tests__/mcpSettings.test.tsx src/components/settings/InstallCenter.test.tsx; bun run lint; bun run build; cargo check --manifest-path desktop/src-tauri/Cargo.toml Not-tested: Manual packaged desktop app click-through after removing the Settings terminal tab
902 lines
51 KiB
TypeScript
902 lines
51 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': '已激活',
|
||
|
||
// ─── Sidebar ──────────────────────────────────────
|
||
'sidebar.newSession': '新建会话',
|
||
'sidebar.scheduled': '定时任务',
|
||
'sidebar.settings': '设置',
|
||
'sidebar.searchPlaceholder': '搜索会话...',
|
||
'sidebar.noSessions': '暂无会话',
|
||
'sidebar.noMatching': '没有匹配的会话',
|
||
'sidebar.sessionListFailed': '会话列表加载失败',
|
||
'sidebar.missingDir': '目录缺失',
|
||
'sidebar.confirmDelete': '确定要删除这个会话吗?此操作不可撤销。',
|
||
'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': '历史',
|
||
|
||
// ─── Status Bar ──────────────────────────────────────
|
||
'status.connected': '已连接',
|
||
'status.connecting': '连接中...',
|
||
'status.reconnecting': '重连中...',
|
||
'status.disconnected': '已断开',
|
||
|
||
// ─── Settings ──────────────────────────────────────
|
||
'settings.title': '设置',
|
||
'settings.tab.providers': '服务商',
|
||
'settings.tab.permissions': '权限',
|
||
'settings.tab.general': '通用',
|
||
'settings.tab.install': '安装中心',
|
||
'settings.tab.skills': '技能',
|
||
'settings.tab.mcp': 'MCP',
|
||
'settings.tab.plugins': '插件',
|
||
|
||
// 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.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.modelMapping': '模型映射',
|
||
'settings.providers.mainModel': '主模型',
|
||
'settings.providers.haikuModel': 'Haiku 模型',
|
||
'settings.providers.sonnetModel': 'Sonnet 模型',
|
||
'settings.providers.opusModel': 'Opus 模型',
|
||
'settings.providers.sameAsMain': '与主模型相同',
|
||
'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 > 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': '飞书 (Feishu)',
|
||
'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.defaultProject': '默认项目',
|
||
'settings.adapters.defaultProjectHint': '新 IM 会话的默认工作目录。留空则由 Bot 询问选择。',
|
||
'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 > 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 > Install Center
|
||
'settings.install.eyebrow': 'AI 安装助手',
|
||
'settings.install.title': '安装中心',
|
||
'settings.install.description': '直接描述你想安装的 plugin、MCP 或 skill。底层会复用安装专用 session 去执行,并把结果同步回现有管理页。',
|
||
'settings.install.targets.plugins': 'Plugins',
|
||
'settings.install.targets.mcp': 'MCP',
|
||
'settings.install.targets.skills': 'Skills',
|
||
'settings.install.contextAuto': '默认上下文',
|
||
'settings.install.composeTitle': '自然语言安装',
|
||
'settings.install.composeHint': '描述你要安装什么、来源在哪里、希望落到用户级还是项目级。',
|
||
'settings.install.placeholder': '例如:安装 plugin skill-creator@claude-plugins-official,并帮我应用到当前桌面端;或者:添加一个 user scope 的 MCP,地址是 https://example.com/mcp。',
|
||
'settings.install.send': '发送安装请求',
|
||
'settings.install.stop': '中断执行',
|
||
'settings.install.refresh': '刷新安装状态',
|
||
'settings.install.newConversation': '新建安装会话',
|
||
'settings.install.clearConversation': '清除对话',
|
||
'settings.install.contextDefault': '未指定目录时默认使用 Home 目录启动安装会话。',
|
||
'settings.install.contextUsing': '当前安装会话目录:{path}',
|
||
'settings.install.contextTitle': '执行目录',
|
||
'settings.install.contextHint': '大部分用户级安装不依赖项目目录;如果你要安装 project skill 或 local/project MCP,可以先在这里选目录,再开始新的安装会话。',
|
||
'settings.install.goPlugins': '查看插件',
|
||
'settings.install.goMcp': '查看 MCP',
|
||
'settings.install.goSkills': '查看技能',
|
||
'settings.install.sessionTitle': '安装助手会话',
|
||
'settings.install.sessionHint': '这里展示安装专用 session 的完整执行过程、工具调用和结果。',
|
||
'settings.install.sessionEmpty': '还没有安装会话',
|
||
'settings.install.sessionEmptyHint': '发送第一条安装请求后,这里会直接复用 session 聊天链路展示完整过程。',
|
||
'settings.install.createFailed': '创建安装会话失败',
|
||
'settings.install.refreshDone': '已刷新插件、MCP 和技能状态',
|
||
'settings.install.newConversationReady': '已准备新的安装会话;下一条请求会启动新的安装上下文。',
|
||
'settings.install.clearConversationReady': '已清除当前安装对话;下一条请求会启动新的安装上下文。',
|
||
|
||
// 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 > 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.repo': 'GitHub 仓库',
|
||
'settings.about.starHint': '如果这个项目对你有帮助,欢迎给个 Star',
|
||
'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.notSupported': 'Computer Use 仅支持 macOS 和 Windows。',
|
||
'settings.computerUse.python': 'Python 3',
|
||
'settings.computerUse.pythonNotFound': '未安装,请先安装 Python 3。',
|
||
'settings.computerUse.pythonFound': '已安装',
|
||
'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.appearanceTitle': '配色主题',
|
||
'settings.general.appearanceDescription': '在亮色与暗色工作区之间切换,不影响原有亮色主题。',
|
||
'settings.general.appearance.light': '亮色',
|
||
'settings.general.appearance.dark': '暗色',
|
||
'settings.general.languageTitle': '语言',
|
||
'settings.general.languageDescription': '选择应用程序的显示语言。',
|
||
'settings.general.effortTitle': '推理强度',
|
||
'settings.general.effortDescription': '控制模型使用的计算量。',
|
||
'settings.general.effort.low': '低',
|
||
'settings.general.effort.medium': '中',
|
||
'settings.general.effort.high': '高',
|
||
'settings.general.effort.max': '最大',
|
||
'settings.general.webFetchPreflightTitle': 'WebFetch 预检',
|
||
'settings.general.webFetchPreflightDescription': '桌面端默认跳过 Claude 的域名预检,避免第三方服务商或受限网络下出现误报失败。',
|
||
'settings.general.webFetchPreflightEnabled': '跳过 WebFetch 域名预检',
|
||
'settings.general.webFetchPreflightHint': '只有在你明确需要恢复上游默认安全预检时,才建议关闭这个选项。',
|
||
|
||
// ─── Empty Session ──────────────────────────────────────
|
||
'empty.title': '新建会话',
|
||
'empty.subtitle': '开始一个新的编码会话。Claude 已准备好帮你构建、调试和架构你的项目。',
|
||
'empty.placeholder': '随便问点什么...',
|
||
'empty.addFiles': '添加文件或图片',
|
||
'empty.slashCommands': '斜杠命令',
|
||
'empty.failedToCreate': '创建会话失败',
|
||
|
||
// ─── Chat Input ──────────────────────────────────────
|
||
'chat.placeholder': '让 Claude 编辑、调试或解释代码...',
|
||
'chat.placeholderMissing': '此会话指向的工作目录缺失。请新建会话或选择其他项目。',
|
||
'chat.addFiles': '添加文件或图片',
|
||
'chat.slashCommands': '斜杠命令',
|
||
'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': '这套共享的斜杠命令面板已经接通,插件数据下一步接进来。',
|
||
'chat.navigate': '导航',
|
||
'chat.select': '选择',
|
||
'chat.dismiss': '关闭',
|
||
'chat.stopTitle': '停止生成 (Cmd+.)',
|
||
'chat.rewindAction': '回滚到这里',
|
||
'chat.rewindModalTitle': '回滚对话',
|
||
'chat.rewindConfirm': '执行回滚',
|
||
'chat.rewindPromptLabel': '目标提示词',
|
||
'chat.rewindAttachmentOnly': '这条消息只包含附件。',
|
||
'chat.rewindLoading': '正在检查这一轮的文件检查点...',
|
||
'chat.rewindConversationCardTitle': '对话回滚',
|
||
'chat.rewindConversationCardBody': '移除这条提示词以及其后的 {count} 条活跃消息,并把输入框恢复到这个位置。',
|
||
'chat.rewindCodeCardTitle': '代码回滚',
|
||
'chat.rewindCodeFiles': '将恢复 {count} 个文件',
|
||
'chat.rewindCodeInsertions': '将移除 {count} 行新增',
|
||
'chat.rewindCodeDeletions': '将恢复 {count} 行删除',
|
||
'chat.rewindCodeUnavailable': '这条提示词没有可用的文件检查点,仍然可以只回滚对话。',
|
||
'chat.rewindFilesLabel': '受影响文件',
|
||
'chat.rewindFilesMore': '另有 {count} 个',
|
||
'chat.rewindSuccessWithCode': '已回滚 {count} 条消息,并恢复相关文件。',
|
||
'chat.rewindSuccessConversationOnly': '已回滚 {count} 条消息。这一轮没有可用的文件检查点。',
|
||
|
||
// ─── 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.notConfigured': '未配置',
|
||
'newTask.noChannelConfigured': '尚未配置任何 IM 渠道,请前往 设置 → IM 接入 进行配置。',
|
||
|
||
// ─── 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.close': '关闭',
|
||
|
||
// ─── 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.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.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': '停止并关闭',
|
||
}
|