mirror of
https://github.com/NanmiCoder/claude-code-haha.git
synced 2026-10-10 11:53:10 +08:00
4fb4784b81
Replace the drawer-based mobile layout with a single navigation stack. Home is the session list grouped by status (waiting for you, working, then by day) with the new-task composer docked under it; a session, Settings and subagent or team-member pages push on top, and the system back gesture moves up one level. Touch tablets keep the list beside the page. - Composer: one row (+, model, send); permission mode, context usage and the capability menu move into a + bottom sheet. - Approvals: a waiting permission, question or plan takes the composer's place; the transcript keeps a one-line marker. Denying can carry a reason. - Messages: press and hold for copy, select text, edit and branch instead of an always-visible icon row. - Tool runs fold into one card per run and open the full timeline in a sheet; the turn change card opens a file's diff full screen. - Activity: a pill in the session bar opens the activity sheet instead of auto-opening over the chat. - Settings: one grouped list with the connection, provider, phone-editable preferences and the computer-only settings shown read-only. - Server: GET /api/sessions/live-status reports every running or waiting session so the list can sort sessions the phone never opened.
4318 lines
282 KiB
TypeScript
4318 lines
282 KiB
TypeScript
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.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': "全部设置",
|
||
}
|