Files
claude-code-haha/desktop/src/i18n/locales/zh.ts
T
程序员阿江-Relakkes 50f784114b feat(desktop): start H5 phone tasks from a new-task sheet (#1461)
The phone home is now the session list alone. The docked composer took a
quarter of the screen and could not send until a project was picked, so a
New task button floats over the list instead and opens a full-height sheet.

- The sheet puts the project at the top, above the keyboard, and docks the
  composer to the bottom. Cancel, the system back gesture or pulling the bar
  down closes it; sending swaps it for the new session.
- The project defaults to the list's project filter, otherwise to the
  project of the most recently created task.
- On a tablet the button opens the new-session page beside the list.
2026-10-06 04:09:05 +08:00

4320 lines
282 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationKey } from './en'
export const zh: Record<TranslationKey, string> = {
"teamPlan.state.interrupted": "团队已中断 · 已开始的任务不会自动重跑",
"teamPlan.savePreset": "请先保存预设变更,核对解析后的模型再确认启动。",
"teamPlan.unspecified": "未提供",
"teamPlan.stop": "停止团队与主任务",
"teamPlan.stopping": "正在停止团队与主任务…",
"teamPlan.configureMember": "配置 {name}",
"teamPlan.roster": "团队成员",
"teamPlan.assignment": "负责的工作",
"teamPlan.memberBrief": "职责说明",
"teamPlan.noTasks": "尚未分配任务",
"teamPlan.selectedCount": "已选择 {count} 位",
"teamPlan.allTasks": "任务分配",
"teamPlan.saved": "已保存",
"teamPlan.unsaved": "有未保存的更改",
"teamPlan.reviewHint": "确认分工,再一起出发。",
"teamPlan.title": "团队执行前确认",
"teamPlan.memberCount": "{count} 位成员",
"teamPlan.open": "查看并配置",
"teamPlan.close": "关闭",
"teamPlan.save": "保存草稿",
"teamPlan.return": "退回调整",
"teamPlan.cancel": "取消团队",
"teamPlan.approve": "确认并启动",
"teamPlan.retry": "重新审阅",
"teamPlan.description": "确认成员的预设、任务和模型后再启动。修改只应用于本次团队,不会更改全局设置。 任务复杂度与配置建议由主 Agent 判断。",
"teamPlan.leader": "主 Agent(只读)",
"teamPlan.official": "Claude 官方",
"teamPlan.provider": "服务商",
"teamPlan.conflict": "方案已在其他窗口或由主 Agent 更新。你的编辑已保留,请先查看最新版本。",
"teamPlan.reload": "使用最新方案",
"teamPlan.reapply": "将我的编辑应用到最新方案",
"teamPlan.agentsError": "无法加载 Agent 预设。模型及已有任务编辑仍可保留。",
"teamPlan.selectAll": "选择全部成员",
"teamPlan.batch": "批量设置模型",
"teamPlan.followLeader": "选中成员跟随主 Agent",
"teamPlan.restore": "恢复建议模型",
"teamPlan.costHint": "可为简单任务选择低成本模型,为复杂任务选择更强模型。实际价格取决于服务商;此处不估算费用。",
"teamPlan.difficulty": "任务复杂度",
"teamPlan.high": "复杂",
"teamPlan.medium": "中等",
"teamPlan.low": "简单",
"teamPlan.agent": "Agent 预设",
"teamPlan.model": "服务商与模型",
"teamPlan.prompt": "成员职责",
"teamPlan.tasks": "任务分配",
"teamPlan.dependencies": "前置任务",
"teamPlan.unassigned": "未分配",
"teamPlan.assignRequired": "请先为此任务分配负责人,再确认启动。",
"teamPlan.invalidMemberNames": "无法启动以下成员:{names}。名称只能使用字母、数字、下划线或连字符,且不能使用 team-lead。请向主 Agent 请求修改方案。",
"teamPlan.owner": "负责人",
"teamPlan.feedback": "调整意见(退回时必填)",
"teamPlan.state.draft": "主 Agent 正在调整方案",
"teamPlan.state.review_pending": "等待人工确认 · 尚未启动成员",
"teamPlan.state.launching": "正在启动团队",
"teamPlan.state.running": "团队已启动",
"teamPlan.state.launch_failed": "启动失败 · 查看详情后重新审阅",
"teamPlan.state.cancelled": "团队已取消",
'sideChat.closeTitle': '关闭侧边聊天?',
'sideChat.closeBody': '此临时对话将被删除,正在运行的回答也会停止。',
'sideChat.emptyDescription': '此临时对话将在关闭标签页或退出应用后清空。',
'chat.selectedText': '所选文本',
'sideChat.title': '侧边聊天',
'chat.askSelectionInSideChat': '在侧边聊天中提问',
'chat.selectionActions': '所选文本操作',
"sideQuestion.title": "旁问",
"sideQuestion.clear": "清空旁问记录",
"sideQuestion.close": "收起旁问",
"sideQuestion.hint": "围绕当前对话提问,不打断主任务。回答仅保留在本次应用运行期间。",
"sideQuestion.empty": "对当前对话有什么想问的?",
"sideQuestion.thinking": "正在思考…",
"sideQuestion.cancelled": "已取消",
"sideQuestion.failed": "暂时无法回答这条旁问。",
"sideQuestion.copy": "复制回答",
"sideQuestion.copied": "已复制",
"sideQuestion.input": "你的问题",
"sideQuestion.placeholder": "提问或继续追问…",
"sideQuestion.cancel": "取消旁问",
"sideQuestion.send": "提问",
"sideQuestion.commandDescription": "不打断主任务,单独提问",
"settings.chatAppearance.title": "聊天外观",
"settings.chatAppearance.description": "独立于界面缩放调整聊天文字。修改立即生效,并保存在当前设备。",
"settings.chatAppearance.reset": "恢复聊天外观默认值",
"settings.chatAppearance.font": "聊天字体",
"settings.chatAppearance.fontSystem": "跟随系统",
"settings.chatAppearance.fontSans": "无衬线",
"settings.chatAppearance.fontSerif": "衬线",
"settings.chatAppearance.fontMono": "等宽",
"settings.chatAppearance.fontSize": "聊天字号",
"settings.chatAppearance.width": "对话宽度",
"settings.chatAppearance.widthStandard": "标准",
"settings.chatAppearance.widthWide": "宽",
"settings.chatAppearance.widthFull": "铺满可用区域",
"settings.chatAppearance.hint": "字体使用系统已有字体,代码保持等宽。宽度同时应用于消息和输入框,小窗口会自动适配。",
"settings.chatAppearance.preview": "字体预览",
"settings.chatAppearance.previewMarkdown": "### 更舒适的对话\n\n调整文字,让阅读更舒适。中文・日本語・한국어 · Hello 123。\n\n- 列表跟随所选字体与字号。\n- 行内代码保持等宽:`const answer = 42`。\n\n| 内容 | 示例 |\n| --- | --- |\n| 正文 | 按自己的节奏阅读 |",
"chat.sessionNoProject": "无项目",
"chat.referenceSessions": "会话",
"chat.sessionReferencesLoadFailed": "无法加载会话。",
"chat.openReferencedSession": "打开会话 {id}",
"chat.collaborationMessageFrom": "由 {id} 从另一个会话发送",
"chat.collaborationQueued": "排队中",
"chat.collaborationRunning": "运行中",
"chat.collaborationIdle": "空闲",
"chat.collaborationBlocked": "需要处理",
"chat.collaborationCompleted": "已完成",
"chat.collaborationFailed": "失败",
"chat.collaborationStopped": "已停止",
"chat.history.loading": "正在加载消息…",
"chat.history.loadFailed": "消息加载失败。",
"chat.history.retry": "重试",
"chat.history.loadMore": "加载更早的消息",
"trace.windowNotice": "聊天记录与追踪按有限窗口加载。",
"trace.windowLimited": "部分记录超出查看上限,原始文件保持完整。",
"trace.windowFirst": "首页 / 实时",
"trace.windowPrevious": "上一页",
"trace.windowNext": "下一页",
"trace.windowScanNext": "扫描下一段",
"extensions.myPlugins": "我的插件",
"extensions.mySkills": "我的技能",
"extensions.browse": "返回浏览",
"extensions.managedSkillHint": "配套技能随所属插件管理;本地与项目技能请在对应目录管理。",
"extensions.searchPlugins": "搜索插件",
"extensions.searchSkills": "搜索精选技能",
"extensions.pluginsSubtitle": "连接常用服务,或为助手添加创作与开发工具。",
"extensions.filter": "筛选扩展",
"extensions.categories": "扩展分类",
"extensions.empty": "没有匹配的扩展",
"chat.references": "引用",
"chat.referencePlugins": "插件",
"chat.referenceSkills": "技能",
"chat.referenceFiles": "文件",
"chat.referencesLoadFailed": "无法加载技能和插件",
"chat.referencesEmpty": "没有匹配的引用",
"chat.referenceDescription": "描述",
"chat.referenceSource": "来源",
"chat.referenceDetails": "引用详情",
"sidebar.extensions": "技能·连接器",
"extensions.sections": "市场分类",
"extensions.plugins": "插件",
"extensions.skills": "技能",
"extensions.featuredSkills": "精选技能",
"connectors.airtable.description": "查询数据表、记录与团队协作资料。",
"connectors.airtable.example": "查看 Airtable 中最近更新的项目记录。",
"connectors.airtable.name": "Airtable",
"connectors.airtable.requirements": "通过浏览器授权目标工作区或数据表;企业管理员可能限制客户端访问。",
"connectors.algorithmic-art.description": "用 p5.js 创建可调参数的算法艺术与交互画面。",
"connectors.algorithmic-art.example": "制作一个可调整颜色与密度的流场艺术页面。",
"connectors.algorithmic-art.name": "生成式艺术",
"connectors.algorithmic-art.requirements": "包含示例模板和参考代码。预览需要浏览器及 p5.js 资源;安装不执行脚本,也不调用生成模型。",
"connectors.atlassian.description": "检索 Jira、Confluence 与项目协作资料。",
"connectors.atlassian.example": "汇总 Jira 中分配给我的问题并关联 Confluence 资料。",
"connectors.atlassian.name": "Atlassian",
"connectors.atlassian.requirements": "需要 Atlassian Cloud 账号及产品权限,通过浏览器授权;部分产品和操作需要管理员启用。",
"connectors.bazhuayu.description": "查找采集模板、查看云任务状态与已采集数据。",
"connectors.bazhuayu.example": "列出八爪鱼数据中心支持的平台,不创建或启动采集任务。",
"connectors.bazhuayu.name": "八爪鱼",
"connectors.bazhuayu.requirements": "需要八爪鱼账户中心 API Key;仅支持云端采集能力,运行任务可能消耗余额,部分模板需指定套餐。",
"connectors.canvas-design.description": "创作海报、静态视觉作品与 PDF 画布,附带字体。",
"connectors.canvas-design.example": "设计一张科技活动海报,并导出为 PDF。",
"connectors.canvas-design.name": "海报与视觉画布",
"connectors.canvas-design.requirements": "安装完整设计技能、字体及对应许可。生成图像或 PDF 需要 Python 和相应绘图依赖;不会自动安装这些运行库。",
"connectors.clickup.description": "查找项目、任务和团队工作资料。",
"connectors.clickup.example": "列出 ClickUp 中分配给我的未完成任务。",
"connectors.clickup.name": "ClickUp",
"connectors.clickup.requirements": "需要 ClickUp 账号及工作区权限,通过浏览器授权;服务仍为公开测试版。",
"connectors.cloudflare.description": "查询和管理网站、网络及云开发资源。",
"connectors.cloudflare.example": "查看我的 Cloudflare 资源并汇总当前配置。",
"connectors.cloudflare.name": "Cloudflare",
"connectors.cloudflare.requirements": "需要用户或账户 API Token;按所需资源授予权限,部署和配置变更需明确任务授权。",
"connectors.drawio.description": "生成可编辑的架构图、流程图和关系图。",
"connectors.drawio.example": "把这段系统说明整理成可编辑的 draw.io 架构图。",
"connectors.drawio.name": "draw.io 图表",
"connectors.drawio.requirements": "可直接编写 .drawio XML 文件;Mermaid 转换、自动布局及图片导出需要 draw.io 桌面版 CLI。安装技能不会安装桌面应用。",
"connectors.firecrawl.description": "搜索网页、提取页面并整理研究资料。",
"connectors.firecrawl.example": "搜索关于浏览器自动化的技术资料并保留来源。",
"connectors.firecrawl.name": "Firecrawl",
"connectors.firecrawl.requirements": "需要 Firecrawl API Key;调用按账户额度计费,密钥通过安全请求头发送。",
"connectors.frontend-design.description": "为网页和应用编写具有清晰视觉层次的前端界面。",
"connectors.frontend-design.example": "为我的知识管理应用设计并实现首页。",
"connectors.frontend-design.name": "前端界面设计",
"connectors.frontend-design.requirements": "安装 Anthropic 的前端设计技能。预览与构建需要目标项目的前端依赖和运行环境;本技能不提供托管或图片生成服务。",
"connectors.hyperframes.description": "用 HTML 和动画代码制作视频、字幕与产品演示。",
"connectors.hyperframes.example": "用 HyperFrames 为产品制作一段 20 秒的介绍视频。",
"connectors.hyperframes.name": "HyperFrames",
"connectors.hyperframes.requirements": "安装固定版本的 5 项完整技能与参考资料,不安装渲染器。实际渲染需要 Node.js 22+、HyperFrames CLI 与 FFmpeg;语音和在线素材服务可能需要单独配置及付费。",
"connectors.intercom.description": "检索客户对话、联系人和帮助中心资料。",
"connectors.intercom.example": "查找最近客户反馈中的常见问题并汇总。",
"connectors.intercom.name": "Intercom",
"connectors.intercom.requirements": "目前仅支持美国托管工作区;需要具有联系人、对话和文章权限的访问令牌。",
"connectors.jufa.description": "检索司法案例,辅助类案研究与裁判观点整理。",
"connectors.jufa.example": "检索建设工程合同纠纷案例,整理案号、法院及裁判观点并注明出处。",
"connectors.jufa.name": "聚法案例",
"connectors.jufa.requirements": "需要聚法智能体数据平台 API Key;本连接器接入案例研究服务,法规等其他专题需另行接入,数据受套餐与调用额度限制。",
"connectors.kuaicha.description": "检索企业工商、经营和风险资料,辅助主体核验。",
"connectors.kuaicha.example": "查询我指定企业的工商登记与经营异常信息,并区分已查到和缺失的数据。",
"connectors.kuaicha.name": "同花顺快查",
"connectors.kuaicha.requirements": "需要快查开放平台 API Key;服务仅限大陆 IP 访问,查询受账号额度与权限限制。",
"connectors.listinggood.description": "分析亚马逊商品文案,辅助合规检查和内容优化。",
"connectors.listinggood.example": "检查我提供的亚马逊商品文案,给出合规与可读性改进建议。",
"connectors.listinggood.name": "ListingGood",
"connectors.listinggood.requirements": "需要 ListingGood 国内站 API Key;国内站与海外站密钥不通用,付费工具按账号额度执行。",
"connectors.mcp-builder.description": "构建与评估 MCP 服务,提供 TypeScript 和 Python 参考。",
"connectors.mcp-builder.example": "为我们的内部知识库设计一个 MCP 服务。",
"connectors.mcp-builder.name": "MCP 开发工具包",
"connectors.mcp-builder.requirements": "包含协议设计参考和评估脚本。开发需 Node.js 或 Python 及 MCP SDK;模型评估、第三方 API 使用需用户自行配置凭据,可能产生费用。",
"connectors.miro.description": "查阅协作白板,整理设计与讨论内容。",
"connectors.miro.example": "总结我指定 Miro 白板中的主要想法和待办。",
"connectors.miro.name": "Miro",
"connectors.miro.requirements": "需要 Miro 账号和白板访问权限,组织管理员可能需要启用 MCP。",
"connectors.neon.description": "查看数据库项目、分支与开发数据结构。",
"connectors.neon.example": "查看 Neon 开发项目的数据库结构,不修改数据。",
"connectors.neon.name": "Neon",
"connectors.neon.requirements": "需要 Neon API Key 和项目权限;官方建议优先用于开发和测试数据库。",
"connectors.obsidian.description": "编辑 Markdown 笔记、Canvas 画布与 Bases 数据视图。",
"connectors.obsidian.example": "把这些项目笔记整理为 Obsidian Canvas 关系图。",
"connectors.obsidian.name": "Obsidian 工具包",
"connectors.obsidian.requirements": "本地文件编辑无需云端账号。CLI 操作需要安装并运行 Obsidian;网页内容提取等可选功能需要相应 CLI。本安装仅提供技能文件。",
"connectors.postman.description": "查询 API 工作区、集合与开发资料。",
"connectors.postman.example": "查找 Postman 工作区中与用户登录相关的 API。",
"connectors.postman.name": "Postman",
"connectors.postman.requirements": "使用美国区域 Postman 账号浏览器授权;此条目采用精简工具集,欧盟区域需单独 API Key 配置。",
"connectors.qcc.description": "检索企业主体信息,核验工商登记与关联资料。",
"connectors.qcc.example": "查询我指定企业的工商登记信息,并列出来源。",
"connectors.qcc.name": "企查查",
"connectors.qcc.requirements": "需要企查查 Agent 平台 API Key;本连接器仅接入企业基础信息服务,其他专题需另行接入,查询受账号权限与积分限制。",
"connectors.qingflow.description": "查询轻流工作区应用与业务数据,辅助流程协作。",
"connectors.qingflow.example": "查看轻流工作区中我有权限的应用,并整理待处理事项。",
"connectors.qingflow.name": "轻流",
"connectors.qingflow.requirements": "需要轻流账号,通过浏览器授权;可访问范围继承工作区和应用权限,具体能力受套餐限制。",
"connectors.qveris.description": "发现和查阅可调用的数据工具,辅助信息研究。",
"connectors.qveris.example": "查找 QVeris 中适合企业资料检索的工具,并说明所需参数和费用条件,暂不执行。",
"connectors.qveris.name": "QVeris",
"connectors.qveris.requirements": "需要 QVeris API Key;工具范围与调用费用由服务商决定,更换密钥后需重新建立连接。",
"connectors.remotion.name": "Remotion",
"connectors.remotion.description": "用 React 制作程序化视频,涵盖动画、音频、字幕和渲染。",
"connectors.remotion.example": "用 Remotion 制作一段带字幕和配乐的 20 秒产品介绍视频。",
"connectors.remotion.requirements": "安装 Remotion 官方的 12 项技能及参考资料,不安装运行库或渲染器。创建和渲染视频需要项目依赖、Node.js 与浏览器;Remotion 运行库适用单独的许可条款。",
"connectors.render.description": "查看部署服务、数据库、运行日志与指标。",
"connectors.render.example": "查看 Render 服务最近的运行日志并总结异常。",
"connectors.render.name": "Render",
"connectors.render.requirements": "需要 Render API Key;先指定工作区。密钥可访问本人所属工作区,部署等写操作需明确任务授权。",
"connectors.sorftime.description": "查询跨境电商市场、商品与关键词数据。",
"connectors.sorftime.example": "查询我指定商品的市场趋势并注明站点、时间范围与数据来源。",
"connectors.sorftime.name": "Sorftime",
"connectors.sorftime.requirements": "需要开通 Sorftime MCP 服务并获取 Account-SK;平台、站点及查询次数受所购服务与额度限制。",
"connectors.todoist.description": "查看待办、项目和个人任务安排。",
"connectors.todoist.example": "列出 Todoist 中今天到期和已经逾期的任务。",
"connectors.todoist.name": "Todoist",
"connectors.todoist.requirements": "需要 Todoist 账号,通过浏览器授权任务和项目访问权限。",
"connectors.variflight.description": "查询航班动态、机场信息与航旅行程。",
"connectors.variflight.example": "查询我指定航班的计划时间与当前动态,并注明查询时间。",
"connectors.variflight.name": "飞常准",
"connectors.variflight.requirements": "需要在飞常准 MCP 开放平台登录并生成 MCP Key;个人行程须有相应账号权限,数据与调用额度按服务商规定提供。",
"connectors.webapp-testing.description": "使用 Playwright 检查本地网页、交互行为与截图。",
"connectors.webapp-testing.example": "检查本地应用的登录表单校验和页面布局。",
"connectors.webapp-testing.name": "网页测试工具包",
"connectors.webapp-testing.requirements": "包含测试技能、Python 辅助脚本及示例。实际运行需要 Python、Playwright 和浏览器,以及待测应用;安装不会自动下载浏览器。",
"connectors.webflow.description": "读取网站结构、CMS 内容与设计资料。",
"connectors.webflow.example": "查看我的 Webflow 网站中的 CMS 集合和字段。",
"connectors.webflow.name": "Webflow",
"connectors.webflow.requirements": "需要至少一个可访问站点的 Webflow 账号;浏览器授权自动安装 MCP Bridge App,设计器操作需桥接应用连接。",
"connectors.xmind.description": "读取与整理在线思维导图,辅助规划和知识归纳。",
"connectors.xmind.example": "列出 Xmind 最近打开的在线思维导图,读取我选择的导图并总结。",
"connectors.xmind.name": "Xmind",
"connectors.xmind.requirements": "需要 Xmind 国内版账号,通过浏览器授权;仅访问已授权团队的在线导图,编辑能力受账号套餐限制。",
"connectors.toolsRemoveInfo": "移除这个工具插件及其技能文件。已有任务和产出文件会保留。",
"connectors.collection": "目录类型",
"connectors.services": "服务连接器",
"connectors.tools": "工具插件",
"connectors.region": "服务地区",
"connectors.region.all": "全部地区",
"connectors.region.china": "国内服务",
"connectors.region.global": "全球服务",
"connectors.toolKind": "工具插件",
"connectors.toolsSubtitle": "为任务添加专用技能与工作方法。",
"connectors.skillsLoaded": "技能已加载",
"connectors.skillsPending": "技能待加载",
"connectors.verifySkills": "验证技能",
"connectors.skillsRuntimeInfo": "已添加的是技能包。任务所需的 Node.js、命令行工具或其他运行环境仍需单独满足;技能加载成功不代表这些环境已安装。",
"connectors.saveAndVerify": "保存并验证",
"connectors.needsService": "待连接服务",
"connectors.tencent-docs.name": "腾讯文档",
"connectors.tencent-docs.description": "读取和整理在线文档、表格与协作资料。",
"connectors.tencent-docs.example": "查找腾讯文档中与项目计划相关的资料。",
"connectors.tencent-docs.requirements": "需要腾讯文档 MCP 访问令牌;仅可访问账号已有权限的文档。",
"connectors.jinshuju.name": "金数据",
"connectors.jinshuju.description": "查询表单与收集的数据,辅助统计和整理。",
"connectors.jinshuju.example": "查看金数据中最近收集的问卷结果并整理摘要。",
"connectors.jinshuju.requirements": "需要金数据账号,通过浏览器授权表单与数据访问权限。",
"connectors.pkulaw.name": "北大法宝",
"connectors.pkulaw.description": "检索法律法规,追溯法律条文和原始出处。",
"connectors.pkulaw.example": "检索与劳动合同试用期相关的法律条文并注明出处。",
"connectors.pkulaw.requirements": "需要北大法宝 MCP access token 及相应资料权限;检索结果需核对现行有效性。",
"connectors.datayes.name": "通联数据",
"connectors.datayes.description": "查询股票行情与金融市场数据,辅助研究。",
"connectors.datayes.example": "查询我指定股票的历史行情并整理数据来源。",
"connectors.datayes.requirements": "需要通联数据 MCP Token;数据范围受账号权限和额度限制,企业账户需按服务商要求核验。",
"connectors.tencent-search.name": "腾讯云智能搜索",
"connectors.tencent-search.description": "检索网络资料,为研究提供可追溯信息。",
"connectors.tencent-search.example": "搜索国内低空经济产业发展资料,并整理官方来源。",
"connectors.tencent-search.requirements": "需要开通腾讯云 WSA 服务并获取 API Key,调用按账号额度与计费规则执行。",
"connectors.amap.name": "高德地图",
"connectors.amap.description": "搜索地点、规划路线,查询天气与出行信息。",
"connectors.amap.example": "帮我规划从杭州东站到西湖的公共交通路线。",
"connectors.amap.requirements": "需要高德开放平台 Web 服务 API Key;地图服务按账号权限和配额提供。",
"connectors.baidu-maps.name": "百度地图",
"connectors.baidu-maps.description": "地址解析、周边检索与路线规划。",
"connectors.baidu-maps.example": "查询上海虹桥站附近的酒店和交通方式。",
"connectors.baidu-maps.requirements": "需要百度地图开放平台服务器端 AK 及对应服务权限。",
"connectors.tencent-maps.name": "腾讯地图",
"connectors.tencent-maps.description": "查询位置、距离和路线,辅助出行安排。",
"connectors.tencent-maps.example": "比较广州南站到广州塔的公共交通与驾车路线。",
"connectors.tencent-maps.requirements": "需要腾讯位置服务 Key,并开通 WebServiceAPI 权限与配额。",
"connectors.zhipu-search.name": "智谱联网搜索",
"connectors.zhipu-search.description": "检索中文网页、新闻与实时信息,保留来源。",
"connectors.zhipu-search.example": "搜索近期国内新能源汽车政策,并列出原始来源。",
"connectors.zhipu-search.requirements": "需要 GLM Coding Plan 套餐 API Key;团队套餐密钥与平台通用密钥不通用。",
"connectors.notion.name": "Notion",
"connectors.notion.description": "搜索工作区资料,整理页面与项目知识。",
"connectors.notion.example": "查找 Notion 中最近的项目周报并总结进展。",
"connectors.notion.requirements": "需要 Notion 账号,浏览器授权后仅能访问该账号允许的工作区内容。",
"connectors.linear.name": "Linear",
"connectors.linear.description": "查询问题、项目与迭代,跟进团队任务。",
"connectors.linear.example": "列出 Linear 中分配给我的未完成问题。",
"connectors.linear.requirements": "需要 Linear 工作区账号及相应项目访问权限,通过浏览器授权。",
"connectors.github.name": "GitHub",
"connectors.github.description": "检索仓库代码、Issue 和 Pull Request。",
"connectors.github.example": "查看我的 GitHub 仓库中等待评审的 Pull Request。",
"connectors.github.requirements": "需要 GitHub Personal Access Token;按所需仓库与操作授予权限,组织策略仍然适用。",
"connectors.context7.name": "Context7",
"connectors.context7.description": "查阅软件库的最新文档与用法示例。",
"connectors.context7.example": "查找 React useEffect 的官方文档和清理函数示例。",
"connectors.context7.requirements": "使用官方匿名访问额度;不保证无限调用,额度不足时服务会返回限制。",
"connectors.sentry.name": "Sentry",
"connectors.sentry.description": "查看异常、追踪问题与应用运行信息。",
"connectors.sentry.example": "总结 Sentry 中最近一天新出现的错误。",
"connectors.sentry.requirements": "需要 Sentry 账号及组织、项目权限,通过浏览器授权。",
"connectors.tavily.name": "Tavily",
"connectors.tavily.description": "搜索网页、提取内容,支持资料研究。",
"connectors.tavily.example": "研究开源向量数据库的主要差异,并给出来源。",
"connectors.tavily.requirements": "需要 Tavily API Key,调用按该账号订阅与额度计费。",
"connectors.exa.name": "Exa",
"connectors.exa.description": "搜索网页与代码资料,发现相关信息。",
"connectors.exa.example": "寻找关于分布式系统可观测性的技术文章。",
"connectors.exa.requirements": "使用官方基础匿名访问额度;可用工具和次数由服务商决定。",
"connectors.supabase.name": "Supabase",
"connectors.supabase.description": "查看项目、数据库结构和开发资料。",
"connectors.supabase.example": "查看 Supabase 项目的数据表结构,不修改数据。",
"connectors.supabase.requirements": "需要 Supabase 账号及目标组织、项目权限;数据库写操作仍需明确任务授权。",
"connectors.huggingface.name": "Hugging Face",
"connectors.huggingface.description": "发现模型、数据集与机器学习研究资源。",
"connectors.huggingface.example": "寻找适合中文文本分类的公开模型与数据集。",
"connectors.huggingface.requirements": "需要 Hugging Face 访问令牌;检索建议仅授予 read 权限,计算任务可能另行收费。",
"connectors.canva.name": "Canva",
"connectors.canva.description": "搜索和整理设计素材,协作处理设计内容。",
"connectors.canva.example": "查找 Canva 中最近的品牌设计素材。",
"connectors.canva.requirements": "每位用户使用自己的 Canva 账号授权;部分能力受订阅和团队权限限制。",
"connectors.figma.name": "Figma",
"connectors.figma.description": "读取设计上下文,理解组件与界面结构。",
"connectors.figma.example": "分析我提供的 Figma 设计链接中的组件结构。",
"connectors.figma.requirements": "需要 Figma 账号授权;设计访问权限、席位和套餐决定可用工具及次数。",
"connectors.stripe.name": "Stripe",
"connectors.stripe.description": "查询客户、账单和支付业务资料。",
"connectors.stripe.example": "查看 Stripe 中最近的账单概况,不创建支付或退款。",
"connectors.stripe.requirements": "需要 Stripe 账号授权。该官方服务为预览版;付款、退款等写操作需要明确任务授权。",
"connectors.category.legal": "法律检索",
"connectors.connectService": "连接服务",
"connectors.officialMcp": "官方 MCP 服务",
"connectors.categories": "服务分类",
"connectors.allCategories": "精选",
"connectors.category.office": "办公协作",
"connectors.category.development": "开发工具",
"connectors.category.search": "搜索",
"connectors.category.maps": "地图出行",
"connectors.category.data": "数据分析",
"connectors.category.design": "设计创作",
"connectors.category.productivity": "效率工具",
"connectors.category.finance": "金融",
"connectors.kind": "连接器",
"connectors.loadFailed": "暂时无法完成操作",
"connectors.emptyAdded": "添加常用服务后,就能在这里管理账号与连接状态。",
"connectors.emptySearch": "换个关键词,或查看其他分类。",
"connectors.resetFilters": "查看全部",
"connectors.configuration": "连接配置",
"connectors.configurationHint": "留空沿用已保存配置。填写新配置后,点击“保存并验证”验证连接。",
"connectors.fieldRequired": "请填写此项",
"connectors.capabilities": "支持的操作",
"connectors.remoteExample": "请使用 {name} 查询我可以访问的信息。",
"connectors.remoteRequirements": "请准备服务账号及所需访问权限;具体操作以服务商授予的权限为准。",
"connectors.phase.installing-plugin": "安装配套技能",
"connectors.phase.checking": "检查账号连接",
"connectors.phase.enabling-plugin": "启用配套技能",
"connectors.phase.refreshing-sessions": "刷新任务能力",
"connectors.phase.verifying-runtime": "检查本地运行环境",
"connectors.phase.persistence": "保存连接状态",
"connectors.phase.cancelling": "取消操作",
"connectors.feishu.requirements": "需要飞书用户账号及日历访问权限;实际能力取决于账号与应用获授的权限。",
"connectors.dingtalk.requirements": "需要钉钉 OAuth 登录及企业管理员授予日历权限;登录成功不代表具备所有服务权限。",
"connectors.wecom.requirements": "需要配置企业微信机器人或用户身份及日历权限;可用操作取决于所选身份获授的权限。",
"connectors.update": "更新",
"connectors.updateAvailable": "可更新至",
"connectors.currentAccount": "当前服务账号",
"connectors.phase.downloading": "下载运行文件",
"connectors.phase.extracting": "解压运行文件",
"connectors.phase.verifying": "校验运行文件",
"connectors.phase.awaiting-authorization": "等待账号授权",
"connectors.phase.configuring-account": "配置账号",
"connectors.phase.authorizing": "正在授权",
"connectors.phase.failed": "失败阶段",
"connectors.phase.skillsInfo": "安装后提供对应服务的操作技能。",
'connectors.status.configured': '本机已配置',
'connectors.localVerification': '首次任务调用时验证服务权限。',
"sidebar.connectors": "连接器",
"connectors.subtitle": "连接常用办公服务,让技能获得真实的服务能力。",
"connectors.filter": "筛选连接器",
"connectors.all": "全部",
"connectors.added": "已添加",
"connectors.search": "搜索连接器",
"connectors.clear": "清除搜索",
"connectors.retry": "重试",
"connectors.loading": "加载中…",
"connectors.empty": "没有匹配的连接器",
"connectors.details": "查看详情",
"connectors.start": "开始使用",
"connectors.account": "账号",
"connectors.noAccount": "尚未验证账号",
"connectors.platforms": "支持平台",
"connectors.source": "来源",
"connectors.version": "版本",
"connectors.skills": "配套技能插件",
"connectors.homepage": "项目主页",
"connectors.example": "示例",
"connectors.waiting": "正在处理,请完成授权后等待状态更新。",
"connectors.authorize": "打开授权页面",
"connectors.confirm": "确认操作",
"connectors.continue": "继续",
"connectors.shared": "此连接器会复用本机该 CLI 的账号凭据。连接或切换账号会影响其他使用同一 CLI 的应用,请确认后继续。",
"connectors.isolated": "账号凭据独立保存在本应用中。",
"connectors.removeInfo": "移除本应用管理的连接器,保留共享账号凭据。",
"connectors.invalidUrl": "授权链接格式不正确",
"connectors.openFailed": "无法打开链接,请重试",
"connectors.startFailed": "无法创建任务,请重试",
"connectors.unsupported": "当前平台不支持",
"connectors.action.prepare": "添加",
"connectors.action.authenticate": "连接账号",
"connectors.action.check": "检查连接",
"connectors.action.deactivate": "停用",
"connectors.action.remove": "移除",
"connectors.status.not-installed": "未添加",
"connectors.status.preparing": "准备中",
"connectors.status.needs-auth": "待连接账号",
"connectors.status.authorizing": "授权中",
"connectors.status.ready": "可用",
"connectors.status.disabled": "已停用",
"connectors.status.error": "需要处理",
"connectors.feishu.name": "飞书",
"connectors.dingtalk.name": "钉钉",
"connectors.wecom.name": "企业微信",
"connectors.feishu.description": "管理飞书文档、日历与办公协作。",
"connectors.dingtalk.description": "连接钉钉的日程与团队办公服务。",
"connectors.wecom.description": "使用企业微信开展团队协作。",
"connectors.feishu.example": "请列出我在飞书中今天的日程。",
"connectors.dingtalk.example": "请查询我在钉钉中今天的日程。",
"connectors.wecom.example": "请查看我的企业微信账号可用的功能。",
"h5Settings.credentialRequired": "更改请求地址时,请重新填写主模型或图片模型的 API Key,不能把电脑已保存的密钥自动发送到新地址。",
"h5Settings.scope": "模型和 Agent 设置会应用到连接的电脑。桌面管理及远程访问控制仍需在桌面操作。",
"h5Settings.providerPrivacy": "不会显示已保存的 API Key。编辑时留空可保留原密钥,或输入新密钥替换。官方账户登录和连接测试请在桌面完成。",
"h5Settings.browserOnly": "外观和界面语言仅应用于当前浏览器。",
"h5Settings.agentPreferences": "Agent 偏好",
"h5Settings.agentPreferencesHint": "这些默认设置与桌面共享,现有会话可能需要重启后才会应用。",
"h5Settings.effort": "推理强度",
"h5Settings.sendBehavior": "键盘发送方式",
"h5Settings.enter": "Enter 发送 · Shift+Enter 换行",
"h5Settings.modifierEnter": "Ctrl/Cmd+Enter 发送 · Enter 换行",
"publicAccess.title": "公网访问 · ngrok",
"publicAccess.intro": "连接一次你自己的 ngrok 账户,即可扫码,在手机上远程使用这台电脑。",
"publicAccess.account": "获取 ngrok Authtoken",
"publicAccess.token": "ngrok Authtoken",
"publicAccess.tokenSaved": "凭据已保存,输入可替换",
"publicAccess.unconfigured": "未配置",
"publicAccess.disabled": "已关闭",
"publicAccess.connecting": "连接中…",
"publicAccess.online": "在线",
"publicAccess.reconnecting": "重连中…",
"publicAccess.failed": "连接失败",
"publicAccess.authError": "认证失败,请检查 ngrok Authtoken。",
"publicAccess.quotaError": "ngrok 账户已达到限制,请查看控制台。",
"publicAccess.networkError": "网络不可用,请检查电脑的网络连接。",
"publicAccess.configurationError": "无法配置隧道,请检查 ngrok 账户。",
"publicAccess.enable": "开启公网访问",
"publicAccess.disable": "关闭公网访问",
"publicAccess.deleteCredential": "删除凭据",
"publicAccess.autoStart": "随桌面启动恢复公网访问",
"publicAccess.freeNotice": "免费套餐有流量和请求限制。手机可能显示 ngrok 提示页,点击继续即可访问。",
"publicAccess.genericError": "操作失败,请重试。",
"publicAccess.copy": "复制地址",
"publicAccess.pairPhone": "连接手机",
"publicAccess.qrAlt": "扫码配对手机",
"publicAccess.qrHint": "二维码 5 分钟内有效,仅可使用一次。请在桌面确认手机配对。",
"publicAccess.pending": "配对请求",
"publicAccess.approve": "允许配对",
"publicAccess.reject": "拒绝",
"publicAccess.devices": "已配对设备",
"publicAccess.revoke": "撤销",
"publicAccess.privacyTitle": "安全与隐私说明",
"publicAccess.consent": "同意并开启公网访问",
"publicAccess.phoneIntro": "为此浏览器命名,然后在桌面确认配对。",
"publicAccess.phonePending": "等待桌面确认配对…",
"publicAccess.phoneError": "连接或配对失败。请重试,或在桌面生成新的二维码。",
"publicAccess.phoneUnpaired": "请在桌面生成新的配对二维码,并使用手机扫码。",
"publicAccess.deviceName": "设备名称",
"publicAccess.requestPair": "请求配对",
"publicAccess.privacy": "开启后,已配对的手机可通过互联网查看会话、发送指令和响应审批,也可以新增、修改、删除和切换模型服务商配置及 API Key,并修改部分通用设置,相关操作会在这台电脑上执行。\n连接由你的 ngrok 账户提供。标准 HTTPS 隧道会在 ngrok 服务端解密,因此 ngrok 在技术上可以接触经隧道传输的会话、指令、文件内容、模型配置和新提交的 API Key;这不是中转不可读的端到端加密。\nAuthtoken 保存在本机应用数据目录,拥有本机账户或管理员权限的人可能读取它。请妥善保管账户和配对信息。\n电脑需要保持运行、联网且未休眠。免费套餐存在流量、请求额度和浏览器提示页,可能影响访问。你可以随时关闭公网访问或撤销手机。",
'settings.providers.compatibilityJsonHint': 'requestCompatibility 仅保存到当前供应商,不写入全局设置。',
'settings.providers.compatibilityBudget': '回复输出预算',
'settings.providers.compatibilityBudgetHint': '普通回复请求的最大输出 token 数。留空自动选择;后台短请求仍使用较小预算。',
'settings.providers.compatibilityAdvanced': '高级兼容设置',
'settings.providers.compatibilityReset': '重置兼容设置',
'settings.providers.compatibilityLimit': '已知端点输出上限',
'settings.providers.compatibilityLimitHint': '仅在供应商明确提供硬上限时填写,请求预算不会超过此值。',
'settings.providers.compatibilityTokenField': '输出 token 参数',
'settings.providers.compatibilityAuto': '自动',
'settings.providers.compatibilityUnknown': '未知',
'settings.providers.compatibilitySupported': '支持',
'settings.providers.compatibilityUnsupported': '不支持',
'settings.providers.compatibilityOmit': '不发送上限',
'settings.providers.compatibilitySampling': '采样参数',
'settings.providers.compatibilityReasoning': '推理参数',
'settings.providers.compatibilityParallelTools': '并行工具调用',
'settings.providers.compatibilityStructuredOutput': '结构化输出',
'settings.providers.compatibilityNumberError': '请输入正整数,或留空自动选择。',
'settings.providers.compatibilityJsonError': '请求兼容设置必须是包含有效选项的对象。',
'sidebar.projectHistoryFailed': '更早的会话加载失败。',
// ─── Common ──────────────────────────────────────
'common.cancel': '取消',
'common.close': '关闭',
'common.save': '保存',
'common.delete': '删除',
'common.add': '添加',
'common.run': '运行',
'common.send': '发送',
'common.stop': '停止',
'common.tokens': '{count} tokens',
'common.rename': '重命名',
'common.retry': '重试',
'common.loading': '加载中...',
'common.select': '选择',
'common.enable': '启用',
'common.disable': '禁用',
'common.active': '已激活',
'common.error': '错误',
'common.clearSearch': '清除搜索',
'common.copyFailed': '复制失败。',
'common.copied': '已复制',
'h5Connect.failed': '无法连接到 H5 服务器。',
'h5Connect.submit': '连接',
'h5Connect.token': 'H5 令牌',
'h5Connect.serverUrl': '服务器地址',
'h5Connect.subtitle': '输入桌面端提供的服务器地址与 H5 访问令牌。',
'h5Connect.title': '连接 H5 访问',
'attachments.selectionNoteTitle': '修改内容',
'attachments.selectionBatch': '{count} 个页面修改',
'attachments.selectionItem': '所选元素 {number}:{name}',
'chat.capabilities.managePlugins': '管理插件',
'chat.capabilities.moreTools': '更多工具',
'chat.referenceSearchHint': "输入以查找会话、技能、插件和项目文件",
'chat.slashFrequent': '常用命令',
'chat.slashSearchHint': '输入名称搜索命令、技能和插件',
'chat.slashSearchResults': '搜索结果',
'chat.pendingMessageQueuedLabel': '已排队',
'repoLaunch.worktreeIsolatedDesc': '为本会话创建隔离 worktree,安全实验,合并前不影响 {branch}。',
'repoLaunch.worktreeCurrentDesc': '直接在项目目录中工作,改动立即出现在 {branch} 上。',
'permMode.badge.risky': '高风险',
'permMode.badge.optIn': '需开启一次',
'chat.generatingDiagram': '正在生成图表…',
'chat.copyReply': '复制回复',
'chat.copyPrompt': '复制提示词',
'chat.teammateMessage': '队友消息',
'chat.copyPath': '复制路径',
'chat.toolResultImage.open': '打开图片 {index}/{count}',
'chat.toolResultImage.alt': '图片 {index}/{count}',
'chat.toolResultImage.omitted': '另有 {count} 张图片未显示',
'common.dismissNotification': '关闭通知',
// ─── Sidebar ──────────────────────────────────────
'sidebar.newSession': '新建会话',
'sidebar.scheduled': '定时任务',
'sidebar.skills': '技能',
'sidebar.terminal': '终端',
'sidebar.settings': '设置',
'sidebar.searchPlaceholder': '搜索会话...',
'sidebar.noSessions': '暂无会话',
'sidebar.noMatching': '没有匹配的会话',
'sidebar.sessionListFailed': '会话列表加载失败',
'sidebar.refreshSessions': '刷新会话列表',
'search.global.trigger': '搜索聊天',
'search.global.placeholder': '搜索全部聊天内容…',
'search.global.recentTitle': '近期会话',
'search.global.noResults': '没有找到匹配内容',
'search.global.matchCount': '{count} 条匹配',
'search.global.truncated': '仅显示前 {count} 个会话,请细化关键词',
'search.global.roleUser': '你',
'search.global.roleAssistant': '助手',
'search.global.loading': '搜索中…',
'search.global.error': '搜索失败',
'search.global.close': '关闭',
'search.findInPage.title': '页面内查找',
'search.findInPage.placeholder': '查找',
'search.findInPage.previousMatch': '上一个匹配',
'search.findInPage.nextMatch': '下一个匹配',
'search.findInPage.close': '关闭查找栏',
'sidebar.projects': '项目',
'sidebar.projectMenu': '项目菜单',
'sidebar.newProject': '新建项目',
'sidebar.archiveAllChats': '归档所有聊天',
'sidebar.organizeSidebar': '整理侧边栏',
'sidebar.sortCondition': '排序条件',
'sidebar.organizeByProject': '按项目',
'sidebar.organizeByRecentProject': '近期项目',
'sidebar.organizeByTime': '按时间顺序',
'sidebar.sortByCreatedAt': '创建时间',
'sidebar.sortByUpdatedAt': '更新时间',
'sidebar.newBlankProject': '新建空白项目',
'sidebar.newBlankSession': '新建空白会话',
'sidebar.projectEditor.createTitle': '创建项目',
'sidebar.projectEditor.editTitle': '编辑项目',
'sidebar.projectEditor.name': '项目名称',
'sidebar.projectEditor.nameHint': '最多 {count} 个字符',
'sidebar.projectEditor.nameRequired': '请输入项目名称。',
'sidebar.projectEditor.nameTooLong': '项目名称最多 80 个字符。',
'sidebar.projectEditor.sourceFolder': '源文件夹',
'sidebar.projectEditor.sourceFolderRequired': '请选择源文件夹。',
'sidebar.projectEditor.realPath': '真实路径',
'sidebar.projectEditor.realPathHint': '项目真实路径固定,无法在这里修改。',
'sidebar.projectEditor.restoreFolderName': '恢复文件夹名称',
'sidebar.projectEditor.removeFromSidebar': '从侧边栏移除',
'sidebar.projectEditor.removeFromSidebarHint': '这只会从侧边栏移除项目,已有会话和文件不会改变。',
'sidebar.projectEditor.create': '创建项目',
'sidebar.projectEditor.actionFailed': '无法保存项目更改。',
'sidebar.useExistingFolder': '使用现有文件夹',
'sidebar.chooseProjectFolderUnavailable': '选择文件夹仅在桌面端可用。',
'sidebar.projectActions': '{project} 项目操作',
'sidebar.pinProject': '置顶项目',
'sidebar.unpinProject': '取消置顶项目',
'sidebar.openInFileManager.darwin': '在“访达”中打开',
'sidebar.openInFileManager.win32': '在文件资源管理器中打开',
'sidebar.openInFileManager.linux': '在文件管理器中打开',
'sidebar.openInFileManager.default': '在文件管理器中打开',
'sidebar.openInFileManagerFailed': '无法在文件管理器中打开项目。',
'sidebar.openInFileManagerUnavailable': '没有可用的文件管理器。',
'sidebar.hideProjectFromSidebar': '从侧边栏隐藏',
'sidebar.restoreProjectToSidebar': '恢复到侧边栏',
'sidebar.restoreHiddenProjects': '恢复隐藏项目({count})',
'sidebar.projectHidden': '已从侧边栏隐藏 {project},已有会话不会被删除。',
'sidebar.newSessionInProject': '在 {project} 中新建会话',
'sidebar.showMoreSessions': '展开显示',
'sidebar.showFewerSessions': '折叠显示',
'sidebar.expandProject': '展开 {project}',
'sidebar.collapseProject': '折叠 {project}',
'sidebar.worktree': 'worktree',
'sidebar.sessionRunning': '会话运行中',
'sidebar.sessionNeedsAttention': '等待你确认',
'sidebar.sessionStatus.attention': '等你确认',
'sidebar.taskView': '任务视图',
'sidebar.tasks': '任务',
'sidebar.taskGroup.running': '进行中',
'sidebar.taskGroup.today': '今天',
'sidebar.taskGroup.yesterday': '昨天',
'sidebar.taskGroup.last7Days': '过去 7 天',
'sidebar.taskGroup.last30Days': '过去 30 天',
'sidebar.taskGroup.earlier': '更早',
'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': '展开侧边栏',
'sidebar.regionLabel': '侧边栏',
'sidebar.resize': '拖拽调整侧边栏宽度',
// ─── Title Bar ──────────────────────────────────────
'titlebar.code': '代码',
'titlebar.terminal': '终端',
'titlebar.history': '历史',
// ─── Open Project ──────────────────────────────────────
'openProject.openProject': '打开项目',
'openProject.openIn': '用 {target} 打开',
'openProject.openFailed': '无法打开项目',
// ─── Open With ─────────────────────────────────────
'openWith.title': '打开方式',
'openWith.inAppBrowser': '应用内浏览器',
'openWith.systemBrowser': '系统浏览器',
'openWith.systemDefault': '系统默认应用',
'openWith.workspacePreview': '工作台预览',
'openWith.openInTarget': '用 {target} 打开',
'openWith.openInDefaultTarget': '用 {target} 打开(默认)',
'openWith.openFailed': '无法打开 {name},文件可能已被移动或删除。',
'openWith.revealIn.darwin': '在“访达”中显示',
'openWith.revealIn.win32': '在文件资源管理器中显示',
'openWith.revealIn.linux': '在文件管理器中显示',
'openWith.revealIn.default': '在文件管理器中显示',
'openWith.copyPath': '复制路径',
'openWith.copyFileContent': '复制文件内容',
'openWith.fileType.document': '文档',
'openWith.fileType.web': '网页',
'openWith.fileType.image': '图片',
'openWith.fileType.code': '代码',
'openWith.fileType.spreadsheet': '电子表格',
'openWith.fileType.presentation': '演示文稿',
'openWith.fileType.archive': '压缩包',
'openWith.fileType.audio': '音频',
'openWith.fileType.video': '视频',
'openWith.fileType.file': '文件',
// ─── Assistant Output Targets ──────────────────────
'assistantOutputs.kind.markdown': 'Markdown',
'assistantOutputs.kind.html': 'HTML',
'assistantOutputs.kind.image': '图片',
'assistantOutputs.kind.localhost': '本地服务',
'assistantOutputs.moreOutputs': '+{count} 个输出',
'assistantOutputs.open': '打开',
'assistantOutputs.openAria': '打开 {title}',
// ─── Workspace Panel ───────────────────────────────
'workspace.changedFiles': '已更改文件',
'workspace.allFiles': '所有文件',
'workspace.viewTabs': '工作区视图',
'workspace.filterPlaceholder': '筛选文件...',
'workspace.clearFilter': '清除文件筛选',
'workspace.searching': '正在搜索工作区...',
'workspace.searchResults': '文件搜索结果',
'workspace.searchResultsTruncated': '显示前 {count} 个结果,请缩小搜索范围。',
'workspace.reviewWorkspace': '审阅工作区',
'workspace.itemsCount': '{count} 个项目',
'workspace.diffGridLabel': '{path} 的差异',
'workspace.filteredItemsCount': '{visible} / {total} 个项目',
'workspace.refresh': '刷新工作区',
'workspace.resizePanel': '调整工作区宽度',
'workbench.close': '关闭',
'workspace.panelLabel': '工作区',
'workspace.tabStrip': '工作区标签',
'workspace.tabClose': '关闭 {title}',
'workspace.tabCloseCurrent': '关闭',
'workspace.tabCloseOthers': '关闭其他',
'workspace.tabCloseRight': '关闭右侧',
'workspace.tabCloseAll': '关闭全部',
'workspace.tabReopenClosed': '重新打开已关闭标签',
'workspace.tabMoveToBottom': '移到底部面板',
'workspace.tabMoveToSide': '移到工作区面板',
'workspace.pickerCancel': '取消',
'workspace.tabAdd': '在工作区中打开',
'workspace.tabMenu': '标签页操作',
'workspace.newTabTitle': '新标签页',
'workspace.reviewTabTitle': '审查',
'workspace.terminalTabTitle': '终端 {n}',
'workspace.bottomPanelLabel': '终端面板',
'workspace.resizeBottomPanel': '调整终端面板高度',
'workspace.controls.toggleBottom': '切换底部面板显示',
'workspace.controls.toggleSide': '显示/隐藏侧边面板',
'workspace.browser.suggestions': '地址建议',
'workspace.browser.searchWeb': '搜索网页',
'workspace.browser.visitAddress': '打开网址',
'workspace.controls.expand': '工作区占满',
'workspace.controls.restore': '恢复分栏',
'workspace.controls.bottomPanel': '显示/隐藏底部终端',
'workspace.controls.sidePanel': '显示/隐藏工作区',
'workspace.launcher.label': '在工作区中打开',
'workspace.launcher.review': '审查',
'workspace.launcher.terminal': '终端',
'workspace.launcher.browser': '浏览器',
'workspace.launcher.files': '文件',
'workspace.launcher.reviewNeedsGit': '不是 Git 仓库',
'workspace.files.filter': '筛选文件…',
'workspace.files.tree': '文件树',
'workspace.files.empty': '没有文件',
'workspace.files.projectRoot': '项目根目录',
'workspace.files.directoryMissing': '目录不存在:{path}',
'workspace.files.directoryError': '无法读取目录:{path}',
'workspace.files.hidePreview': '隐藏预览',
'workspace.files.showPreview': '显示预览',
'workspace.files.toggleTree': '显示/隐藏文件树',
'workspace.files.breadcrumb': '文件路径',
'workspace.files.noSelection': '未选择文件',
'workspace.files.openContainingFolder': '打开所在文件夹',
'workspace.files.openTitle': '打开文件',
'workspace.files.pickAFile': '从右侧文件树中选择文件',
'workspace.files.openWith': '打开',
'workspace.files.watchFailed': '文件自动更新已暂停:{reason}。可刷新重试。',
'workspace.files.watchLimit': '自动更新最多覆盖 {count} 个目录,其余目录请手动刷新。',
'workspace.files.refreshFailed': '显示的是上次加载的内容,刷新失败:{reason}',
'workspace.browser.address': '网址',
'workspace.browser.addressPlaceholder': '搜索或输入网址',
'workspace.browser.back': '后退',
'workspace.browser.forward': '前进',
'workspace.browser.reload': '刷新',
'workspace.browser.stop': '停止加载',
'workspace.browser.menu': '浏览器菜单',
'workspace.browser.findInPage': '在页面中查找',
'workspace.browser.findPlaceholder': '查找…',
'workspace.browser.findMatches': '{index}/{total}',
'workspace.browser.findClose': '关闭查找栏',
'workspace.browser.print': '打印为 PDF',
'workspace.browser.zoom': '缩放',
'workspace.browser.zoomIn': '放大',
'workspace.browser.zoomOut': '缩小',
'workspace.browser.zoomReset': '重置缩放',
'workspace.browser.capture': '截取屏幕截图',
'workspace.browser.pickElement': '选取元素',
'workspace.browser.annotationActive': '正在注释(Esc 退出)',
'workspace.browser.downloads': '下载',
'workspace.browser.downloadsEmpty': '暂无下载',
'workspace.browser.revealDownload': '打开下载的文件',
'workspace.browser.history': '历史记录',
'workspace.browser.historyEmpty': '暂无访问记录',
'workspace.browser.closeOverlay': '关闭',
'workspace.browser.openExternal': '用系统浏览器打开',
'workspace.browser.emptyTitle': '开始浏览',
'workspace.browser.emptyBody': '输入 URL 以打开页面',
'workspace.browser.loadFailed': '无法加载 {url}',
'workspace.browser.pageCrashed': '页面无响应,已被重新加载。',
'workspace.browser.pageClosed': '该页面已被浏览器关闭。',
'workspace.browser.retry': '重试',
'workspace.browser.unavailableTitle': '内置浏览器需要桌面版',
'workspace.browser.unavailableBody': '当前环境没有原生浏览器视图,链接会改用系统浏览器打开。',
'workspace.terminal.restart': '重新启动终端',
'workspace.terminal.exited': '该终端已退出。',
'workspace.review.sourceLabel': '比较范围',
'workspace.review.fileCount': '{count} 个文件',
'workspace.review.diffLayout': 'Diff 布局',
'workspace.review.newFile': '新文件',
'workspace.review.sourceUnstaged': '未暂存',
'workspace.review.sourceStaged': '已暂存',
'workspace.review.sourceUncommitted': '全部未提交',
'workspace.review.sourceBranch': '分支:{ref}',
'workspace.review.unstageAll': '全部取消暂存',
'workspace.review.stageHunk': '暂存此区块',
'workspace.review.unstageHunk': '取消暂存此区块',
'workspace.review.historyUnavailable': '此轮没有已记录的文件快照。',
'workspace.review.unified': '统一 Diff',
'workspace.review.split': '并排 Diff',
'workspace.review.enableWrap': '开启自动换行',
'workspace.review.disableWrap': '关闭自动换行',
'workspace.review.collapseFile': '收起文件差异',
'workspace.review.expandFile': '展开文件差异',
'workspace.review.openFile': '在文件标签页中打开',
'workspace.review.sourceTurn': '本轮改动',
'workspace.review.sourceCommit': '提交 {sha}',
'workspace.review.compareBranch': '比较分支…',
'workspace.review.viewCommit': '查看提交…',
'workspace.review.branchReference': '分支引用',
'workspace.review.commitReference': '提交引用',
'workspace.review.refRequired': '请输入引用。',
'workspace.review.refUnavailable': '无法加载此比较。',
'workspace.review.compare': '比较',
'workspace.review.resolvedBase': '基准:{ref}',
'workspace.review.filterFiles': '筛选文件…',
'workspace.review.changeTree': '变更文件',
'workspace.review.empty': '该范围没有变更',
'workspace.review.stage': '暂存该文件',
'workspace.review.unstage': '取消暂存',
'workspace.review.revert': '还原改动',
'workspace.review.stageAll': '暂存全部',
'workspace.review.revertAll': '还原全部',
'workspace.review.refresh': '刷新',
'workspace.review.markViewed': '标记为已查看',
'workspace.review.viewed': '已查看',
'workspace.review.stale': '加载之后工作区已经发生变化,请刷新后重试。',
'workspace.review.failed': 'Git 操作失败:{reason}',
'workspace.review.revertTitle': '确认还原改动?',
'workspace.review.revertBody': '将还原 {count} 个文件的工作区改动,执行前会保存可恢复副本。',
'workspace.review.revertUntrackedWarning': '未跟踪文件单独列出,不会被批量还原删除。',
'workspace.review.untracked': '未跟踪',
'workspace.review.binary': '二进制文件',
'workspace.review.conflicted': '存在冲突 —— 仅支持整文件操作',
'workspace.review.notGitRepo': '当前目录不是 Git 仓库。',
'workspace.review.noHead': '该仓库还没有任何提交。',
'workspace.review.backupSaved': '可恢复副本已保存到 {path}',
'workspace.review.sourceTurnHint': '所选轮次已记录的文件改动。只读,不包含之后的工作区编辑。',
'workspace.review.readOnlySource': '该比较范围为只读。',
'workspace.review.revertDeleteTitle': '还原改动并删除新文件?',
'workspace.review.revertTrackedBody': '将还原 {count} 个已跟踪文件的工作区改动,执行前会保存可恢复副本。',
'workspace.review.revertDeleteBody': '将从磁盘永久删除 {count} 个未跟踪文件。Git 从未保存过它们,只有执行前保存的副本能找回。',
'workspace.review.revertDeleteList': '将被删除:{paths}',
'workspace.review.revertDeleted': '已删除 {count} 个未跟踪文件,仅存的副本位于 {path}',
'workspace.review.missingWorkdir': '会话的工作目录已不存在。',
'workspace.review.refusedNoSnapshot': '请先加载该比较结果,再修改文件。',
'workspace.review.diffTruncated': '文件过大,无法显示差异({size})',
'workspace.review.statsTruncated': '过大,未统计',
'workspace.preview': '预览',
'workspace.loadError': '工作区数据加载失败。',
'workspace.previewState.loading': '正在加载预览...',
'workspace.previewState.binary': '二进制文件暂不支持预览。',
'workspace.previewState.tooLarge': '文件过大,无法预览。',
'workspace.previewState.missing': '文件不存在。',
'workspace.imagePreviewUnavailable': '图片无法预览。',
'workspace.zoom.group': '缩放控件',
'workspace.zoom.in': '放大',
'workspace.zoom.out': '缩小',
'workspace.zoom.fitWindow': '适应窗口',
'workspace.zoom.fitWidth': '适应宽度',
'workspace.openInSystemApp': '用系统程序打开',
'workspace.document.loading': '正在加载文档...',
'workspace.document.updating': '正在更新预览...',
'workspace.document.parseFailed': '无法显示此文档。',
'workspace.document.retry': '重试',
'workspace.document.unsupported': '此文件类型暂不支持在此预览。',
'workspace.document.outsideWorkspace': '此文件在工作区之外,无法在此预览。',
'workspace.document.passwordProtected': '此 PDF 已加密,无法在此预览。',
'workspace.document.engineUnavailable': '当前环境无法启动文档预览。',
'workspace.document.openInBrowser': '在浏览器中打开',
'workspace.document.tooComplex': '文件过大或结构过于复杂,无法安全预览。',
'workspace.document.approximate.docx': '近似预览:公式和部分形状可能无法显示。如需精确排版,请打开原文件。',
'workspace.document.approximate.xlsx': '以格式化文本显示单元格,不含图表、图片与公式。',
'workspace.pdf.pages': '页面',
'workspace.pdf.pageNumber': '页码',
'workspace.pdf.pageOfTotal': '第 {page} 页,共 {total} 页',
'workspace.pdf.pageFailed': '此页无法绘制。',
'workspace.sheet.tabs': '工作表',
'workspace.sheet.truncated': '仅显示前 {rows} 行、{columns} 列。',
'workspace.sheet.showMoreRows': '显示更多行',
'workspace.sheet.empty': '此工作表为空。',
'workspace.previewLineLimit': '正在显示已加载内容的前 {count} / {total} 行。',
'workspace.previewAllLines': '正在显示全部 {total} 行已加载内容。',
'workspace.showAllLoadedLines': '显示全部已加载行',
'workspace.collapsePreview': '收起预览',
'workspace.addSelectionToChat': '添加到对话',
'workspace.localComment': '本地评论',
'workspace.commentLine': '评论第 {line} 行',
'workspace.commentLineTarget': '第 {line} 行',
'workspace.commentLineRangeTarget': '第 {start}–{end} 行',
'workspace.commentPlaceholder': '描述你希望这里怎么改...',
'workspace.addCommentToChat': '添加评论',
'workspace.diffReview.commentLineAria': '评论 {path} 的{side}侧第 {line} 行',
'workspace.diffReview.editorLabel': '评审评论',
'workspace.diffReview.submit': '提交',
'workspace.diffReview.submitAria': '提交评审评论',
'workspace.diffReview.side.old': '旧',
'workspace.diffReview.side.new': '新',
'workspace.diffReview.selectionReset': '选择已重置:只能选择同一侧、同一变更块中的行。',
'workspace.diffReview.diffChanged': '差异已更新。请重新选择行以提交此评论。',
'workspace.diffReview.collapsedSelection': '所选行不在收起后的预览中。请重新选择可见行以提交此评论。',
'attachments.remove': '移除 {name}',
'attachments.open': '打开 {name}',
'attachments.previousImage': '上一张图片',
'attachments.nextImage': '下一张图片',
'attachments.selectionNote': '选区备注:{note}',
'attachments.openFailed': '无法打开 {name},文件可能已被移动或删除。',
// ─── 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.general.pageDescription': '外观、语言和 Agent 的默认行为。',
'settings.tab.h5Access': 'H5 访问',
'settings.tab.terminal': '终端',
'settings.tab.skills': '技能',
'settings.tab.mcp': 'MCP',
'settings.tab.plugins': '插件',
'settings.tab.pets': '宠物',
'settings.tab.diagnostics': '诊断',
// Settings > Pets
'settings.pets.title': '桌面宠物',
'settings.pets.subtitle': '一只会关注当前任务、也能接收追问的小伙伴。',
'settings.pets.enableTitle': '显示桌面宠物',
'settings.pets.enableDescription': '在桌面悬浮窗口中显示你选择的宠物。',
'settings.pets.loading': '正在加载宠物…',
'settings.pets.loadError': '无法加载宠物。',
'settings.pets.saveError': '无法保存宠物设置。',
'settings.pets.retry': '重试',
'settings.pets.refresh': '刷新',
'settings.pets.create': '添加宠物',
'settings.pets.createTitle': '做一只自己的宠物',
'settings.pets.createMethodIntro': '选一种做法。图片都在你自己的电脑上处理,不会上传,也不会消耗你的对话额度。',
'settings.pets.createRecommended': '推荐',
'settings.pets.createImageTitle': '用一张现成的图',
'settings.pets.createImageDescription': '手里有一张角色图就能开始。它会轻轻呼吸、上下浮动,你忙的时候它也跟着动。',
'settings.pets.createImageDetail': '一分钟搞定 · 但它不会跑、也不会挥手',
'settings.pets.createImageBadge': '最省事',
'settings.pets.createImageHint': '待会儿选一张背景透明的 PNG 或 WebP(长宽都在 32 到 4096 像素之间,文件不超过 8MB)。这种宠物只会轻轻晃动,不会真的跑起来——想要能跑能跳会挥手,回上一页选「用 AI 画一只会跑会跳的」。',
'settings.pets.createImageSubmit': '选图片,做宠物',
'settings.pets.createAtlasTitle': '我已经有动作图了',
'settings.pets.createAtlasDescription': '直接把画好的多格动作图选进来,跳过教程。',
'settings.pets.createAtlasDetail': '尺寸不用自己算 · 选进来会自动对齐',
'settings.pets.createAtlasSubmit': '选动作图,做宠物',
'settings.pets.createAtlasHint': '待会儿选一张 8 格宽、9 行高的动作图。尺寸不用刚好,选进来会自动切格、缩放,还会帮你把「向左跑」那一行镜像补出来。已经做好的 1536×2288 成品图也能直接用,会原样保留。',
'settings.pets.createAiTitle': '用 AI 画一只会跑会跳的',
'settings.pets.createAiDescription': '照着三步走:复制一段提示词、让 AI 画图、把图选进来。提示词和对照模板都替你准备好了。',
'settings.pets.createAiDetail': '十来分钟 · 需要一个会画图的 AI',
'settings.pets.createBack': '换一种做法',
'settings.pets.createId': '宠物 ID',
'settings.pets.createIdHint': '给它一个英文小名,只能用小写字母、数字和中间的连字符,比如 moon-cat。',
'settings.pets.createName': '显示名称',
'settings.pets.createDescription': '宠物描述',
'settings.pets.createCancel': '取消',
'settings.pets.createSubmit': '创建',
'settings.pets.guide.intro': '三步,大约十分钟,全程在你自己的电脑上完成。',
'settings.pets.guide.step1Title': '让 AI 画一张动作图',
'settings.pets.guide.step1Body': '打开一个会画图的 AI,把下面这段整个发给它。开头「角色」那两行换成你想要的样子,比如「一只戴黄色帽子的柴犬」。',
'settings.pets.guide.step1Tools': '即梦、Nano Banana、ChatGPT 画图、Midjourney、Stable Diffusion 都行(随手举例,不是推荐)。画得不对就让它重画,或者说「角色保持不变,只重画第 2 行」。',
'settings.pets.guide.prompt': `帮我画一张游戏角色动作表(sprite sheet)。
【角色】
一只圆头圆脑的橘色小猫,戴着蓝色小围巾,Q 版三头身,
3D 卡通渲染,表面柔和有光泽,颜色明快。
(把这两行换成你想要的角色,写得越具体越好)
【整张图的要求】
· 背景完全透明,不要背景色、不要格子线、不要文字、不要投影
· 整张图平均分成 8 列 × 9 行,一共 72 个一样大的方格
· 每格放一个动作帧,角色在格子里居中,四周留一点空隙
· 所有格子里必须是同一只角色,体型、配色、画风完全一致
· 用不到的格子保持完全透明
【每一行画什么】
第 1 行 前 6 格:站着不动,轻微呼吸起伏
第 2 行 全 8 格:向右跑的完整循环,角色始终朝右
第 3 行 前 4 格:抬起手挥手打招呼
第 4 行 前 5 格:下蹲、起跳、落地
第 5 行 全 8 格:失落沮丧,垂头叹气
第 6 行 前 6 格:原地等待,东张西望
第 7 行 前 6 格:低头忙碌工作
第 8 行 全 8 格:头和视线从正上方开始向右慢慢转,经过右上、右边、右下,转到接近正下方
第 9 行 全 8 格:接着上一行,从正下方继续向左转,经过左下、左边、左上,转回接近正上方`,
'settings.pets.guide.promptCopy': '复制这段提示词',
'settings.pets.guide.promptCopied': '复制好了',
'settings.pets.guide.copyFailed': '没能自动复制,手动选中上面的文字复制一下。',
'settings.pets.guide.step2Title': '照着模板检查一遍',
'settings.pets.guide.step2Body': '图出来以后,对着下面这张模板看三件事。不对就让 AI 重画,别急着选进来。',
'settings.pets.guide.check1': '背景是透空的,不是白底——白底会在桌面上变成一个方块',
'settings.pets.guide.check2': '横着数 8 格,竖着数 9 行,每格一个动作',
'settings.pets.guide.check3': '九行里从头到尾是同一只,没有中途换脸换配色',
'settings.pets.guide.templateAlt': '动作表模板:8 列 9 行,标注了每一行该画什么',
'settings.pets.guide.templateExpand': '点图片看完整模板',
'settings.pets.guide.templateCollapse': '点图片收起',
'settings.pets.guide.saveTemplate': '把模板存下来',
'settings.pets.guide.saveFailed': '没能保存模板图,稍后再试。',
'settings.pets.guide.step3Title': '选进来就好',
'settings.pets.guide.step3Body': '下一页填个名字,然后选中刚才那张图。尺寸不用自己调,长宽差一点也没关系;「向左跑」那一行也会自动镜像补上,不用你画。',
'settings.pets.guide.continue': '画好了,下一步',
'settings.pets.guide.backToSteps': '回去看步骤',
'settings.pets.createError': '没能做成这只宠物。',
'settings.pets.createError.invalidId': '宠物 ID 只能用小写字母、数字和中间的连字符。',
'settings.pets.createError.duplicateId': '已经有一只用这个 ID 的宠物了,换一个。',
'settings.pets.createError.unsupportedFormat': '请选 PNG 或 WebP 格式的图片。',
'settings.pets.createError.imageTooLarge': '图片太大了,请控制在 8 MB 以内。',
'settings.pets.createError.imageDimensions': '图片长宽都要在 32 到 4096 像素之间,总像素数不超过 16,777,216。',
'settings.pets.createError.atlasDimensions': '这张图没法按 8 列 × 9 行切开。请确认横着 8 格、竖着 9 行,或者直接用 1536×2288 的成品图集。',
'settings.pets.createError.opaqueBackground': '这张图没有透明背景,做出来会是桌面上的一个方块。请让 AI 重新导出透明背景的 PNG(不要白底)。',
'settings.pets.createError.invalidImage': '读不出这张图,请换一张静态的 PNG 或 WebP(动图不行)。',
'settings.pets.createError.storage': '没能把宠物存到本地文件夹。',
'settings.pets.dialog.imageTitle': '选一张背景透明的宠物图片',
'settings.pets.dialog.imageFilter': '宠物图片',
'settings.pets.dialog.atlasTitle': '选择宠物动作图',
'settings.pets.dialog.atlasFilter': '宠物动作图',
'settings.pets.builtInTitle': '内置宠物',
'settings.pets.customTitle': '你的宠物',
'settings.pets.customEmpty': '还没有自定义宠物。',
'settings.pets.selected': '已选择',
'settings.pets.select': '选择',
'settings.pets.appearanceTitle': '外观',
'settings.pets.size': '宠物大小',
'settings.pets.sizeDescription': '可在 96 到 192 像素之间调整。',
'settings.pets.motion': '播放动画',
'settings.pets.motionDescription': '关闭后宠物仍可使用,但不会移动。',
'settings.pets.showTaskPanel': '显示进行中的任务区域',
'settings.pets.showTaskPanelDescription': '有任务运行时显示矩形任务区域;没有进行中的任务时始终隐藏。',
'settings.pets.collapsed': '默认收起',
'settings.pets.collapsedDescription': '默认只显示宠物,需要时再展开任务面板。',
'settings.pets.folderTitle': '自定义宠物文件夹',
'settings.pets.folderDescription': '自定义宠物包存储在这里:${CLAUDE_CONFIG_DIR:-~/.claude}/cc-haha/pets',
'settings.pets.openFolder': '打开文件夹',
'settings.pets.openFolderError': '无法打开自定义宠物文件夹。',
'settings.pets.invalidCustom': '有 {count} 个无效的自定义宠物文件夹已跳过。',
'settings.pets.builtin.dada': '沉稳的协作机器人,陪你把想法一块块搭起来。',
'settings.pets.builtin.huhu': '拿着铅笔和计划本的路线机器人,复杂任务也能找到出口。',
'settings.pets.builtin.bubu': '举着修补扳手的小机器人,最擅长发现并修好裂缝。',
'settings.pets.builtin.huihui': '抱着构建齿轮的小机器人,新回复一到就精神满满。',
// Desktop pet window
'pet.window.noSessions': '暂无进行中的任务',
'pet.window.expand': '展开',
'pet.window.collapse': '收起',
'pet.window.interact': '和宠物互动',
'pet.window.close': '关闭宠物',
'pet.window.saveError': '宠物设置保存失败,请重试。',
'pet.window.closeError': '无法关闭宠物,请重试。',
'pet.window.status.waiting': '等待你处理',
'pet.window.status.failed': '需要关注',
'pet.window.status.review': '等待审阅',
'pet.window.status.running': '工作中',
'pet.window.status.idle': '空闲',
'pet.window.sessionCount': '{count} 个任务',
'pet.window.expandTasks': '显示 {count} 个进行中的任务',
'pet.window.hideTasks': '隐藏 {count} 个进行中的任务',
'pet.window.untitledSession': '未命名任务',
// Settings > Usage
'settings.activity.title': 'Token 用量',
'settings.activity.profileTitle': '个人资料',
'settings.activity.avatarAlt': '{name} 的头像',
'settings.activity.profilePrivacy': '仅本地',
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
'settings.activity.editProfile': '编辑个人资料',
'settings.activity.displayName': '显示名称',
'settings.activity.subtitle': '第二行',
'settings.activity.displayNameHelper': '修改主名称和第二行;第二行如果是网址会自动作为链接打开。',
'settings.activity.avatar': '头像',
'settings.activity.avatarHelper': '支持 PNG、JPEG 或 WebP,最大 2 MB。',
'settings.activity.changeAvatar': '更换头像',
'settings.activity.removeAvatar': '移除头像',
'settings.activity.saveProfile': '保存',
'settings.activity.cancelEdit': '取消',
'settings.activity.profileSaved': '已保存到本地',
'settings.activity.profileSaveFailed': '保存个人资料失败',
'settings.activity.subtitleLoading': '基于本机 Claude Code CLI 会话记录统计',
'settings.activity.totalTokens': '累计 Token 数',
'settings.activity.peakTokens': '峰值 Token 数',
'settings.activity.longestTask': '最长任务时长',
'settings.activity.currentStreak': '当前连续天数',
'settings.activity.longestStreak': '最长连续天数',
'settings.activity.noDuration': '0 分钟',
'settings.activity.tokenActivity': 'Token 活动',
'settings.activity.mode.daily': '每日',
'settings.activity.mode.weekly': '每周',
'settings.activity.mode.cumulative': '累计',
'settings.activity.modeHelp.daily': '每日:每个格子表示当天 Token 用量。',
'settings.activity.modeHelp.weekly': '每周:每一列表示这一周的 Token 总量。',
'settings.activity.modeHelp.cumulative': '累计:每一列表示截至该周的累计 Token 总量。',
'settings.activity.emptyTitle': '暂无本地用量',
'settings.activity.emptyBody': '启动 CLI 或桌面会话并完成模型回复后,这里会显示统计。',
'settings.activity.metric.yesterday': '昨天',
'settings.activity.metric.today': '今天',
'settings.activity.metric.last4': '近 4 天',
'settings.activity.metric.last30': '30 天',
'settings.activity.metric.streak': '连续活跃',
'settings.activity.metric.bestStreak': '最长 {days} 天',
'settings.activity.heatmapLabel': '按天统计的 Token 用量',
'settings.activity.weekRange': '{start} - {end}',
'settings.activity.cumulativeThrough': '截至 {date}',
'settings.activity.tokenValue': '{tokens} Token',
'settings.activity.count.sessionOne': '{count} 次会话',
'settings.activity.count.sessionOther': '{count} 次会话',
'settings.activity.count.dayOne': '{count} 天',
'settings.activity.count.dayOther': '{count} 天',
'settings.activity.count.runOne': '{count} 次运行',
'settings.activity.count.runOther': '{count} 次运行',
'settings.activity.weekday.mon': '周一',
'settings.activity.weekday.wed': '周三',
'settings.activity.weekday.fri': '周五',
'settings.activity.selectedDay': '选中日期',
'settings.activity.sessions': '会话',
'settings.activity.tokens': 'Token',
'settings.activity.messages': '消息',
'settings.activity.tools': '工具',
'settings.activity.activityInsights': '活动洞察',
'settings.activity.activeRate': '活跃率',
'settings.activity.mostUsedModel': '最常用模型',
'settings.activity.exploredSkills': '已使用的技能',
'settings.activity.totalSkillUses': '技能使用总数',
'settings.activity.totalToolCalls': '工具调用',
'settings.activity.freshTokens': '新增 Token',
'settings.activity.cachedTokens': '缓存命中 Token',
'settings.activity.estimatedCost': '估算成本',
'settings.activity.ofTotal': '占 {percent}',
'settings.activity.costExcludesModels': '不含 {count} 个未定价模型',
'settings.activity.totalSessions': '会话总数',
'settings.activity.mostUsedPluginsAndSkills': '最常用的插件和技能',
'settings.activity.none': '暂无',
'settings.activity.less': '少',
'settings.activity.more': '多',
// Settings > Terminal
'settings.terminal.title': '终端',
'settings.terminal.description': '直接运行宿主机命令,用于安装插件、Skills、MCP 等扩展。桌面端已内置 claude-haha;文档里的 claude <参数> 可替换成 claude-haha <参数>,例如 claude-haha plugin install ... 或 claude-haha mcp add ...',
'settings.terminal.infoLabel': '终端安装说明',
'settings.terminal.clear': '清屏',
'settings.terminal.restart': '重启',
'settings.terminal.windowTitle': '宿主机 Shell',
'settings.terminal.unavailableTitle': '需要桌面端运行时',
'settings.terminal.unavailableBody': '请在打包后的桌面端里打开这个页面,才能启动交互式终端。',
'settings.terminal.preferencesTitle': '启动 Shell',
'settings.terminal.preferencesBody': '用于新开的终端会话,以及点击重启后的终端。',
'settings.terminal.startupShell': '启动 Shell',
'settings.terminal.customPath': '自定义 Shell 路径',
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
'settings.terminal.customPathRequired': '保存前请先填写 Shell 路径。',
'settings.terminal.customPathAbsolute': '自定义 Shell 路径必须是绝对 Windows 路径。',
'settings.terminal.saveShell': '保存 Shell',
'settings.terminal.saveShellSuccess': '已保存。重启终端或新开终端后生效。',
'settings.terminal.shell.system': '系统默认',
'settings.terminal.shell.systemDesc': '保持当前基于 COMSPEC 的行为。',
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
'settings.terminal.shell.pwshDesc': '安装了 pwsh.exe 时优先使用它。',
'settings.terminal.shell.powershell': 'Windows PowerShell',
'settings.terminal.shell.powershellDesc': '使用系统自带的 powershell.exe。',
'settings.terminal.shell.cmd': '命令提示符',
'settings.terminal.shell.cmdDesc': '明确使用 cmd.exe。',
'settings.terminal.shell.custom': '自定义可执行文件',
'settings.terminal.shell.customDesc': '启动一个绝对路径的 Shell 可执行文件。',
'settings.terminal.status.idle': '空闲',
'settings.terminal.status.starting': '启动中',
'settings.terminal.status.running': '运行中',
'settings.terminal.status.exited': '已退出',
'settings.terminal.status.error': '错误',
'settings.terminal.status.unavailable': '不可用',
'settings.terminal.bashPathLabel': 'Bash 路径',
'settings.terminal.bashPathDescription': 'Windows 下默认使用 CMD 作为终端。如果工具调用 grep、sed 等 Unix 命令,请在此配置 Bash 可执行文件路径(如 Git Bash)。',
'settings.terminal.bashPathSave': '保存',
'settings.terminal.bashPathReset': '恢复默认',
'settings.terminal.bashPathSaved': '已保存',
'settings.terminal.bashPathInvalid': '路径不存在,请选择有效的 Bash 可执行文件',
'settings.terminal.bashPathBrowse': '浏览选择 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.completeEvents': '完整事件',
'settings.diagnostics.completeEventsValue': '{count} 个完整事件',
'settings.diagnostics.visibleEvents': '当前可见',
'settings.diagnostics.visibleEventsValue': '{count} 个可见事件',
'settings.diagnostics.corruptLinesWarning': '检测到或保留了 {count} 条损坏诊断记录的证据。当前诊断文件包含 {physical} 个物理行,事件总数和最近记录可能不完整。',
'settings.diagnostics.storageLimitExceededWarning': '一个或多个诊断区域或活动写入进程暂时超出各自的保留目标;其分段关闭或过期后将进行清理。',
'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.copyIssueReport': '复制 Issue 报告',
'settings.diagnostics.issueReportCopied': 'Issue 报告已复制。',
'settings.diagnostics.issueReportCopyFailed': '复制 Issue 报告失败。',
'settings.diagnostics.clearLogs': '清理日志',
'settings.diagnostics.recentEvents': '最近事件',
'settings.diagnostics.privacyNote': 'Issue 报告和导出包会尽力脱敏,省略聊天与文件内容、完整环境变量和 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.localIndex.title': '本地索引',
'settings.diagnostics.localIndex.description': '可重建的本地投影,用于加速会话和诊断读取。',
'settings.diagnostics.localIndex.rebuild': '重建本地索引',
'settings.diagnostics.localIndex.confirmRebuild': '只会重建派生的本地索引,对话记录和设置不会受到影响。',
'settings.diagnostics.localIndex.rebuildSucceeded': '本地索引已重建,源对话历史未被删除。',
'settings.diagnostics.localIndex.rebuildFailed': '重建本地索引失败。',
'settings.diagnostics.localIndex.mode': '模式',
'settings.diagnostics.localIndex.state': '状态',
'settings.diagnostics.localIndex.indexed': '已索引来源',
'settings.diagnostics.localIndex.degradedSources': '降级来源',
'settings.diagnostics.localIndex.databaseSize': '数据库',
'settings.diagnostics.localIndex.walSize': 'WAL',
'settings.diagnostics.localIndex.lastUpdated': '最后更新',
'settings.diagnostics.localIndex.errorCode': '错误代码',
'settings.diagnostics.localIndex.never': '从未',
'settings.diagnostics.localIndex.none': '无',
'settings.diagnostics.localIndex.unavailable': '暂时无法获取本地索引状态,现有诊断功能仍可使用。',
'settings.diagnostics.localIndex.buildingMessage': '索引正在后台构建,会话历史仍可正常使用。',
'settings.diagnostics.localIndex.degradedMessage': '本地索引已降级,基于文件的回退仍可使用。',
'settings.diagnostics.localIndex.mode.off': '关闭',
'settings.diagnostics.localIndex.mode.shadow': '影子',
'settings.diagnostics.localIndex.mode.on': '开启',
'settings.diagnostics.localIndex.state.off': '关闭',
'settings.diagnostics.localIndex.state.building': '构建中',
'settings.diagnostics.localIndex.state.ready': '就绪',
'settings.diagnostics.localIndex.state.degraded': '已降级',
'settings.diagnostics.eventId': '事件 ID',
'settings.diagnostics.copyEventId': '复制事件 ID',
'settings.diagnostics.eventIdCopied': '事件 ID 已复制。',
'settings.diagnostics.eventIdCopyFailed': '复制事件 ID 失败。',
'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-app-zoom、cc-haha-ui-zoom 和 cc-haha.persistence.schemaVersion。',
'settings.diagnostics.runDoctor': '运行 Doctor',
'settings.diagnostics.resetSafeUiState': '重置安全 UI 状态',
'settings.diagnostics.confirmResetSafeUiState': '仅重置上面列出的可再生桌面 UI 键?受保护的用户与项目数据不会被修改。',
'settings.diagnostics.doctorCheckCompleted': 'Doctor 检查已完成。',
'settings.diagnostics.doctorResetCompleted': '安全 UI 状态重置已完成。',
'settings.diagnostics.doctorPartial': '安全 UI 状态重置已完成,但有 {count} 个键处理失败。',
'settings.diagnostics.doctorFailed': 'Doctor 执行失败。',
'settings.diagnostics.doctorScope': '范围',
'settings.diagnostics.doctorScopeProject': '用户与当前项目',
'settings.diagnostics.doctorScopeUser': '仅用户',
'settings.diagnostics.doctorSummary': '健康:{healthy} · 未配置:{neutral} · 缺失:{missing} · 无效:{invalid}',
'settings.diagnostics.doctorFindings': 'Doctor 发现项',
'settings.diagnostics.doctorNoFindings': '未发现缺失或无效项。',
'settings.diagnostics.doctorStatusHealthy': '健康',
'settings.diagnostics.doctorStatusNotConfigured': '未配置',
'settings.diagnostics.doctorStatusMissing': '缺失',
'settings.diagnostics.doctorStatusInvalidJson': 'JSON 无效',
'settings.diagnostics.doctorStatusInvalidJsonl': 'JSONL 无效',
'settings.diagnostics.doctorStatusInvalidSchema': 'Schema 无效',
'settings.diagnostics.doctorStatusUnreadable': '无法读取',
'settings.diagnostics.doctorRemovedKeys': '已移除的键',
'settings.diagnostics.doctorFailedKeys': '失败的键',
'settings.diagnostics.doctorNoKeys': '无',
'errorBoundary.title': '出现异常。',
'errorBoundary.description': '错误已记录到诊断日志。',
'errorBoundary.item': '此条内容无法显示。错误已记录到诊断日志。',
// Settings > Claude Official Login
'settings.claudeOfficialLogin.intro': '使用官方 Claude 模型需要登录你的 Claude.ai 账号。点击下方按钮,浏览器会打开 Claude 官方登录页面,授权后自动回到这里。',
'settings.claudeOfficialLogin.loginButton': '登录 Claude 账号',
'settings.claudeOfficialLogin.loginStarting': '正在启动…',
'settings.claudeOfficialLogin.logoutButton': '登出',
'settings.claudeOfficialLogin.logoutProcessing': '处理中…',
'settings.claudeOfficialLogin.loggedInPrefix': '已登录(Claude',
'settings.claudeOfficialLogin.subTypeUnknown': '未知',
'settings.claudeOfficialLogin.errorPrefix': '错误:',
'settings.claudeOfficialLogin.openBrowserFailed': '无法打开浏览器,请手动访问授权链接。',
// Settings > ChatGPT Official Login
'settings.chatgptOfficialLogin.intro': '登录 ChatGPT 后,就可以在桌面端会话里使用 GPT 模型。',
'settings.chatgptOfficialLogin.loginButton': '登录 ChatGPT',
'settings.chatgptOfficialLogin.loginStarting': '正在启动登录...',
'settings.chatgptOfficialLogin.logoutButton': '退出登录',
'settings.chatgptOfficialLogin.logoutProcessing': '正在退出...',
'settings.chatgptOfficialLogin.loggedInPrefix': '已登录',
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT 账号',
'settings.chatgptOfficialLogin.openBrowserFailed': '无法打开浏览器。请复制授权链接并手动打开。',
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '复制授权链接',
'settings.chatgptOfficialLogin.copyLinkFailed': '无法复制授权链接。',
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth 错误:',
'settings.grokOfficialLogin.intro': '登录 Grok 后,即可在桌面端会话中使用 Grok 官方模型。',
'settings.grokOfficialLogin.loginButton': '登录 Grok',
'settings.grokOfficialLogin.loginStarting': '正在启动登录...',
'settings.grokOfficialLogin.logoutButton': '退出登录',
'settings.grokOfficialLogin.logoutProcessing': '正在退出...',
'settings.grokOfficialLogin.loggedInPrefix': '已登录',
'settings.grokOfficialLogin.accountUnknown': 'Grok 账号',
'settings.grokOfficialLogin.openBrowserFailed': '无法打开浏览器。请复制授权链接并手动打开。',
'settings.grokOfficialLogin.copyAuthorizeUrl': '复制授权链接',
'settings.grokOfficialLogin.copyLinkFailed': '无法复制授权链接。',
'settings.grokOfficialLogin.errorPrefix': 'Grok OAuth 错误:',
// Settings > Providers
'settings.providers.title': '模型管理',
'settings.providers.description': '配置模型、API 接口与访问凭证。',
'settings.providers.addProvider': '添加模型',
'settings.providers.officialName': 'Claude 官方',
'settings.providers.officialDesc': 'Anthropic 原生接入 — 无需 API 密钥',
'settings.providers.openaiOfficialName': 'ChatGPT 官方',
'settings.providers.openaiOfficialDesc': '通过 ChatGPT 账号完成 OpenAI OAuth — 无需 API 密钥',
'settings.providers.officialModelsTitle': 'OAuth 模型映射',
'settings.providers.officialModelsDesc': '为每个 Claude 模型别名选择实际使用的 OAuth 模型。可选列表来自当前登录的供应商账号。',
'settings.providers.officialModelsAvailableGroup': '可用 OAuth 模型',
'settings.providers.officialModelsPick': '从 OAuth 模型列表选择{label}',
'settings.providers.officialModelsNoMatches': '没有匹配的 OAuth 模型,也可以手动输入模型 ID。',
'settings.providers.officialModelsSave': '保存模型映射',
'settings.providers.officialModelsSaved': '模型映射已保存',
'settings.providers.officialModelsLoadError': '无法加载 OAuth 模型映射。',
'settings.providers.officialModelsSaveError': '无法保存 OAuth 模型映射。',
'settings.providers.grokOfficialName': 'Grok 官方',
'settings.providers.grokOfficialDesc': '通过 xAI 账号完成 Grok 官方 OAuth — 无需 API 密钥',
'settings.providers.connected': '已连接 ({latency}ms)',
'settings.providers.failed': '失败: {error}',
'settings.providers.connectivityOk': '① 连通 ({latency}ms)',
'settings.providers.connectivityFailed': '① 连通失败: {error}',
'settings.providers.proxyOk': '② 代理转换 ({latency}ms)',
'settings.providers.proxyFailed': '② 代理转换失败: {error}',
'settings.providers.confirmDelete': '删除模型配置 "{name}"?此操作不可撤销。',
'settings.providers.activate': '激活',
'settings.providers.default': '默认',
'settings.providers.setDefault': '设为默认',
'settings.providers.test': '测试',
'settings.providers.edit': '编辑',
'settings.providers.dragToReorder': '拖动排序',
'settings.providers.requestFailed': '请求失败',
'settings.providers.addTitle': '添加模型',
'settings.providers.editTitle': '编辑模型',
'settings.providers.new': '新',
'settings.providers.sponsor': '赞助商',
'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.baseUrlHelp': '接口地址填写说明',
'settings.providers.baseUrlTooltip': '请填写 /v1 之前的接口地址,系统会自动补全后续路径。',
'settings.providers.endpointRegion': '服务区域',
'settings.providers.regionChina': '中国大陆',
'settings.providers.regionGlobal': '海外',
'settings.providers.regionCustom': '自定义',
'settings.providers.apiKey': 'API 密钥',
'settings.providers.apiKeyKeep': 'API 密钥(留空保持不变)',
'settings.providers.showApiKey': '显示 API 密钥',
'settings.providers.hideApiKey': '隐藏 API 密钥',
'settings.providers.getApiKey': '获取 API Key',
'settings.providers.modelMapping': '模型映射',
'settings.providers.mainModel': '主模型',
'settings.providers.fableModel': 'Fable 模型',
'settings.providers.haikuModel': 'Haiku 模型',
'settings.providers.sonnetModel': 'Sonnet 模型',
'settings.providers.opusModel': 'Opus 模型',
'settings.providers.model1mSupportShort': '1M',
'settings.providers.model1mSupportAria': '1M 上下文支持:{slot}',
'settings.providers.model1mSupportHint': '「1M」只在该模型端点确实提供 100 万 token 上下文时勾选,勾错会让自动压缩失效。',
'settings.providers.model1mSupportTooltip': '声明该模型端点支持 100 万 token 上下文:模型名会追加 [1m],上下文窗口自动填为 1,000,000。若端点实际窗口小于 1M,自动压缩不会触发,请求会撞上服务商的上下文硬限制。取消勾选会恢复预设窗口。',
'settings.providers.modelIdPlaceholder': '例如: deepseek-v4-flash',
'settings.providers.sameAsMain': '与主模型相同',
'settings.providers.fableModelPlaceholder': '留空则由 Claude Code 决定',
'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.multiProtocolBadge': '多协议',
'settings.providers.apiFormatPerModelHint': '该预设按模型自动选择协议,此项由预设决定',
'settings.providers.proxyHint': '请求将通过本地代理转换协议格式',
'settings.providers.apiFormatOverrideHint': '已切换协议:请确认接口地址是该协议的兼容端点,预设默认地址可能不适用',
'settings.providers.authStrategy': '认证变量',
'settings.providers.authStrategyApiKey': 'API Key (ANTHROPIC_API_KEY)',
'settings.providers.authStrategyApiKeyDesc': '直连 Anthropic 官方 API,发送 x-api-key。',
'settings.providers.authStrategyAuthToken': 'Bearer Token (ANTHROPIC_AUTH_TOKEN)',
'settings.providers.authStrategyAuthTokenDesc': '大多数第三方 Anthropic 兼容服务,发送 Authorization Bearer。',
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 清空 API_KEY',
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'OpenRouter/Ollama 等场景,避免回退到 Anthropic API key。',
'settings.providers.authStrategyDualSameToken': '两个变量写同一个 Token',
'settings.providers.authStrategyDualSameTokenDesc': 'Hugging Face Router 等同时检查两个变量的服务。',
'settings.providers.authStrategyDualDummy': '两个变量写 dummy',
'settings.providers.authStrategyDualDummyDesc': 'vLLM 等本地兼容服务,只需要占位认证值。',
'settings.providers.toolSearchEnabled': '启用 Tool Search',
'settings.providers.toolSearchDesc': '默认关闭。仅当模型和最终上游都支持 tool_reference 时启用;不兼容的服务商可能返回 HTTP 400。',
'settings.providers.toolSearchUnsupported': '当前仅 Anthropic Messages 格式支持 Tool Search;OpenAI 代理格式会保留完整工具 schema。',
'settings.providers.toolSearchConfirmTitle': '确认启用 Tool Search?',
'settings.providers.toolSearchConfirmBody': '仅当你使用 Anthropic 官方支持 Tool Search 的模型,并且最终 LLM 上游或网关明确支持 defer_loading 和 tool_reference 时才启用。',
'settings.providers.toolSearchConfirmRisk': 'LM Studio、Ollama 及许多第三方兼容接口可能返回 HTTP 400,并导致当前会话无法继续。',
'settings.providers.toolSearchConfirmEnable': '仍然启用',
'settings.providers.disableExperimentalBetas': '关闭实验性 Beta 头',
'settings.providers.disableExperimentalBetasDesc': '为此服务商设置 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1,避免第三方通道拒绝 beta API 形态。GPT 和 o 系列模型仍会转发 Session 中选择的推理强度;其他直连 Anthropic 兼容模型可能回退为通道默认值。',
'settings.providers.supportsNestedToolResultMedia': '保留工具结果中的媒体',
'settings.providers.nestedToolResultMediaDesc': '当 Anthropic 兼容端点支持嵌套媒体时,将图片和文件保留在 tool result 内。若第三方端点无法显示嵌套媒体,请关闭此选项,图片和文件将提升为独立的内容块。',
'settings.providers.nestedToolResultMediaUnsupported': '仅 Anthropic Messages 服务商可以配置工具结果中的嵌套媒体。',
'settings.providers.imageGenerationEnabled': '启用图片生成',
'settings.providers.imageGenerationEnabledDesc': '允许聊天通过 OpenAI 兼容的 Images API 生图。凭证保存在服务商设置中,不写进 Skill。',
'settings.providers.imageGenerationModel': '生图模型',
'settings.providers.imageGenerationModelPlaceholder': 'gpt-image-2',
'settings.providers.imageGenerationModelHint': '必填,请填写该上游暴露的生图模型 ID。',
'settings.providers.imageGenerationBaseUrl': '生图 API 地址',
'settings.providers.imageGenerationBaseUrlPlaceholder': 'https://api.example.com/v1',
'settings.providers.imageGenerationBaseUrlHint': '可选,留空则复用聊天服务商的接口地址。',
'settings.providers.imageGenerationApiKey': '生图 API Key',
'settings.providers.imageGenerationApiKeyHint': '可选,留空则复用聊天服务商的 API Key。',
'settings.providers.fetchModels': '获取模型',
'settings.providers.fetchModelsHint': '请先填写接口地址。',
'settings.providers.fetchModelsApiKeyHint': '要填写 API Key 才能获取模型列表',
'settings.providers.fetchModelsSupportHint': '仅当上游服务商提供模型列表接口时才能获取。',
'settings.providers.fetchModelsLoaded': '已获取模型列表({count} 个),可直接选择,也可继续手动输入。',
'settings.providers.fetchModelsToast': '已获取模型列表,现在可以在下拉框中选择模型了。',
'settings.providers.fetchModelsEmpty': '没有找到模型,请手动填写模型 ID。',
'settings.providers.fetchModelsPick': '从已获取的列表中选择{label}',
'settings.providers.fetchModelsGroupOther': '其他',
'settings.providers.fetchModelsMoreResults': '模型较多,请输入关键词继续筛选。',
'settings.providers.fetchModelsErrorMissingConfig': '需要先填写接口地址与 API 密钥。',
'settings.providers.fetchModelsErrorAuthFailed': 'API 密钥被拒绝,请检查密钥与认证变量。',
'settings.providers.fetchModelsErrorEndpointNotFound': '该接口地址下没有找到模型列表接口。',
'settings.providers.fetchModelsErrorTimeout': '服务商响应超时。',
'settings.providers.fetchModelsErrorNotSupported': '该服务商不提供模型列表,请手动填写模型 ID。',
'settings.providers.fetchModelsErrorNetwork': '无法连接服务商,请检查接口地址与网络。',
'settings.providers.fetchModelsErrorUnknown': '获取模型列表失败。',
'settings.providers.fetchModelsErrorUpstream': '服务商返回:',
'settings.providers.ccSwitch.importButton': '从 cc-switch 导入',
'settings.providers.ccSwitch.title': '从 cc-switch 导入',
'settings.providers.ccSwitch.description': '选择要导入的 cc-switch 服务商,已有的服务商不会被改动。',
'settings.providers.ccSwitch.scanning': '正在读取 cc-switch 配置',
'settings.providers.ccSwitch.unavailableTitle': '读取不到 cc-switch 配置',
'settings.providers.ccSwitch.unavailableNotFound': '没有找到 cc-switch 配置。请先安装 cc-switch 并至少添加一个服务商。',
'settings.providers.ccSwitch.unavailableUnreadable': 'cc-switch 配置无法读取,请检查文件权限后重试。',
'settings.providers.ccSwitch.unavailableSchema': '当前 cc-switch 版本的配置结构 cc-haha 尚不认识。请更新 cc-haha,或手动添加该服务商。',
'settings.providers.ccSwitch.unavailableTooOld': '当前 cc-switch 使用的配置格式连 cc-switch 自己都已不再支持。导入需要 cc-switch v3.1.0 或更高版本。',
'settings.providers.ccSwitch.unavailableSqlite': '当前版本无法打开 cc-switch 数据库。请改为手动添加服务商。',
'settings.providers.ccSwitch.configDir': '配置目录:{path}',
'settings.providers.ccSwitch.emptyTitle': '没有可导入的内容',
'settings.providers.ccSwitch.emptyDesc': '找到了 cc-switch,但里面没有配置任何服务商。',
'settings.providers.ccSwitch.selectAll': '全选',
'settings.providers.ccSwitch.selectNone': '全不选',
'settings.providers.ccSwitch.selectedCount': '已选 {selected} / {total}',
'settings.providers.ccSwitch.currentBadge': '使用中',
'settings.providers.ccSwitch.duplicateBadge': '已存在',
'settings.providers.ccSwitch.duplicateHint': '与已有服务商「{name}」重复。',
'settings.providers.ccSwitch.appTypeClaude': 'Claude Code',
'settings.providers.ccSwitch.appTypeClaudeDesktop': 'Claude Desktop',
'settings.providers.ccSwitch.skipNoBaseUrl': '无法导入:没有接口地址。',
'settings.providers.ccSwitch.skipNoApiKey': '无法导入:没有保存 API 密钥。',
'settings.providers.ccSwitch.skipNoModel': '无法导入:没有配置模型。',
'settings.providers.ccSwitch.skipUnsupportedFormat': '无法导入:不支持的 API 格式。',
'settings.providers.ccSwitch.skipFullUrlEndpoint': '无法导入:Base URL 是完整端点,暂不支持。',
'settings.providers.ccSwitch.skipUnknown': '该服务商无法导入。',
'settings.providers.ccSwitch.importAction': '导入 ({count})',
'settings.providers.ccSwitch.scanFailed': '读取 cc-switch 配置失败。',
'settings.providers.ccSwitch.importFailed': '导入失败。',
'settings.providers.ccSwitch.importedSummary': '已导入 {imported} 个,跳过 {skipped} 个。',
// Settings > Permissions
'settings.permissions.title': '权限模式',
'settings.permissions.description': '控制工具执行权限的处理方式。',
'settings.permissions.default': '询问权限',
'settings.permissions.defaultDesc': '执行工具前先询问',
'settings.permissions.acceptEdits': '接受编辑',
'settings.permissions.acceptEditsDesc': '自动批准文件编辑,其他操作仍询问',
'settings.permissions.plan': '计划模式',
'settings.permissions.planDesc': '仅思考和规划,不执行操作',
'settings.permissions.bypass': '跳过全部',
'settings.permissions.bypassDesc': '跳过所有权限检查(危险)',
// Settings > Adapters
'settings.tab.adapters': 'IM 接入',
'settings.adapters.description': '配置即时通讯适配器,通过 Telegram、飞书、微信、钉钉、WhatsApp、企业微信、QQ 或 Slack 与 Claude Code 对话。首次配置请参考',
'settings.adapters.configurationDocs': '文档地址',
'settings.adapters.descriptionAfterDocs': '。',
'settings.adapters.imTabs': '即时通讯适配器',
'settings.adapters.telegram': 'Telegram',
'settings.adapters.feishu': '飞书',
'settings.adapters.wechat': '微信',
'settings.adapters.dingtalk': '钉钉',
'settings.adapters.whatsapp': 'WhatsApp',
'settings.adapters.botToken': 'Bot Token',
'settings.adapters.botTokenPlaceholder': '粘贴从 @BotFather 获取的 Token',
'settings.adapters.appId': 'App ID',
'settings.adapters.appIdPlaceholder': '如 cli_xxx',
'settings.adapters.appSecret': 'App Secret',
'settings.adapters.appSecretPlaceholder': '从飞书开放平台获取',
'settings.adapters.feishuCreateBotTitle': '还没有飞书机器人?',
'settings.adapters.feishuCreateBotDesc': '使用文档中的官方 OpenClaw 模板,一键创建已预配权限的飞书机器人。创建后把 App ID 和 App Secret 填到下方。',
'settings.adapters.feishuCreateBotAction': '一键创建飞书机器人',
'settings.adapters.feishuCreateBotStepCreate': '点击模板创建机器人。',
'settings.adapters.feishuCreateBotStepFill': '复制 App ID 和 App Secret,回到这里填写。',
'settings.adapters.encryptKey': 'Encrypt Key',
'settings.adapters.encryptKeyPlaceholder': '可选',
'settings.adapters.verificationToken': 'Verification Token',
'settings.adapters.verificationTokenPlaceholder': '可选',
'settings.adapters.allowedUsers': '允许的用户',
'settings.adapters.allowedUsersHint': '逗号分隔。留空则只允许已配对用户。',
'settings.adapters.tgAllowedUsersPlaceholder': '如 123456789, 987654321',
'settings.adapters.fsAllowedUsersPlaceholder': '如 ou_xxx, ou_yyy',
'settings.adapters.wcAllowedUsersPlaceholder': '如 wx_user_id_1, wx_user_id_2',
'settings.adapters.dtAllowedUsersPlaceholder': '如 manager001, staff_yyy',
'settings.adapters.waAllowedUsersPlaceholder': '如 15551234567@s.whatsapp.net',
'settings.adapters.defaultProject': '默认项目',
'settings.adapters.defaultProjectHint': '新 IM 会话的默认工作目录。留空则使用当前用户工作目录。',
'settings.adapters.clearDefaultProject': '清空默认项目',
'settings.adapters.allowedRoots': '允许访问的项目目录',
'settings.adapters.allowedRootsHint': 'IM 机器人的访问边界:只能列出、打开并在这些目录内的项目里开会话。留空则使用默认值。',
'settings.adapters.allowedRootsOverridden': '{platforms} 在 adapters.json 里单独配置了目录,这里的改动对 {platforms} 不生效。',
'settings.adapters.allowedRootsDefault': '默认:你的主目录(如果「默认项目」在主目录之外,也一并包含)。',
'settings.adapters.removeAllowedRoot': '移除',
'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': '在任意已接入平台的私聊里把这枚配对码发给 Bot。飞书、微信、钉钉、WhatsApp、企业微信和 QQ 需要先完成扫码绑定。',
'settings.adapters.pairedUsers': '已配对用户',
'settings.adapters.noPairedUsers': '暂无已配对用户',
'settings.adapters.unbind': '解绑',
'settings.adapters.unbindConfirm': '确定要解绑该用户吗?解绑后需重新配对才能使用。',
'settings.adapters.platform.telegram': 'Telegram',
'settings.adapters.platform.feishu': '飞书',
'settings.adapters.platform.wechat': '微信',
'settings.adapters.platform.dingtalk': '钉钉',
'settings.adapters.platform.whatsapp': 'WhatsApp',
'settings.adapters.dingtalkQrTitle': '扫码绑定钉钉机器人',
'settings.adapters.dingtalkQrDesc': '使用钉钉手机 App 扫码,一键创建并授权机器人。成功后会自动保存 Client ID / Secret 并重启适配器。',
'settings.adapters.dingtalkStartAuth': '扫码绑定',
'settings.adapters.dingtalkUnbindBot': '解除机器人绑定',
'settings.adapters.dingtalkQrAlt': '钉钉授权二维码',
'settings.adapters.dingtalkWaiting': '等待钉钉扫码确认...',
'settings.adapters.dingtalkBound': '钉钉机器人已绑定。',
'settings.adapters.dingtalkAuthFailed': '钉钉扫码授权失败。',
'settings.adapters.dingtalkAuthExpired': '钉钉扫码授权已过期,请重新生成二维码。',
'settings.adapters.dingtalkUnbindFailed': '钉钉解绑失败。',
'settings.adapters.dingtalkUnbindBotConfirm': '确定解除这个钉钉机器人绑定吗?解除后需要重新扫码,钉钉才能继续收发消息。',
'settings.adapters.dingtalkClientId': 'Client ID',
'settings.adapters.dingtalkClientIdPlaceholder': '扫码后自动填写,也可手动输入',
'settings.adapters.dingtalkClientSecret': 'Client Secret',
'settings.adapters.dingtalkClientSecretPlaceholder': '扫码后自动填写,也可手动输入',
'settings.adapters.dingtalkEndpoint': 'Stream Endpoint',
'settings.adapters.dingtalkEndpointPlaceholder': '默认 https://api.dingtalk.com',
'settings.adapters.dingtalkPermissionCardTemplateId': '权限卡片模板 ID',
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '可选,互动卡片模板 ID',
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '填写后权限请求会优先发送钉钉互动卡片;留空则使用 /allow、/always、/deny 文本授权。',
'settings.adapters.wechatBind': '扫码绑定',
'settings.adapters.wechatRebind': '重新扫码',
'settings.adapters.wechatConnected': '微信已绑定',
'settings.adapters.wechatNotConnected': '微信未绑定',
'settings.adapters.wechatQrHint': '生成二维码后使用微信扫码并确认,绑定完成后适配器会自动重启。',
'settings.adapters.wechatQrAlt': '微信绑定二维码',
'settings.adapters.wechatWaiting': '等待微信扫码确认...',
'settings.adapters.wechatBindSuccess': '微信绑定成功。',
'settings.adapters.wechatUnbindAccount': '解除微信绑定',
'settings.adapters.wechatUnbindAccountConfirm': '确定解除这个微信账号绑定吗?解除后需要重新扫码,微信才能继续收发消息。',
'settings.adapters.wechatUnbound': '微信绑定已解除。',
'settings.adapters.wechatUnbindFailed': '微信解绑失败。',
'settings.adapters.wechatAllowedUsersHint': '微信扫码只绑定账号能力;用户仍需发送配对码,或在这里额外填写允许的微信用户 ID。',
'settings.adapters.whatsappBind': '扫码绑定',
'settings.adapters.whatsappRebind': '重新扫码',
'settings.adapters.whatsappConnected': 'WhatsApp 已绑定',
'settings.adapters.whatsappNotConnected': 'WhatsApp 未绑定',
'settings.adapters.whatsappQrHint': '生成二维码后,在 WhatsApp 的「已关联设备」中扫码确认。绑定完成后适配器会自动重启。',
'settings.adapters.whatsappQrAlt': 'WhatsApp 绑定二维码',
'settings.adapters.whatsappWaiting': '等待 WhatsApp 扫码确认...',
'settings.adapters.whatsappBindSuccess': 'WhatsApp 绑定成功。',
'settings.adapters.whatsappBindFailed': 'WhatsApp 绑定失败。',
'settings.adapters.whatsappUnbindAccount': '解除 WhatsApp 绑定',
'settings.adapters.whatsappUnbindAccountConfirm': '确定解除这个 WhatsApp 账号绑定吗?解除后需要重新扫码,WhatsApp 才能继续收发消息。',
'settings.adapters.whatsappUnbound': 'WhatsApp 绑定已解除。',
'settings.adapters.whatsappUnbindFailed': 'WhatsApp 解绑失败。',
'settings.adapters.whatsappAllowedUsersHint': 'WhatsApp 扫码只绑定 Web 账号能力;用户仍需发送配对码,或在这里额外填写允许的 WhatsApp JID。',
// Settings > IM 接入 —— 飞书扫码建机器人、企业微信、QQ、Slack
'settings.adapters.wecom': '企业微信',
'settings.adapters.qq': 'QQ',
'settings.adapters.slack': 'Slack',
'settings.adapters.platform.wecom': '企业微信',
'settings.adapters.platform.qq': 'QQ',
'settings.adapters.platform.slack': 'Slack',
'settings.adapters.feishuQrTitle': '扫码创建飞书机器人',
'settings.adapters.feishuQrDesc': '用飞书手机 App 扫码,确认后自动创建机器人并写入 App ID / App Secret,无需去开放平台手动配置。',
'settings.adapters.feishuStartAuth': '扫码创建',
'settings.adapters.feishuRebind': '重新扫码',
'settings.adapters.feishuUnbindApp': '解除机器人绑定',
'settings.adapters.feishuUnbindAppConfirm': '确定解除这个飞书机器人绑定吗?解除后需要重新扫码或手动填写凭据,飞书才能继续收发消息。',
'settings.adapters.feishuQrAlt': '飞书授权二维码',
'settings.adapters.feishuWaiting': '等待飞书扫码确认...',
'settings.adapters.feishuBindSuccess': '飞书机器人已创建并绑定。',
'settings.adapters.feishuAuthFailed': '飞书扫码授权失败。',
'settings.adapters.feishuUnbound': '飞书绑定已解除。',
'settings.adapters.feishuUnbindFailed': '飞书解绑失败。',
'settings.adapters.wecomQrTitle': '扫码创建企业微信机器人',
'settings.adapters.wecomQrDesc': '用企业微信扫码创建智能机器人,成功后自动保存 Bot ID / Secret 并重启适配器。',
'settings.adapters.wecomBind': '扫码绑定',
'settings.adapters.wecomRebind': '重新扫码',
'settings.adapters.wecomUnbindBot': '解除机器人绑定',
'settings.adapters.wecomUnbindBotConfirm': '确定解除这个企业微信机器人绑定吗?解除后需要重新扫码,企业微信才能继续收发消息。',
'settings.adapters.wecomQrAlt': '企业微信授权二维码',
'settings.adapters.wecomWaiting': '等待企业微信扫码确认...',
'settings.adapters.wecomBindSuccess': '企业微信机器人已绑定。',
'settings.adapters.wecomBindFailed': '企业微信绑定失败。',
'settings.adapters.wecomUnbound': '企业微信绑定已解除。',
'settings.adapters.wecomUnbindFailed': '企业微信解绑失败。',
'settings.adapters.wecomAllowedUsersPlaceholder': '如 zhangsan, lisi',
'settings.adapters.wecomAllowedUsersHint': '填企业微信 userid,逗号分隔。留空则只允许已配对用户。',
'settings.adapters.qqQrTitle': '扫码创建 QQ 机器人',
'settings.adapters.qqQrDesc': '用手机 QQ 扫码授权,成功后自动保存 AppID / AppSecret 并重启适配器。',
'settings.adapters.qqBind': '扫码绑定',
'settings.adapters.qqRebind': '重新扫码',
'settings.adapters.qqUnbindBot': '解除机器人绑定',
'settings.adapters.qqUnbindBotConfirm': '确定解除这个 QQ 机器人绑定吗?解除后需要重新扫码,QQ 才能继续收发消息。',
'settings.adapters.qqQrAlt': 'QQ 授权二维码',
'settings.adapters.qqWaiting': '等待 QQ 扫码确认...',
'settings.adapters.qqBindSuccess': 'QQ 机器人已绑定。',
'settings.adapters.qqBindFailed': 'QQ 绑定失败。',
'settings.adapters.qqUnbound': 'QQ 绑定已解除。',
'settings.adapters.qqUnbindFailed': 'QQ 解绑失败。',
'settings.adapters.qqAllowedUsersPlaceholder': '如 A1B2C3D4E5F6',
'settings.adapters.qqAllowedUsersHint': '填 QQ 用户 openid,逗号分隔。留空则只允许已配对用户。',
'settings.adapters.slackCreateAppTitle': '创建 Slack 应用',
'settings.adapters.slackCreateAppDesc': 'Slack 没有扫码流程,改用应用清单:点下面的按钮会打开已预填权限和 Socket Mode 的创建页。',
'settings.adapters.slackCreateAppAction': '用清单创建应用',
'settings.adapters.slackStepCreate': '打开创建页,确认清单后创建应用。',
'settings.adapters.slackStepInstall': '把应用安装到工作区,拿到 Bot Token(xoxb- 开头)。',
'settings.adapters.slackStepTokens': '在 Basic Information 里生成 App-Level Token(xapp- 开头,勾选 connections:write),一起填到下方。',
'settings.adapters.slackManifestToggle': '查看应用清单 JSON',
'settings.adapters.slackManifestFailed': '无法获取 Slack 应用清单。',
'settings.adapters.slackBotToken': 'Bot Token',
'settings.adapters.slackBotTokenPlaceholder': 'xoxb- 开头',
'settings.adapters.slackAppToken': 'App-Level Token',
'settings.adapters.slackAppTokenPlaceholder': 'xapp- 开头,需要 connections:write',
'settings.adapters.slackAllowedUsersPlaceholder': '如 U01ABCDEF, U02GHIJKL',
'settings.adapters.slackUnbindApp': '解除 Slack 绑定',
'settings.adapters.slackUnbound': 'Slack 绑定已解除。',
'settings.adapters.slackUnbindFailed': 'Slack 解绑失败。',
'settings.adapters.slackUnbindAppConfirm': '确定解除这个 Slack 应用绑定吗?解除后需要重新填写 Token,Slack 才能继续收发消息。',
// Settings > MCP
'settings.mcp.title': 'MCP 服务',
'settings.mcp.description': '在桌面端直接管理外部工具与数据源。Local、Project、User 三种范围与 CLI 保持一致。',
'settings.mcp.addServer': '添加服务',
'settings.mcp.openServer': '打开 {name}',
'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.status.configured': '已配置',
'settings.mcp.status.configuredElsewhere': '当前聊天未加载;请在这个项目中打开聊天后使用。',
'settings.mcp.scope.project': '项目共享',
'settings.mcp.scope.local': '项目私有',
'settings.mcp.scope.user': '全局用户',
'settings.mcp.scope.plugin': '插件',
'settings.mcp.scopeDesc.local': '只对你自己生效,但绑定到某一个项目。配置写在用户配置里,同时带上选中的项目上下文。',
'settings.mcp.scopeDesc.project': '写入选中项目的 `.mcp.json`,项目成员共享。',
'settings.mcp.scopeDesc.user': '写入你的全局 Claude 配置,对所有项目生效。',
'settings.mcp.scope.dynamic': '内置',
'settings.mcp.scope.enterprise': '企业托管',
'settings.mcp.scope.claudeai': 'Claude.ai',
'settings.mcp.scope.managed': '受管控',
'settings.mcp.transport.http': 'Streamable HTTP',
'settings.mcp.globalOnlyHint': '选择项目私有、项目共享或全局用户范围。',
'settings.mcp.currentProjectHint': '当前项目:{path}',
'settings.mcp.form.back': '返回服务列表',
'settings.mcp.form.createTitle': '连接自定义 MCP',
'settings.mcp.form.createHint': '按当前 Claude Code 支持的字段添加一个自定义 MCP 服务。',
'settings.mcp.form.editTitle': '配置 {name} MCP',
'settings.mcp.form.editHint': '查看连接信息、保存修改,或直接在桌面端重连这个服务。',
'settings.mcp.form.transportLocked': '如果你想切换 MCP 服务类型,请先卸载后重新添加。',
'settings.mcp.form.uninstall': '卸载',
'settings.mcp.form.reconnect': '重连',
'settings.mcp.form.save': '保存',
'settings.mcp.form.name': '名称',
'settings.mcp.form.namePlaceholder': 'MCP 服务名称',
'settings.mcp.form.scope': '配置范围',
'settings.mcp.form.transport': '传输方式',
'settings.mcp.form.status': '状态',
'settings.mcp.form.location': '配置位置',
'settings.mcp.form.rawConfig': '原始配置',
'settings.mcp.form.command': '启动命令',
'settings.mcp.form.commandPlaceholder': 'npx',
'settings.mcp.form.commandHostHint': 'STDIO MCP 命令会直接在宿主机上运行。像 Node.js、Python、Bun、uv 这类运行时需要用户自己安装,并确保这个命令在 PATH 里可用。',
'settings.mcp.form.arguments': '参数',
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
'settings.mcp.form.addArgument': '添加参数',
'settings.mcp.form.environmentVariables': '环境变量',
'settings.mcp.form.addEnv': '添加环境变量',
'settings.mcp.form.keyPlaceholder': '键',
'settings.mcp.form.valuePlaceholder': '值',
'settings.mcp.form.url': 'URL',
'settings.mcp.form.sseUrl': 'SSE 地址',
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
'settings.mcp.form.headers': '请求头',
'settings.mcp.form.addHeader': '添加请求头',
'settings.mcp.form.oauthClientId': 'OAuth Client ID',
'settings.mcp.form.oauthClientIdPlaceholder': '可选 Client ID',
'settings.mcp.form.oauthCallbackPort': 'OAuth 回调端口',
'settings.mcp.form.oauthCallbackPortPlaceholder': '可选固定回调端口',
'settings.mcp.form.headersHelper': 'Headers Helper 脚本',
'settings.mcp.form.headersHelperPlaceholder': '可选的辅助脚本路径',
'settings.mcp.form.deleteTitle': '删除 MCP 服务',
'settings.mcp.form.cancel': '取消',
'settings.mcp.form.confirmDelete': '删除',
'settings.mcp.form.deleteConfirm': '确定删除 MCP 服务 “{name}” 吗?此操作不可撤销。',
'settings.mcp.form.deleteConfirmBody': '确定删除 MCP 服务 “{name}” 吗?此操作不可撤销。',
'settings.mcp.targetProject.title': '目标项目',
'settings.mcp.targetProject.selected': '当前展示的是这个项目下的私有/共享 MCP:{path}',
'settings.mcp.targetProject.empty': '先选择一个项目,才能查看项目私有或项目共享的 MCP。',
'settings.mcp.targetProject.emptyWithCurrent': '请先选择目标项目。当前激活会话的项目是:{path}',
'settings.mcp.targetProject.localSelected': '这个 MCP 会作为“项目私有”安装到:{path}',
'settings.mcp.targetProject.localEmpty': '请选择要安装这个私有 MCP 的项目。',
'settings.mcp.targetProject.projectSelected': '这个 MCP 会写入:{path}/.mcp.json,作为项目共享配置。',
'settings.mcp.targetProject.projectEmpty': '请选择要写入 `.mcp.json` 的项目。',
'settings.mcp.targetProject.globalTitle': '全局安装目标',
'settings.mcp.targetProject.globalHint': '全局用户不需要选择项目。它会写入你的全局 Claude 配置,并对所有项目生效。',
'settings.mcp.toast.created': '已创建 MCP 服务 “{name}”',
'settings.mcp.toast.saved': '已保存 MCP 服务 “{name}”',
'settings.mcp.toast.deleted': '已删除 MCP 服务 “{name}”',
'settings.mcp.toast.enabled': '已启用 MCP 服务 “{name}”',
'settings.mcp.toast.disabled': '已禁用 MCP 服务 “{name}”',
'settings.mcp.toast.reconnected': '已重连 MCP 服务 “{name}”',
'settings.mcp.toast.saveFailed': '保存 MCP 服务失败',
'settings.mcp.toast.deleteFailed': '删除 MCP 服务失败',
'settings.mcp.toast.toggleFailed': '更新 MCP 服务状态失败',
'settings.mcp.toast.reconnectFailed': '重连 MCP 服务失败',
'settings.mcp.toast.syncFailed': '聊天同步失败:{error}',
'settings.mcp.toast.syncNotRunning': '当前聊天未运行;设置将在聊天启动时应用。',
'settings.mcp.toast.syncDifferentProject': '当前聊天属于其他项目,其工具未更新。',
'settings.mcp.toast.syncNoSession': '未选择聊天;设置已保存。',
'settings.mcp.toast.syncUnconfirmed': '尚未确认当前聊天同步成功。',
// Settings > Agents
'settings.tab.agents': 'Agents',
'settings.agents.title': '已安装的 Agents',
'settings.agents.loadError': '加载 Agent 失败',
'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.refreshWarning': '更改已保存,但最新 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.disabledTools': '禁用全部工具',
'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.agents.create': '创建 Agent',
'settings.agents.createTitle': '创建 Agent',
'settings.agents.edit': '编辑',
'settings.agents.editTitle': '编辑 Agent',
'settings.agents.delete': '删除',
'settings.agents.readOnly': '只读',
'settings.agents.deleteTitle': '删除 Agent',
'settings.agents.deleteBody': '确定删除 Agent“{name}”吗?此操作不可撤销。',
'settings.agents.deleteTarget': '文件:{target}',
'settings.agents.deleteConfirm': '删除 Agent',
'settings.agents.deleteError': '删除 Agent 失败',
'settings.agents.detail.configuredModel': '配置模型',
'settings.agents.detail.configuredEffort': '配置的思考强度',
'settings.agents.detail.effortHint': '如果所选模型不支持,运行时可能降低或忽略此配置。',
'settings.agents.detail.inherit': '继承',
'settings.agents.form.scope': '配置范围',
'settings.agents.form.scopeUser': '用户',
'settings.agents.form.scopeProject': '项目',
'settings.agents.form.projectUnavailable': '请先打开一个项目会话,再创建项目级 Agent。',
'settings.agents.form.projectTarget': '目标项目:{path}',
'settings.agents.form.name': '名称',
'settings.agents.form.namePlaceholder': 'code-reviewer',
'settings.agents.form.nameError': '请输入 1–64 位小写字母、数字、连字符或下划线,并以字母或数字开头和结尾。',
'settings.agents.form.description': '描述',
'settings.agents.form.descriptionPlaceholder': '说明主 Agent 应在什么场景下委派给它。',
'settings.agents.form.descriptionRequired': '请输入描述。',
'settings.agents.form.systemPrompt': '系统提示词',
'settings.agents.form.systemPromptPlaceholder': '定义这个 Agent 的职责、边界和预期输出。',
'settings.agents.form.systemPromptRequired': '请输入系统提示词。',
'settings.agents.form.model': '模型',
'settings.agents.form.modelDefaultDescription': '使用此 Claude Code 版本随附的默认模型。',
'settings.agents.form.modelInheritDescription': '与主会话使用相同模型。',
'settings.agents.form.modelAliasDescription': 'CLI 模型别名,会映射到当前 Provider 对应的模型。',
'settings.agents.form.modelUnavailableDescription': '已保存的模型 ID;当前 Provider 未列出此模型。',
'settings.agents.form.modelProviderHint': 'Agent 配置只保存模型 ID,不绑定 Provider;运行时使用会话当前的 Provider。',
'settings.agents.form.effort': '思考强度',
'settings.agents.form.inherit': '继承主 Agent',
'settings.agents.form.tools': '工具',
'settings.agents.form.toolsInherit': '全部工具',
'settings.agents.form.toolsNone': '不允许使用工具',
'settings.agents.form.toolsCustom': '自定义列表',
'settings.agents.form.toolsCustomLabel': '其他工具名称或权限规则',
'settings.agents.form.toolsPlaceholder': 'mcp__docs__search, Bash(git:*)',
'settings.agents.form.toolsHint': '选择这个 Agent 需要的内置工具;自定义工具和 MCP 工具可在下方补充。',
'settings.agents.form.builtInTools': '内置工具',
'settings.agents.form.builtInToolsHint': '以下工具在当前运行环境可用,请只授予 Agent 必需的能力。',
'settings.agents.form.toolsSelectedCount': '已选 {count} 项',
'settings.agents.form.toolsSearch': '搜索工具',
'settings.agents.form.toolsSearchPlaceholder': '按名称或用途搜索',
'settings.agents.form.toolsNoResults': '没有匹配的工具',
'settings.agents.form.toolsUnavailable': '暂时无法获取内置工具列表,你仍可在下方输入准确的工具名称。',
'settings.agents.form.toolsCustomHint': '可选。用于 MCP 工具、自定义工具或 Bash(git:*) 这样的权限规则。',
'settings.agents.form.toolCategory.readSearch': '读取与搜索',
'settings.agents.form.toolCategory.modify': '修改文件',
'settings.agents.form.toolCategory.execute': '执行命令',
'settings.agents.form.toolCategory.workflow': '工作流',
'settings.agents.form.toolCategory.other': '其他',
'settings.agents.form.toolDescription.Read': '读取文件和目录',
'settings.agents.form.toolDescription.Glob': '按名称或路径规则查找文件',
'settings.agents.form.toolDescription.Grep': '按文本或规则搜索文件内容',
'settings.agents.form.toolDescription.WebFetch': '读取网页内容',
'settings.agents.form.toolDescription.WebSearch': '搜索互联网',
'settings.agents.form.toolDescription.Edit': '精确修改已有文件',
'settings.agents.form.toolDescription.Write': '创建或覆盖文件',
'settings.agents.form.toolDescription.NotebookEdit': '编辑 Jupyter Notebook 单元格',
'settings.agents.form.toolDescription.Bash': '在 Unix Shell 中执行终端命令',
'settings.agents.form.toolDescription.PowerShell': '执行 Windows PowerShell 命令',
'settings.agents.form.toolDescription.TodoWrite': '维护任务清单',
'settings.agents.form.toolDescription.Skill': '加载已安装的 Skill 工作流',
'settings.agents.form.toolDescription.ToolSearch': '按能力查找延迟加载的工具',
'settings.agents.form.toolDescription.EnterWorktree': '创建并进入隔离的 Git Worktree',
'settings.agents.form.toolDescription.ExitWorktree': '退出并清理 Agent Worktree',
'settings.agents.form.toolDescription.StructuredOutput': '返回经过 Schema 校验的结构化数据',
'settings.agents.form.toolDescription.generic': '使用这项内置运行能力',
'settings.agents.form.toolsInheritHint': '不写入 tools 字段,因此这个 Agent 可以使用全部工具。',
'settings.agents.form.toolsNoneHint': '写入空的 tools 列表,因此这个 Agent 不能使用任何工具。',
'settings.agents.form.toolsCustomRequired': '请至少选择或输入一个允许使用的工具。',
'settings.agents.form.color': '颜色',
'settings.agents.form.noColor': '默认',
'settings.agents.form.saveError': '保存 Agent 失败',
'settings.agents.rowEdit': '编辑 {name}',
'settings.agents.rowDelete': '删除 {name}',
'settings.agents.rowOverride': '调整 {name} 的模型和思考强度',
'settings.agents.override': '调整模型',
'settings.agents.overrideTitle': '调整内置 Agent',
'settings.agents.overrideHint': '只能修改模型和思考强度。系统提示词、工具和颜色由 Claude Code 固定。',
'settings.agents.overrideScopeHint': '保存到用户设置(~/.claude/settings.json),对所有项目生效。',
'settings.agents.overrideDefault': '内置默认({value})',
'settings.agents.overrideDefaultNone': '内置默认',
'settings.agents.overrideReset': '恢复内置默认',
'settings.agents.overrideBadge': '已覆盖',
'settings.agents.overrideManaged': '由{source}设置指定,无法在此修改。',
'settings.agents.overrideShadowed': '当前生效的是{source}的同名 Agent,此处的修改暂不会生效。',
'settings.agents.overrideSaveError': '保存覆盖失败',
'settings.agents.overrideResetError': '恢复默认失败',
// Settings > Skills
'settings.skills.title': '已安装技能',
'settings.skills.description': '技能扩展 Claude 的能力。在 ~/.claude/skills/ 或 ~/.agents/skills/ 中管理技能。',
'settings.skills.redirectDescription': '技能现在统一放在技能中心管理,市场和已安装技能会放在同一个入口里。',
'settings.skills.browserTitle': '浏览已安装技能',
'settings.skills.browserEyebrow': '技能浏览器',
'settings.skills.browserDescription': '查看内置、项目和用户技能,比较它们的来源与规模,并打开技能目录阅读文档和源码文件。',
'settings.skills.searchLabel': '搜索技能',
'settings.skills.searchPlaceholder': '搜索技能名称、描述或来源...',
'settings.skills.searchResultCount': '匹配 {count} / {total} 个技能',
'settings.skills.clearSearch': '清空技能搜索',
'settings.skills.noSearchResults': '没有匹配的技能',
'settings.skills.noSearchResultsHint': '换一个关键词,或清空搜索查看全部技能。',
'settings.skills.entryEyebrow': '技能入口',
'settings.skills.slashCommand': '/斜杠命令',
'settings.skills.agentsDirBadge': '.agents',
'settings.skills.agentsDirHint':
'来自 ~/.agents/skills/ 开放标准目录,与 Codex、Cursor、Gemini CLI 共享',
'settings.skills.agentsDirProjectHint':
'来自当前项目的 .agents/skills/ 目录 —— 随仓库一起分发,不是你自己安装的',
'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/ 或 ~/.agents/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.filePath': '记忆文件路径',
'settings.memory.resourceManager': '资源管理器',
'settings.memory.editor': '编辑',
'settings.memory.edit': '编辑',
'settings.memory.preview': '预览',
'settings.memory.rendered': '已渲染',
'settings.memory.emptyProjects': '还没有找到记忆项目。',
'settings.memory.emptyFiles': '还没有找到记忆文件。',
'settings.memory.selectFile': '选择一个记忆文件。',
'settings.memory.selectProject': '选择一个项目。',
'settings.memory.noFileSelected': '未选择文件',
'settings.memory.current': '当前',
'settings.memory.indexFile': '索引',
'settings.memory.missing': '目录缺失',
'settings.memory.fileCount': '{count} 个文件',
'settings.memory.unsaved': '未保存',
'settings.memory.saved': '已保存',
'settings.memory.revert': '还原',
'settings.memory.discardUnsavedConfirm': '要放弃未保存的记忆修改吗?',
'settings.memory.projectSearchPlaceholder': '按路径搜索项目...',
'settings.memory.fileSearchPlaceholder': '搜索记忆文件...',
'settings.memory.resourceSearchPlaceholder': '搜索项目或记忆文件...',
'settings.memory.noProjectMatches': '没有匹配的项目。',
'settings.memory.noFileMatches': '没有匹配的记忆文件。',
'settings.memory.clearSearch': '清空搜索',
'settings.memory.toggleFolder': '展开或折叠 {name}',
// Settings > Plugins
'settings.plugins.title': '已安装插件',
'settings.plugins.description': '查看已安装插件、运行状态,并把插件变更应用到桌面端运行时。',
'settings.plugins.browserTitle': '浏览已安装插件',
'settings.plugins.browserEyebrow': '插件管理',
'settings.plugins.browserDescription': '插件会把技能、Agent、Hook、MCP 服务和语言工具打包在一起。这里先聚焦已安装插件、健康状态和应用变更反馈,不把 CLI 的整套复杂交互直接搬过来。',
'settings.plugins.entryEyebrow': '插件详情',
'settings.plugins.summary.total': '插件总数',
'settings.plugins.summary.enabled': '已启用',
'settings.plugins.summary.attention': '需关注',
'settings.plugins.summary.marketplaces': '市场',
'settings.plugins.summary.skills': '技能',
'settings.plugins.summary.agents': 'Agents',
'settings.plugins.summary.mcp': 'MCP',
'settings.plugins.summary.hooks': 'Hooks',
'settings.plugins.group.attention': '需关注',
'settings.plugins.group.enabled': '已启用',
'settings.plugins.group.disabled': '已禁用',
'settings.plugins.groupHint': '此分组下共有 {count} 个插件',
'settings.plugins.refresh': '刷新',
'settings.plugins.apply': '应用变更',
'settings.plugins.applyHint': '启用、禁用或更新后,需要把插件变更重新应用到当前桌面端运行时。',
'settings.plugins.lastReload': '最近一次应用:{enabled} 个活跃插件,{skills} 个插件技能,{errors} 个错误。',
'settings.plugins.reloadToast': '插件变更已应用:{enabled} 个活跃插件,{skills} 个技能,{errors} 个错误。',
'settings.plugins.reloadWarning': '插件变更已应用,但运行时重载失败:{message}',
'settings.plugins.marketplacesTitle': '已知插件市场',
'settings.plugins.marketplacesHint': '这里只展示当前机器已经配置好的 marketplace 来源摘要。',
'settings.plugins.marketplaceAutoUpdateOn': '自动更新开',
'settings.plugins.marketplaceAutoUpdateOff': '自动更新关',
'settings.plugins.marketplaceInstalledCount': '已安装 {count} 个',
'settings.plugins.marketplaceUpdatedAt': '更新于 {value}',
'settings.plugins.status.enabled': '已启用',
'settings.plugins.status.disabled': '已禁用',
'settings.plugins.status.attention': '需关注',
'settings.plugins.scope.user': '用户',
'settings.plugins.scope.project': '项目',
'settings.plugins.scope.local': '本地',
'settings.plugins.scope.managed': '托管',
'settings.plugins.scope.builtin': '内置',
'settings.plugins.empty': '暂无已安装插件',
'settings.plugins.emptyHint': '先在 Claude Code 里安装插件,桌面端就可以在这里管理。',
'settings.plugins.back': '返回列表',
'settings.plugins.noDescription': '这个插件没有可用描述。',
'settings.plugins.errorCount': '{count} 个错误',
'settings.plugins.enable': '启用',
'settings.plugins.disable': '禁用',
'settings.plugins.update': '更新',
'settings.plugins.uninstall': '卸载',
'settings.plugins.confirmUninstall': '确定卸载插件“{name}”吗?会删除当前 scope 下的安装副本。',
'settings.plugins.selectionCount': '已选择 {count} 个',
'settings.plugins.clearSelection': '清除',
'settings.plugins.enableSelected': '启用所选',
'settings.plugins.disableSelected': '禁用所选',
'settings.plugins.selectPlugin': '选择 {name}',
'settings.plugins.bulkEnableTitle': '启用已选择的 {count} 个插件?',
'settings.plugins.bulkDisableTitle': '禁用已选择的 {count} 个插件?',
'settings.plugins.bulkEnableBody': '将启用 {names},并把插件变更应用到当前桌面端运行时。',
'settings.plugins.bulkDisableBody': '将禁用 {names},并把插件变更应用到当前桌面端运行时。',
'settings.plugins.bulkEnableToast': '已启用 {count} 个插件,并应用插件变更。',
'settings.plugins.bulkDisableToast': '已禁用 {count} 个插件,并应用插件变更。',
'settings.plugins.author': '作者:{value}',
'settings.plugins.projectPath': '项目:{value}',
'settings.plugins.installPath': '安装位置:{value}',
'settings.plugins.managedHint': '这个插件由策略托管,不能在桌面端修改。',
'settings.plugins.builtinHint': '内置插件支持在这里重新应用,但不开放安装和卸载操作。',
'settings.plugins.errorsTitle': '插件错误',
'settings.plugins.capabilitiesTitle': '打包能力',
'settings.plugins.capabilitiesHint': '根据插件 manifest 和运行时集成解析出的能力列表。',
'settings.plugins.sharedNavigationDisabled': '先启用插件并应用变更,才能在共享管理页中打开它的技能、Agent 或 MCP 条目。',
'settings.plugins.capabilityEmpty': '没有暴露',
'settings.plugins.capability.skills': '{count} 个技能',
'settings.plugins.capability.agents': '{count} 个 Agent',
'settings.plugins.capability.mcpServers': '{count} 个 MCP 服务',
'settings.plugins.capabilityLabel.skills': '技能',
'settings.plugins.capabilityLabel.commands': '命令',
'settings.plugins.capabilityLabel.agents': 'Agents',
'settings.plugins.capabilityLabel.hooks': 'Hooks',
'settings.plugins.capabilityLabel.mcpServers': 'MCP 服务',
'settings.plugins.capabilityLabel.lspServers': 'LSP 服务',
// Settings > About
'settings.tab.about': '关于',
'settings.about.version': '版本',
'settings.about.changelog': '更新日志',
'settings.about.repo': 'GitHub 仓库',
'settings.about.starHint': '如果这个项目对你有帮助,欢迎给个 Star',
'settings.about.feedback': '反馈问题',
'settings.about.feedbackDesc': '遇到 Bug 或使用问题,前往 GitHub Issue 提交反馈',
'settings.about.community': '加入 cc-haha 交流群',
'settings.about.communityDesc': '企业微信群,扫码即可加入,群内交流以中文为主',
'settings.about.communityHint': '使用微信或企业微信扫码加入',
'settings.about.communityQrAlt': 'cc-haha 企业微信用户群二维码',
'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.statusCheckFailed': '无法检查状态。',
'settings.computerUse.description': '允许 Claude 截屏、点击、打字并控制你的电脑。需要 Python 3,macOS 上还需要辅助功能权限。',
'settings.computerUse.enabledToggle': '启用',
'settings.computerUse.enableRiskTitle': '开启 Computer Use?',
'settings.computerUse.enableRiskSummary': 'Computer Use 会给予 Claude 较广泛的电脑控制能力。请仅在理解并接受以下风险后开启。',
'settings.computerUse.enableRiskScreen': 'Claude 可以截取屏幕画面,并可能看到屏幕上的敏感或隐私信息。',
'settings.computerUse.enableRiskActions': 'Claude 可以点击、输入、使用剪贴板和系统快捷键,也可能发送、修改或删除内容。',
'settings.computerUse.enableRiskAllApps': '开启后,Claude 可以直接控制所有受支持的应用,不再逐个请求 App 权限;产品安全限制仍然生效。',
'settings.computerUse.enableRiskStop': '你可以随时点击停止或按 Esc 中断控制,也可以在这里关闭 Computer Use。',
'settings.computerUse.enableRiskMacos': 'macOS 仍要求系统级的「辅助功能」和「屏幕录制」权限;这些系统提示与 App 授权不同。',
'settings.computerUse.enableRiskConfirm': '确认开启',
'settings.computerUse.disabledHint': 'Computer Use 已关闭。新会话不会注入 computer-use MCP,也不会把桌面控制工具暴露给 Coding Agent。',
'settings.computerUse.notSupported': 'Computer Use 仅支持 macOS 和 Windows。',
'settings.computerUse.macosUnsupportedTitle': 'Computer Use 需要 macOS {version} 或更高版本',
'settings.computerUse.macosUnsupportedDetail': '这台 Mac 当前运行 macOS {current},其他功能仍可继续使用。',
'settings.computerUse.unknownVersion': '未知版本',
'settings.computerUse.macosDetectionFailedTitle': '无法确认 macOS 系统版本',
'settings.computerUse.macosDetectionFailedDetail': 'Computer Use 暂时无法确认这台 Mac 是否满足 macOS 14.4 要求,请重新检测。',
'settings.computerUse.nativeUnavailableTitle': 'Computer Use 运行组件不可用',
'settings.computerUse.nativeUnavailableDetail': '原生运行组件缺失或准备失败。请重新安装或更新 App 后再次检测。',
'settings.computerUse.configLoadFailed': '无法读取已保存的 Computer Use 设置。',
'settings.computerUse.configSaveFailed': '无法保存 Computer Use 设置,已恢复为之前的状态。',
'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': '系统快捷键',
// Computer Use — 原生 (cu-helper) Codex 风格页面
'settings.computerUse.controlTitle': '电脑操控',
'settings.computerUse.controlSubtitle': '管理 Claude 如何使用你电脑上的其他应用程序',
'settings.computerUse.sectionControl': '控制',
'settings.computerUse.anyApp': '任意应用',
'settings.computerUse.anyAppDesc': '允许 Claude 控制你电脑上的应用',
'settings.computerUse.osPermTitle': '系统权限',
'settings.computerUse.osPermHint': '开启后,Claude 才能在你的电脑上点击、输入和截图。你的真实鼠标不会被占用。',
'settings.computerUse.openCard': '重新打开授权卡片',
'settings.computerUse.openingCard': '正在打开授权卡片…',
'settings.computerUse.openCardFailed': '无法打开授权卡片,请稍后重试。',
'settings.computerUse.permNeeded': '待授权',
'settings.computerUse.permChecking': '检测中…',
'settings.computerUse.permCheckFailed': '检测失败',
'settings.computerUse.allowedAppsTitle': '始终允许的应用',
'settings.computerUse.allowedAppsDesc': '这些应用已获授权,Claude 可直接控制,无需每次确认。',
'settings.computerUse.allowedAppsEmpty': '还没有始终允许的应用。点击「添加应用」来授权第一个。',
'settings.computerUse.addApp': '添加应用',
'settings.computerUse.addAppTitle': '选择要授权的应用',
'settings.computerUse.removeApp': '移除',
'settings.computerUse.appsPickerEmpty': '未找到可添加的应用。',
'settings.computerUse.appsPickerLoading': '正在加载已安装的应用…',
// Settings > General - Storage
'settings.general.modeSwitchTitle': '切换数据存储位置?',
'settings.general.modeSwitchConfirm': '保存并重启',
'settings.general.sessionRetentionTitle': '会话记录',
'settings.general.sessionRetentionDescription': '会话记录在本机保留多久。调小这个值会立即删除更早的记录,所以需要二次确认。',
'settings.general.sessionRetentionLabel': '会话记录保留时长',
'settings.general.sessionRetentionCurrent': '当前:{days} 天',
'settings.general.sessionRetentionCurrentOff': '当前:不保存记录',
'settings.general.sessionRetentionUnit': '天',
'settings.general.sessionRetentionHint': '默认 365 天。设为 0 将不再记录会话内容,并删除已有的全部记录。',
'settings.general.sessionRetentionRequired': '请输入天数。',
'settings.general.sessionRetentionRange': '请输入 0 到 {max} 之间的整数。',
'settings.general.sessionRetentionSave': '保存',
'settings.general.sessionRetentionSaved': '保留时长已更新,删除了 {count} 个过期会话文件。',
'settings.general.sessionRetentionSavedPartial': '保留时长已更新,删除了 {count} 个过期会话文件,另有 {errors} 个删除失败。',
'settings.general.sessionRetentionConfirmTitle': '确认修改会话记录保留时长?',
'settings.general.sessionRetentionConfirmDelete': '将永久删除 {days} 天前的会话记录,此操作不可恢复。',
'settings.general.sessionRetentionConfirmDisable': '设为 0 后将不再记录新的会话内容,并永久删除已有的全部记录,此操作不可恢复。',
'settings.general.sessionRetentionPreview': '按此设置,当前会删除 {count} 个文件。',
'settings.general.sessionRetentionPreviewUnavailable': '统计失败,仍可继续确认。',
'settings.general.sessionRetentionConfirmAction': '删除并保存',
'settings.general.storageTitle': '数据存储位置',
'settings.general.storageDescription': '低频高级设置。切换后,会话记录、Skills、MCP、插件、Provider 配置、任务和缓存都会从新的目录读取。',
'settings.general.storageSystemTitle': '使用系统目录',
'settings.general.storageSystemDescription': '使用 Claude Code 的标准用户目录:~/.claude(Windows 上是 %USERPROFILE%\\.claude)。',
'settings.general.storagePortableTitle': '使用自定义目录',
'settings.general.storagePortableDescription': '把桌面端数据写入你明确选择的文件夹。必须使用绝对路径,而且不能放在应用安装目录内。',
'settings.general.storagePortableDirLabel': '自定义数据目录',
'settings.general.storagePortableDirPlaceholder': '选择一个用于保存 cc-haha 数据的文件夹',
'settings.general.storageChooseDir': '选择目录',
'settings.general.storageChooseDirTitle': '选择自定义数据目录',
'settings.general.storageApplyPortable': '使用这个目录并重启',
'settings.general.storageActiveDir': '当前实际读取目录',
'settings.general.storageEnvironmentHint': '当前目录由 CLAUDE_CONFIG_DIR 环境变量控制。应用内切换不会覆盖这个环境变量;如需回到系统目录,请先移除启动环境里的 CLAUDE_CONFIG_DIR。',
'settings.general.storageEnvironmentSwitchBlocked': '当前由 CLAUDE_CONFIG_DIR 环境变量控制。请先移除启动环境里的 CLAUDE_CONFIG_DIR,再切回系统目录。',
'settings.general.storageRestartHint': '已保存切换请求。请重启应用,让新的数据目录生效。',
'settings.general.storageMoveHint': '切换模式不会合并两个目录。Windows 升级会先校验并救援旧应用目录旁的数据;无法确认完整恢复时,安装器会停止升级。',
'settings.general.storageNoDirError': '请先选择或填写一个自定义数据目录。',
'settings.general.storagePickerError': '无法打开目录选择器,请手动粘贴目录路径。',
'settings.general.storageRestartError': '切换已保存,但自动重启失败,请手动重启应用。',
'settings.general.storageSwitchPortableBody': '切换后,桌面端会从下面这个目录读取和写入会话、配置、Skills、MCP、插件、任务和缓存。',
'settings.general.storageSwitchDefaultBody': '切回系统目录后,桌面端会重新使用 ~/.claude。当前自定义目录中的数据不会被删除,也不会自动迁回。',
'settings.general.storageSwitchRestartBody': '应用将先关闭本地服务和适配器进程,然后自动重启。重启后新目录才会生效。',
'settings.general.migration.title': '迁移现有数据',
'settings.general.migration.description': '复制并校验当前会话、配置、Skills、插件和任务,然后切换目录并重启。原目录数据会保留。',
'settings.general.migration.choose': '迁移现有数据…',
'settings.general.migration.chooseTitle': '选择数据迁移目标目录',
'settings.general.migration.confirmTitle': '迁移数据并重启?',
'settings.general.migration.confirm': '迁移并重启',
'settings.general.migration.source': '原目录',
'settings.general.migration.target': '目标目录',
'settings.general.migration.preview': '{files} 个文件 · {size}',
'settings.general.migration.activeTasks': '将停止 {count} 个正在运行的任务。',
'settings.general.migration.stopWarning': '复制前会中断正在运行的对话和后台任务并保存当前状态,不会自动续跑。校验成功后应用会自动重启。',
'settings.general.migration.externalWarning': '请先关闭正在使用原目录的其他 Claude Code 或 cc-haha 进程。目标应为空目录,且不能位于应用安装目录内。',
'settings.general.migration.running': '正在迁移数据',
'settings.general.migration.stagePreparing': '正在准备迁移…',
'settings.general.migration.stageQuiescing': '正在停止任务并保存数据…',
'settings.general.migration.stageCopying': '正在复制数据…',
'settings.general.migration.stageVerifying': '正在校验复制的数据…',
'settings.general.migration.stageCommitting': '正在切换数据目录…',
'settings.general.migration.stageRestarting': '正在重启应用…',
'settings.general.migration.progress': '{files}/{totalFiles} 个文件 · {bytes}/{totalBytes}',
'settings.general.migration.cancel': '取消迁移',
'settings.general.migration.cancelling': '正在取消迁移…',
'settings.general.migration.completed': '数据迁移完成',
'settings.general.migration.cancelled': '迁移已取消,原数据目录未变。',
'settings.general.migration.failed': '迁移失败,已保留原数据目录。',
'settings.general.migration.retained': '原目录已保留。请确认新目录中的会话和配置正常,再手动清理原数据。',
'settings.general.migration.cli': '此操作只切换桌面端。独立启动的 CLI 仍使用原来的目录,需自行设置 CLAUDE_CONFIG_DIR 才会使用新位置。',
'settings.general.migration.openSource': '打开原目录',
'settings.general.migration.openTarget': '打开目标目录',
'settings.general.migration.environment': '请先移除启动环境中的 CLAUDE_CONFIG_DIR,再使用应用内迁移。',
'settings.general.migration.statusError': '暂时无法读取迁移进度,正在自动重连…',
'settings.general.migration.error': '数据迁移未能继续。',
// Settings > General
'settings.general.appearanceTitle': '配色主题',
'settings.general.proxyManagedSettingsWarning': '检测到用户配置仅剩 PROXY_MANAGED 代理占位信息,其他设置可能被代理工具覆盖。若这不是你的主动配置,请先关闭 CC Switch 路由接管并从备份恢复 settings.json;主动使用该配置可忽略。',
'settings.general.appearanceDescription': '在纸、墨、印六套配色之间切换。',
'settings.general.appearance.paper': '纸墨',
'settings.general.appearance.warmClassic': '经典暖色',
'settings.general.appearance.celadon': '青瓷',
'settings.general.appearance.inkBlue': '墨夜蓝',
'settings.general.appearance.dark': '墨夜',
'settings.general.appearance.white': '纯白',
'settings.general.appearance.followSystem': '跟随系统',
'settings.general.appearance.followSystemHint': '系统切到深色模式时自动换成墨色配色,切回浅色时换回纸色配色。',
'settings.general.appearance.lightThemeLabel': '浅色模式下使用',
'settings.general.appearance.darkThemeLabel': '深色模式下使用',
'settings.general.languageTitle': '语言',
'settings.general.languageDescription': '选择应用程序的显示语言。',
'settings.general.responseLangTitle': '回复语言',
'settings.general.responseLangDescription': '指定 Claude 始终以某种语言回复。',
'settings.general.responseLangDefault': '默认(英语)',
'settings.general.outputStyleTitle': '输出风格',
'settings.general.outputStyleDescription': '选择 Claude 在新会话或重启后的会话中如何表达。',
'settings.general.outputStyleBuiltin.default.label': '默认',
'settings.general.outputStyleBuiltin.default.description': 'Claude 会高效完成编码任务,并提供简洁回复',
'settings.general.outputStyleBuiltin.explanatory.label': '解释型',
'settings.general.outputStyleBuiltin.explanatory.description': 'Claude 会解释实现选择和代码库模式',
'settings.general.outputStyleBuiltin.learning.label': '学习型',
'settings.general.outputStyleBuiltin.learning.description': 'Claude 会暂停并请你编写小段代码进行实战练习',
'settings.general.outputStyleSelectLabel': '选择输出风格',
'settings.general.outputStyleLoading': '正在加载输出风格...',
'settings.general.outputStyleSaved': '输出风格已保存。',
'settings.general.outputStyleRestartHint': '正在运行的会话会继续使用当前提示词。新建会话、在新进程中继续,或重启会话后生效。',
'settings.general.outputStyleScopeLocal': '当前项目',
'settings.general.outputStyleScopeUser': '用户设置',
'settings.general.outputStyleScopeLocalHint': '已保存到当前项目的 .claude/settings.local.json。',
'settings.general.outputStyleScopeUserHint': '当前未选择项目,因此保存到用户设置。',
'settings.general.outputStyleSourceBuiltIn': '内置',
'settings.general.outputStyleSourceUser': '用户风格',
'settings.general.outputStyleSourceProject': '项目风格',
'settings.general.outputStyleSourceLocal': '项目本地风格',
'settings.general.outputStyleSourcePolicy': '受管风格',
'settings.general.outputStyleSourcePlugin': '插件风格',
'settings.general.defaultPermissionTitle': '默认会话权限',
'settings.general.defaultPermissionDescription': '选择桌面端新建聊天会话时默认使用的权限模式。',
'settings.general.defaultPermissionLabel': '新会话权限模式',
'settings.general.defaultPermissionHint': '每个会话内部仍然可以通过聊天区的权限选择器单独修改。',
'settings.general.defaultPermissionScope': '每个新会话的工作区',
'settings.general.effortTitle': '推理强度',
'settings.general.effortDescription': '选择新会话默认使用的推理强度;可选档位跟随当前模型的能力定义。',
'settings.general.effortDefaultLabel': '默认推理强度',
'settings.general.effortSelectLabel': '默认推理强度:{level}',
'settings.general.effortModelHint': '{model} 只显示其支持的档位;切换到其他模型时,会按该模型的能力自动回退。',
'settings.general.effortNoModelHint': '连接或选择模型后,即可查看它支持的推理强度。',
'settings.general.effortUnavailable': '不可调节',
'settings.general.effort.low': '低',
'settings.general.effort.medium': '中',
'settings.general.effort.high': '高',
'settings.general.effort.xhigh': '极高',
'settings.general.effort.max': '最大',
'settings.general.thinkingTitle': '思考模式',
'settings.general.thinkingDescription': '控制新会话是否启用模型思考。关闭后,DeepSeek 等兼容供应商会收到显式非思考模式参数。',
'settings.general.thinkingEnabled': '启用思考模式',
'settings.general.thinkingHint': '关闭后会以 --thinking disabled 启动新会话;适合 DeepSeek V4 Flash/Pro 等需要非思考模式的模型。',
'settings.general.defaultEditorTitle': '默认编辑器',
'settings.general.defaultEditorDescription': '文件的「打开方式」菜单里提供哪个编辑器。只列出本机已检测到的编辑器。',
'settings.general.defaultEditorAuto': '自动选择',
'settings.general.agentTeamsTitle': 'Agent Teams 智能体团队',
'settings.general.agentTeamsDescription': '让多个 Agent 分工协作,共同完成任务。',
'settings.general.agentTeamsEnabled': '启用 Agent Teams',
'settings.general.agentTeamsHint': '对新建会话生效,已有会话重启应用后生效。',
'settings.general.autoQuestionTitle': '自动回答问题',
'settings.general.autoQuestionDescription': '无人回答 AskUserQuestion 时,让会话继续执行。',
'settings.general.autoQuestionEnabled': '等待超时后自动选择答案',
'settings.general.autoQuestionHint': '优先选择明确标注的推荐项;否则让小模型从现有选项中判断。无法判断时继续等待用户。',
'settings.general.autoQuestionTimeout': '等待时长',
'settings.general.autoQuestionMinutes': '{count} 分钟',
'settings.general.autoQuestionSaveFailed': '自动回答设置保存失败。',
'settings.general.agentTeamsSaveFailed': 'Agent Teams 设置保存失败,请重试。',
'settings.general.workflowKeywordTitle': 'Ultracode',
'settings.general.workflowKeywordDescription': '控制独立出现的 Ultracode 关键词是否让当前提示词进入动态 Workflow 编排。',
'settings.general.workflowKeywordEnabled': '启用 Ultracode 关键词触发',
'settings.general.workflowKeywordHint': '可触发的关键词会在发送前高亮;代码块、引号、路径、flag 和连字符字面量保持原义。',
'settings.general.autoDreamTitle': '自动做梦',
'settings.general.autoDreamDescription': '在积累足够会话后,后台定期整理和压缩 auto-memory。',
'settings.general.autoDreamEnabled': '启用自动做梦',
'settings.general.autoDreamHintOn': '符合条件的会话结束后,桌面端可以在后台执行记忆整理。',
'settings.general.autoDreamHintOff': '默认关闭,因为它可能发起后台模型调用。',
'settings.general.autoDreamConfirmTitle': '启用自动做梦?',
'settings.general.autoDreamConfirmKeepRunning': '请保持桌面端处于启用状态,这样符合条件的会话结束后才能启动后台记忆整理。',
'settings.general.autoDreamConfirmTokenCost': '自动做梦会在审查和改写记忆文件时额外消耗模型 Token。',
'settings.general.autoDreamConfirmEnable': '启用自动做梦',
'settings.general.notificationsTitle': '系统通知',
'settings.general.notificationsDescription': '使用操作系统原生通知提醒授权确认、Agent 回复完成和定时任务结果。',
'settings.general.notificationsEnabled': '启用系统通知',
'settings.general.notificationsHintOn': '开启后会请求系统通知权限,并通过系统通知中心提醒。',
'settings.general.notificationsHintOff': '关闭后,授权确认、Agent 回复和定时任务都不会发送桌面通知。',
'settings.general.notificationsStatus': '权限',
'settings.general.notificationsStatusGranted': '已授权',
'settings.general.notificationsStatusDenied': '已被系统设置阻止',
'settings.general.notificationsStatusDefault': '尚未请求',
'settings.general.notificationsStatusUnsupported': '当前环境不可用',
'settings.general.notificationsAuthorize': '授权通知',
'settings.general.notificationsOpenSettings': '打开系统设置',
'settings.general.notificationsTestTitle': 'Claude Code Haha 通知已启用',
'settings.general.notificationsTestBody': '后续授权确认和 Agent 回复完成都会通过系统通知提醒。',
'settings.general.traceTitle': 'Agent Trace',
'settings.general.traceDescription': '收集本地会话的模型请求链路,用于排查卡住、失败和异常等待。',
'settings.general.traceEnabled': '收集 Agent Trace',
'settings.general.traceHintOn': '新会话会把精简请求、响应和状态事件写入本机 cc-haha traces 目录。在会话的「轨迹」视图中点开助手行,切到「原始请求」即可查看。',
'settings.general.traceHintOff': '关闭后不会再记录新的请求;已记录的内容仍可在会话「轨迹」视图的「原始请求」中查看。',
'settings.general.chatSendBehaviorTitle': '消息发送方式',
'settings.general.chatSendBehaviorDescription': '选择桌面端对话输入框如何发送消息。',
'settings.general.chatSendBehaviorEnter': 'Enter 发送',
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter 换行。',
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter 发送',
'settings.general.chatSendBehaviorModifierDescription': 'Enter 和 Shift+Enter 都会换行。',
'settings.general.h5AccessTitle': 'H5 访问',
'settings.general.h5AccessDescription': '在局域网内暴露桌面端 H5 应用。手机通过带 H5 token 的二维码快速连接。',
'settings.general.h5AccessEnabled': '启用 H5 访问',
'settings.general.h5AccessEnabledHint': '桌面服务会监听局域网地址,并开放桌面会话相关能力。',
'settings.general.h5AccessStatusEnabled': '已启用',
'settings.general.h5AccessTokenPreview': '令牌预览',
'settings.general.h5AccessDisabledValue': '未启用',
'settings.general.h5AccessDisable': '关闭',
'settings.general.h5AccessGenerateToken': '生成令牌',
'settings.general.h5AccessRegenerate': '重新生成令牌',
'settings.general.h5AccessGeneratedToken': '生成的令牌',
'settings.general.h5AccessGeneratedTokenHint': '仅显示一次,请立即复制并像密码一样保存。',
'settings.general.h5AccessShowToken': '显示令牌',
'settings.general.h5AccessCopy': '复制',
'settings.general.h5AccessCopyUrl': '复制 H5 链接',
'settings.general.h5AccessCopyLaunchUrl': '复制扫码链接',
'settings.general.h5AccessUrlCopied': 'H5 链接已复制。',
'settings.general.h5AccessLaunchUrlCopied': '扫码链接已复制。',
'settings.general.h5AccessHideToken': '隐藏令牌',
'settings.general.h5AccessTokenNotAvailable': '旧版本的令牌无法找回。重新生成一次后,令牌将长期保存,可随时查看。',
'settings.general.h5AccessPublicHost': '访问主机 / IP',
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
'settings.general.h5AccessCurrentPort': '当前端口',
'settings.general.h5AccessCurrentPortUnknown': '自动',
'settings.general.h5AccessFixedPort': '固定端口',
'settings.general.h5AccessFixedPortPlaceholder': '自动',
'settings.general.h5AccessFixedPortInvalid': '端口需为 1024-65535 之间且浏览器允许访问的整数。',
'settings.general.h5AccessFixedPortHint': '不设固定端口时会自动复用上次的端口;反向代理等需要稳定端口的场景建议固定。修改端口后重启应用生效。',
'settings.general.h5AccessFixedPortRestartNote': '固定端口 {fixedPort} 将在重启应用后生效,当前仍运行在 {activePort}。',
'settings.general.h5AccessDisconnectGrace': '断连保活(秒)',
'settings.general.h5AccessDisconnectGracePlaceholder': '30',
'settings.general.h5AccessDisconnectGraceInvalid': '需为 5-86400 之间的整数秒。',
'settings.general.h5AccessDisconnectGraceHint': '手机锁屏或切后台导致断连后,正在执行的任务不会被打断,会在后台跑完、重连即可看到结果;只有任务空闲且无人连接时才在此时长后停止 CLI(默认 30 秒)。出门远程操作可调大,例如 600。',
'settings.general.h5AccessPublicUrl': '公开访问 URL',
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
'settings.general.h5AccessAllowedOrigins': '允许的来源',
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
'settings.general.h5AccessOriginsHint': '每行一个来源,或使用逗号分隔多个来源。',
'settings.general.h5AccessOpenHint': '普通局域网访问只改主机 / IP,端口使用当前服务端口。反向代理可直接填完整 URL。',
'settings.general.h5AccessSave': '保存 H5 设置',
'settings.general.h5AccessUrl': 'H5 链接',
'settings.general.h5AccessQrTitle': '手机连接',
'settings.general.h5AccessQrHint': '扫码会直接打开 H5,并自动带上 token。',
'settings.general.h5AccessQrRefreshHint': '点击“生成令牌”后会创建可扫码的连接。',
'settings.general.h5AccessQrEmptyHint': '生成令牌后会在这里显示二维码。',
'settings.general.h5AccessQrAlt': 'H5 访问二维码',
'settings.general.h5AccessSafetyNote': '只在可信网络中启用。拿到二维码链接的人可以访问 H5 暴露的桌面能力。',
'settings.general.h5AccessConfirmTitle': '启用局域网 H5 访问?',
'settings.general.h5AccessConfirmBody': '这会把桌面 H5 应用暴露到局域网地址和端口。持有二维码 token 的设备可以访问桌面会话和相关控制能力。请只在可信网络中继续。',
'settings.general.h5AccessConfirmEnable': '启用 H5 访问',
'settings.general.h5AccessError': '更新 H5 设置失败。',
'settings.general.h5AccessStaleHostTitle': '当前保存的访问主机已不可达',
'settings.general.h5AccessStaleHostBody': '保存的 {storedHost} 不在本机当前的任何网卡上。手机扫码会连不上。建议切到本机当前的局域网 IP。',
'settings.general.h5AccessStaleHostNoSuggestion': '保存的 {storedHost} 不在本机当前的任何网卡上。手机扫码会连不上。请检查本机的网络连接,或改填反向代理 URL。',
'settings.general.h5AccessStaleHostApply': '切到 {suggestedHost}',
'settings.general.h5AccessProxyNote': '当前使用的是反向代理 URL,手机扫码会经公网/隧道返回桌面端。请确认你的反代仍能工作。',
'settings.general.networkTitle': '网络',
'settings.general.networkDescription': '控制桌面 AI 会话的出网行为,包括模型服务、登录鉴权、MCP 和 Agent 工具。',
'settings.general.networkProxyModeDirect': '直连',
'settings.general.networkProxyModeDirectDescription': '明确绕过系统代理和进程继承的代理。',
'settings.general.networkProxyModeSystem': '系统代理',
'settings.general.networkProxyModeSystemDescription': '按目标地址动态遵循系统代理或 PAC 规则,系统变化会自动生效;需要代理账号密码时请用手动代理。',
'settings.general.networkProxyModeManual': '手动代理',
'settings.general.networkProxyModeManualDescription': '让会话流量使用下方填写的 HTTP 或 HTTPS 代理地址。',
'settings.general.networkProxyUrl': '代理地址',
'settings.general.networkProxyUrlHint': '支持 HTTP 和 HTTPS 代理。需要认证时可填写 http://user:password@127.0.0.1:7890;该 URL 会随网络设置保存。',
'settings.general.networkProxyUrlInvalid': '请输入 HTTP 或 HTTPS 代理地址。',
'settings.general.networkProxyUrlRequired': '请输入代理地址。',
'settings.general.networkTimeout': 'AI 请求超时',
'settings.general.networkTimeoutValue': '{seconds} 秒',
'settings.general.networkTimeoutHint': '用于服务商请求、流式首个响应,以及服务商连接测试。至少 30 秒;本地模型长时间思考时,可设为 14400 秒(4 小时)或更长。调大后,单次流式回复的总时长上限同步放宽(不低于 600 秒)。',
'settings.general.networkTimeoutUnit': '秒',
'settings.general.networkTimeoutDecrease': '减少 30 秒',
'settings.general.networkTimeoutIncrease': '增加 30 秒',
'settings.general.networkTimeoutRequired': '请输入超时时间。',
'settings.general.networkTimeoutRange': '请输入 {min}-{max} 秒之间的整数。',
'settings.general.networkSaved': '网络设置已保存。',
'settings.general.networkScopeHint': '对新请求生效;已在进行中的请求保持原路由。应用更新使用独立的代理设置。',
'settings.general.networkSave': '保存',
'settings.general.webFetchPreflightTitle': 'WebFetch 预检',
'settings.general.webFetchPreflightDescription': '桌面端默认跳过 Claude 的域名预检,避免第三方服务商或受限网络下出现误报失败。',
'settings.general.webFetchPreflightEnabled': '跳过 WebFetch 域名预检',
'settings.general.webFetchPreflightHint': '只有在你明确需要恢复上游默认安全预检时,才建议关闭这个选项。',
'settings.general.webSearchTitle': 'WebSearch',
'settings.general.webSearchDescription': '配置 Agent 联网搜索在 Claude 原生、第三方供应商和本地 fallback key 之间如何选择。',
'settings.general.webSearch.mode.auto': '自动',
'settings.general.webSearch.mode.tavily': 'Tavily',
'settings.general.webSearch.mode.brave': 'Brave',
'settings.general.webSearch.mode.anthropic': 'Claude',
'settings.general.webSearch.mode.disabled': '关闭',
'settings.general.webSearchTavilyKey': 'Tavily API Key',
'settings.general.webSearchBraveKey': 'Brave Search API Key',
'settings.general.webSearchBravePlaceholder': 'Brave Search token',
'settings.general.webSearchGetApiKey': '获取 API Key',
'settings.general.webSearchTavilyApiKeyLink': '获取 Tavily API Key',
'settings.general.webSearchBraveApiKeyLink': '获取 Brave Search API Key',
'settings.general.webSearchTavilyFreeHint': '注册账号即可复制 API Key,免费额度包含 1000 Credits。',
'settings.general.webSearchBraveFreeHint': '注册账号后可创建 Search API Key,免费额度可用于测试。',
'settings.general.webSearchHint': '自动模式会对 Claude 模型名优先使用原生 WebSearch,失败或非 Claude 模型时再使用 Tavily/Brave。',
'settings.general.webSearchSave': '保存',
'settings.general.uiZoom': '界面缩放',
'settings.general.uiZoomDescription': '调整整个界面的显示大小。',
'settings.general.uiZoomShortcutHint': '快捷键更直接:',
'settings.general.uiZoomShortcutMac': 'macOS',
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
'settings.general.uiZoomShortcutResetHint': '0 表示恢复到 100%。',
'settings.general.uiZoomReset': '重置界面缩放到 100%',
// ─── Empty Session ──────────────────────────────────────
'empty.title': '新建会话',
'empty.subtitle': '开始一个新的编码会话。Claude 已准备好帮你构建、调试和设计你的项目。',
'empty.heroTitle': '今天想在 {project} 里做点什么?',
'empty.heroTitleNoProject': '今天想做点什么?',
'empty.heroSubtitle': 'Claude 可以读取项目、修改代码并运行命令。',
'empty.suggestions': '快捷建议',
'empty.suggestion.explainRepo': '解释这个仓库的结构',
'empty.suggestion.fixTests': '修复失败的测试',
'empty.suggestion.reviewChanges': '审查未提交的改动',
'empty.suggestion.newFeature': '写一个新功能',
'empty.recentTitle': '最近会话',
'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.launchLocation': '运行位置',
'repoLaunch.branch': '分支',
'repoLaunch.worktreeBadge': '独立',
'repoLaunch.missingWorkdir': '工作目录不存在。',
'repoLaunch.dirtyWarning': '检测到未提交变更,直接切换可能会被阻止;使用独立工作树可以继续,且不会改动当前目录。',
'repoLaunch.dirtyWarningCompact': '未提交改动',
'repoLaunch.checkedOutWarning': '选中的分支已在其他工作树中检出。直接启动可能会被 Git 阻止;使用“独立工作树”可以避免切换当前目录。',
'repoLaunch.checkedOutWarningCompact': '分支已被检出',
'repoLaunch.newBranch': '创建分支…',
'repoLaunch.newBranchTitle': '新建分支',
'repoLaunch.newBranchNameLabel': '分支名',
'repoLaunch.newBranchPlaceholder': 'feature/my-change',
'repoLaunch.newBranchFrom': '基于 {branch} 创建',
'repoLaunch.newBranchSubmit': '创建',
'repoLaunch.newBranchSuccessCurrent': '已创建并选中“{branch}”,会话启动时将切换到该分支。',
'repoLaunch.newBranchSuccessIsolated': '已创建并选中“{branch}”,会话启动时将基于它创建独立工作树。',
'repoLaunch.newBranchErrorInvalid': 'Git 不接受这个分支名。',
'repoLaunch.newBranchErrorExists': '同名分支已存在。',
'repoLaunch.newBranchErrorFailed': '创建分支失败。',
'repoLaunch.newBranchErrorNoCommits': '仓库还没有任何提交,无法基于它创建分支。',
// ─── Chat Input ──────────────────────────────────────
'chat.placeholder': '让 Claude 编辑、调试或解释代码...',
'chat.placeholderMissing': '此会话指向的工作目录缺失。请新建会话或选择其他项目。',
'chat.placeholderWorktreeRemoved': '此会话的临时工作区已清理。请在原项目中新建会话继续。',
'chat.placeholderQuestionPending': '请先回答上面的问题,Claude 正在等你的答复。',
'chat.addFiles': '添加文件或图片',
'chat.composerTools': '打开输入框工具',
'chat.capabilities.sectionAdd': '添加',
'chat.capabilities.sectionCapabilities': '能力',
'chat.capabilities.sectionCommands': '命令',
'chat.capabilities.searchPlaceholder': '搜索技能、插件、文件…',
'chat.capabilities.empty': '没有匹配项',
'chat.capabilities.back': '返回',
'chat.capabilities.skills': '技能',
'chat.capabilities.skillsDescription': '把技能加入当前对话',
'chat.capabilities.manageSkills': '管理技能',
'chat.capabilities.connectors': '连接器',
'chat.capabilities.connectorsDescription': '使用已连接的服务',
'chat.capabilities.manageConnectors': '管理连接器',
'chat.capabilities.agents': 'Agent',
'chat.capabilities.agentsDescription': '用指定的 Agent 执行任务',
'chat.capabilities.manageAgents': '管理 Agent',
'chat.capabilities.teams': 'Agent Teams',
'chat.capabilities.teamsDescription': '让多个 Agent 协作完成一个目标',
'chat.capabilities.teamCreate': '通过对话创建团队',
'chat.capabilities.teamCreateDescription': '描述目标,Agent 自行分工协作',
'chat.capabilities.teamCreatePrompt': '帮我创建一个 Agent 团队来完成下面的目标,请合理分工并协调各个成员:',
'chat.capabilities.teamMembers': '{count} 个成员',
'chat.capabilities.computerUse': '操作电脑',
'chat.capabilities.computerUseDescription': '让 Claude 操作本机应用',
'chat.capabilities.computerUseUnsupported': '当前平台不可用 — 打开设置',
'chat.capabilities.computerUseToggle': '开关操作电脑功能',
'chat.capabilities.workflows': '工作流',
'chat.capabilities.workflowsDescription': '运行已保存的工作流',
'chat.capabilities.saveWorkflow': '把当前会话保存为工作流',
'chat.dropFilesTitle': '松手添加文件',
'chat.dropFilesHint': '会以文件路径附加到当前输入。',
'chat.workspaceReferencesOnly': '已添加 {count} 个工作区引用',
'chat.contextReferencesOnly': '已添加 {count} 个引用',
'chat.addSelectionToChat': '添加到对话',
'chat.imageLoadFailed': '无法加载图片',
'chat.imageLoadFailedHint': '文件可能已损坏,或本地服务暂时没有响应。',
'chat.imageCountOne': '{count} 张图片',
'chat.imageCountOther': '{count} 张图片',
'chat.retryImage': '重试图片:{name}',
'chat.imageRetrying': '正在重试…',
'chat.branchFromHere': 'Fork 一个新对话',
'chat.branchSuccess': '已 Fork 新对话“{title}”。',
'chat.branchError': '从该消息 Fork 新对话失败。详情:{detail}',
'chat.userMessageReference': '用户消息',
'chat.assistantMessageReference': 'AI 回复',
'chat.conversationNavigator.label': '对话导航',
'chat.conversationNavigator.turn': '第 {current} / {total} 轮',
'chat.conversationNavigator.attachments': '{count} 个附件',
'chat.slashCommands': '斜杠命令',
'chat.slashSkillPersonal': '个人',
'chat.slashSkillProject': '项目',
'chat.slashSkillPlugin': '插件',
'chat.pendingMessageGuide': '引导',
'chat.pendingMessageGuideNow': '立即引导',
'chat.pendingMessageEdit': '编辑排队消息',
'chat.pendingMessageDelete': '删除排队消息',
'chat.pendingMessageEditInput': '排队消息文本',
'chat.goalEvent.created': '目标已设置',
'chat.goalEvent.replaced': '目标已设置',
'chat.goalEvent.statusTitle': '目标状态',
'chat.goalEvent.paused': '目标已暂停',
'chat.goalEvent.resumed': '目标已恢复',
'chat.goalEvent.completed': '目标已完成',
'chat.goalEvent.cleared': '目标已清除',
'chat.goalEvent.continuing': '目标继续执行',
'chat.goalEvent.message': '目标更新',
'chat.goalEvent.objective': '目标:{value}',
'chat.goalEvent.statusValue': '状态:{value}',
'chat.goalEvent.budget': '预算:{value}',
'chat.goalEvent.continuations': '续作次数:{value}',
'chat.compactSummary.compacting': '上下文正在压缩',
'chat.compactSummary.title': '上下文已压缩',
'chat.compactSummary.autoTitle': '上下文已自动压缩',
'chat.compactSummary.manualTitle': '上下文已手动压缩',
'chat.compactSummary.trigger.manual': '手动',
'chat.compactSummary.trigger.auto': '自动',
'chat.compactSummary.tokens': '压缩前 {count} tokens',
'chat.compactSummary.messages': '已摘要 {count} 条消息',
'chat.activeGoal.title': '当前目标',
'chat.activeGoal.running': '自循环运行中',
'chat.activeGoal.active': '进行中',
'chat.activeGoal.paused': '已暂停',
'chat.activeGoal.completed': '已完成',
'chat.activeGoal.budget': '预算 {value}',
'chat.activeGoal.continuations': '续作次数 {value}',
'chat.activeGoal.elapsed': '已用时 {value}',
'chat.backgroundAgents.title': '后台 Agent',
'chat.backgroundAgents.count': '{count} 个运行中或最近任务',
'chat.backgroundAgents.agent': 'agent',
'chat.backgroundTasks.command': '后台命令',
'chat.backgroundTasks.workflow': '后台工作流',
'chat.backgroundTasks.task': '后台任务',
'chat.backgroundTasks.type.agent': 'Agent',
'chat.backgroundTasks.type.bash': 'Bash',
'chat.backgroundTasks.type.workflow': '工作流',
'chat.backgroundTasks.type.task': '任务',
'chat.backgroundAgents.tokens': '{count} tokens',
'chat.backgroundAgents.status.running': '运行中',
'chat.backgroundAgents.status.completed': '已完成',
'chat.backgroundAgents.status.failed': '失败',
'chat.backgroundAgents.status.stopped': '已停止',
'chat.duration.seconds': '{seconds} 秒',
'chat.duration.minutesSeconds': '{minutes} 分 {seconds} 秒',
'chat.duration.hoursMinutes': '{hours} 小时 {minutes} 分',
'chat.turnCompletedAt': '完成于 {time}',
'chat.turnDuration': '耗时 {duration}',
'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.saveWorkflow.title': '保存工作流',
'slash.saveWorkflow.subtitle': '将已完成的工作流保存为可复用的斜杠命令。',
'slash.saveWorkflow.noCompletedRun': '请先在此会话中完成一个工作流,再使用 /save-workflow 保存。',
'slash.saveWorkflow.runLabel': '已完成的运行',
'slash.saveWorkflow.nameLabel': '命令名称',
'slash.saveWorkflow.namePlaceholder': '例如 release-audit',
'slash.saveWorkflow.scopeLabel': '保存范围',
'slash.saveWorkflow.scopeProject': '项目',
'slash.saveWorkflow.scopeUser': '用户',
'slash.saveWorkflow.save': '保存工作流',
'slash.saveWorkflow.loading': '正在加载工作流…',
'slash.saveWorkflow.retry': '重试',
'slash.saveWorkflow.success': '已保存为 /{name}。请新建会话并运行 /{name}。',
'slash.saveWorkflow.error': '无法保存工作流:{detail}',
'slash.saveWorkflow.invalidName': '名称只能包含字母、数字、连字符或下划线,且必须以字母或数字开头。',
'slash.saveWorkflow.reservedName': '/{name} 是桌面端保留命令,请使用其他名称。',
'slash.saveWorkflow.existingName': '/{name} 已是可用命令,请使用其他名称。',
'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.remaining': '剩余',
'contextIndicator.window': '窗口',
'contextIndicator.loading': '正在加载上下文用量...',
'contextIndicator.pendingDetail': '会话启动后计算上下文用量。',
'contextIndicator.unavailable': '不可用',
'contextIndicator.unavailableDetail': '此会话暂时无法获取上下文用量。',
'contextIndicator.updatedUnknown': '尚未刷新',
'contextIndicator.updatedNow': '刚刚更新',
'contextIndicator.updatedMinutes': '{count} 分钟前更新',
'contextIndicator.estimate': '估算',
'contextIndicator.breakdown': '构成明细',
'contextIndicator.sessionCacheHit': '缓存命中',
'contextIndicator.sessionSpeed': '生成速度',
'contextIndicator.sessionCost': '会话费用',
'contextIndicator.sessionSpeedUnit': 'tok/s',
'chat.navigate': '导航',
'chat.select': '选择',
'chat.dismiss': '关闭',
'chat.stopTitle': '停止生成 (Cmd+.)',
'chat.generationStopped': '已停止',
'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.rewindSuccessPartialCoverage': '已回滚 {count} 条消息并恢复已记录的文件;{sources} 造成的改动未被记录,仍留在磁盘上。',
'chat.conversationRewindAction': '回滚对话',
'chat.conversationRewindConfirmBody': '这会把对话回滚到这一轮之前,磁盘上的文件不会被更改。',
'chat.editMessage': '编辑并重新发送',
'chat.editMessageInputLabel': '编辑消息内容',
'chat.editMessageSend': '发送',
'chat.editMessageWaitForTurn': '这一轮结束后才能编辑。',
'chat.editMessageWaitForBackgroundTasks': '后台任务仍在运行,结束或停止后才能编辑。',
'chat.editMessageCheckingCheckpoints': '正在确认这条消息能否回滚…',
'chat.editMessageCheckpointsUnavailable': '无法读取本会话的检查点,暂时不能编辑。',
'chat.editAttachmentUnavailable': '{count} 个附件已无法读取,重新发送时会被省略。',
'chat.editResendConfirmTitle': '编辑并重新发送?',
'chat.editResendDropsTurns': '这条消息之后的 {count} 轮对话会被删除,然后发送修改后的消息。',
'chat.editResendLatestBody': '这一轮的回复会被删除,然后发送修改后的消息。',
'chat.editResendRestoreChoice': '从这一轮开始共有 {count} 个文件被改动。可以只回滚对话、保留磁盘上的文件,也可以把这些文件一起还原。',
'chat.editResendFilesUntouched': '磁盘上的文件不会被更改。',
'chat.editResendConversationOnly': '仅回滚对话并发送',
'chat.editResendWithCode': '回滚代码和对话并发送',
'chat.editResendConversation': '回滚对话并发送',
'chat.editResendFailed': '编辑后重新发送失败,对话没有变化。详情:{detail}',
'chat.editResendPrefilled': '对话已回滚,但修改后的消息没能自动发送,已放回输入框。',
'chat.workspaceChangesFallbackLabel': '工作区更改文件',
'chat.workspaceChangesFallbackTitle': '当前工作区改动({count})',
'chat.workspaceChangesFallbackExplanation': '会话过长,无法提供逐轮预览或文件撤销。此列表显示当前工作区的累计改动,可能包含其他轮次或会话外的改动。',
'chat.workspaceChangesFallbackUnavailable': '会话过长,无法提供逐轮预览或文件撤销。当前工作区改动无法确认,暂不提供文件列表。',
'chat.workspaceChangesFallbackEmpty': '未发现当前工作区改动。',
'chat.workspaceChangesFallbackOpenFile': '打开 {path} 的当前内容',
'chat.turnChangesTitle': '{count} 个文件已更改',
'chat.turnChangesLatestCardLabel': '轮次已更改文件',
'chat.turnChangesHistoricalCardLabel': '轮次已更改文件',
'chat.turnChangesLatestSubtitle': '当前轮次检查点',
'chat.turnChangesHistoricalSubtitle': '历史轮次检查点',
'chat.turnChangesCurrentWorkspaceDiff': '当前工作区差异',
'chat.turnChangesConversationOnlySubtitle': '文件检查点不完整,撤销只能回滚对话,不还原文件',
'chat.turnChangesUndoConversationOnly': '只回滚对话',
'chat.turnChangesConversationOnlyConfirmBody': '这一轮的文件检查点不完整,无法安全还原文件。只回滚对话会把会话退回这一轮之前,磁盘上的文件保持现状。',
'chat.turnChangesPartialCoverageSubtitle': '撤销可还原上面这些文件;{sources} 的改动未被检查点记录,不会被撤销',
'chat.turnChangesPartialCoverageConfirmBody': '注意:{sources} 造成的文件改动没有被检查点记录,撤销不会还原它们。',
'chat.turnChangesLatestUndo': '撤销当前轮次',
'chat.turnChangesHistoricalUndo': '回滚到这一轮之前',
'chat.turnChangesUndoing': '正在撤销...',
'chat.turnChangesLatestUndoAria': '撤销当前轮次变更',
'chat.turnChangesHistoricalUndoAria': '回滚到这一轮之前',
'chat.turnChangesLatestConfirmTitle': '撤销当前轮次?',
'chat.turnChangesHistoricalConfirmTitle': '回滚到这一轮之前?',
'chat.turnChangesLatestConfirmBody': '这会回滚最近一次助手回复,并恢复这一轮中被跟踪的文件变更。',
'chat.turnChangesHistoricalConfirmBody': '这会把会话回滚到这一轮之前,并恢复该检查点对应的文件变更。',
'chat.turnChangesLatestConfirmUndo': '撤销当前轮次',
'chat.turnChangesHistoricalConfirmUndo': '回滚到这一轮之前',
'chat.turnChangesOpenInWorkspaceAria': '在工作区打开 {path}',
'chat.turnChangesOpenFileAria': '打开 {path}',
'chat.turnChangesShowMore': '再显示 {count} 个文件',
'chat.turnChangesExpand': '展开 {count} 个更改文件',
'chat.turnChangesCollapse': '折叠更改文件',
'chat.turnChangesShowLess': '收起',
// ─── Streaming Indicator ──────────────────────────────────────
'streaming.thinking': '思考中',
'streaming.running': '运行中',
'streaming.working': '工作中',
// ─── Permission Dialog ──────────────────────────────────────
'permission.allowEditFile': '允许 {actor} {toolName} {fileName}?',
'permission.allowEditFileGeneric': '允许 {actor} {toolName}此文件?',
'permission.allowBash': '允许 {actor} 执行此命令?',
'permission.allowTool': '允许 {actor} 使用 {toolName}?',
'permission.awaitingApproval': '等待审批',
'permission.responded': '已响应',
'permission.allow': '允许',
'permission.allowForSession': '本次会话允许',
'permission.deny': '拒绝',
'permission.hideDetails': '隐藏详情',
'permission.showFullInput': '显示完整输入',
'permission.replacingContent': '替换文件内容',
'permission.planReadyTitle': '准备开始编码?',
'permission.planPreviewTitle': 'Claude 的计划',
'permission.planRequestedPermissions': '请求的权限',
'permission.planApprove': '批准计划',
'permission.planApproveAcceptEdits': '批准并自动接受编辑',
'permission.planApproveBypass': '批准并跳过权限',
'permission.planKeepPlanning': '继续规划',
'permission.planFeedbackPlaceholder': '告诉 Claude 需要修改什么',
'permission.planExecutionModel': '执行模型',
'permission.planExecutionModelPending': '批准后生效',
'permission.planEmpty': '暂无计划内容。',
'permission.planApproved': '计划已批准',
'permission.planRejected': '计划已拒绝',
// ─── Computer Use Approval ──────────────────────────────────────
// ─── Ask User Question ──────────────────────────────────────
'question.needsInput': 'Claude 需要你的输入',
'question.answered': '已回答',
'question.autoAnswered': '已自动回答',
'question.completed': '已结束',
'question.customResponse': '或输入自定义回复:',
'question.typePlaceholder': '输入你的回答...',
'question.submit': '提交',
'question.next': '下一题',
'question.answeredPrefix': '已回答: ',
'question.resultPrefix': '结果: ',
'question.chatAboutThis': '和 Claude 聊聊',
'question.chatAboutThisHint': '选项都不合适?交给 Claude 追问,已填的答案会一并带上',
'question.chatRequested': '已转为对话,Claude 会接着追问',
'question.chatBadge': '已转对话',
'question.expiredBadge': '已失效',
'question.expiredNotice': '这个问题已不再等待回答,发送后会作为新消息交给 Claude。',
'question.sendAsMessage': '作为新消息发送',
'question.sentAsMessagePrefix': '已作为新消息发送: ',
// ─── Thinking Block ──────────────────────────────────────
'thinking.label': '思考中',
'thinking.labelDone': '已思考',
// ─── Tool Calls ──────────────────────────────────────
'tool.errorOutput': '错误输出',
'tool.toolOutput': '工具输出',
'tool.toolInput': '工具输入',
'tool.partialInput': '部分输入',
'tool.writerPreview': 'Writer',
'tool.writerPreviewLatest': '正在显示最新 {visible} / {total} 行',
'tool.contentStats': '{lines} · {chars}',
'tool.contentStatsLatest': '最新 {visible} / {total} 行 · {chars}',
'tool.lineCountSingular': '{count} 行',
'tool.lineCountPlural': '{count} 行',
'tool.charCountSingular': '{count} 字符',
'tool.charCountPlural': '{count} 字符',
'tool.generatingContent': '正在生成内容',
'tool.preparingEdit': '正在准备编辑',
'tool.preparingTool': '正在准备工具',
'tool.imageGenerationGeneratingOne': '正在生成 1 张图片',
'tool.imageGenerationGenerating': '正在生成 {count} 张图片',
'tool.imageGenerationEditingOne': '正在编辑图片',
'tool.imageGenerationEditing': '正在编辑 {count} 个图片版本',
'tool.imageGenerationCompleteOne': '已生成 1 张图片',
'tool.imageGenerationComplete': '已生成 {count} 张图片',
'tool.imageGenerationEditCompleteOne': '已编辑 1 张图片',
'tool.imageGenerationEditComplete': '已编辑 {count} 个图片版本',
'tool.imageGenerationFailed': '图片生成失败',
'tool.imageGenerationEditFailed': '图片编辑失败',
'tool.imageGenerationMissing': '服务商没有返回这张图片',
'tool.generatedImageAlt': '生成的第 {index} 张图片',
'tool.stopped': '已停止',
'tool.readFileContents': '读取文件内容',
'tool.createFile': '创建文件',
'tool.updateFileContents': '更新文件内容',
'tool.linesChanged': '{count} 行已更改',
'tool.linesCreated': '{count} 行已创建',
'tool.linesOutput': '{count} 行输出',
'tool.result': '{toolName} 结果',
'tool.resultGeneric': '工具结果',
'tool.error': '错误',
'tool.success': '成功',
'tool.showLess': '收起',
'tool.showMore': '展开 {count} 个字符',
'tool.showMoreLines': '展开其余 {count} 行',
'tool.noOutput': '无输出',
// ─── Tool Group Verbs ──────────────────────────────────────
'toolGroup.readOne': '读取 1 个文件',
'toolGroup.readMany': '读取 {count} 个文件',
'toolGroup.createdOne': '新建 1 个文件',
'toolGroup.createdMany': '新建 {count} 个文件',
'toolGroup.editedOne': '编辑 1 个文件',
'toolGroup.editedMany': '编辑 {count} 个文件',
'toolGroup.ranOne': '运行 1 条命令',
'toolGroup.ranMany': '运行 {count} 条命令',
'toolGroup.foundFiles': '查找到文件',
'toolGroup.searchedOne': '搜索 1 次',
'toolGroup.searchedMany': '搜索 {count} 次',
'toolGroup.agentOne': '派遣了 1 个子代理',
'toolGroup.agentMany': '派遣了 {count} 个子代理',
'toolGroup.thought': '思考',
'toolGroup.thoughtMany': '思考 {count} 次',
'toolGroup.failedCount': '{count} 项失败',
'toolGroup.collapseAgent': '收起代理',
'toolGroup.expandAgent': '展开代理',
'toolGroup.openRun': '打开运行记录',
'toolGroup.openRunNamed': '打开运行记录 {title}',
'agentStatus.starting': '开始中',
'agentStatus.running': '进行中',
'agentStatus.done': '完成',
'agentStatus.failed': '失败',
'agentStatus.stopped': '已停止',
'agentStatus.noActivity': '暂时还没有工具活动',
'agentStatus.viewResult': '查看结果',
'agentStatus.resultTitle': 'Agent 结果',
'agentActivity.loading': '正在加载工具活动…',
'agentActivity.failed': '无法加载该子代理的工具活动。',
'agentActivity.retry': '重试',
'agentActivity.truncated': '仅显示该运行的开始与结尾,打开运行可查看完整轨迹。',
'toolGroup.searchedWeb': '搜索网页',
'toolGroup.fetchedOne': '读取 1 个网页',
'toolGroup.fetchedMany': '读取 {count} 个网页',
'toolGroup.separator': '、',
'toolGroup.updatedTodos': '更新任务清单',
'toolGroup.managedTasks': '管理任务',
'toolVerb.search': '搜索',
'toolVerb.read': '读取',
'toolVerb.edit': '编辑',
'toolVerb.create': '新建',
'toolVerb.run': '运行',
'toolVerb.updateTodos': '更新任务清单',
'toolVerb.createTask': '创建任务',
'toolVerb.updateTask': '更新任务',
'toolVerb.viewTasks': '查看任务',
'toolVerb.searchWeb': '搜索网页',
'toolVerb.fetchWeb': '读取网页',
'toolVerb.agent': '派遣子代理',
'toolVerb.skill': '使用技能',
'tool.exitCode': '退出码 {code}',
'tool.fileCountSingular': '{count} 个文件',
'tool.fileCountPlural': '{count} 个文件',
'tool.matchCountSingular': '{count} 处',
'tool.matchCountPlural': '{count} 处',
'tool.itemCountSingular': '{count} 项',
'tool.itemCountPlural': '{count} 项',
'agentStatus.toolUses': '{count} 次调用',
// ─── Tasks ──────────────────────────────────────
'tasks.completed': '已完成的任务',
'tasks.newTask': '+ 新建任务',
'tasks.emptyTitle': '暂无定时任务',
'tasks.emptyDesc': '创建定时任务来自动化你的工程工作流。',
'tasks.createNew': '创建新任务',
'tasks.totalTasks': '总任务数',
'tasks.active': '活跃',
'tasks.disabled': '已禁用',
// ─── New Task Modal ──────────────────────────────────────
'newTask.title': '新建定时任务',
'newTask.localWarning': '本地任务仅在电脑唤醒时运行。',
'newTask.fullPermissions': '所有权限(固定)',
'newTask.time': '执行时间',
'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.moreActions': '更多操作',
'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.autoMode': '自动模式',
'permMode.autoModeDesc': 'Claude 会审查工具调用,并执行其认为安全的操作',
'permMode.planMode': '计划模式',
'permMode.planModeDesc': '仅架构和推理,不操作文件',
'permMode.bypass': '跳过权限',
'permMode.bypassDesc': '对 Shell 和文件系统的完整工具访问',
'permMode.dontAsk': '不询问',
'permMode.enableBypassTitle': '启用跳过权限?',
'permMode.enableBypassSubtitle': '这将授予对系统的完全访问权限',
'permMode.enableBypassBody': 'Claude 将拥有<strong>不受限制的</strong>权限来执行 Shell 命令和修改以下目录中的文件:',
'permMode.permReadWrite': '读取、写入和删除任何文件',
'permMode.permShell': '执行任意 Shell 命令',
'permMode.permPackages': '安装或移除软件包',
'permMode.enableBypassBtn': '启用跳过',
'permMode.disabledDuringTurn': '会话进行中,无法切换权限',
'permMode.enableAutoTitle': '启用自动模式?',
'permMode.enableAutoBody': '自动模式会减少权限询问,但不能保证绝对安全。',
'permMode.enableAutoDetail': 'Claude 会检查工具调用中的风险操作和提示词注入,执行其认为安全的操作,并阻止其认为有风险的操作。请仅在隔离环境中使用。',
'permMode.enableAutoBtn': '启用自动模式',
// Mode labels (compact, for chips)
'permMode.label.default': '询问权限',
'permMode.label.acceptEdits': '自动接受',
'permMode.label.auto': '自动模式',
'permMode.label.plan': '计划模式',
'permMode.label.bypassPermissions': '跳过',
'permMode.label.dontAsk': '不询问',
// ─── Model Selector ──────────────────────────────────────
'model.selectModel': '选择模型',
'model.configureProvider': '配置模型供应商',
'model.configuration': '模型配置',
'model.searchPlaceholder': '搜索模型',
'model.clearSearch': '清除模型搜索',
'model.noMatches': '没有匹配的模型',
'model.effort': '推理强度',
// ─── Directory Picker ──────────────────────────────────────
'dirPicker.selectProject': '选择项目...',
'dirPicker.directory': '目录',
'dirPicker.recent': '最近',
'dirPicker.noRecent': '暂无最近项目',
'dirPicker.chooseFolder': '选择其他文件夹',
'dirPicker.chooseProjectFolder': '选择项目文件夹',
'dirPicker.useThisFolder': '使用此文件夹',
'dirPicker.noSubdirs': '无子目录',
'dirPicker.searchProjects': '搜索项目…',
'dirPicker.noMatches': '没有匹配的项目',
// ─── 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.members': '名成员',
'teams.working': '正在工作中...',
'teams.thinking': '正在思考中...',
'teams.leader': '主控',
'teams.memberPlaceholder': '直接给这个 Agent 发消息...',
'teams.memberSessionHint': '这里发送的消息会直接投递给该 Agent,同时继续刷新它的 transcript。',
'teams.archivedMemberSessionHint': '这里保留了该成员当时的完整对话与工具调用。',
'teams.archivedMemberReadOnly': '这是只读的历史执行记录;如需继续工作,请返回主控会话。',
'agentTeams.title': 'Agent Teams 协作工作台',
'agentTeams.sharedTaskList': '共享任务列表',
'agentTeams.experimental': '实验特性',
'agentTeams.stats.phase': '阶段',
'agentTeams.stats.completed': '完成',
'agentTeams.stats.running': '进行中',
'agentTeams.stats.available': '待领',
'agentTeams.stats.blocked': '阻塞',
'agentTeams.live.following': '实时 · 跟随团队',
'agentTeams.live.runningHint': '正在跟随 {count} 个成员的实时进度,回放控制在团队结束后开放',
'agentTeams.live.formingHint': '队长正在召唤成员,回放控制在团队结束后开放',
'agentTeams.live.waitingHint': '等待成员认领下一批任务,回放控制在团队结束后开放',
'agentTeams.live.elapsed': '已运行',
'agentTeams.live.sessionClock': '会话时钟',
'agentTeams.replay.play': '播放',
'agentTeams.replay.pause': '暂停',
'agentTeams.replay.replay': '重播',
'agentTeams.replay.speed': '回放速度',
'agentTeams.replay.timeline': '回放时间轴 · 点击跳转',
'agentTeams.canvas.formation': '1 · 编队 — 队长居中,成员在下',
'agentTeams.canvas.tasks': '2 · 共享任务列表 — 按依赖分层,左 → 右',
'agentTeams.canvas.laneRoot': '无依赖 · 可立即领',
'agentTeams.canvas.laneDepth': '第 {layer} 层',
'agentTeams.canvas.laneWrapUp': '收尾',
'agentTeams.legend.unmet': '依赖未满足',
'agentTeams.legend.satisfied': '依赖已满足(流向下游)',
'agentTeams.legend.tether': '成员正在执行该任务',
'agentTeams.legend.unlocked': '刚解锁',
'agentTeams.legend.flight': '飞行中的消息 / 认领',
'agentTeams.member.inbox': '收件箱 {count}',
'agentTeams.member.executingTask': '执行 #{task}',
'agentTeams.member.waitingForTask': '空闲 · 等待任务',
'agentTeams.member.waitingForDependency': '空闲 · 等 #{task} 解锁',
'agentTeams.member.waitingForClose': '空闲 · 等待关闭',
'agentTeams.lead.forming': '组建团队',
'agentTeams.lead.coordinating': '协调 · 等待汇报',
'agentTeams.lead.finishing': '收尾归并',
'agentTeams.lead.archived': '运行已归档',
'agentTeams.task.start': '起点',
'agentTeams.task.unlocked': '刚解锁',
'agentTeams.task.reconstructedOwner': '推断负责人',
'agentTeams.communication.open': '展开通讯面板',
'agentTeams.communication.close': '收起通讯面板',
'agentTeams.communication.backToFeed': '返回通讯流',
'agentTeams.inspector.independentContext': '{role} · 独立上下文',
'agentTeams.inspector.current': '当前',
'agentTeams.inspector.completedTasks': '已完成',
'agentTeams.inspector.messages': '收发',
'agentTeams.inspector.taskHistory': '任务履历',
'agentTeams.inspector.taskHistoryHint': '一个成员串行执行多个任务',
'agentTeams.inspector.sent': '发出',
'agentTeams.inspector.received': '收到',
'agentTeams.inspector.failureReason': '原因',
'agentTeams.model.label': '模型',
'agentTeams.model.inheritFromLead': '继承主代理 · {model}',
'agentTeams.model.unknown': '未知',
'agentTeams.hideReport': '隐藏 Agent Teams 运行报告',
'agentTeams.closeReport': '关闭 Agent Teams 运行报告',
'agentTeams.loading': '正在等待 Agent Teams 活动…',
'agentTeams.phase.forming': '组建团队',
'agentTeams.phase.running': '并行执行',
'agentTeams.phase.finishing': '收尾中',
'agentTeams.phase.completed': '已完成',
'agentTeams.progressLabel': '团队任务进度',
'agentTeams.followingLive': '跟随实时',
'agentTeams.reviewHistory': '回看历史',
'agentTeams.older': '更早的工作台状态',
'agentTeams.newer': '更新的工作台状态',
'agentTeams.backToLive': '回到实时',
'agentTeams.live': '实时',
'agentTeams.leader': '长',
'agentTeams.restArea': '休息区',
'agentTeams.emptyTasks': '正在组建团队;任务创建后,依赖图将出现在这里。',
'agentTeams.resizePanel': '调整 Agent Teams 工作台宽度',
'agentTeams.task.blocked': '阻塞',
'agentTeams.task.open': '待领',
'agentTeams.task.running': '执行中',
'agentTeams.task.completed': '完成',
'agentTeams.task.closeDetail': '关闭任务详情',
'agentTeams.task.ownerLabel': '负责人',
'agentTeams.task.dependsOn': '依赖',
'agentTeams.task.unblocks': '解锁',
'agentTeams.openTask': '查看任务:{subject}',
'agentTeams.task.inferredOwner': '{name}(推断)',
'agentTeams.task.layer': '第 {layer} 层',
'agentTeams.task.dependencies': '依赖 {dependencies}',
'agentTeams.task.unclaimed': '等待成员领取',
'agentTeams.task.completedNoOwner': '已完成 · 未记录负责人',
'agentTeams.member.working': '工作中',
'agentTeams.member.idle': '待命',
'agentTeams.member.stopped': '已停止',
'agentTeams.member.exited': '已退出',
'agentTeams.member.error': '出错',
'agentTeams.member.retrying': '自动重试 {attempt}/{max}',
'agentTeams.member.retryInSeconds': '{n} 秒后自动重试',
'agentTeams.member.retryInMinutes': '约 {n} 分钟后自动重试',
'agentTeams.member.retryNow': '即将自动重试',
'agentTeams.member.stoppedHint': '发消息即可从保存的对话恢复',
'agentTeams.member.errorHint': '解决问题后,发消息即可让它继续',
'agentTeams.member.stalledOnTask': '{state} · 停在 #{task}',
'agentTeams.inspector.groupRunning': '进行中',
'agentTeams.inspector.groupUpcoming': '接下来',
'agentTeams.inspector.groupCompleted': '已完成',
'agentTeams.openMember': '打开 {name} 的详情',
'agentTeams.resizeCommunication': '调整通讯面板宽度',
'agentTeams.memberTranscriptLoading': '正在加载成员 transcript...',
'agentTeams.communication.title': '通讯',
'agentTeams.communication.count': '{count} 条',
'agentTeams.communication.all': '全部',
'agentTeams.communication.timeline': '任务时间轴',
'agentTeams.communication.timeAll': '全程',
'agentTeams.communication.timeEarly': '开始',
'agentTeams.communication.timeMiddle': '推进',
'agentTeams.communication.timeLate': '收尾',
'agentTeams.communication.empty': '这里暂无成员间通讯。审批后的任务会直接交给成员,点击成员的「执行过程」可查看工作进展。',
'agentTeams.communication.direct': '私信',
'agentTeams.communication.broadcast': '广播',
'agentTeams.communication.system': '系统',
'agentTeams.communication.everyone': '全体',
'agentTeams.communication.taskAssignment': '指派 {name}:{task} {subject}',
'agentTeams.communication.taskClaimed': '{name} 领取了 {task} {subject}',
'agentTeams.communication.assignment': '指派',
'agentTeams.communication.peer': '私信',
'agentTeams.communication.report': '汇报',
'agentTeams.communication.shutdownRequest': '请求结束:{reason}',
'agentTeams.communication.shutdownResponse': '已收到退出确认',
'agentTeams.communication.idle': '成员已进入待命状态',
'agentTeams.disbanded': '团队已解散,成果并入主会话',
'agentTeams.memberDetails': '{name} 的详情',
'agentTeams.memberTasks': '负责任务',
'agentTeams.noMemberTasks': '暂未分配任务。',
'agentTeams.memberMessages': '相关消息',
'agentTeams.noMemberMessages': '暂无相关团队通讯。审批后的任务会直接交给成员,可点击下方「执行过程」查看进展。',
'agentTeams.fullConversationHint': '完整会话、工具调用与流式输出复用既有会话视图。',
'agentTeams.archivedConversationHint': '打开保留的执行会话,可回看完整对话与工具调用。',
'agentTeams.openConversation': '直接与 {name} 对话',
'agentTeams.openExecution': '查看 {name} 的执行过程',
'agentTeams.dependencyLegend': '实线为主依赖 · 虚线为次依赖 · 悬停聚焦',
'agentTeams.backToSession': '返回会话',
'agentTeams.backToOverview': '返回团队总览',
'agentTeams.openInTab': '在标签页打开',
'agentTeams.communication.lifecycle.idle_notification': '进入待命,等待新任务',
'agentTeams.communication.lifecycle.shutdown_request': '请求结束工作',
'agentTeams.communication.lifecycle.shutdown_approved': '结束请求已批准',
'agentTeams.communication.lifecycle.shutdown_rejected': '结束请求被驳回',
'agentTeams.communication.lifecycle.teammate_terminated': '成员已停止',
'agentTeams.communication.lifecycle.shutdown_response': '已确认退出',
'agentTeams.communication.showLifecycle': '显示 {count} 条状态信号',
'agentTeams.communication.hideLifecycle': '隐藏状态信号',
'agentTeams.communication.expand': '展开',
'agentTeams.communication.collapse': '收起',
'agentTeams.inline.created': 'Agent 团队 · {count} 名成员',
'agentTeams.inline.coordination': '团队编排记录 · {count} 步',
'agentTeams.inline.open': '打开运行报告',
'agentTeams.report.title': 'Agent Teams 运行报告',
'agentTeams.report.openWorkbench': '工作台',
'agentTeams.report.tasksDone': '任务完成',
'agentTeams.report.members': '成员 {count}',
'agentTeams.report.tasks': '任务 {count}',
'agentTeams.report.ownedTasks': '{count} 项',
'agentTeams.report.messages': '{count} 条通讯记录',
'agentTeams.report.disbanded': '团队已解散,成果并入主会话',
'agentTeams.report.memberStatus.running': '工作中',
'agentTeams.report.memberStatus.idle': '待命',
'agentTeams.report.memberStatus.completed': '已完成',
'agentTeams.report.memberStatus.error': '出错',
'agentTeams.inline.tasks': '{completed}/{total} 任务',
'agentTeams.strip.label': '团队',
// ─── Session Activity ──────────────────────────────────────
'session.activity.title': '活动',
'session.activity.close': '关闭活动',
'session.activity.clearFinished': '清除已完成',
'session.activity.openTeamMember': '打开团队成员 {name}',
'session.activity.openRun': '打开运行 {name}',
'session.activity.openBackgroundTask': '打开后台任务 {name}',
'session.activity.stopBackgroundTask': '停止后台任务 {name}',
'session.activity.stoppingBackgroundTask': '正在停止后台任务 {name}',
'session.activity.details.title': '详情',
'session.activity.details.type': '类型',
'session.activity.details.description': '描述',
'session.activity.details.summary': '摘要',
'session.activity.details.outputFile': '输出文件',
'session.activity.details.usage': '用量',
'session.activity.section.tasks': '任务',
'session.activity.tasksProgress': '任务进度 {completed}/{total}',
'session.activity.section.team': '团队',
'session.activity.section.workflow': '工作流',
'session.activity.section.backgroundTasks': '后台任务',
'session.activity.section.subagents': 'SubAgent',
'session.activity.section.sources': '来源',
'session.activity.empty.tasks': '暂无任务',
'session.activity.empty.team': '暂无团队成员',
'session.activity.empty.backgroundTasks': '暂无后台任务',
'session.activity.empty.subagents': '暂无 SubAgent',
'session.activity.empty.sources': '暂无来源',
'session.activity.task.completed': '任务已完成',
'session.activity.task.inProgress': '任务进行中',
'session.activity.task.pending': '任务待处理',
'session.activity.tasks.earlier': '历史任务',
'session.activity.tasks.earlierSummary': '历史轮次:{completed}/{total} 已完成',
'session.activity.status.pending': '待处理',
'session.activity.status.inProgress': '进行中',
'session.activity.status.completed': '已完成',
'session.activity.status.running': '运行中',
'session.activity.status.stopping': '停止中',
'session.activity.status.failed': '失败',
'session.activity.status.stopped': '已停止',
'session.activity.status.idle': '空闲',
'session.activity.status.error': '错误',
'session.activity.status.unknown': '未知',
// ─── SubAgent Run ──────────────────────────────────────
'subagentRun.incompleteHistory': '部分历史记录无法读取,已显示可用内容;可刷新重试。',
'subagentRun.refresh': '刷新 SubAgent 运行',
'subagentRun.backToParent': '返回父级会话',
'subagentRun.loading': '正在加载 SubAgent 运行...',
'subagentRun.source': '来源',
'subagentRun.agent': 'Agent',
'subagentRun.model': '模型',
'subagentRun.unknown': '未知',
'subagentRun.task': '任务',
'subagentRun.updated': '更新时间',
'subagentRun.output': '输出',
'subagentRun.agentInvocation': 'Agent 调用',
'subagentRun.parentToolInput': '父级 Agent 工具输入',
'subagentRun.parentToolCall': '父级 Agent 工具调用',
'subagentRun.transcript': '运行记录',
'subagentRun.noTranscript': '没有捕获到这个 SubAgent 的本地运行记录。',
'subagentRun.truncated': '显示前 50 条和最新 950 条记录',
'subagentRun.source.transcript': '运行记录',
'subagentRun.source.sessionHistory': '会话历史',
'subagentRun.source.liveTask': '实时任务',
'subagentRun.source.none': '无',
'subagentRun.status.completed': '已完成',
'subagentRun.status.failed': '失败',
'subagentRun.status.stopped': '已停止',
'subagentRun.status.running': '运行中',
'subagentRun.status.unknown': '未知',
'subagentRun.result.completedFallback': 'SubAgent 已完成,但没有结果内容。',
'subagentRun.result.failedFallback': 'SubAgent 已失败,但没有错误内容。',
'subagentRun.result.stoppedFallback': 'SubAgent 已停止,但没有结果内容。',
'subagentRun.result.noneFallback': '暂无结果。',
'subagentRun.readOnly': '这是一次性子代理的运行记录,不支持继续对话。',
// ─── 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.endOfList': '任务列表结束',
'scheduledPage.pausedTasks': '另有 9 个任务当前已暂停或因维护而禁用。',
'scheduledPage.recentLogs': '最近输出日志',
'scheduledPage.viewArtifacts': '查看完整产物',
'scheduledPage.resourceAllocation': '资源分配',
'scheduledPage.cpuCapacity': 'CPU 容量',
'scheduledPage.memoryLoad': '内存负载',
'scheduledPage.connectedLocal': '已连接到本地节点',
'scheduledPage.thisMonth': '本月 {count}',
// ─── 更新检查 ──────────────────────────────────────
'update.available': 'v{version} 可用',
'update.availableLabel': '可更新版本',
'update.checking': '正在检查更新...',
'update.checkNow': '检查更新',
'update.checkedAt': '上次检查时间 {time}',
'update.currentVersionUnknown': '未知版本',
'update.newVersion': '新版本 v{version} 可用',
'update.downloading': '下载中...',
'update.downloaded': '更新已下载。方便时重启即可使用新版。',
'update.idle': '点击检查更新,对比当前安装版本和 GitHub Releases 的最新版本。',
'update.installAndRestart': '安装并重启',
'update.installing': '正在安装更新...',
'update.now': '立即更新',
'update.later': '稍后',
'update.progress': '正在下载更新... {progress}%',
'update.progressBytes': '正在下载更新... 已下载 {downloaded}',
'update.proxyAdvanced': '高级更新代理',
'update.proxyModeManual': '手动代理',
'update.proxyModeManualDescription': '使用你填写的本地 HTTP 代理地址。',
'update.proxyModeSystem': '系统代理',
'update.proxyModeSystemDescription': '自动使用系统 HTTP/HTTPS 代理。',
'update.proxySave': '保存',
'update.proxyScopeHint': '这里只影响应用自身的更新检查和安装包下载。',
'update.proxyUrl': '代理地址',
'update.proxyUrlHint': '支持 HTTP 和 HTTPS 代理,例如 http://127.0.0.1:7890。',
'update.proxyUrlInvalid': '请输入 HTTP 或 HTTPS 代理地址。',
'update.proxyUrlRequired': '请输入代理地址。',
'update.releaseNotes': '更新说明',
'update.readyBody': 'v{version} 已下载。方便时重启即可使用新版。',
'update.readyTitle': '更新已准备好',
'update.restarting': '正在重启以完成更新...',
'update.upToDate': '当前已是最新版本 v{version}。',
'update.failed': '更新失败: {error}',
// ─── 活跃会话 ──────────────────────────────────────
'session.untitled': '未命名会话',
'session.active': '会话活跃中',
'session.lastUpdated': '最后更新 {time}',
'session.messages': '{count} 条消息',
'session.apiTokens': '{count} API tokens',
'session.apiTokensWithCache': '{count} tokens(含缓存)',
'session.apiTokenBreakdown': 'API 用量:{total} tokens · 输入 {input} · 输出 {output} · 缓存读取 {cacheRead} · 缓存写入 {cacheWrite}',
'session.historyLoadFailed': '历史会话加载失败。',
'session.historyTooLarge': '该会话历史过大,无法在此加载。',
'session.workspaceUnavailable': '工作目录不可用: {dir}',
'session.worktreeRemoved': '临时工作区已清理,历史记录仍可查看。请在原项目 {dir} 中新建会话继续。',
'session.timeJustNow': '刚刚',
'session.timeMinutes': '{n}分钟前',
'session.timeHours': '{n}小时前',
'session.timeDays': '{n}天前',
'trace.noResponse': '未捕获响应正文',
'trace.requestBody': '请求正文',
'trace.requestHeaders': '请求头',
'trace.responseBody': '响应正文',
'trace.responseHeaders': '响应头',
'trace.toolResult': '工具结果',
'trace.truncatedShort': '已截断',
'trace.noData': '无数据',
'trace.toolError': '工具错误',
'trace.section.response': '响应',
'trace.section.messages': '消息',
'trace.section.systemPrompt': '系统提示词',
'trace.section.context': '注入的上下文',
'trace.context.systemReminder': '系统提醒',
'trace.context.deferredTools': '延迟工具',
'trace.context.other': '注入',
'trace.section.tools': '工具',
'trace.section.parameters': '参数',
'trace.section.raw': '原始数据',
'trace.detail.stopReason': '停止原因',
'trace.detail.streaming': '等待模型响应...',
'trace.detail.aborted': '请求在响应完成前被中断(超时或取消)。',
'trace.status.aborted': '已中断',
'trace.detail.legacyTruncated': '该记录为旧格式截断数据,无法解析语义视图,请查看下方原始数据。',
'trace.detail.fetchFailed': '完整记录加载失败,以下展示截断预览。',
'trace.detail.earlierMessages': '展开更早的 {count} 条消息',
'trace.detail.chars': '{count} 字符',
'trace.detail.thinking': '思考',
'trace.detail.imageBlock': '[图片]',
'trace.detail.stack': '调用栈',
// ─── 应用外壳 ──────────────────────────────────────
'app.serverFailed': '本地服务启动失败',
'app.serverFailedHint': '反馈这个问题时,请把这块诊断信息截图一起发到 issue 里。',
'app.startupError': '启动错误',
'app.serverLogs': '服务日志',
'app.copyDiagnostics': '复制诊断信息',
'app.copiedDiagnostics': '已复制',
'app.launching': '正在启动本地工作区...',
// ─── Error Codes ──────────────────────────────────────
'error.CLI_NOT_RUNNING': 'CLI 进程未运行。会话可能已结束或进程已崩溃。',
'error.CLI_START_FAILED': 'CLI 进程启动失败。',
'error.CLI_AUTH_REQUIRED': '需要认证。请先登录。',
'error.CLI_SESSION_CONFLICT': '会话已被其他进程占用。',
'error.CLI_SPAWN_FAILED': 'CLI 子进程启动失败。',
'error.CLI_ERROR': '处理过程中发生错误。',
'error.WORKDIR_INVALID': '工作目录无效或不存在。',
'error.PARSE_ERROR': '消息格式无效。',
'error.UNKNOWN_TYPE': '未知的消息类型。',
'error.BAD_REQUEST': '请求无效。',
'error.NOT_FOUND': '资源未找到。',
'error.INTERNAL_ERROR': '内部服务器错误。',
// ─── 业务错误 ──────────────────────────────────────
'businessError.pdf_too_large': '这个 PDF 超出了当前模型可处理的大小。请先转成文本,或换一个更小的 PDF。',
'businessError.pdf_password_protected': '这个 PDF 有密码保护。请先解锁或转换后再发送。',
'businessError.pdf_invalid': '这个 PDF 文件无效。请先转成文本,或换一个文件发送。',
'businessError.image_too_large': '这张图片超出了当前模型可处理的大小。请压缩图片,或换一张更小的图片。',
'businessError.image_unsupported': '当前模型不支持图片。请继续使用文字,或切换到支持视觉的模型后重新发送图片。',
'businessError.request_too_large': '这次请求超出了服务商或中转站允许的大小。下一条消息会自动移除较早的图片和文档;如果仍然失败,请压缩会话或新开会话。',
'businessError.prompt_too_long': '当前上下文超出了模型限制。请先压缩会话,或减少上下文后重试。',
'businessError.auto_mode_unavailable': '当前套餐不支持自动模式。',
'businessError.upstream_stream_interrupted': '上游模型服务商在回复完成前断开了连接,自动重试后仍未成功。这通常是服务商或网络线路超时、不稳定造成的,不是上下文超限。可以发送「继续」让模型接着做,或稍后重试、更换服务商。',
// ─── Server Status Verbs ──────────────────────────────────────
'serverVerb.Thinking': '思考中',
'serverVerb.Compacting conversation': '正在压缩上下文',
'serverVerb.Running': '运行中',
'serverVerb.Working': '处理中',
'serverVerb.Creating worktree': '正在创建工作树',
'serverVerb.Task started': '任务已启动',
'serverVerb.Task in progress': '任务进行中',
'chat.retry.title': '请求失败,正在重试',
'chat.retry.attempt': '第 {attempt}/{max} 次',
'chat.retry.httpStatus': 'HTTP {status}',
'chat.retry.rateLimit': '已达到用量或速率限制',
'chat.retry.networkError': '网络错误',
'chat.retry.waiting': '等待 {seconds}s',
'chat.retry.waitingLong': '约 {duration} 后重试',
'chat.retry.retrying': '正在重试…',
'chat.fallback.title': '网络波动,已切换为非流式请求',
'chat.fallback.detail': '响应将一次性返回,可能需要较长时间',
// ─── Tabs ──────────────────────────────────────
'tabs.close': '关闭',
'tabs.closeOthers': '关闭其他',
'tabs.closeLeft': '关闭左侧',
'tabs.closeRight': '关闭右侧',
'tabs.closeAll': '关闭所有',
'tabs.closeConfirmTitle': '会话运行中',
'tabs.closeConfirmMessage': '此会话仍在运行,你想要怎么做?',
'tabs.closeConfirmKeep': '保持运行',
'tabs.closeConfirmStop': '停止并关闭',
'tabs.closeAllConfirmTitle': '多个会话运行中',
// ─── Slash Command Descriptions ──────────────────────────────────────
'slashCmd.agent.description': '使用指定 Agent 执行提示',
'slashCmd.mcp.description': '打开当前聊天上下文中可用的 MCP 工具',
'slashCmd.skills.description': '浏览当前上下文中可直接调用的技能',
'slashCmd.saveWorkflow.description': '保存已完成的 Workflow 以便复用',
'slashCmd.help.description': '查看可用的桌面端与 Agent 命令',
'slashCmd.status.description': '查看会话状态、用量和上下文',
'slashCmd.cost.description': '查看会话用量和费用',
'slashCmd.context.description': '查看当前上下文用量',
'slashCmd.plugin.description': '在设置中打开插件管理',
'slashCmd.memory.description': '在设置中打开项目记忆文件',
'slashCmd.doctor.description': '在诊断中打开 Doctor',
'slashCmd.compact.description': '压缩会话上下文',
'slashCmd.clear.description': '清空会话历史',
'slashCmd.goal.description': '设定完成目标',
'slashCmd.review.description': '审查代码变更',
'slashCmd.commit.description': '创建 git 提交',
'slashCmd.pr.description': '创建 Pull Request',
'slashCmd.init.description': '初始化项目 CLAUDE.md',
'slashCmd.bug.description': '报告 Bug',
'slashCmd.config.description': '打开配置',
'slashCmd.login.description': '切换 Anthropic 账户',
'slashCmd.logout.description': '登出当前账户',
'slashCmd.model.description': '切换 AI 模型',
'slashCmd.permissions.description': '查看或管理工具权限',
'slashCmd.terminal-setup.description': '设置终端集成',
'slashCmd.vim.description': '切换 vim 编辑模式',
'tabs.closeAllConfirmMessage': '仍有 {count} 个会话正在运行。关闭这些标签前是否停止它们?',
'tabs.closeAllConfirmStop': '全部停止并关闭',
'tabs.sessionRunning': '会话运行中',
'tabs.openTerminal': '打开终端',
'tabs.showWorkspace': '显示工作区',
'tabs.hideWorkspace': '隐藏工作区',
'tabs.showBrowser': '显示浏览器',
'tabs.hideBrowser': '隐藏浏览器',
'tabs.scrollLeft': '标签页向左滚动',
'tabs.scrollRight': '标签页向右滚动',
'tabs.jumpToAttention': '跳转到下一个待处理会话(共 {count} 个)',
'tabs.closeTab': '关闭 {title}',
'tabs.untitled': '未命名',
// 技能市场
'sidebar.market': '技能市场',
'market.title': '技能市场',
'market.subtitle': '浏览 ClawHub 与 SkillHub 的精选技能,需要更多时可实时搜索全部市场。',
'market.searchPlaceholder': '按名称、关键词搜索技能…',
'market.clearSearch': '清除搜索',
'market.resultCount': '{count} 个技能',
'market.loadMore': '加载更多',
'market.loadingMore': '正在加载更多…',
'market.loadMoreError': '加载更多技能失败',
'market.installedSkills': '已安装技能',
'market.installedSkillsHint': '查看本机已安装的技能',
'market.loading': '正在加载技能…',
'market.empty': '暂无可用技能',
'market.emptyHint': '精选清单暂时没有内容,稍后再试。',
'market.emptySearch': '没有匹配的技能',
'market.emptySearchHint': '换个关键词试试,或清除筛选条件。',
'market.error.list': '技能市场加载失败',
'market.retry': '重试',
'market.filter.source': '来源',
'market.filter.security': '安全状态',
'market.filter.installed': '安装状态',
'market.source.all': '全部来源',
'market.source.clawhub': 'ClawHub',
'market.source.skillhub': 'SkillHub',
'market.security.all': '全部安全状态',
'market.security.verified': '已认证',
'market.security.benign': '扫描无风险',
'market.security.unknown': '未审计',
'market.security.flagged': '存在风险',
'market.securityHint.verified': '发布者已认证,且通过来源方安全扫描。',
'market.securityHint.benign': '来源方安全扫描未发现风险。',
'market.securityHint.unknown': '来源方未提供安全审计数据,安装前请自行检查文件内容。',
'market.securityHint.flagged': '来源方安全扫描标记该技能存在潜在风险。',
'market.disclaimer.title': '第三方技能,谨慎使用。',
'market.disclaimer.body': '技能来自社区第三方来源,本应用不对其内容做安全审计。安装前请先查看技能文件,建议先让 AI 扫描一遍、确认安全后再使用。',
'market.disclaimer.dismiss': '关闭免责声明',
'market.installedFilter.all': '全部技能',
'market.installedFilter.installed': '已安装',
'market.installedFilter.installable': '未安装',
'market.sourceStatus.ok': '正常',
'market.sourceStatus.degraded': '降级',
'market.sourceStatus.failed': '不可用',
'market.sourceStatus.cached': '缓存',
'market.sourceStatus.cachedAt': '缓存于 {time}',
'market.card.by': '作者 {author}',
'market.card.moreTags': '+{count}',
'market.install.state.installed': '已安装',
'market.install.state.installable': '可安装',
'market.install.state.notInstallable': '不可安装',
'market.install.action': '安装',
'market.install.installing': '安装中…',
'market.uninstall.action': '卸载',
'market.uninstall.uninstalling': '卸载中…',
'market.uninstall.confirmTitle': '卸载技能',
'market.uninstall.confirmMessage': '确定从本地移除「{name}」吗?{path} 下的文件将被删除。',
'market.uninstall.success': '「{name}」已卸载。',
'market.reason.empty-file-list': '该技能没有可安装的文件(缺少 SKILL.md)。',
'market.reason.file-too-large': '该技能包含超过大小限制的文件。',
'market.reason.too-many-files': '该技能文件数量过多,无法安全安装。',
'market.reason.invalid-name': '技能名称无法作为本地目录名使用。',
'market.reason.name-conflict': '本地已存在同名技能,请先重命名或删除后再安装。',
'market.reason.source-unavailable': '该技能所属的来源当前不可用。',
'market.detail.back': '返回市场',
'market.detail.overview': '概览',
'market.detail.files': '文件',
'market.detail.author': '作者',
'market.detail.version': '版本',
'market.detail.updated': '更新时间',
'market.detail.category': '分类',
'market.detail.license': '许可证',
'market.detail.downloads': '下载量',
'market.detail.installs': '安装量',
'market.detail.stars': '收藏',
'market.detail.securityReport': '安全报告',
'market.detail.viewReport': '查看报告',
'market.detail.mirror': '也收录于 {source}',
'market.detail.requiresApiKey': '需要 API Key',
'market.detail.loadError': '技能详情加载失败',
'market.detail.noDescription': '该技能未提供说明。',
'market.detail.metadata': '元信息',
'market.detail.metadataCollapse': '收起',
'market.detail.metadataExpand': '展开',
'market.file.empty': '在左侧选择一个文件进行预览。',
'market.file.truncated': '预览已截断——文件超出预览大小限制。',
'market.file.loadError': '文件加载失败',
'market.file.noFiles': '该技能暂无可预览文件。',
'market.installConfirm.title': '安装技能',
'market.installConfirm.message': '确定从 {source} 安装「{name}」吗?',
'market.installConfirm.location': '安装位置',
'market.installConfirm.effectNote': '安装完成后,技能将在新会话中生效。',
'market.installConfirm.riskBenign': '安全扫描未发现该技能存在风险。',
'market.installConfirm.riskVerified': '该技能来自已认证发布者,并通过了安全扫描。',
'market.installConfirm.riskUnknown': '该技能未经过安全审计,安装前请先检查其文件内容。',
'market.installConfirm.riskFlagged': '安全扫描标记该技能存在潜在风险,仅在您信任它时安装。',
'market.installConfirm.confirm': '安装',
'market.installConfirm.cancel': '取消',
'market.installSuccess': '「{name}」安装成功,将在新会话中生效。',
'market.installError.network': '安装失败:无法连接技能来源,请检查网络后重试。',
'market.installError.checksum': '安装已中止:下载文件未通过完整性校验。在确认来源可信前请勿重试。',
'market.installError.exists': '安装失败:该技能已安装或正在安装中。',
'market.installError.disk': '安装失败:写入磁盘失败,请检查权限与剩余空间。',
'market.installError.notInstallable': '安装失败:该技能不可安装。',
'market.installError.generic': '安装失败:{message}',
'market.catalog.summary': '共 {count} 个精选技能',
'market.catalog.updated': '清单更新于 {date}',
'market.catalog.liveResults': '{count} 个实时结果',
'market.scope.catalogHint': '当前只在精选技能中搜索。',
'market.scope.marketHint': '正在实时搜索 ClawHub 与 SkillHub 全部技能,结果未经精选审核。',
'market.scope.searchMarket': '在全部市场中搜索「{q}」',
'market.scope.backToCatalog': '回到精选',
'market.scope.notCurated': '未经精选',
'market.scope.livePlaceholder': '搜索全部市场,按 Enter 搜索',
'market.category.label': '分类',
'market.category.all': '全部',
'market.featured': '精选',
'market.securityShort.verified': '已认证',
'market.securityShort.benign': '扫描通过',
'market.securityShort.unknown': '未扫描',
'market.securityShort.flagged': '可疑',
'market.detail.security': '安全报告',
'market.detail.changelog': '更新日志',
'market.detail.whenToUse': '何时触发',
'market.detail.info': '信息',
'market.detail.sourcePage': '源仓库',
'market.detail.updatedOn': '更新于 {date}',
'market.detail.by': '作者 {author}',
'market.detail.readingTime': '约 {minutes} 分钟阅读',
'market.detail.scanReports': '扫描结果',
'market.detail.noReports': '上游没有提供安全扫描结果。',
'market.detail.scanDisclaimer': '扫描结论来自上游平台,本应用只做展示,不对其作担保;安装即表示你信任该作者。',
'market.detail.securityNote': '精选说明',
'market.detail.noChangelog': '上游没有提供这个版本的更新说明。',
'market.detail.flaggedDot': '安全扫描标记为可疑',
'market.cap.title': '安装前请了解:这个技能会做什么',
'market.cap.viewReport': '查看完整报告 →',
'market.cap.note': '以上按规则从 SKILL.md 和文件列表中识别,仅供参考;安装本身不会执行任何脚本。',
'market.cap.shell': '执行命令或脚本',
'market.cap.shell.detail': '{evidence}',
'market.cap.hooks': '注册 Hook',
'market.cap.hooks.detail': '涉及 {evidence}',
'market.cap.secrets': '需要密钥',
'market.cap.secrets.detail': '读取 {evidence}',
'market.cap.network': '访问网络服务',
'market.cap.network.detail': '请求 {evidence}',
'market.cap.writes': '写入文件',
'market.cap.writes.detail': '创建或修改 {evidence}',
'market.cap.binaries': '依赖本地命令',
'market.cap.binaries.detail': '需要安装 {evidence}',
'market.cap.level.high': '高',
'market.cap.level.medium': '中',
'market.cap.level.low': '低',
'market.installConfirm.willGet': '这个技能将获得',
'market.installConfirm.ack': '我已查看 SKILL.md 与安全报告,了解上述权限',
// ─── Window controls / diagram + code viewers ──────────────────────────────────────
'windowControls.minimize': '最小化窗口',
'windowControls.maximize': '最大化窗口',
'windowControls.restore': '还原窗口',
'windowControls.close': '关闭窗口',
'mermaid.preview': '预览',
'mermaid.zoomOut': '缩小',
'mermaid.zoomIn': '放大',
'mermaid.fit': '适应',
'mermaid.fitDiagram': '缩放至适应图表',
'mermaid.renderError': 'Mermaid 渲染失败',
'mermaid.rendering': '正在渲染图表…',
'mermaid.previewTitle': 'Mermaid 图表',
'mermaid.previewHint': '用缩放按钮放大图表。在预览区内拖动可平移,也可以用触控板、鼠标滚轮或滚动条;滚动时按住 Ctrl/Command 可缩放。',
'mermaid.inlineCanvas': 'Mermaid 内嵌画布',
'mermaid.previewCanvas': 'Mermaid 预览画布',
'codeViewer.collapse': '收起',
'codeViewer.showMoreLines': '显示其余 {count} 行',
'common.copy': '复制',
// ─── Browser Panel ──────────────────────────────────────
'browser.back': '后退',
'browser.forward': '前进',
'browser.reload': '刷新',
'browser.addressPlaceholder': '输入网址...',
'browser.zoomOut': '缩小预览',
'browser.zoomIn': '放大预览',
'browser.zoomReset': '重置预览缩放',
'browser.capture': '截图',
'browser.pickElement': '选择元素',
'browser.selection.cancel': '取消',
'browser.selection.sendOne': '发送',
'browser.selection.queueAndContinue': '添加并继续',
'browser.selection.add': '添加',
'browser.selection.descriptionPlaceholder': '描述这些更改…',
'browser.selection.draftCount': '已选 {count} 个',
'browser.selection.undo': '撤销上一个选择',
'browser.selection.clear': '清空选择',
'browser.selection.sendBatch': '发送 {count} 个',
'browser.selection.batchMessage': '{count} 个页面修改',
'browser.selection.limitReached': '已选满 {count} 个,请先发送或清空本批选择。',
'browser.selection.cleanupFailed': '无法停止选择或撤回超额项:{reason}',
'browser.selection.navigationTitle': '离开本次批量选择?',
'browser.selection.navigationBody': '继续导航会丢弃已选的 {count} 个元素,并还原页面中的预览修改。',
'browser.selection.navigationContinue': '丢弃并继续',
'browser.selection.navigationDiscarded': '页面已变化,已清空 {count} 个选择。',
'workflows.status.running': '运行中',
'workflows.status.completed': '已完成',
'workflows.status.failed': '失败',
'workflows.status.stopped': '已停止',
'workflows.report.title': '动态工作流运行',
'workflows.report.progressLabel': '工作流 {name} 的进度',
'workflows.report.waiting': '等待第一个 agent…',
'workflows.report.result': '结果',
'workflows.ungroupedPhase': '未分组',
'workflows.meta.agents': '{count} 个 agent',
'workflows.meta.tokens': '{tokens} tokens',
'workflows.meta.tools': '{count} 次工具调用',
'workflows.phase.counts': '{done}/{total} 已完成',
'workflows.phase.failed': '{count} 个失败',
'workflows.agent.cached': '已缓存',
'workflows.dock.running': '{count} 个运行中',
'workflows.dock.expand': '展开工作流详情',
'workflows.dock.collapse': '收起工作流详情',
'workflows.launcher.title': '运行工作流',
'workflows.launcher.hint': '工作流通过已保存的脚本编排多个子 agent,在后台运行并在结束时统一汇报。',
'workflows.launcher.empty': '还没有已保存的工作流。可以从某次运行保存,或把脚本放进 .claude/workflows/。',
'workflows.launcher.run': '运行',
'workflows.launcher.argsLabel': '作为 args 传给脚本的输入',
'workflows.workbench.title': '动态工作流工作台',
'workflows.workbench.close': '关闭工作流工作台',
'workflows.workbench.open': '打开工作流工作台',
'workflows.workbench.closeDetail': '关闭 agent 详情',
'workflows.workbench.counts': '{done}/{total} 个 agent 已结束',
'workflows.workbench.runningCount': '{count} 个运行中',
'workflows.workbench.queued': '{count} 个排队中',
'workflows.workbench.prompt': '提示词',
'workflows.workbench.detailTitle': 'Agent',
'workflows.history.title': '工作流历史',
'workflows.history.empty': '本机还没有历史运行记录。',
'workflows.history.pick': '选择一次运行,查看它的脚本和各 agent 的结果。',
'workflows.history.agents': '已记录 {count} 个 agent',
'workflows.history.script': '脚本',
'workflows.launcher.argsPlaceholder': '例如一个问题,或一组路径',
'settings.tab.voice': '语音输入',
'voice.settings.title': '语音输入',
'voice.settings.description': '用运行 cc-haha 服务的这台电脑上的本地语音模型,把说话内容听写到输入框。音频不会发送到任何云端服务。',
'voice.settings.loadFailed': '无法加载语音输入设置。',
'voice.settings.saveFailed': '保存设置失败,请重试。',
'voice.settings.actionFailed': '操作没有完成。',
'voice.settings.unsupported.title': '当前平台暂不支持本地语音识别',
'voice.settings.unsupported.detail': '语音输入需要本地语音运行时支持的平台。',
'voice.settings.enable.label': '启用语音输入',
'voice.settings.enable.description': '在聊天输入框旁显示听写按钮。录下的音频在运行 cc-haha 服务的这台电脑上识别。',
'voice.settings.enable.needModel': '语音输入已开启,但语音模型还没有下载。请在下方下载;不会自动下载。',
'voice.settings.engine.title': '识别引擎',
'voice.settings.engine.description': '选择语音模型并管理其文件。',
'voice.settings.engine.provider': '引擎',
'voice.settings.phase.unprepared': '未下载',
'voice.settings.phase.downloading': '下载中',
'voice.settings.phase.verifying': '校验中',
'voice.settings.phase.ready': '已就绪',
'voice.settings.phase.failed': '失败',
'voice.settings.phase.cancelled': '已暂停',
'voice.settings.step.runtime': '正在下载语音运行时',
'voice.settings.step.model': '正在下载语音模型',
'voice.settings.step.vad': '正在下载语音活动检测模型',
'voice.settings.step.verify': '正在校验文件',
'voice.settings.model.unprepared': '语音模型尚未下载。',
'voice.settings.model.download': '下载',
'voice.settings.model.meta': '本地识别 · 约 {size}',
'voice.settings.model.downloading': '下载中',
'voice.settings.model.progress': '{completed} / {total}',
'voice.settings.model.resumed': '已从断点续传,已下载 {size}',
'voice.settings.model.source': '下载源:{source}',
'voice.settings.model.verifying': '正在校验已下载的文件…',
'voice.settings.model.ready': '本地模型已就绪,录音时自动唤醒。',
'voice.settings.model.remove': '删除模型',
'voice.settings.model.removeTitle': '删除本地语音模型?',
'voice.settings.model.removeBody': '将删除已下载的运行时和模型文件。之后需要重新下载才能使用语音输入。',
'voice.settings.model.cancelled': '已暂停,已下载的部分会保留,可随时继续。',
'voice.settings.model.resume': '继续下载',
'voice.settings.model.resumeHint': '已下载的部分会保留。网络恢复后点击重试即可从中断处继续。',
'voice.settings.failure.network': '下载失败:网络连接异常',
'voice.settings.failure.dns': '下载失败:无法解析下载地址',
'voice.settings.failure.timeout': '下载失败:连接超时',
'voice.settings.failure.certificate': '下载失败:无法验证安全连接',
'voice.settings.failure.http': '下载失败:服务器返回了错误',
'voice.settings.failure.integrity': '下载失败:文件校验不一致,将重新下载该文件',
'voice.settings.failure.storage': '下载失败:无法写入磁盘(请检查剩余空间和权限)',
'voice.settings.failure.unsupportedPlatform': '本地语音运行时不支持当前平台',
'voice.settings.failure.unknown': '下载失败,原因未知',
'voice.settings.language.label': '语言',
'voice.settings.downloadSource.label': '下载源',
'voice.settings.downloadSource.auto': '自动(选最先响应的源)',
'voice.settings.downloadSource.official': '官方源(Hugging Face、npm)',
'voice.settings.downloadSource.mirror': '国内镜像(hf-mirror、npmmirror)',
'voice.settings.downloadSource.proxyHint': '下载请求使用「通用」中的网络代理(当前:{mode})。更换下载源后,下次开始下载时生效。',
'voice.settings.downloadSource.changeProxy': '修改代理',
'voice.settings.language.auto': '自动检测',
'voice.settings.language.zh': '中文(普通话)',
'voice.settings.language.en': '英语',
'voice.settings.language.ja': '日语',
'voice.settings.language.ko': '韩语',
'voice.settings.language.yue': '粤语',
'voice.settings.mic.title': '麦克风',
'voice.settings.mic.description': '选择听写使用的输入设备。该选择只保存在这台设备上。',
'voice.settings.mic.label': '输入设备',
'voice.settings.mic.systemDefault': '系统默认',
'voice.settings.mic.savedDevice': '已保存的麦克风',
'voice.settings.mic.unnamed': '麦克风 {index}',
'voice.settings.mic.missing': '之前选择的麦克风当前不可用,已改用系统默认麦克风。',
'voice.settings.mic.noDevices': '没有检测到麦克风。',
'voice.settings.mic.allowAccess': '允许访问麦克风以显示设备名称',
'voice.settings.mic.allowHint': '会短暂打开麦克风以显示设备名称,不会录音。',
'voice.settings.capture.unsupported': '当前环境无法使用麦克风。请在本机打开 cc-haha,或通过 HTTPS 访问后再录音。',
'voice.settings.test.title': '转录测试',
'voice.settings.test.description': '录一小段音,用与听写相同的链路查看模型识别出的文字。',
'voice.settings.test.start': '开始测试',
'voice.settings.test.stop': '停止',
'voice.settings.test.starting': '正在启动…',
'voice.settings.test.transcribing': '识别中…',
'voice.settings.test.level': '麦克风电平',
'voice.settings.test.needModel': '请先在上方下载语音模型,再进行测试。',
'voice.settings.test.result': '识别结果',
'voice.settings.test.stats': '音频 {audio} 秒 · 推理 {inference} 秒',
'voice.settings.test.playback': '回放录音',
'voice.composer.start': '语音输入',
'voice.composer.needsModel': '语音输入:先到设置里下载语音模型',
'voice.composer.modelDownloading': '语音模型下载中,点击查看进度',
'voice.composer.starting': '正在打开麦克风…(点击取消)',
'voice.composer.stop': '停止录音并识别',
'voice.composer.transcribing': '识别中…',
'voice.composer.recordingHint': '录音中,按 Esc 取消',
'voice.composer.recordingBar': '语音录音',
'voice.composer.cancel': '取消录音(Esc)',
'voice.composer.sendNow': '识别后直接发送',
'voice.composer.transcribingThenSend': '识别后发送…',
'voice.composer.remaining': '还剩 {time}',
'voice.composer.insertText': '插入文字',
'voice.composer.discard': '丢弃',
'voice.composer.dismiss': '关闭提示',
'voice.composer.pendingTitle': '语音识别结果',
'voice.composer.pendingHint': '识别期间输入框内容发生了变化,未自动写入。',
'voice.composer.error.permission': '麦克风权限被拒绝,请在系统设置中允许后重试。',
'voice.composer.error.noDevice': '未检测到麦克风,请连接后重试。',
'voice.composer.error.deviceBusy': '麦克风正被其他应用占用。',
'voice.composer.error.unavailable': '当前环境不支持语音输入。',
'voice.composer.error.interrupted': '麦克风意外中断,本次录音已丢弃。',
'voice.composer.error.notReady': '语音模型尚未就绪,请在「设置 → 语音输入」中检查。',
'voice.composer.error.invalidAudio': '无法读取录音,请重试。',
'voice.composer.error.unknownProvider': '所选的语音引擎不可用。',
'voice.composer.error.failed': '识别失败,请重试。',
'voice.composer.error.noSpeech': '未识别到语音。',
'voice.composer.error.tooShort': '录音时间太短。',
'trajectory.switch.label': "会话视图",
'trajectory.switch.chat': "对话",
'trajectory.switch.trajectory': "轨迹",
'trajectory.viewInTrajectory': "在轨迹中查看",
'trajectory.loading': "正在加载轨迹…",
'trajectory.loadFailed': "轨迹加载失败",
'trajectory.empty.title': "还没有轨迹",
'trajectory.empty.description': "发送消息后,每一次模型调用、工具调用和注入的上下文都会显示在这里。",
'trajectory.kind.system': "系统",
'trajectory.kind.user': "用户",
'trajectory.kind.context': "上下文",
'trajectory.kind.assistant': "助手",
'trajectory.kind.tool': "工具",
'trajectory.kind.compact': "压缩",
'trajectory.turn.n': "第 {n} 轮",
'trajectory.turn.before': "开始前",
'trajectory.system.initial': "初始系统提示词",
'trajectory.system.updated': "系统提示词已更新",
'trajectory.system.toolsUpdated': "工具已更新",
'trajectory.system.bothUpdated': "系统提示词和工具已更新",
'trajectory.system.userContext': "用户上下文(CLAUDE.md、日期)",
'trajectory.system.chars': "{count} 字符",
'trajectory.context.skill': "技能",
'trajectory.context.skillListing': "技能列表",
'trajectory.context.invokedSkills': "已调用技能",
'trajectory.context.dynamicSkill': "动态技能",
'trajectory.context.skillDiscovery': "技能发现",
'trajectory.context.meta': "注入内容",
'trajectory.context.summary': "压缩摘要",
'trajectory.context.userContext': "用户上下文",
'trajectory.context.todoReminder': "待办提醒",
'trajectory.context.taskReminder': "任务提醒",
'trajectory.context.memory': "记忆",
'trajectory.context.planMode': "计划模式",
'trajectory.context.autoMode': "自动模式",
'trajectory.context.dateChange': "日期变更",
'trajectory.context.toolsDelta': "工具变更",
'trajectory.context.agentsDelta': "代理列表",
'trajectory.context.mcpInstructions': "MCP 说明",
'trajectory.context.mcpResource': "MCP 资源",
'trajectory.context.reminder': "系统提醒",
'trajectory.context.diagnostics': "诊断",
'trajectory.context.file': "文件",
'trajectory.context.fileChange': "文件变更",
'trajectory.context.ide': "IDE",
'trajectory.context.queued': "插入消息",
'trajectory.context.taskStatus': "任务状态",
'trajectory.context.budget': "预算",
'trajectory.context.team': "团队",
'trajectory.context.apiError': "API 错误",
'trajectory.context.hook': "Hook",
'trajectory.context.taskNotification': "任务通知",
'trajectory.context.commandOutput': "命令输出",
'trajectory.context.interrupted': "已中断",
'trajectory.user.queued': "插入",
'trajectory.assistant.toolOnly': "(仅工具调用)",
'trajectory.assistant.thinkingOnly': "(仅思考)",
'trajectory.tool.unknown': "工具",
'trajectory.tool.running': "执行中…",
'trajectory.tool.emptyResult': "(空)",
'trajectory.compact.title': "上下文已压缩",
'trajectory.status.done': "已完成",
'trajectory.status.error': "失败",
'trajectory.table.label': "轨迹",
'trajectory.table.folded': "已折叠 {count} 行",
'trajectory.table.toolCount': "{count} 个工具",
'trajectory.table.collapseTurn': "折叠{turn}",
'trajectory.table.expandTurn': "展开{turn}",
'trajectory.table.loadOlder': "加载更早的记录",
'trajectory.table.searchLoaded': "仅搜索已加载的记录 · 加载更早",
'trajectory.minimap.input': "输入",
'trajectory.minimap.model': "模型",
'trajectory.minimap.tools': "工具",
'trajectory.toolbar.duration': "按耗时",
'trajectory.toolbar.collapseTurns': "折叠轮次",
'trajectory.toolbar.hideTools': "隐藏工具",
'trajectory.toolbar.search': "搜索轨迹",
'trajectory.toolbar.clearSearch': "清除搜索",
'trajectory.toolbar.totals': "{turns} 轮 · {steps} 步 · {tools} 次调用 · {tokens} tok",
'trajectory.toolbar.cacheHit': "缓存命中 {percent}%",
'trajectory.subagent.breadcrumb': "子代理轨迹",
'trajectory.subagent.main': "主会话",
'trajectory.subagent.view': "查看子代理轨迹",
'trajectory.tab.overview': "概述",
'trajectory.tab.preview': "预览",
'trajectory.tab.input': "参数",
'trajectory.tab.output': "结果",
'trajectory.tab.raw': "原始内容",
'trajectory.tab.request': "原始请求",
'trajectory.tab.prompt': "系统提示词",
'trajectory.tab.tools': "工具",
'trajectory.tab.context': "内容",
'trajectory.tab.diff': "差异",
'trajectory.detail.label': "轨迹详情",
'trajectory.detail.tabs': "详情分区",
'trajectory.detail.resize': "调整详情面板宽度",
'trajectory.detail.copy': "复制",
'trajectory.detail.loadFailed': "加载失败:{error}",
'trajectory.detail.notLoaded': "该记录中没有此内容",
'trajectory.detail.truncated': "内容过大,只显示开头部分。",
'trajectory.detail.empty': "没有可显示的内容",
'trajectory.detail.time': "时间",
'trajectory.detail.source': "来源",
'trajectory.detail.status': "状态",
'trajectory.detail.model': "模型",
'trajectory.detail.stopReason': "停止原因",
'trajectory.detail.tokens': "Tokens",
'trajectory.detail.tokenBreakdown': "输入 {input} · 缓存读 {cacheRead} · 缓存写 {cacheWrite} · 输出 {output}",
'trajectory.detail.duration': "耗时",
'trajectory.detail.approx': "约 {value}",
'trajectory.detail.issuedBy': "发起方",
'trajectory.detail.locateInChat': "在对话中定位",
'trajectory.detail.thinking': "思考过程",
'trajectory.detail.resultText': "返回给模型的结果",
'trajectory.detail.resultStructured': "结构化结果",
'trajectory.detail.systemPrompt': "系统提示词 · {count} 字符",
'trajectory.detail.systemPromptDiff': "系统提示词变化",
'trajectory.detail.toolsDiff': "工具变化",
'trajectory.detail.toolsAdded': "新增",
'trajectory.detail.toolsRemoved': "移除",
'trajectory.detail.toolsChanged': "修改",
'trajectory.detail.noChanges': "没有变化",
'trajectory.detail.unchangedLines': "{count} 行未变化",
'trajectory.request.closest': "按时间匹配到的最接近的一次捕获调用。请求与对话记录分开保存,因此对应关系是近似的。",
'trajectory.toolbar.durationHint': "小地图按真实耗时铺开,慢的调用更宽",
'trajectory.toolbar.loadedFrom': "自第 {turn} 轮起(已加载部分)",
'trajectory.toolbar.matches': "{count} 条匹配",
'trajectory.toolbar.totalsHint': "统计范围是已加载的记录,不含子代理自己的 token",
'trajectory.table.errorCount': "{count} 次失败",
'trajectory.table.usageTitle': "输入 token(含缓存)↑ / 输出 token ↓",
'trajectory.table.usageShort': "{input}↑ {output}↓",
'trajectory.tool.callEarlier': "(调用记录在更早的历史中)",
'trajectory.tool.resultTooLarge': "结果过大({size}),未加载",
'trajectory.tool.noResult': "无结果",
'trajectory.minimap.label': "轨迹小地图:输入、模型、工具三条泳道",
'trajectory.search.noResults': "没有匹配的记录",
'trajectory.search.noResultsHint': "换个关键词试试。",
'trajectory.search.noResultsPartial': "只搜索了已加载的记录,可以加载更早的记录后再搜。",
'trajectory.detail.back': "返回列表",
'trajectory.detail.images': "包含 {count} 张图片",
'trajectory.request.captureToggle': "记录原始请求(Agent Trace)",
'trajectory.request.captureHint': "开启后,新的模型调用会保存实际发出的请求和收到的响应。",
'trajectory.request.uncaptured': "这条回复发生时没有开启原始请求记录。",
'trajectory.request.unmatched': "没有找到与这条回复对应的调用。",
'trajectory.user.command': "命令",
'trajectory.user.sessionMessage': "会话消息",
'trajectory.context.apiRetry': "API 重试",
'trajectory.context.localCommand': "本地命令",
'trajectory.context.streamRetry': "流式重试",
'trajectory.context.informational': "提示",
'trajectory.context.awaySummary': "离开摘要",
'trajectory.context.scheduledTask': "定时任务",
'trajectory.context.environment': "环境信息",
'trajectory.context.instructions': "指令说明",
'trajectory.context.sessionContext': "会话上下文",
'trajectory.context.permissionRetry': "权限已放行",
'trajectory.context.memorySaved': "已保存记忆",
'trajectory.context.agentsKilled': "已停止代理",
'trajectory.context.modelFallback': "模型回退",
'trajectory.request.endpoint': "请求地址",
'trajectory.request.provider': "服务商",
'trajectory.request.route': "链路",
'trajectory.request.routeDirect': "SDK 直连服务商",
'trajectory.request.routeProxy': "经本地代理转换协议后发往上游",
'trajectory.request.model': "请求模型",
'trajectory.request.upstreamModel': "实际发送的模型",
'trajectory.request.respondedModel': "响应声明的模型",
'trajectory.request.status': "结果",
'trajectory.request.requestId': "请求 ID",
'trajectory.request.purpose': "调用来源",
'mobile.home.title': "会话",
'mobile.home.openSearch': "搜索会话",
'mobile.home.closeSearch': "关闭搜索",
'mobile.home.projectFilter': "按项目筛选",
'mobile.home.allProjects': "全部",
'mobile.home.empty': "还没有会话。点右下角的「新任务」开始。",
'mobile.home.emptyPane': "还没有会话。",
'mobile.home.noMatches': "没有匹配的会话。",
'mobile.home.newTask': "新任务",
'mobile.newTask.title': "新任务",
'mobile.group.attention': "等你处理",
'mobile.session.waiting': "等你处理",
'mobile.session.running': "运行中",
'mobile.session.actionsHint': "长按查看更多操作",
'mobile.session.renameTitle': "重命名会话",
'mobile.session.renameLabel': "会话名称",
'mobile.session.renameFailed': "重命名失败。",
'mobile.session.deleteFailed': "删除会话失败。",
'mobile.nav.back': "返回",
'mobile.nav.backToSessions': "返回会话列表",
'chat.mobileSheet.sessionSettings': "会话设置",
'chat.mobileSheet.model': "模型与思考强度",
'mobile.approval.questionTitle': "Claude 有问题想问你",
'mobile.approval.position': "{index} / {total}",
'mobile.approval.viewDetails': "查看详情",
'mobile.approval.reasonLabel': "拒绝的理由",
'mobile.approval.reasonPlaceholder': "告诉 Claude 应该怎么做",
'mobile.approval.denyWithReason': "拒绝并发送理由",
'mobile.approval.denyWithReasonHint': "拒绝并告诉它原因",
'mobile.approval.answer': "回答问题",
'mobile.approval.reviewPlan': "查看并审批计划",
'mobile.approval.answerBelow': "在下方处理",
'chat.messageActions.title': "消息操作",
'chat.messageActions.selectText': "选择文字",
'chat.mobileSheet.title': "工具与设置",
'mobile.diff.title': "改动",
'mobile.diff.previous': "上一个文件",
'mobile.diff.next': "下一个文件",
'mobile.diff.empty': "这个文件没有可显示的行级改动,请在电脑上打开查看。",
'mobile.diff.failed': "加载改动失败。",
'mobile.activity.inProgress': "{count} 进行中",
'h5Settings.connection': "连接",
'h5Settings.connectedTo': "已连接到这台电脑",
'h5Settings.disconnect': "断开连接",
'h5Settings.disconnectBody': "这台手机会忘掉这台电脑和访问令牌。要重新连接,请在电脑上再扫一次二维码。",
'h5Settings.activeProvider': "模型提供商",
'h5Settings.desktopOnly': "需在电脑上修改",
'h5Settings.desktopOnlyHint': "这些设置作用于电脑本身,只能在电脑上修改。",
'h5Settings.allSettings': "全部设置",
}