{ "generatedAt": "2026-10-12T16:54:07.167Z", "namespaces": { "common": { "locales": { "zh": { "ok": "确定", "cancel": "取消", "close": "关闭", "copy": "复制", "copied": "复制成功", "codeBlock.title": "代码块", "codeBlock.wrap": "自动换行", "codeBlock.unwrap": "取消自动换行", "copy.failed": "复制失败", "copy.value": "复制值", "copy.json": "复制 JSON", "copy.path": "复制属性路径", "copy.prettyJson": "复制格式化 JSON", "copy.compactJson": "复制紧凑 JSON", "copy.optionsHint": "{action};右键点击可选择复制方式", "retry": "重试", "loading": "加载中…", "load.failed": "加载失败", "submit": "提交", "submitting": "正在提交…", "next": "下一步", "previous": "上一步", "skip": "跳过", "delete": "删除", "edit": "编辑", "save": "保存", "search": "搜索", "more": "更多", "collapse": "收起", "expand": "展开", "back": "返回", "brand.localBuild": "DSH 本地构建", "workspace.defaultName": "默认工作区", "unknown": "未知", "none": "无", "truncated": "已截断", "json.label": "JSON", "markdown.footnotes": "脚注", "markdown.truncatedCharacters": "… 已截断,共 {total} 字符", "number.thousand": "{value}K", "number.million": "{value}M" }, "en": { "ok": "OK", "cancel": "Cancel", "close": "Close", "copy": "Copy", "copied": "Copied", "codeBlock.title": "Code block", "codeBlock.wrap": "Wrap lines", "codeBlock.unwrap": "Do not wrap lines", "copy.failed": "Copy failed", "copy.value": "Copy value", "copy.json": "Copy JSON", "copy.path": "Copy property path", "copy.prettyJson": "Copy pretty JSON", "copy.compactJson": "Copy compact JSON", "copy.optionsHint": "{action}; right-click for copy options", "retry": "Retry", "loading": "Loading…", "load.failed": "Failed to load", "submit": "Submit", "submitting": "Submitting…", "next": "Next", "previous": "Previous", "skip": "Skip", "delete": "Delete", "edit": "Edit", "save": "Save", "search": "Search", "more": "More", "collapse": "Collapse", "expand": "Expand", "back": "Back", "brand.localBuild": "DSH Local Build", "workspace.defaultName": "Default workspace", "unknown": "Unknown", "none": "None", "truncated": "Truncated", "json.label": "JSON", "markdown.footnotes": "Footnotes", "markdown.truncatedCharacters": "… truncated at {total} characters", "number.thousand": "{value}K", "number.million": "{value}M" } }, "sources": [ "dsh-client-locale" ] }, "settings.locale": { "locales": { "zh": { "language.title": "语言" }, "en": { "language.title": "Language" } }, "sources": [ "dsh-client-locale" ] }, "settings.agentPreset": { "locales": { "zh": { "modeExplanation": "模式说明", "howToUse": "如何使用", "guideSections": "帮助内容", "guideExampleTask": "示例任务", "guideCopy": "复制", "guideCopied": "已复制", "guideFootnotes": "脚注", "guideStandardIntro": "新建任务时选择「标准模式」,说明要完成什么、相关文件在哪里,以及怎样判断任务完成。", "guideStandardExplanation": "### 工作方式\n\nAgent 直接调用工具来读写文件、检索资料和执行终端命令。包含 Skills、计划、目标、子 Agent、工作流和上下文压缩等能力。\n\n### 什么时候选\n\n日常编程、文件处理和资料整理可以从这里开始。标准模式也能编写脚本、批量处理文件;PTC 改变的是工具调用方式,批量任务并不必须使用 PTC。", "guideStandardUsage": "### 修复一个问题\n\n> 搜索表单连续提交两次后,结果会消失。请定位原因、修复问题并运行相关测试,最后说明原因和修改内容。\n\n预期产出:代码修改、相关测试结果,以及问题原因说明。\n\n### 整理项目资料\n\n> 阅读项目中的 Markdown 记录,整理已经达成的结论和仍待确认的问题,并附上对应文件链接。\n\n预期产出:一份带来源引用的总结,方便回到原文核对。", "guidePtcIntro": "新建任务时选择「PTC 模式」,说明输入文件、处理规则和输出格式。代码由 Agent 编写。", "guidePtcExplanation": "### 怎样调用工具\n\nPTC 是 Programmatic Tool Calling,即通过程序调用工具。当前内置预设让 Agent 通过 run_code 编写 TypeScript 程序,使用生成的工具 SDK 发起调用。程序可以组织循环、条件判断、错误处理,以及适合并发执行的调用。\n\n### 哪些结果交给模型\n\n工具返回的数据先交给程序,经过筛选、计算或合并,再通过输出或返回值交给模型;图片结果会另行附加。程序中的工具调用仍会被记录,也仍受工具权限约束。\n\n### 与标准模式的区别\n\n两种模式都能编程、批量处理文件。标准模式直接向模型提供各个工具;PTC 让模型用代码组织工具调用。当前 PTC 预设未启用 workflow 工具。速度和 token 用量取决于具体任务与结果处理方式。", "guidePtcUsage": "### 批量检查配置文件\n\n> 检查 configs/ 下所有 JSON 文件,按照 schema.json 找出缺失字段和不合法的值。每个问题写成 CSV 中的一行;读取失败的文件也记入报告,继续检查其余文件。保留原文件。\n\n预期产出:问题汇总和一份 CSV 报告。程序可以对多份文件执行相同检查,处理单个文件的失败,再汇总结果。\n\n### 汇总错误日志\n\n> 分析 logs/ 下的日志,按服务和错误类型统计次数,列出出现最多的十类错误,每类保留一条示例。完整统计另存为 CSV。\n\n预期产出:高频错误摘要和完整统计表。中间数据可以先在程序中聚合,再把汇总交给模型。", "guideMinimalIntro": "新建任务时选择「极简模式」。做对照测试时,保持模型、权限、任务输入和工作区起始状态一致。", "guideMinimalExplanation": "### 保留哪些能力\n\n仅提供一个持久 Shell 工具,并使用固定系统提示词。内置预设不加载 Skills、计划、上下文压缩,也不注入标准运行时上下文。\n\n### 什么时候选\n\n适合作为实验和对照测试的基线。Agent 仍能通过终端命令读写文件、运行脚本,但缺少管理长任务的内置辅助能力。工具少,不代表对新手更容易。", "guideMinimalUsage": "### 对比基础修复表现\n\n> 运行这个项目的测试,找出失败原因,做最小修复,再运行相关测试并报告结果。\n\n分别用标准模式和极简模式,从相同的工作区状态执行这条任务,对比完成情况、工具调用和最终修改。极简模式会通过终端命令完成这些操作。", "guideCordisIntro": "新建任务时选择「创造模式」,说明希望增加什么能力、从哪里使用,以及怎样验证效果。", "guideCordisExplanation": "### 可以创造什么\n\n创造模式具备标准任务工具,并增加运行时检查、持久化插件管理,以及 Cordis 插件和 Agent 预设的开发指引。可以编写插件来添加功能或界面,也可以组合工具和提示词,创建适合特定任务的模式。\n\n### 插件与模式的关系\n\n插件为 DSH 增加能力,例如工具、服务连接或界面入口。模式是一份 Agent 预设,用来选择任务可用的工具,并约定 Agent 的工作方式。自定义模式中也可以使用自己开发的插件。\n\n### 怎样让成果生效\n\n可以要求 Agent 完成安装并验证实际效果。插件可能即时加载,也可能需要重启,取决于修改内容;新建的模式在创建新任务时选择。", "guideCordisUsage": "### 添加一个界面\n\n> 帮我写一个 DSH 插件,在侧栏增加「项目笔记」入口,列出当前工作区的 Markdown 文件,点击后能预览内容。完成安装并验证页面能打开。\n\n预期产出:带侧栏入口和预览页的插件,以及仍需完成的生效步骤。\n\n### 添加一个工具\n\n> 写一个插件,提供读取项目测试报告、汇总失败用例的工具。注册工具,并用一份示例报告验证调用结果。\n\n预期产出:可调用的新工具,以及一次示例调用的验证结果。\n\n### 创建自己的模式\n\n> 基于标准模式创建「代码审查」模式,优先检查潜在错误和测试缺口,指出文件与行号,修改文件前先询问我。保存成可选择的预设。\n\n预期产出:可在新任务中选择的自定义模式。审查要求用于指导 Agent,实际可执行的操作仍由权限设置决定。", "builtInGroup": "内置", "customGroup": "自定义", "sectionIntro": "选择 Agent 的工具和工作方式。日常任务用「标准模式」,扩展 DSH 的能力用「创造模式」。", "seatHint": "选择新任务使用的 Agent 预设", "headerHint": "本任务的 Agent 预设,在任务开始时确定", "nav": "Agent 预设", "setDefault": "设为新任务默认", "view": "查看配置", "presetStandardName": "标准模式", "presetStandardDescription": "处理代码、文件和资料,适合大多数任务。Agent 会按需使用检索、编辑和终端等工具。", "presetPtcName": "PTC 模式", "presetPtcDescription": "包含标准模式的所有能力,更适合批量调用工具,并对结果进行筛选、整理、去重、统计或汇总的任务。", "presetMinimalName": "极简模式", "presetMinimalDescription": "Agent 仅使用终端工具完成任务,适合测试和对比其基础表现。", "presetCordisName": "创造模式", "presetCordisDescription": "用对话定制 DSH:让 Agent 编写插件,添加新功能或界面;也能组合工具和提示词,创建自己的模式。", "inUse": "新任务默认", "noDescription": "暂无描述。", "brokenBadge": "加载失败", "switchRefused": "无法切换到「{name}」:{reason}", "close": "关闭", "creatorDraft": "让 Agent 帮我创建预设模式" }, "en": { "modeExplanation": "Mode details", "howToUse": "How to use", "guideSections": "Guide sections", "guideExampleTask": "Example task", "guideCopy": "Copy", "guideCopied": "Copied", "guideFootnotes": "Footnotes", "guideStandardIntro": "Choose Standard mode when starting a new task. Describe what you want to accomplish, point to the relevant files, and explain how to check the result.", "guideStandardExplanation": "### How it works\n\nThe agent calls tools directly to read and edit files, search, and run terminal commands. It includes Skills, planning, goals, subagents, workflows, and context compaction.\n\n### When to choose it\n\nStart here for everyday coding, file work, and research. Standard mode can also write scripts and process files in batches. PTC changes how tool calls are organized; it is not required for batch tasks.", "guideStandardUsage": "### Fix a bug\n\n> Find out why submitting the search form twice makes the results disappear. Fix it and run the relevant tests. Explain the cause and what changed.\n\nExpected output: a code change, the relevant test results, and an explanation of the cause.\n\n### Organize project notes\n\n> Read the Markdown notes in this project. Summarize the agreed decisions and open questions, with links to the source files.\n\nExpected output: a summary with references that you can check against the original notes.", "guidePtcIntro": "Choose PTC mode when starting a new task. Specify the input files, processing rules, and output format. The agent writes the code.", "guidePtcExplanation": "### How tools are called\n\nPTC means Programmatic Tool Calling. In this built-in preset, the agent uses run_code to write a TypeScript program that calls tools through a generated SDK. The program can use loops, conditions, error handling, and concurrent calls where appropriate.\n\n### What reaches the model\n\nTool results first reach the program, which can filter and combine them. The model receives what the program prints or returns; image results are attached separately. Nested tool calls are still recorded and remain subject to tool permissions.\n\n### Compared with Standard mode\n\nBoth modes can handle coding and batch tasks. Standard mode exposes individual tools directly; PTC organizes tool calls in code. The current PTC preset leaves the workflow tool disabled. Speed and token use depend on the task and how the program handles its results.", "guidePtcUsage": "### Check a set of configuration files\n\n> Check all JSON files in configs/. List missing required fields and invalid values against schema.json. Save a CSV with one row per issue. Include unreadable files in the report and keep checking the rest. Leave the original files unchanged.\n\nExpected output: an issue summary and a CSV report. The program can repeat the same checks, handle individual failures, and collect the results.\n\n### Summarize error logs\n\n> Analyze the log files in logs/. Group errors by service and error type. Show the ten most frequent groups and one example from each. Save the full counts to a CSV.\n\nExpected output: the top error groups and a complete count table. Intermediate data can be aggregated in the program before the summary reaches the model.", "guideMinimalIntro": "Choose Minimal mode for a new task. For a comparison, hold the model, permissions, input, and starting workspace state constant across runs.", "guideMinimalExplanation": "### What is included\n\nOne persistent shell tool and a fixed system prompt. The built-in preset does not load Skills, planning, context compaction, or the standard runtime context.\n\n### When to choose it\n\nUse it as a baseline for experiments and comparisons. It can still read files and execute scripts through shell commands, but offers fewer built-in ways to manage a long task. Fewer tools does not necessarily make it easier for a beginner.", "guideMinimalUsage": "### Compare performance on a small bug fix\n\n> Run the tests for this project, find the cause of the failure, and make the smallest fix. Run the relevant tests again and report the result.\n\nRun the same task separately in Standard and Minimal modes from the same starting state. Compare task completion, tool calls, and the resulting changes. Minimal mode performs the work through terminal commands.", "guideCordisIntro": "Choose Creator mode for a new task. Describe the capability you want, where it should appear, and how you will verify it.", "guideCordisExplanation": "### What you can create\n\nCreator mode includes the standard task tools plus runtime inspection, persistent plugin management, and guidance for authoring Cordis plugins and agent presets. It can create a plugin that adds a capability or UI, or a preset that combines tools and prompts for a particular job.\n\n### Plugins and modes\n\nA plugin adds capabilities to DSH, such as a tool, a service connection, or a UI entry. A mode is an agent preset that selects tools and defines how the agent works in a task. A plugin can be included in a custom preset.\n\n### How the result takes effect\n\nAsk the agent to install and verify the result, not just generate source code. A plugin may load immediately or require a restart, depending on what it changes. A newly created preset is selected when starting a new task.", "guideCordisUsage": "### Add a UI\n\n> Create a DSH plugin that adds a project notes entry to the sidebar. Let me browse the Markdown files in this workspace and preview a selected note. Install it and verify that the page opens.\n\nExpected output: an installed plugin with a working entry and preview page, plus any remaining activation steps.\n\n### Add a tool\n\n> Create a plugin with a tool that reads this project’s test report and summarizes the failed tests. Register it and verify it with a sample report.\n\nExpected output: a plugin with a callable tool and a verified sample call.\n\n### Create my own mode\n\n> Create a “Code review” mode based on Standard mode. Have it prioritize potential bugs and test gaps, cite file paths and lines, and ask before modifying files. Save it as a selectable preset.\n\nExpected output: a custom preset for new tasks. These review instructions guide the agent; permission settings determine which actions it can execute.", "builtInGroup": "Built-in", "customGroup": "Custom", "sectionIntro": "Choose the agent’s tools and how it works. Use Standard mode for everyday tasks, or Creator mode to add capabilities to DSH.", "seatHint": "Choose the agent preset for your new task", "headerHint": "The agent preset chosen when this task started", "nav": "Agent presets", "setDefault": "Set as new task default", "view": "View configuration", "presetStandardName": "Standard mode", "presetStandardDescription": "Work with code, files, and information. Suitable for most tasks, with search, editing, terminal commands, and other tools available as needed.", "presetPtcName": "PTC mode", "presetPtcDescription": "Includes all Standard mode capabilities. Better suited to tasks that call tools in batches and then filter, organize, deduplicate, count, or summarize the results.", "presetMinimalName": "Minimal mode", "presetMinimalDescription": "The agent works using only a terminal tool. Useful for testing and comparing its basic performance.", "presetCordisName": "Creator mode", "presetCordisDescription": "Customize DSH through conversation. Let the agent write plugins that add features or UI, or combine tools and prompts to create your own mode.", "inUse": "New task default", "noDescription": "No description.", "brokenBadge": "Failed to load", "switchRefused": "Could not switch to {name}: {reason}", "close": "Close", "creatorDraft": "Let the agent help me create a preset" } }, "sources": [ "dsh-client-ui-agent-preset" ] }, "approval": { "locales": { "zh": { "waiting": "等待审批", "detail.aria": "审批详情", "escalation": "工具 {toolName} 请求越权执行", "reject": "拒绝", "allowOnce": "允许一次" }, "en": { "waiting": "Waiting for approval", "detail.aria": "Approval details", "escalation": "Tool {toolName} requests privileged execution", "reject": "Reject", "allowOnce": "Allow once" } }, "sources": [ "dsh-client-ui-approval" ] }, "chat": { "locales": { "zh": { "message.stepProcess.thinking": "正在分析请求", "message.stepProcess.read": "正在读取文件", "message.stepProcess.readImage": "正在读取图片", "message.stepProcess.write": "正在写入文件", "message.stepProcess.search": "正在搜索代码", "message.stepProcess.edit": "正在编辑文件", "message.stepProcess.commands": "正在运行命令", "message.stepProcess.code": "正在运行代码", "message.stepProcess.webSearch": "正在搜索网页", "message.stepProcess.webFetch": "正在访问网页", "message.stepProcess.subagents": "正在协调子智能体", "message.stepProcess.plan": "正在更新计划", "message.stepProcess.questions": "等待你的操作", "message.stepProcess.tools": "正在调用工具", "message.stepProcess.prepare.read": "准备读取文件", "message.stepProcess.prepare.readImage": "准备读取图片", "message.stepProcess.prepare.write": "准备写入文件", "message.stepProcess.prepare.search": "准备搜索代码", "message.stepProcess.prepare.edit": "准备编辑文件", "message.stepProcess.prepare.commands": "准备运行命令", "message.stepProcess.prepare.code": "准备运行代码", "message.stepProcess.prepare.webSearch": "准备搜索网页", "message.stepProcess.prepare.webFetch": "准备访问网页", "message.stepProcess.prepare.subagents": "准备协调子智能体", "message.stepProcess.prepare.plan": "准备更新计划", "message.stepProcess.prepare.questions": "准备提问", "message.stepProcess.prepare.tools": "准备调用工具", "message.stepProcess.done.thinking": "已完成分析", "message.stepProcess.done.read": "已读取文件", "message.stepProcess.done.readImage": "已读取图片", "message.stepProcess.done.write": "已写入文件", "message.stepProcess.done.search": "已搜索代码", "message.stepProcess.done.edit": "修改了文件", "message.stepProcess.done.commands": "执行了命令", "message.stepProcess.done.code": "运行了代码", "message.stepProcess.done.webSearch": "已搜索网页", "message.stepProcess.done.webFetch": "已访问网页", "message.stepProcess.done.subagents": "已协调子智能体", "message.stepProcess.done.plan": "更新了计划", "message.stepProcess.done.questions": "向用户提出了问题", "message.stepProcess.done.tools": "已调用工具", "message.stepProcess.joinTwo": "{first}并{second}", "message.stepProcess.comma": ",", "message.stepProcess.sharedPrefix": "已", "message.stepProcess.more": "{title}等", "message.trigger.request": "收到执行请求", "message.trigger.goal": "继续执行目标", "message.trigger.agent": "收到任务消息", "message.trigger.team": "收到团队消息", "message.trigger.subagent": "子任务状态更新", "message.trigger.github": "收到 GitHub 事件", "message.trigger.webhook": "收到外部事件", "message.trigger.schedule": "自动化任务", "message.trigger.job": "后台任务状态更新", "message.trigger.plugin": "插件状态更新", "message.trigger.explanation": "这条通知触发了本轮回复。", "message.turnProcess.worked": "已完成", "message.turnProcess.took": "已完成,用时 ", "message.turnProcess.failed": "处理失败", "view.chat": "对话", "image.open": "查看大图", "image.loading": "加载图片…", "image.failed": "图片无法预览", "image.dialog": "图片预览", "image.close": "关闭图片预览", "number.groupSeparator": ",", "duration.compactSeconds": "{seconds}秒", "duration.compactMinutes": "{minutes}分{seconds}秒", "duration.milliseconds": "{milliseconds}毫秒", "stats.counts": "{turns} 轮 {steps} 步", "stats.cacheHit": "缓存命中 {percent}%", "stats.dialog.title": "会话统计", "stats.dialog.usageTitle": "Token 用量", "stats.dialog.llmTime": "模型用时", "stats.dialog.toolTime": "工具调用用时", "stats.dialog.ttft": "首 token 平均(TTFT)", "stats.dialog.speed": "输出速度(TPS)", "chat.loadingHistory": "载入历史…", "chat.loadError": "历史加载失败:{message}({code})", "chat.loadOlder": "加载更早", "chat.toBottom": "回到底部", "chat.deepDiving": "深度求索中", "chat.deepDivingFor": "深度求索中,用时 {duration} ···", "chat.turnNavigation.label": "轮次导航", "chat.turnNavigation.jump": "跳转到第 {turn} 轮", "chat.turnNavigation.jumpLoad": "加载并跳转到第 {turn} 轮", "chat.turnNavigation.turn": "第 {turn} 轮", "settings.performance.title": "性能与用量", "settings.performance.description": "选择性能与用量信息展示的详细程度", "settings.performance.compact": "简洁", "settings.performance.detailed": "详细", "settings.links.title": "网页链接默认打开方式", "settings.links.description": "对话中网页链接的打开位置", "settings.links.sidebar": "应用内侧边栏", "settings.links.newTab": "默认浏览器", "settings.transcript.title": "工作步骤展示", "settings.transcript.description": "选择希望看到多少工具调用细节", "settings.transcript.compact": "简洁", "settings.transcript.standard": "标准", "settings.transcript.detailed": "详细", "settings.transcript.verbose": "完全展开", "fileOpen.title": "无法打开文件", "fileOpen.unknown": "无法打开此文件", "message.extraBlock": "附加内容块", "message.systemPrompt": "系统提示词", "message.systemPromptUpdate": "系统提示词更新", "message.toolAdded": "已添加工具:{name}", "message.toolRemoved": "已移除工具:{name}", "message.toolsAdded": "新增:{names}", "message.toolsAddedCount": "新增 {count} 个", "message.toolsChanged": "新增 {added} 个,移除 {removed} 个", "message.toolsRemoved": "移除:{names}", "message.toolsRemovedCount": "移除 {count} 个", "message.toolsUpdated": "工具已更新", "message.contextInjection": "上下文注入", "message.contextRecall": "跨会话召回", "message.referenceSummary": "引用会话 · {labels}", "message.referenceSeparator": "、", "message.context.instructions.loaded": "已载入", "message.context.instructions.added": "已新增", "message.context.instructions.updated": "已更新", "message.context.instructions.removed": "已移除", "message.context.catalog.replaced": "替换目录", "message.context.catalog.more": "…还有 {count} 条", "message.context.snapshot.supersedes": "取代先前的快照", "message.context.relay.from": "来自会话 {session}", "message.context.recall.counts": "保留 {retained} 条 · 省略 {omitted} 条", "message.context.recall.truncated": "已截断", "message.compaction": "上下文已压缩", "message.compaction.running": "正在压缩…", "message.compaction.completed": "已压缩 {items} 条历史记录(约 {tokens} tokens)", "message.compaction.expand": "点击查看压缩摘要", "message.compaction.unavailable": "压缩摘要不可用", "message.compaction.commandTitle": "compact", "message.think": "思考", "message.unknownSurface": "未知 surface 事件:{type}", "message.unknownBlock": "未知内容块", "message.turnProcess.toolCalls.one": "{count} 次工具调用", "message.turnProcess.toolCalls.other": "{count} 次工具调用", "message.turnProcess.messages.one": "{count} 条消息", "message.turnProcess.messages.other": "{count} 条消息", "message.turnProcess.subagents.one": "{count} 个 subagent", "message.turnProcess.subagents.other": "{count} 个 subagent", "message.turnProcess.thoughtForAWhile": "已思考", "message.turnProcess.separator": " · ", "message.stopped": "已停止", "message.branch": "在新对话中分支", "message.branchUnavailable": "仅可从已完成轮次的最后一条消息分支", "message.retry.active": "正在重试模型请求", "message.retry.cancelled": "模型请求重试已取消", "message.retry.started": "已重试模型请求", "message.retry.scheduled": "等待重试模型请求", "message.retry.status": "{label}({retry}/{maximum}) · {seconds}s", "message.retry.delay": "重试延迟:", "message.retry.failure": "失败原因:", "message.failure.auth": "API 密钥无效", "message.accountStopped": "任务已停止", "message.failure.accountSignedOut": "任务已因退出 DeepSeek 登录而停止。", "message.failure.accountSignInRequired": "请先登录 DeepSeek,并确认请求地址支持账号认证。", "message.failure.quota": "当前请求的额度已用尽", "message.turnError": "本轮运行失败", "message.maxTokens": "已达到输出 token 上限", "message.maxTokens.hint": "回答被截断,已有输出保留在对话中。发送“继续”可让模型接着输出。", "message.tokensPerSecond": "{tps} tok/s", "message.turnUsage.title": "本轮用量", "message.turnUsage.consumed": "用量 {total}", "message.turnUsage.model": "提供方 / 模型", "message.turnUsage.cacheHit": "缓存命中", "message.turnUsage.input": "未缓存输入", "message.turnUsage.cacheRead": "缓存读取", "message.turnUsage.cacheWrite": "缓存写入", "message.turnUsage.output": "输出", "message.turnUsage.reasoning": "(其中推理 {tokens})", "message.turnUsage.count": "{count} tok", "duration.secondUnit": "秒", "duration.minuteUnit": "分", "duration.hourUnit": "小时", "command.running": "执行中…", "command.failed": "指令失败", "command.done": "已完成", "command.title": "指令", "row.running": "运行中", "row.failed": "失败", "json.truncated": "… 已截断,共 {total} 字符", "clock.md": "{m}月{d}日", "clock.ymd": "{y}年{m}月{d}日" }, "en": { "message.stepProcess.thinking": "Analyzing the request", "message.stepProcess.read": "Reading files", "message.stepProcess.readImage": "Reading images", "message.stepProcess.write": "Writing files", "message.stepProcess.search": "Searching code", "message.stepProcess.edit": "Editing files", "message.stepProcess.commands": "Running commands", "message.stepProcess.code": "Running code", "message.stepProcess.webSearch": "Searching the web", "message.stepProcess.webFetch": "Visiting web pages", "message.stepProcess.subagents": "Coordinating subagents", "message.stepProcess.plan": "Updating the plan", "message.stepProcess.questions": "Waiting for your action", "message.stepProcess.tools": "Calling tools", "message.stepProcess.prepare.read": "Preparing to read files", "message.stepProcess.prepare.readImage": "Preparing to read images", "message.stepProcess.prepare.write": "Preparing to write files", "message.stepProcess.prepare.search": "Preparing to search code", "message.stepProcess.prepare.edit": "Preparing to edit files", "message.stepProcess.prepare.commands": "Preparing to run commands", "message.stepProcess.prepare.code": "Preparing to run code", "message.stepProcess.prepare.webSearch": "Preparing to search the web", "message.stepProcess.prepare.webFetch": "Preparing to visit web pages", "message.stepProcess.prepare.subagents": "Preparing to coordinate subagents", "message.stepProcess.prepare.plan": "Preparing to update the plan", "message.stepProcess.prepare.questions": "Preparing questions", "message.stepProcess.prepare.tools": "Preparing tool calls", "message.stepProcess.done.thinking": "Analysis completed", "message.stepProcess.done.read": "Read files", "message.stepProcess.done.readImage": "Read images", "message.stepProcess.done.write": "Wrote files", "message.stepProcess.done.search": "Searched code", "message.stepProcess.done.edit": "Edited files", "message.stepProcess.done.commands": "Ran commands", "message.stepProcess.done.code": "Ran code", "message.stepProcess.done.webSearch": "Searched the web", "message.stepProcess.done.webFetch": "Visited web pages", "message.stepProcess.done.subagents": "Coordinated subagents", "message.stepProcess.done.plan": "Updated the plan", "message.stepProcess.done.questions": "Asked questions", "message.stepProcess.done.tools": "Called tools", "message.stepProcess.joinTwo": "{first} and {second}", "message.stepProcess.comma": ", ", "message.stepProcess.sharedPrefix": "", "message.stepProcess.more": "{title}, etc.", "message.trigger.request": "Execution requested", "message.trigger.goal": "Continuing goal", "message.trigger.agent": "Task message received", "message.trigger.team": "Team message received", "message.trigger.subagent": "Subtask status updated", "message.trigger.github": "GitHub event received", "message.trigger.webhook": "External event received", "message.trigger.schedule": "Automation task", "message.trigger.job": "Background task updated", "message.trigger.plugin": "Plugin status updated", "message.trigger.explanation": "This notification triggered this response.", "message.turnProcess.worked": "Completed", "message.turnProcess.took": "Completed in ", "message.turnProcess.failed": "Failed", "view.chat": "Chat", "image.open": "View full image", "image.loading": "Loading image…", "image.failed": "Image preview unavailable", "image.dialog": "Image preview", "image.close": "Close image preview", "number.groupSeparator": ",", "duration.compactSeconds": "{seconds}s", "duration.compactMinutes": "{minutes}m{seconds}s", "duration.milliseconds": "{milliseconds}ms", "stats.counts": "{turns} turns {steps} steps", "stats.cacheHit": "Cache hit {percent}%", "stats.dialog.title": "Session statistics", "stats.dialog.usageTitle": "Token usage", "stats.dialog.llmTime": "LLM time", "stats.dialog.toolTime": "Tool time", "stats.dialog.ttft": "Avg time to first token (TTFT)", "stats.dialog.speed": "Tokens per second (TPS)", "chat.loadingHistory": "Loading history…", "chat.loadError": "Failed to load history: {message} ({code})", "chat.loadOlder": "Load earlier", "chat.toBottom": "Back to bottom", "chat.deepDiving": "Deep diving", "chat.deepDivingFor": "Deep diving for {duration} ···", "chat.turnNavigation.label": "Turn navigation", "chat.turnNavigation.jump": "Jump to turn {turn}", "chat.turnNavigation.jumpLoad": "Load and jump to turn {turn}", "chat.turnNavigation.turn": "Turn {turn}", "settings.performance.title": "Performance & usage", "settings.performance.description": "Choose how much performance and usage information to show", "settings.performance.compact": "Compact", "settings.performance.detailed": "Detailed", "settings.links.title": "Open chat links in", "settings.links.description": "Choose where to open web links", "settings.links.sidebar": "In-App Sidebar", "settings.links.newTab": "Default Browser", "settings.transcript.title": "Work details", "settings.transcript.description": "Choose how much detail to show for tool calls", "settings.transcript.compact": "Compact", "settings.transcript.standard": "Standard", "settings.transcript.detailed": "Detailed", "settings.transcript.verbose": "Verbose", "fileOpen.title": "Couldn’t open file", "fileOpen.unknown": "Couldn’t open this file", "message.extraBlock": "Extra content block", "message.systemPrompt": "System prompt", "message.systemPromptUpdate": "System prompt update", "message.toolAdded": "Tool added: {name}", "message.toolRemoved": "Tool removed: {name}", "message.toolsAdded": "Added: {names}", "message.toolsAddedCount": "{count} added", "message.toolsChanged": "{added} added, {removed} removed", "message.toolsRemoved": "Removed: {names}", "message.toolsRemovedCount": "{count} removed", "message.toolsUpdated": "Tools updated", "message.contextInjection": "Context injection", "message.contextRecall": "Session recall", "message.referenceSummary": "Referenced session · {labels}", "message.referenceSeparator": ", ", "message.context.instructions.loaded": "loaded", "message.context.instructions.added": "added", "message.context.instructions.updated": "updated", "message.context.instructions.removed": "removed", "message.context.catalog.replaced": "Replacement catalog", "message.context.catalog.more": "… {count} more", "message.context.snapshot.supersedes": "Supersedes earlier snapshots", "message.context.relay.from": "From session {session}", "message.context.recall.counts": "{retained} kept · {omitted} omitted", "message.context.recall.truncated": "truncated", "message.compaction": "Context compacted", "message.compaction.running": "Compacting context…", "message.compaction.completed": "Compacted {items} history items (~{tokens} tokens)", "message.compaction.expand": "View compaction summary", "message.compaction.unavailable": "Compaction summary unavailable", "message.compaction.commandTitle": "compact", "message.think": "Think", "message.unknownSurface": "Unknown surface event: {type}", "message.unknownBlock": "Unknown content block", "message.turnProcess.toolCalls.one": "{count} tool call", "message.turnProcess.toolCalls.other": "{count} tool calls", "message.turnProcess.messages.one": "{count} message", "message.turnProcess.messages.other": "{count} messages", "message.turnProcess.subagents.one": "{count} subagent", "message.turnProcess.subagents.other": "{count} subagents", "message.turnProcess.thoughtForAWhile": "Thought for a while", "message.turnProcess.separator": " · ", "message.stopped": "Stopped", "message.branch": "Branch into a new conversation", "message.branchUnavailable": "Available only on the last message of a completed turn", "message.retry.active": "Retrying model request", "message.retry.cancelled": "Model request retry cancelled", "message.retry.started": "Retried model request", "message.retry.scheduled": "Waiting to retry model request", "message.retry.status": "{label} ({retry}/{maximum}) · {seconds}s", "message.retry.delay": "Retry delay: ", "message.retry.failure": "Failure reason: ", "message.failure.auth": "API key is invalid", "message.accountStopped": "Task stopped", "message.failure.accountSignedOut": "Stopped because you signed out of DeepSeek.", "message.failure.accountSignInRequired": "Sign in to DeepSeek and ensure the request destination supports account authentication.", "message.failure.quota": "Request quota exhausted.", "message.turnError": "This turn failed", "message.maxTokens": "Output token limit reached", "message.maxTokens.hint": "The reply was cut off; earlier output is preserved in the conversation. Send \"continue\" to let the model resume.", "message.tokensPerSecond": "{tps} tok/s", "message.turnUsage.title": "Turn usage", "message.turnUsage.consumed": "Usage {total}", "message.turnUsage.model": "Provider / model", "message.turnUsage.cacheHit": "Cache hit", "message.turnUsage.input": "Uncached input", "message.turnUsage.cacheRead": "Cached input", "message.turnUsage.cacheWrite": "Cache write", "message.turnUsage.output": "Output", "message.turnUsage.reasoning": " ({tokens} reasoning)", "message.turnUsage.count": "{count} tok", "duration.secondUnit": "s", "duration.minuteUnit": "m ", "duration.hourUnit": "h ", "command.running": "Running…", "command.failed": "Command failed", "command.done": "Completed", "command.title": "Command", "row.running": "Running", "row.failed": "Failed", "json.truncated": "… truncated, {total} characters total", "clock.md": "{m}/{d}", "clock.ymd": "{y}-{m}-{d}" } }, "sources": [ "dsh-client-ui-chat" ] }, "command": { "locales": { "zh": { "section.add": "添加", "section.commands": "指令", "label.goal": "目标", "label.plan": "计划", "label.feedback": "反馈", "label.compact": "压缩", "label.permission": "权限", "label.export": "下载日志", "description.goal": "设置或查看长期任务目标", "description.plan": "进入或退出计划模式", "description.feedback": "发送关于当前会话的反馈", "description.compact": "压缩以上对话内容", "description.permission": "切换权限预设(沙箱模式与审批策略)", "description.export": "将当前会话内容导出为 ZIP", "token.goal": "目标", "token.plan": "计划", "token.feedback": "反馈", "token.compact": "压缩", "token.permission": "权限", "token.export": "导出", "search.placeholder": "搜索…", "search.aria": "筛选选项", "status.loading": "正在加载选项…", "status.applying": "正在应用…", "status.empty": "无选项", "overlay.aria": "/{command} 选项", "listbox.aria": "/{command} 匹配项", "notice.attachmentsUnsupported": "/{command} 不接受附件,请先移除附件" }, "en": { "section.add": "Add", "section.commands": "Commands", "label.goal": "Goal", "label.plan": "Plan", "label.feedback": "Feedback", "label.compact": "Compact", "label.permission": "Permission", "label.export": "Export", "description.goal": "Set or view the goal for a long-running task", "description.plan": "Enter or leave plan mode", "description.feedback": "Record feedback about this session", "description.compact": "Compact older conversation history", "description.permission": "Switch the permission preset (sandbox mode + approval policy)", "description.export": "Download this Session log as a ZIP archive", "token.goal": "goal", "token.plan": "plan", "token.feedback": "feedback", "token.compact": "compact", "token.permission": "permission", "token.export": "export", "search.placeholder": "Search…", "search.aria": "Filter options", "status.loading": "Loading options…", "status.applying": "Applying…", "status.empty": "No options", "overlay.aria": "/{command} options", "listbox.aria": "/{command} matches", "notice.attachmentsUnsupported": "/{command} does not accept attachments; remove them first" } }, "sources": [ "dsh-client-ui-commands" ] }, "conversation": { "locales": { "zh": { "shortcut.newline": "换行", "shortcut.complementary": "使用互补的 Queue/Steer 方式", "shortcut.slash": "打开命令菜单", "shortcut.mention": "打开引用菜单", "hint.plan": "描述你的任务以生成计划", "hint.goal": "输入目标,智能体将持续执行", "hint.goal.active": "当前目标进行中。可输入 edit 修改 / pause 暂停 / resume 继续 / clear 清除", "placeholder.plan": "描述你的任务以生成计划", "placeholder.default": "发消息或创建任务, / 调用指令, @ 文件或对话", "placeholder.unavailable": "会话不可用", "placeholder.parentOffline": "父会话已离线,无法继续发送;仍可停止当前运行", "placeholder.hero": "描述你想要构建的内容, / 调用指令, @ 文件或对话", "placeholder.workspace": "选择一个工作区开始", "placeholder.steerQueue": "Cmd/Ctrl+Enter 插话发送全部排队消息", "input.commands": "添加文件或调用指令", "input.file": "文件", "input.stop": "停止生成", "input.send": "发送消息", "input.send.queue": "排队发送", "input.send.steer": "插话发送", "attachment.pending": "待发送附件", "attachment.scrollLeft": "向左滚动附件", "attachment.scrollRight": "向右滚动附件", "attachment.dropTitle": "文件或图片拖动到此处即可添加", "attachment.dropDesc": "图片限制:最多 {count} 张,每张 {size}", "attachment.dropBlocked": "当前无法添加文件或图片", "attachment.directoryDesktopOnly": "只有桌面端支持添加文件夹,浏览器里请添加单个文件", "attachment.pathUnavailable": "无法获取文件夹路径,请重新拖入", "attachment.pathUnsupported": "路径含有无法引用的字符,请改名后再试", "image.pending": "待发送图片", "image.openOriginal": "查看原图", "image.openOriginalLabel": "{label},点击查看原图", "image.remove": "移除图片 {name}", "image.original": "原图", "image.label": "图片", "image.loadFailed": "图片加载失败,点击重试", "image.loading": "图片加载中…", "image.preview": "原图预览", "image.closePreview": "关闭原图预览", "image.unsupportedType": "仅支持 PNG、JPG、WebP、GIF 格式的图片", "image.tooMany": "一条消息最多添加 {count} 张图片", "image.fileTooLarge": "单张图片不能超过 {size}", "image.totalTooLarge": "图片总大小超过 {size},请移除部分图片", "image.tooManyPixels": "图片分辨率过大,请压缩后重试", "image.dimensionTooLarge": "图片宽高不能超过 {size}px,请缩小后重试", "image.modelUnsupported": "当前模型不支持图片,请切换支持图片的模型", "image.sendFailed": "图片发送失败({reason}),请重新添加图片后再试", "file.pending": "待发送文件", "file.remove": "移除文件 {name}", "file.uploading": "上传中…", "file.uploadFailed": "上传失败,点击重试", "file.retry": "重试上传 {name}", "file.stillUploading": "文件还在上传,请等待上传完成后发送", "file.sessionUnavailable": "会话不可用,无法上传文件", "file.notStaged": "文件尚未上传成功,请重新添加后再试", "file.label": "文件", "context.aria": "上下文已用 {percent}", "context.used": "上下文已用", "context.system": "系统提示词", "context.tools": "工具定义", "context.messages": "对话消息", "settings.enter.title": "繁忙时的发送行为", "settings.enter.description": "智能体运行时 Enter 键和发送按钮的行为;Cmd/Ctrl+Enter 使用另一行为", "settings.enter.queue": "排队发送", "settings.enter.steer": "插话发送", "hero.headline": "探索未至之境", "hero.preview": "预览版", "hero.chooseWorkspace": "选择工作区", "session.hierarchy": "会话层级", "todo.title": "任务", "todo.progress.done": "{done} 已完成", "todo.progress.active": "{active} 进行中", "todo.progress.pending": "{pending} 待处理", "todo.status.completed": "已完成", "todo.status.inProgress": "进行中", "todo.status.pending": "待处理", "todo.rowTitle": "更新任务清单", "tool.title.createGoal": "创建目标", "tool.title.getGoal": "查看目标", "tool.title.updateGoal": "更新目标", "tool.preparing.content": "正在准备内容 {kilobytes}KB", "tool.title.createSchedule": "创建定时任务", "tool.title.listSchedules": "查看定时任务", "tool.title.deleteSchedule": "删除定时任务", "tool.title.updateSchedule": "修改定时任务", "detail.state": "状态", "detail.todo.completed": "已完成", "detail.todo.in_progress": "进行中", "detail.todo.pending": "待处理", "detail.todo.empty": "任务清单为空", "todo.diff.initial": "首次记录", "todo.diff.compare": "与上次清单相比", "todo.diff.unavailable": "旧清单不可用", "todo.diff.noChanges": "清单没有变化", "todo.diff.added": "新增 {count}", "todo.diff.updated": "更新 {count}", "todo.diff.removed": "移除 {count}", "todo.diff.unchanged": "{count} 项未变化", "todo.diff.addedItem": "新增", "todo.diff.updatedItem": "状态变化", "todo.diff.movedItem": "顺序调整", "todo.diff.removedItem": "移除", "detail.goal.empty": "没有目标", "detail.goal.active": "进行中", "detail.goal.disarmed": "等待继续", "detail.goal.paused": "已暂停", "detail.goal.blocked": "受阻", "detail.goal.complete": "已完成", "detail.goal.rounds": "执行轮次", "detail.goal.reason": "受阻原因", "detail.days": "{count} 天", "detail.hours": "{count} 小时", "detail.minutes": "{count} 分钟", "detail.seconds": "{count} 秒", "detail.schedule.once": "单次", "detail.schedule.every": "每 {interval}", "detail.schedule.when": "计划时间", "detail.schedule.frequency": "重复", "detail.schedule.scheduled": "等待触发", "detail.schedule.overdue": "已到期,等待会话恢复", "detail.schedule.empty": "没有定时任务", "detail.schedule.deleted": "已删除", "detail.schedule.count": "{count} 个定时任务", "detail.schedule.daily": "每天 {time}({zone})", "detail.schedule.weekly": "每周 {days} {time}({zone})", "detail.schedule.cron": "Cron {expression}({zone})", "detail.weekday.1": "周一", "detail.weekday.2": "周二", "detail.weekday.3": "周三", "detail.weekday.4": "周四", "detail.weekday.5": "周五", "detail.weekday.6": "周六", "detail.weekday.7": "周日", "detail.weekday.join": "、", "tool.title.inspectProviders": "检查提供方", "tool.title.queryRuntime": "查询运行时", "tool.title.inspectPlugins": "检查动态插件", "tool.title.workflow": "运行工作流", "tool.title.ralph": "运行循环工作流", "tool.title.readEvent": "读取事件", "tool.title.searchEvents": "搜索事件", "tool.title.traceEvent": "追踪事件", "tool.title.searchSessions": "搜索会话", "tool.title.traceSession": "追踪会话", "tool.title.listModels": "查看可用模型", "tool.title.subagent": "创建子智能体", "tool.title.listAgents": "查看子智能体", "tool.title.sendMessage": "发送消息", "tool.title.interruptAgent": "中断智能体", "tool.title.listJobs": "查看后台任务", "tool.title.readJob": "读取任务输出", "tool.title.killJob": "取消后台任务", "tool.title.openTerminal": "创建终端", "tool.title.readTerminal": "读取终端", "tool.title.listTerminals": "查看终端", "tool.title.signalTerminal": "发送终端信号", "tool.title.closeTerminal": "关闭终端", "tool.title.lsp": "查询代码符号", "tool.title.findDefinition": "查找定义", "tool.title.findReferences": "查找引用", "tool.title.findImplementation": "查找实现", "tool.title.hoverSymbol": "查看符号信息", "tool.title.spawnTeammate": "创建队友", "tool.title.createTeamTask": "创建团队任务", "tool.title.getTeamTask": "读取团队任务", "tool.title.updateTeamTask": "更新团队任务", "tool.title.listTeamTasks": "查看团队任务", "tool.title.waitAgent": "等待子智能体", "detail.recordedResult": "调用结果", "detail.empty": "暂无结果", "detail.none": "无", "detail.yes": "是", "detail.no": "否", "detail.moreInInspect": "另有 {count} 项,可在「查看」中读取", "detail.status.running": "运行中", "detail.status.idle": "空闲", "detail.status.ready": "就绪", "detail.status.inactive": "未运行", "detail.status.provisioning": "准备中", "detail.status.failed": "失败", "detail.status.completed": "已完成", "detail.status.deleted": "已删除", "detail.status.killed": "已取消", "detail.status.accepted": "已接收", "detail.status.queued": "已入队", "detail.status.exited": "已退出", "detail.field.id": "ID", "detail.field.revision": "版本", "detail.field.platform": "平台", "detail.field.provider": "提供方", "detail.field.model": "模型", "detail.field.role": "角色", "detail.field.context": "上下文", "detail.field.owner": "负责人", "detail.field.ready": "可开始", "detail.field.dependencies": "前置任务", "detail.field.writeScopes": "文件范围", "detail.field.warnings": "提示", "detail.field.diagnostics": "诊断", "detail.field.methods": "方法", "detail.field.inputSchema": "输入 Schema", "detail.field.outputSchema": "输出 Schema", "detail.field.currentPackage": "当前包", "detail.field.nextPackage": "待运行的包", "detail.field.latestRun": "最近运行", "detail.field.packages": "版本包", "detail.field.registrations": "注册项", "detail.field.props": "属性", "detail.field.data": "数据", "detail.field.source": "来源", "detail.field.content": "内容", "detail.field.message": "消息", "detail.field.messageId": "消息 ID", "detail.field.root": "根节点", "detail.field.pid": "进程 ID", "detail.field.type": "类型", "detail.field.time": "时间", "detail.field.seq": "事件序号", "detail.field.turn": "轮次", "detail.field.step": "步骤", "detail.field.callId": "调用 ID", "detail.field.agents": "启动智能体数", "detail.field.result": "结果", "detail.field.parent": "父级", "detail.field.depth": "层级", "detail.field.exitCode": "退出码", "detail.field.signal": "信号", "detail.field.previousStatus": "中断前状态", "detail.field.agent": "智能体 ID", "detail.field.job": "任务 ID", "detail.field.task": "任务内容", "detail.field.processGroup": "进程组", "detail.field.availability": "可用状态", "detail.field.bestMatch": "最相关事件", "detail.field.target": "目标事件", "detail.field.surface": "记录状态", "detail.agents.count": "{count} 个智能体", "detail.jobs.count": "{count} 个后台任务", "detail.terminals.count": "{count} 个终端", "detail.tasks.count": "{count} 个团队任务", "detail.tasks.nextPage": "后面还有任务;下一页位置为 {cursor}", "detail.locations.count": "{count} 个位置", "detail.location": "第 {line} 行,第 {column} 列", "detail.receipt.delivered": "消息已送达", "detail.receipt.interrupt": "已请求中断", "detail.receipt.started": "已启动", "detail.receipt.cancel": "已请求取消", "detail.receipt.alreadyFinished": "任务已结束", "detail.receipt.signal": "信号已发送", "detail.receipt.closed": "已关闭", "detail.receipt.closing": "关闭中", "detail.wait.noProgress": "没有正在运行的子智能体", "detail.wait.title": "子智能体状态", "detail.wait.timeout": "等待超时", "detail.wait.changed": "检测到变化", "detail.agent.reply": "智能体回复", "detail.models.title": "可用模型", "detail.output.lines": "第 {begin}–{end} 行,共 {total} 行", "detail.output.truncated": "输出已截断", "detail.providers.count": "{count} 个检查提供方", "detail.plugins.count": "{count} 个动态插件", "detail.workflow.script": "工作流脚本", "detail.ralph.reportedComplete": "智能体报告完成", "detail.ralph.reportedBlocker": "智能体报告受阻", "detail.ralph.limit": "已达到轮次上限", "detail.report.nextSteps": "待完成事项", "detail.trace.replacedBy": "被替换为", "detail.trace.replacementChain": "替换链", "detail.trace.replaces": "替换的事件", "detail.trace.sources": "引用来源", "detail.trace.derived": "派生事件", "detail.trace.ancestors": "祖先会话", "detail.trace.descendants": "后代会话", "detail.matches.count": "{count} 条匹配", "detail.matches.capped": "已达到结果上限,可缩小搜索范围", "detail.event.neighbors": "前后事件", "todo.completed": "{done}/{total} 已完成", "command.attachmentsUnsupported": "/{command} 不接受附件,请先移除附件", "ask.rowTitle": "提问", "ask.waiting": "等待回答", "ask.pending": "已继续工作,仍可回答", "ask.pendingDetail": "等待中的问题仍可在输入框中回答", "ask.reopen": "回答", "ask.review": "查看回答", "ask.closed": "已结束", "ask.closedDetail": "该问题已结束,结果见下方对话", "ask.cancelled": "已取消", "ask.cancelledDetail": "本轮已取消,未提交回答", "ask.interrupted": "已中断", "ask.interruptedDetail": "本轮已中断,未提交回答", "ask.answered": "{answered}/{total} 已回答", "ask.skipped": "未回答", "bash.running": "运行中", "bash.failed": "失败", "bash.stopped": "已停止", "row.running": "运行中", "row.preparing": "正在准备调用", "row.failed": "失败", "row.stopped": "已停止", "row.input": "输入", "row.output": "输出", "row.inspect": "查看", "tool.title.search": "搜索", "tool.title.read": "读取", "tool.title.bash": "运行命令", "tool.title.write": "写入", "tool.title.edit": "编辑", "tool.title.code": "代码", "tool.title.generic": "工具调用", "tool.title.inspect": "查询 Cordis 环境", "tool.title.runCordis": "运行 Cordis 插件", "tool.title.stopCordis": "停止 Cordis 插件", "tool.title.removeCordis": "移除 Cordis 插件", "tool.title.pwsh": "运行命令", "tool.title.readImage": "读取图片", "tool.title.grep": "搜索文件内容", "tool.title.glob": "查找文件", "tool.title.webSearch": "网页搜索", "tool.title.webFetch": "网页获取", "tool.autoReviewRejected": "Auto review 已拒绝", "tool.autoReviewNotExecuted": "工具未执行。原因:{reason}", "tool.autoReviewReasonFallback": "Auto review 未授权此次操作", "diff.collapseAria": "收起差异", "diff.expandAria": "展开其余 {count} 行差异", "diff.expandRest": "… 其余 {count} 行", "read.window": "显示 {shown} / {total} 行", "read.collapseAria": "收起内容", "read.expandAria": "展开其余 {count} 行", "read.expandRest": "… 其余 {count} 行", "search.paths": "{shown} 个路径", "search.paths.truncated": "显示 {shown} / 共 {total} 个路径", "search.matches": "{shown} 处匹配 · {files} 个文件", "search.matches.truncated": "显示 {shown} / 共 {total} 处匹配 · {files} 个文件", "search.noResults": "无结果", "search.collapseAria": "收起结果", "search.expandAria": "展开其余 {count} 行结果", "search.expandRest": "… 其余 {count} 行", "web.noResults": "未找到结果", "web.sourcesTruncated": "来源列表已截断", "web.http": "HTTP", "web.contentTruncated": "内容已截断", "details.running": "运行中…", "queue.count": "{n} 条排队消息", "queue.sending": "发送中…", "queue.image": "排队消息图片", "queue.file": "排队文件 {name}", "queue.edit": "编辑排队消息", "queue.edit.unsupported": "包含非文本内容,暂不支持编辑", "queue.save": "保存排队消息", "queue.cancelEdit": "取消编辑", "queue.remove": "删除排队消息", "queue.steer": "插话发送", "queue.steer.unavailable": "仅运行中可插话发送", "error.sessionInUse": "当前会话已被占用,可能是其他正在运行的 DSH 导致的(如其他 dsh web、桌面端),请退出其他正在运行的 DSH 后重试。", "queue.editFailed": "编辑失败:这条消息可能已经开始发送。", "queue.removeFailed": "删除失败:这条消息可能已经开始发送。", "queue.steerFailed": "插话发送失败,请重试。", "terminal.signal": "信号 {signal}", "terminal.exitCode": "退出码 {code}", "terminal.noExitCode": "未正常退出", "terminal.running": "运行中", "terminal.failed": "失败", "terminal.done": "已完成", "terminal.noOutput": "无输出", "terminal.collapseAria": "收起输出", "terminal.expandAria": "展开其余 {n} 行输出", "terminal.expandRest": "… 其余 {n} 行", "terminal.sendInput": "(发送输入)", "terminal.session": "终端 {sessionId}" }, "en": { "shortcut.newline": "New line", "shortcut.complementary": "Use the complementary Queue / Steer action", "shortcut.slash": "Open command menu", "shortcut.mention": "Open reference menu", "hint.plan": "describe your task to generate plan", "hint.goal": "describe the objective for a long-running task", "hint.goal.active": "goal active — edit / pause / resume / clear", "placeholder.plan": "describe your task to generate plan", "placeholder.default": "Message or run a task, / commands, @ files or sessions", "placeholder.unavailable": "Session unavailable", "placeholder.parentOffline": "Parent session offline; sending is unavailable but you can still stop the run", "placeholder.hero": "Describe what you want to build, / commands, @ files or sessions", "placeholder.workspace": "Choose a workspace to start", "placeholder.steerQueue": "Cmd/Ctrl+Enter steers all queued messages", "input.commands": "Add files or run commands", "input.file": "File", "input.stop": "Stop generating", "input.send": "Send message", "input.send.queue": "Queue message", "input.send.steer": "Steer message", "attachment.pending": "Pending attachments", "attachment.scrollLeft": "Scroll attachments left", "attachment.scrollRight": "Scroll attachments right", "attachment.dropTitle": "Drag files or images here to add them", "attachment.dropDesc": "Image limit: up to {count} images, {size} each", "attachment.dropBlocked": "Files and images cannot be added right now", "attachment.directoryDesktopOnly": "Folders can only be added in the desktop app; add individual files in the browser", "attachment.pathUnavailable": "Could not obtain the folder path; drag it in again", "attachment.pathUnsupported": "The path contains characters a reference cannot carry; rename it and try again", "image.pending": "Pending images", "image.openOriginal": "View original", "image.openOriginalLabel": "{label}, click to view original", "image.remove": "Remove image {name}", "image.original": "Original image", "image.label": "Image", "image.loadFailed": "Image failed to load; click to retry", "image.loading": "Loading image…", "image.preview": "Original image preview", "image.closePreview": "Close original image preview", "image.unsupportedType": "Only PNG, JPG, WebP, and GIF images are supported", "image.tooMany": "A message can include up to {count} images", "image.fileTooLarge": "Each image must be smaller than {size}", "image.totalTooLarge": "Images exceed {size} in total; remove some and try again", "image.tooManyPixels": "Image resolution is too high; compress it and try again", "image.dimensionTooLarge": "Image sides must be at most {size}px; downscale it and try again", "image.modelUnsupported": "The current model does not support images; switch to a model that does", "image.sendFailed": "Sending images failed ({reason}); re-add them and try again", "file.pending": "Pending files", "file.remove": "Remove file {name}", "file.uploading": "Uploading…", "file.uploadFailed": "Upload failed; click to retry", "file.retry": "Retry uploading {name}", "file.stillUploading": "Files are still uploading; send after they finish", "file.sessionUnavailable": "Session unavailable; files cannot be uploaded", "file.notStaged": "The file has not finished uploading; re-add it and try again", "file.label": "File", "context.aria": "{percent} of context used", "context.used": "of context used", "context.system": "System prompt", "context.tools": "Tool definitions", "context.messages": "Messages", "settings.enter.title": "Send behavior while busy", "settings.enter.description": "What Enter and the Send button do while the agent is running; Cmd/Ctrl+Enter uses the other behavior", "settings.enter.queue": "Queue", "settings.enter.steer": "Steer", "hero.headline": "Into the Unknown", "hero.preview": "Preview", "hero.chooseWorkspace": "Choose workspace", "session.hierarchy": "Session hierarchy", "todo.title": "To-dos", "todo.progress.done": "{done} completed", "todo.progress.active": "{active} in progress", "todo.progress.pending": "{pending} pending", "todo.status.completed": "Completed", "todo.status.inProgress": "In progress", "todo.status.pending": "Pending", "todo.rowTitle": "Update to-do list", "tool.title.createGoal": "Create goal", "tool.title.getGoal": "View goal", "tool.title.updateGoal": "Update goal", "tool.preparing.content": "Preparing content {kilobytes}KB", "tool.title.createSchedule": "Create reminder", "tool.title.listSchedules": "List reminders", "tool.title.deleteSchedule": "Delete reminder", "tool.title.updateSchedule": "Update reminder", "detail.state": "Status", "detail.todo.completed": "Completed", "detail.todo.in_progress": "In progress", "detail.todo.pending": "Pending", "detail.todo.empty": "The to-do list is empty", "todo.diff.initial": "Initial list", "todo.diff.compare": "Changes since the previous list", "todo.diff.unavailable": "Previous list unavailable", "todo.diff.noChanges": "No changes to the list", "todo.diff.added": "{count} added", "todo.diff.updated": "{count} updated", "todo.diff.removed": "{count} removed", "todo.diff.unchanged": "{count} unchanged", "todo.diff.addedItem": "Added", "todo.diff.updatedItem": "Status changed", "todo.diff.movedItem": "Reordered", "todo.diff.removedItem": "Removed", "detail.goal.empty": "No goal", "detail.goal.active": "Active", "detail.goal.disarmed": "Awaiting continuation", "detail.goal.paused": "Paused", "detail.goal.blocked": "Blocked", "detail.goal.complete": "Completed", "detail.goal.rounds": "Rounds", "detail.goal.reason": "Blocker", "detail.days": "{count} d", "detail.hours": "{count} h", "detail.minutes": "{count} min", "detail.seconds": "{count} s", "detail.schedule.once": "Once", "detail.schedule.every": "Every {interval}", "detail.schedule.when": "Scheduled for", "detail.schedule.frequency": "Repeat", "detail.schedule.scheduled": "Scheduled", "detail.schedule.overdue": "Overdue, awaiting session resume", "detail.schedule.empty": "No reminders", "detail.schedule.deleted": "Deleted", "detail.schedule.count": "{count} reminders", "detail.schedule.daily": "Every day at {time} ({zone})", "detail.schedule.weekly": "Weekly on {days} at {time} ({zone})", "detail.schedule.cron": "Cron {expression} ({zone})", "detail.weekday.1": "Mon", "detail.weekday.2": "Tue", "detail.weekday.3": "Wed", "detail.weekday.4": "Thu", "detail.weekday.5": "Fri", "detail.weekday.6": "Sat", "detail.weekday.7": "Sun", "detail.weekday.join": ", ", "tool.title.inspectProviders": "Inspect providers", "tool.title.queryRuntime": "Query runtime", "tool.title.inspectPlugins": "Inspect plugins", "tool.title.workflow": "Run workflow", "tool.title.ralph": "Run ralph loop", "tool.title.readEvent": "Read event", "tool.title.searchEvents": "Search events", "tool.title.traceEvent": "Trace event", "tool.title.searchSessions": "Search sessions", "tool.title.traceSession": "Trace session", "tool.title.listModels": "List models", "tool.title.subagent": "Create subagent", "tool.title.listAgents": "List subagents", "tool.title.sendMessage": "Send message", "tool.title.interruptAgent": "Interrupt agent", "tool.title.listJobs": "List background jobs", "tool.title.readJob": "Read job output", "tool.title.killJob": "Cancel background job", "tool.title.openTerminal": "Open terminal", "tool.title.readTerminal": "Read terminal", "tool.title.listTerminals": "List terminals", "tool.title.signalTerminal": "Signal terminal", "tool.title.closeTerminal": "Close terminal", "tool.title.lsp": "Query code symbols", "tool.title.findDefinition": "Find definition", "tool.title.findReferences": "Find references", "tool.title.findImplementation": "Find implementation", "tool.title.hoverSymbol": "Inspect symbol", "tool.title.spawnTeammate": "Create teammate", "tool.title.createTeamTask": "Create team task", "tool.title.getTeamTask": "Read team task", "tool.title.updateTeamTask": "Update team task", "tool.title.listTeamTasks": "List team tasks", "tool.title.waitAgent": "Wait for subagent", "detail.recordedResult": "Recorded result", "detail.empty": "No results", "detail.none": "None", "detail.yes": "Yes", "detail.no": "No", "detail.moreInInspect": "{count} more items available in Inspect", "detail.status.running": "Running", "detail.status.idle": "Idle", "detail.status.ready": "Ready", "detail.status.inactive": "Inactive", "detail.status.provisioning": "Provisioning", "detail.status.failed": "Failed", "detail.status.completed": "Completed", "detail.status.deleted": "Deleted", "detail.status.killed": "Cancelled", "detail.status.accepted": "Accepted", "detail.status.queued": "Queued", "detail.status.exited": "Exited", "detail.field.id": "ID", "detail.field.revision": "Revision", "detail.field.platform": "Platform", "detail.field.provider": "Provider", "detail.field.model": "Model", "detail.field.role": "Role", "detail.field.context": "Context", "detail.field.owner": "Owner", "detail.field.ready": "Ready", "detail.field.dependencies": "Dependencies", "detail.field.writeScopes": "Write scopes", "detail.field.warnings": "Warnings", "detail.field.diagnostics": "Diagnostics", "detail.field.methods": "Methods", "detail.field.inputSchema": "Input schema", "detail.field.outputSchema": "Output schema", "detail.field.currentPackage": "Current package", "detail.field.nextPackage": "Next package", "detail.field.latestRun": "Latest run", "detail.field.packages": "Packages", "detail.field.registrations": "Registrations", "detail.field.props": "Props", "detail.field.data": "Data", "detail.field.source": "Source", "detail.field.content": "Content", "detail.field.message": "Message", "detail.field.messageId": "Message ID", "detail.field.root": "Root", "detail.field.pid": "Process ID", "detail.field.type": "Type", "detail.field.time": "Time", "detail.field.seq": "Event sequence", "detail.field.turn": "Turn", "detail.field.step": "Step", "detail.field.callId": "Call ID", "detail.field.agents": "Agents started", "detail.field.result": "Result", "detail.field.parent": "Parent", "detail.field.depth": "Depth", "detail.field.exitCode": "Exit code", "detail.field.signal": "Signal", "detail.field.previousStatus": "Previous status", "detail.field.agent": "Agent ID", "detail.field.job": "Job ID", "detail.field.task": "Task", "detail.field.processGroup": "Process group", "detail.field.availability": "Availability", "detail.field.bestMatch": "Best match", "detail.field.target": "Target event", "detail.field.surface": "Record status", "detail.agents.count": "{count} agents", "detail.jobs.count": "{count} background jobs", "detail.terminals.count": "{count} terminals", "detail.tasks.count": "{count} team tasks", "detail.tasks.nextPage": "More tasks available; next cursor is {cursor}", "detail.locations.count": "{count} locations", "detail.location": "Line {line}, column {column}", "detail.receipt.delivered": "Message delivered", "detail.receipt.interrupt": "Interrupt requested", "detail.receipt.started": "Started", "detail.receipt.cancel": "Cancellation requested", "detail.receipt.alreadyFinished": "Already finished", "detail.receipt.signal": "Signal delivered", "detail.receipt.closed": "Closed", "detail.receipt.closing": "Closing", "detail.wait.noProgress": "No active subagents", "detail.wait.title": "Subagent activity", "detail.wait.timeout": "Wait timed out", "detail.wait.changed": "Change detected", "detail.agent.reply": "Agent response", "detail.models.title": "Available models", "detail.output.lines": "Lines {begin}–{end} of {total}", "detail.output.truncated": "Output truncated", "detail.providers.count": "{count} inspect providers", "detail.plugins.count": "{count} dynamic plugins", "detail.workflow.script": "Workflow script", "detail.ralph.reportedComplete": "Worker reported completion", "detail.ralph.reportedBlocker": "Worker reported a blocker", "detail.ralph.limit": "Round limit reached", "detail.report.nextSteps": "Remaining work", "detail.trace.replacedBy": "Replaced by", "detail.trace.replacementChain": "Replacement chain", "detail.trace.replaces": "Replaced events", "detail.trace.sources": "Source events", "detail.trace.derived": "Derived events", "detail.trace.ancestors": "Ancestor sessions", "detail.trace.descendants": "Descendant sessions", "detail.matches.count": "{count} matches", "detail.matches.capped": "Result limit reached; narrow the search for more", "detail.event.neighbors": "Surrounding events", "todo.completed": "{done}/{total} completed", "command.attachmentsUnsupported": "/{command} does not accept attachments; remove them first", "ask.rowTitle": "Ask question", "ask.waiting": "waiting", "ask.pending": "continued; answer still available", "ask.pendingDetail": "These pending questions remain answerable from the composer.", "ask.reopen": "Answer", "ask.review": "View answers", "ask.closed": "closed", "ask.closedDetail": "This question is closed; its outcome is in the conversation below.", "ask.cancelled": "cancelled", "ask.cancelledDetail": "This question set was cancelled before answers were submitted.", "ask.interrupted": "interrupted", "ask.interruptedDetail": "This question set was interrupted before answers were submitted.", "ask.answered": "{answered}/{total} answered", "ask.skipped": "Not answered", "bash.running": "Running", "bash.failed": "Failed", "bash.stopped": "Stopped", "row.running": "Running", "row.preparing": "Preparing tool call", "row.failed": "Failed", "row.stopped": "Stopped", "row.input": "IN", "row.output": "OUT", "row.inspect": "Inspect", "tool.title.search": "Search", "tool.title.read": "Read", "tool.title.bash": "Bash", "tool.title.write": "Write", "tool.title.edit": "Edit", "tool.title.code": "Code", "tool.title.generic": "Tool call", "tool.title.inspect": "Query Cordis environment", "tool.title.runCordis": "Run Cordis Plugin", "tool.title.stopCordis": "Stop Cordis Plugin", "tool.title.removeCordis": "Remove Cordis Plugin", "tool.title.pwsh": "Pwsh", "tool.title.readImage": "Read image", "tool.title.grep": "Grep", "tool.title.glob": "Glob", "tool.title.webSearch": "Search", "tool.title.webFetch": "Fetch", "tool.autoReviewRejected": "Rejected by Auto review", "tool.autoReviewNotExecuted": "Tool was not executed. Reason: {reason}", "tool.autoReviewReasonFallback": "Auto review did not authorize this action", "diff.collapseAria": "Collapse diff", "diff.expandAria": "Expand {count} more diff lines", "diff.expandRest": "… {count} more lines", "read.window": "Showing {shown} of {total} lines", "read.collapseAria": "Collapse content", "read.expandAria": "Expand {count} more lines", "read.expandRest": "… {count} more lines", "search.paths": "{shown} paths", "search.paths.truncated": "Showing {shown} of {total} paths", "search.matches": "{shown} matches · {files} files", "search.matches.truncated": "Showing {shown} of {total} matches · {files} files", "search.noResults": "No results", "search.collapseAria": "Collapse results", "search.expandAria": "Expand {count} more result lines", "search.expandRest": "… {count} more lines", "web.noResults": "No results found", "web.sourcesTruncated": "Source list truncated", "web.http": "HTTP", "web.contentTruncated": "Content truncated", "details.running": "Running…", "queue.count": "{n} queued messages", "queue.sending": "Sending…", "queue.image": "Queued message image", "queue.file": "Queued file {name}", "queue.edit": "Edit queued message", "queue.edit.unsupported": "Contains non-text content; editing is not supported yet", "queue.save": "Save queued message", "queue.cancelEdit": "Cancel editing", "queue.remove": "Remove queued message", "queue.steer": "Steer queued message", "queue.steer.unavailable": "Steering is available only while the agent is running", "error.sessionInUse": "This session is already in use, possibly by another running DSH instance (such as dsh web or the desktop app). Quit other running DSH instances and try again.", "queue.editFailed": "Edit failed: this message may have already started sending.", "queue.removeFailed": "Removal failed: this message may have already started sending.", "queue.steerFailed": "Steering failed. Try again.", "terminal.signal": "signal {signal}", "terminal.exitCode": "exit code {code}", "terminal.noExitCode": "no exit code", "terminal.running": "Running", "terminal.failed": "Failed", "terminal.done": "Done", "terminal.noOutput": "No output", "terminal.collapseAria": "Collapse output", "terminal.expandAria": "Expand the remaining {n} output lines", "terminal.expandRest": "… {n} more lines", "terminal.sendInput": "(send input)", "terminal.session": "Terminal {sessionId}" } }, "sources": [ "dsh-client-ui-conversation" ] }, "cordis": { "locales": { "zh": { "row.defineTitle": "注册 Cordis 插件", "a11y.preparing": "准备调用 Cordis 工具", "row.runTitle": "运行 Cordis 插件", "row.updateTitle": "更新 Cordis 插件", "row.stopTitle": "停止 Cordis 插件", "row.removeTitle": "移除 Cordis 插件", "purpose.missing": "(未填写用途)", "status.idle": "待激活", "status.awaitingApproval": "待审批", "status.failed": "运行失败", "status.clientPending": "Client 待激活", "status.running": "运行中", "status.removed": "已移除", "status.superseded": "已有更新", "run.removed": "包已不存在", "run.superseded": "已有更新的运行卡片,请查看下方", "panel.hint": "运行控制在左下角设置上方的 Cordis 面板", "panel.plugins.aria": "Cordis 插件", "panel.approvals.aria": "Cordis 审批", "panel.trigger": "Cordis Plugin", "panel.runningCount": "{count} running", "panel.title": "Cordis 插件", "panel.empty": "还没有定义任何插件", "panel.loading": "读取中…", "panel.readFailed": "读取插件清单失败:{message}", "panel.group.current": "当前会话", "panel.group.others": "其他会话", "panel.version": "版本", "panel.current": "当前:{packageId}", "panel.next": "待切换:{packageId}", "action.approve": "允许", "action.approveOnce": "仅允许此版本", "action.approvePlugin": "允许此插件的后续版本", "action.decline": "拒绝", "action.run": "运行", "action.stop": "停止", "action.remove": "移除", "action.retry": "重试", "action.rollback": "回退", "action.inspect": "查看", "render.failedAbdicated": "{slot} 渲染失败,已恢复默认界面:", "render.failedHeld": "{slot} 渲染失败:", "a11y.defining": "正在定义插件", "a11y.failed": "定义失败", "a11y.stopped": "定义已中断", "body.source": "插件代码", "body.hostCode": "Host", "body.clientCode": "Client", "body.output": "结果", "body.copy": "复制", "body.copied": "已复制" }, "en": { "row.defineTitle": "Register Cordis Plugin", "a11y.preparing": "Preparing a Cordis tool call", "row.runTitle": "Run Cordis Plugin", "row.updateTitle": "Update Cordis Plugin", "row.stopTitle": "Stop Cordis Plugin", "row.removeTitle": "Remove Cordis Plugin", "purpose.missing": "(no purpose given)", "status.idle": "Ready", "status.awaitingApproval": "Awaiting approval", "status.failed": "Run failed", "status.clientPending": "Client ready to activate", "status.running": "Running", "status.removed": "Removed", "status.superseded": "Newer run available", "run.removed": "This package no longer exists", "run.superseded": "A newer run card is available below", "panel.hint": "Run controls live in the Cordis panel above Settings", "panel.plugins.aria": "Cordis plugins", "panel.approvals.aria": "Cordis approvals", "panel.trigger": "Cordis Plugin", "panel.runningCount": "{count} running", "panel.title": "Cordis plugins", "panel.empty": "No plugins defined yet", "panel.loading": "Reading…", "panel.readFailed": "Reading the plugin inventory failed: {message}", "panel.group.current": "This session", "panel.group.others": "Other sessions", "panel.version": "Version", "panel.current": "Current: {packageId}", "panel.next": "Next: {packageId}", "action.approve": "Allow", "action.approveOnce": "Allow this version only", "action.approvePlugin": "Allow future versions of this plugin", "action.decline": "Decline", "action.run": "Run", "action.stop": "Stop", "action.remove": "Remove", "action.retry": "Retry", "action.rollback": "Roll back", "action.inspect": "Inspect", "render.failedAbdicated": "Rendering failed in {slot}; the default UI was restored:", "render.failedHeld": "Rendering failed in {slot}:", "a11y.defining": "Defining the plugin", "a11y.failed": "Definition failed", "a11y.stopped": "Definition interrupted", "body.source": "Plugin source", "body.hostCode": "Host", "body.clientCode": "Client", "body.output": "Result", "body.copy": "Copy", "body.copied": "Copied" } }, "sources": [ "dsh-client-ui-cordis" ] }, "deliverables": { "locales": { "zh": { "presented.nativeUnavailable": "此文件没有可用的主机路径,请在侧边栏预览", "presented.revealError": "无法在文件管理器中显示,请重试", "presented.directoryError": "无法打开所在文件夹,请重试", "presented.directoryOpening": "正在打开所在文件夹…", "presented.directoryOpened": "已请求打开所在文件夹", "presented.revealed": "已请求在文件管理器中显示", "presented.revealing": "正在文件管理器中显示…", "presented.unavailable": "此主机没有可用的桌面,无法使用外部程序打开文件或文件夹;文件仍可在侧边栏预览", "presented.retry": "重试", "presented.hostError": "无法读取主机桌面信息", "presented.preview": "在侧边栏预览", "presented.previewButton": "在侧边栏打开 {name}", "presented.previewCard": "在侧边栏预览 {name}", "presented.all": "全部 {count} 个文件", "presented.expandAria": "展开全部 {count} 个交付文件", "presented.collapse": "收起", "presented.collapseAria": "收起交付文件列表", "presented.opening": "正在打开…", "presented.opened": "已请求打开", "presented.error": "打开失败,点击重试", "presented.file": "文件", "row.title": "交付文件", "row.running": "正在交付", "row.preparing": "准备交付", "row.ok": "已交付", "row.error": "交付失败", "row.stopped": "已中断", "row.inspect": "查看调用", "changes.title": "已编辑 {count} 个文件", "changes.singleTitle": "已编辑 {name}", "changes.added": "+{count}", "changes.deleted": "-{count}", "changes.binary": "二进制", "changes.openReview": "在侧边栏查看本轮改动", "changes.all": "全部 {count} 个文件", "changes.expandAria": "展开全部 {count} 个改动文件", "changes.collapse": "收起", "changes.collapseAria": "收起改动文件列表", "changes.oversized": "过大", "changes.viewDiff": "查看 {name} 的改动", "review.title": "第 {turn} 轮改动", "review.selectFile": "选择要查看的文件", "review.split": "切换为左右对比", "review.unified": "切换为单栏对比", "review.splitAria": "左右对比", "review.wrap": "开启自动换行", "review.nowrap": "关闭自动换行", "review.wrapAria": "自动换行", "review.openFile": "在侧边栏打开整个文件", "review.openFileAria": "在侧边栏打开 {name}", "diff.loading": "正在读取改动…", "diff.missing": "这轮改动的内容已不可用", "diff.error": "无法读取改动", "diff.binary": "二进制文件,无法显示改动", "diff.oversized": "文件过大,无法显示改动", "diff.created": "本轮新建的文件", "diff.deleted": "本轮删除的文件", "diff.unchanged": "两侧内容相同", "diff.coarse": "逐行对比超时,按整个文件替换显示", "diff.truncated": "只显示前 {count} 行" }, "en": { "presented.nativeUnavailable": "This file has no available Host path. Preview it in the sidebar.", "presented.revealError": "Could not show in file manager. Try again.", "presented.directoryError": "Could not open containing folder. Try again.", "presented.directoryOpening": "Opening containing folder…", "presented.directoryOpened": "Requested opening containing folder", "presented.revealed": "Requested display in file manager", "presented.revealing": "Showing in file manager…", "presented.unavailable": "This Host has no desktop available to open files or folders in external apps. Files can still be previewed in the sidebar.", "presented.retry": "Retry", "presented.hostError": "Could not read the Host desktop information", "presented.preview": "Preview in sidebar", "presented.previewButton": "Open {name} in sidebar", "presented.previewCard": "Preview {name} in sidebar", "presented.all": "All {count} files", "presented.expandAria": "Show all {count} delivered files", "presented.collapse": "Collapse", "presented.collapseAria": "Collapse delivered files", "presented.opening": "Opening…", "presented.opened": "Open requested", "presented.error": "Could not open. Click to retry.", "presented.file": "File", "row.title": "Present files", "row.running": "Delivering", "row.preparing": "Preparing deliverables", "row.ok": "Delivered", "row.error": "Delivery failed", "row.stopped": "Interrupted", "row.inspect": "Inspect call", "changes.title": "Edited {count} files", "changes.singleTitle": "Edited {name}", "changes.added": "+{count}", "changes.deleted": "-{count}", "changes.binary": "binary", "changes.openReview": "Review this turn’s changes in the sidebar", "changes.all": "All {count} files", "changes.expandAria": "Show all {count} changed files", "changes.collapse": "Collapse", "changes.collapseAria": "Collapse changed files", "changes.oversized": "too large", "changes.viewDiff": "View changes to {name}", "review.title": "Review · turn {turn}", "review.selectFile": "Choose the file to review", "review.split": "Switch to split view", "review.unified": "Switch to unified view", "review.splitAria": "Split view", "review.wrap": "Enable line wrap", "review.nowrap": "Disable line wrap", "review.wrapAria": "Line wrap", "review.openFile": "Open the whole file in the sidebar", "review.openFileAria": "Open {name} in sidebar", "diff.loading": "Reading changes…", "diff.missing": "The contents of this turn’s changes are no longer available", "diff.error": "Could not read the changes", "diff.binary": "Binary file; changes cannot be shown", "diff.oversized": "File too large; changes cannot be shown", "diff.created": "Created in this turn", "diff.deleted": "Deleted in this turn", "diff.unchanged": "Both sides hold the same lines", "diff.coarse": "Line comparison timed out; shown as a whole-file replacement", "diff.truncated": "Showing the first {count} lines" } }, "sources": [ "dsh-client-ui-deliverables" ] }, "directory-browser": { "locales": { "zh": { "browser.title": "选择工作区目录", "browser.home": "主目录", "browser.newFolder": "新建文件夹", "browser.folderName": "文件夹名称", "browser.createIn": "在\"{name}\"中新建文件夹", "browser.untitledFolder": "未命名文件夹", "browser.create": "创建", "browser.cancel": "取消", "browser.open": "打开", "browser.editPath": "编辑路径", "browser.loading": "加载中…", "browser.truncated": "文件夹过多,仅显示开头部分。", "browser.showHidden": "显示隐藏文件" }, "en": { "browser.title": "Select Workspace Directory", "browser.home": "Home", "browser.newFolder": "New folder", "browser.folderName": "Folder name", "browser.createIn": "New folder in \"{name}\"", "browser.untitledFolder": "Untitled folder", "browser.create": "Create", "browser.cancel": "Cancel", "browser.open": "Open", "browser.editPath": "Edit path", "browser.loading": "Loading…", "browser.truncated": "Too many folders to list; only the beginning is shown.", "browser.showHidden": "Show hidden files" } }, "sources": [ "dsh-client-ui-directory-picker-browse" ] }, "goal": { "locales": { "zh": { "phase.active": "进行中的目标", "phase.active.disarmed": "未运行的目标", "phase.paused": "已暂停的目标", "phase.blocked": "受阻的目标", "objective.aria": "目标内容", "commandInput.aria": "指令输入", "action.save": "保存目标", "action.cancel": "取消编辑", "action.pause": "暂停目标", "action.resume": "恢复目标", "action.edit": "编辑目标", "action.clear": "清除目标" }, "en": { "phase.active": "Ongoing Goal", "phase.active.disarmed": "Inactive Goal", "phase.paused": "Paused Goal", "phase.blocked": "Blocked Goal", "objective.aria": "Goal objective", "commandInput.aria": "Command input", "action.save": "Save goal", "action.cancel": "Cancel edit", "action.pause": "Pause goal", "action.resume": "Resume goal", "action.edit": "Edit goal", "action.clear": "Clear goal" } }, "sources": [ "dsh-client-ui-goal" ] }, "slash.menu": { "locales": { "zh": { "command": "指令", "skill": "技能", "subagent": "子智能体", "loading": "正在加载…", "drill.aria": "进入目录", "drill.hint": "进入目录", "drill.key": "Tab", "crumbs.aria": "目录导航", "suggestions.aria": "触发候选建议" }, "en": { "command": "Commands", "skill": "Skills", "subagent": "Subagents", "loading": "Loading…", "drill.aria": "Browse folder", "drill.hint": "Browse folder", "drill.key": "Tab", "crumbs.aria": "Folder navigation", "suggestions.aria": "Trigger suggestions" } }, "sources": [ "dsh-client-ui-input-trigger" ] }, "job": { "locales": { "zh": { "count.live.one": "{count} 个后台任务运行中", "count.live.other": "{count} 个后台任务运行中", "count.idle.one": "{count} 个后台任务", "count.idle.other": "{count} 个后台任务", "list.aria": "后台任务", "section.live": "进行中", "section.settledCount": "已结束 {count}", "section.clear": "清空", "row.expandAria": "展开 {label} 的实时输出", "row.collapseAria": "收起 {label} 的实时输出", "kill.stop": "停止任务 {label}", "kill.confirm": "再次点击确认停止", "kill.confirmAction": "确认停止", "kill.failed": "停止失败", "status.running": "运行中", "status.stopping": "正在停止", "status.completed": "已完成", "status.killed": "已取消", "status.failed": "已失败", "duration.seconds": "{seconds}秒", "duration.minutes": "{minutes}分{seconds}秒", "duration.hours": "{hours}小时{minutes}分", "duration.title.live": "已运行 {duration}", "duration.title.done": "耗时 {duration}", "output.gap": "……较早的输出已丢弃……", "output.error": "实时输出流中断:{error}", "terminal.signal": "信号 {signal}", "terminal.exitCode": "退出码 {code}", "terminal.noExitCode": "未正常退出", "terminal.running": "运行中", "terminal.failed": "已失败", "terminal.done": "已完成", "terminal.copy": "复制", "terminal.copied": "已复制", "terminal.noOutput": "(无输出)", "terminal.collapse": "收起", "terminal.collapseAria": "收起输出", "terminal.expand": "展开其余 {n} 行", "terminal.expandAria": "展开被折叠的 {n} 行输出" }, "en": { "count.live.one": "{count} background job running", "count.live.other": "{count} background jobs running", "count.idle.one": "{count} background job", "count.idle.other": "{count} background jobs", "list.aria": "Background jobs", "section.live": "Running", "section.settledCount": "Finished {count}", "section.clear": "Clear", "row.expandAria": "Show live output of {label}", "row.collapseAria": "Hide live output of {label}", "kill.stop": "Stop task {label}", "kill.confirm": "Click again to confirm", "kill.confirmAction": "Confirm stop", "kill.failed": "Stop failed", "status.running": "running", "status.stopping": "stopping", "status.completed": "completed", "status.killed": "cancelled", "status.failed": "failed", "duration.seconds": "{seconds}s", "duration.minutes": "{minutes}m {seconds}s", "duration.hours": "{hours}h {minutes}m", "duration.title.live": "Running for {duration}", "duration.title.done": "Took {duration}", "output.gap": "… earlier output dropped …", "output.error": "live output stream interrupted: {error}", "terminal.signal": "signal {signal}", "terminal.exitCode": "exit {code}", "terminal.noExitCode": "no exit code", "terminal.running": "running", "terminal.failed": "failed", "terminal.done": "done", "terminal.copy": "Copy", "terminal.copied": "Copied", "terminal.noOutput": "(no output)", "terminal.collapse": "Collapse", "terminal.collapseAria": "Collapse output", "terminal.expand": "Show {n} more lines", "terminal.expandAria": "Expand {n} collapsed output lines" } }, "sources": [ "dsh-client-ui-jobs" ] }, "shortcuts.layout": { "locales": { "zh": { "toggle": "展开/收起左侧栏" }, "en": { "toggle": "Toggle left sidebar" } }, "sources": [ "dsh-client-ui-layout" ] }, "feedback": { "locales": { "zh": { "action.like": "好的回答", "action.likeActive": "取消标记", "action.dislike": "有问题的回答", "action.dislikeActive": "取消标记", "dialog.title": "提交反馈", "dialog.categories": "反馈分类", "dialog.detail": "反馈详情", "dialog.hint": "填写详情以帮助我们改进体验,提交内容会包括当前对话的日志", "category.task-result": "任务结果", "category.instruction-following": "指令理解与遵循", "category.product-interaction": "产品功能与交互", "category.service-stability": "稳定性和速度", "category.resource-cost": "资源使用与费用", "category.security-privacy-permission": "安全隐私与权限", "category.other": "其他", "toast.recorded": "感谢你的反馈", "error.conflict": "这条反馈已在别处改动,已显示最新状态", "error.load": "反馈状态加载失败", "error.generic": "反馈保存失败", "error.noteTooLarge": "描述太长,请缩短后再提交" }, "en": { "action.like": "Good response", "action.likeActive": "Remove rating", "action.dislike": "Bad response", "action.dislikeActive": "Remove rating", "dialog.title": "Submit feedback", "dialog.categories": "Feedback category", "dialog.detail": "Feedback details", "dialog.hint": "Add details to help us improve. Your submission will include the current conversation log.", "category.task-result": "Task result", "category.instruction-following": "Instruction understanding and following", "category.product-interaction": "Product features and interaction", "category.service-stability": "Stability and speed", "category.resource-cost": "Resource usage and cost", "category.security-privacy-permission": "Security, privacy, and permissions", "category.other": "Other", "toast.recorded": "Thanks for your feedback", "error.conflict": "This feedback changed elsewhere; the latest state is shown", "error.load": "Could not load feedback", "error.generic": "Could not save feedback", "error.noteTooLarge": "The description is too long; shorten it and submit again" } }, "sources": [ "dsh-client-ui-message-feedback" ] }, "model": { "locales": { "zh": { "provider.account": "DeepSeek 账号", "command.label": "模型", "command.description": "选择本会话使用的模型", "option.loadError": "目录加载失败:{message}", "trigger.fallback": "请选择模型", "trigger.loading": "正在加载模型…", "trigger.selectAria": "请选择模型", "trigger.aria": "选择模型,当前 {model}", "trigger.ariaEffort": "选择模型,当前 {model},推理等级 {effort}", "menu.aria": "模型与推理等级", "menu.model": "模型", "menu.effort": "推理等级", "effort.providerDefault": "Default", "status.loading": "正在刷新模型列表…", "error.action": "模型操作失败:{message}", "error.sessionInUse": "当前会话已被占用,可能是其他正在运行的 DSH 导致的(如其他 dsh web、桌面端),请退出其他正在运行的 DSH 后重试。", "action.reload": "重新加载", "warning.groupLoad": "{name} 加载失败:{message}", "search.placeholder": "搜索模型…", "search.clear": "清除搜索", "search.empty": "没有匹配的模型。", "empty.models": "没有可用的模型。", "empty.efforts": "当前模型未提供推理等级。" }, "en": { "provider.account": "DeepSeek Account", "command.label": "Model", "command.description": "Select the model for this conversation", "option.loadError": "Catalog failed to load: {message}", "trigger.fallback": "Select model", "trigger.loading": "Loading models…", "trigger.selectAria": "Select model", "trigger.aria": "Select model, current {model}", "trigger.ariaEffort": "Select model, current {model}, reasoning effort {effort}", "menu.aria": "Model and reasoning effort", "menu.model": "Model", "menu.effort": "Effort", "effort.providerDefault": "Default", "status.loading": "Refreshing model list…", "error.action": "Model operation failed: {message}", "error.sessionInUse": "This session is already in use, possibly by another running DSH instance (such as dsh web or the desktop app). Quit other running DSH instances and try again.", "action.reload": "Reload", "warning.groupLoad": "{name} failed to load: {message}", "search.placeholder": "Search models…", "search.clear": "Clear search", "search.empty": "No matching models.", "empty.models": "No models available.", "empty.efforts": "This model provides no reasoning effort levels." } }, "sources": [ "dsh-client-ui-model-selection" ] }, "open-in-app": { "locales": { "zh": { "open.title": "用 {app} 打开", "path.appDefault": "{app}(默认)", "path.appsError": "无法获取应用列表", "shortcut.busy": "正在打开工作区", "shortcut.unavailable": "当前工作区或本地应用不可用", "open.tooltip": "在本地打开", "path.open": "打开", "path.more": "更多打开方式", "path.reveal": "显示文件位置", "path.openError": "打开失败,请重试", "path.revealError": "无法显示文件位置,请重试", "app.cursor": "Cursor", "app.vscode": "VS Code", "app.vscodeinsiders": "VS Code Insiders", "app.windsurf": "Windsurf", "app.zed": "Zed", "app.sublimetext": "Sublime Text", "app.xcode": "Xcode", "app.androidstudio": "Android Studio", "app.intellij": "IntelliJ IDEA", "app.pycharm": "PyCharm", "app.webstorm": "WebStorm", "app.phpstorm": "PhpStorm", "app.goland": "GoLand", "app.rider": "Rider", "app.rustrover": "RustRover", "app.fork": "Fork", "app.sourcetree": "Sourcetree", "app.github": "GitHub Desktop", "app.tower": "Tower", "app.gitkraken": "GitKraken", "app.smartgit": "SmartGit", "app.sublimemerge": "Sublime Merge", "app.ghostty": "Ghostty", "app.warp": "Warp", "app.iterm": "iTerm2", "app.kitty": "kitty", "app.windowsterminal": "Windows Terminal", "app.gitbash": "Git Bash", "app.gnometerminal": "GNOME Terminal", "app.konsole": "Konsole", "app.finder": "访达", "app.explorer": "文件资源管理器", "app.filemanager": "文件管理器", "app.terminal": "终端" }, "en": { "open.title": "Open in {app}", "path.appDefault": "{app} (default)", "path.appsError": "Could not load applications", "shortcut.busy": "Opening workspace", "shortcut.unavailable": "Current workspace or local application unavailable", "open.tooltip": "Open locally", "path.open": "Open", "path.more": "More ways to open", "path.reveal": "Show file location", "path.openError": "Could not open. Try again.", "path.revealError": "Could not show the file location. Try again.", "app.cursor": "Cursor", "app.vscode": "VS Code", "app.vscodeinsiders": "VS Code Insiders", "app.windsurf": "Windsurf", "app.zed": "Zed", "app.sublimetext": "Sublime Text", "app.xcode": "Xcode", "app.androidstudio": "Android Studio", "app.intellij": "IntelliJ IDEA", "app.pycharm": "PyCharm", "app.webstorm": "WebStorm", "app.phpstorm": "PhpStorm", "app.goland": "GoLand", "app.rider": "Rider", "app.rustrover": "RustRover", "app.fork": "Fork", "app.sourcetree": "Sourcetree", "app.github": "GitHub Desktop", "app.tower": "Tower", "app.gitkraken": "GitKraken", "app.smartgit": "SmartGit", "app.sublimemerge": "Sublime Merge", "app.ghostty": "Ghostty", "app.warp": "Warp", "app.iterm": "iTerm2", "app.kitty": "kitty", "app.windowsterminal": "Windows Terminal", "app.gitbash": "Git Bash", "app.gnometerminal": "GNOME Terminal", "app.konsole": "Konsole", "app.finder": "Finder", "app.explorer": "File Explorer", "app.filemanager": "Files", "app.terminal": "Terminal" } }, "sources": [ "dsh-client-ui-open-in-app" ] }, "permission.access": { "locales": { "zh": { "mode": "访问模式,当前:{name}", "close": "关闭", "preset.readOnly": "仅可查看", "preset.workspaceWrite": "工作区内修改", "preset.fullAccess": "完全权限", "confirm.title": "确认启用完全权限?", "confirm.description": "启用完全权限后,智能体将减少确认步骤,并且可以直接执行更多操作,包括敏感操作、文件修改或外部命令。仅建议在你信任当前任务时使用。", "confirm.acknowledge": "我已了解风险,并愿意继续", "confirm.cancel": "取消", "confirm.enable": "启用完全权限", "auto.label": "Auto review", "auto.badge": "EXP", "auto.description": "无沙箱运行;每次原生工具调用和 PTC 内层调用前由同一模型进行实验性审查。", "auto.confirm.title": "确认启用 Auto review(实验)?", "auto.confirm.description": "Auto review 不使用沙箱。每次原生工具调用和 PTC 内层调用前,都会由与当前 agent 相同的模型进行审查;审查拒绝的调用由你批准或拒绝。此功能仍属实验性,可能误放行或误拒绝,并会消耗额外 token。", "auto.confirm.acknowledge": "我已了解这些风险,并愿意继续", "auto.confirm.enable": "启用 Auto review" }, "en": { "mode": "Access mode, current: {name}", "close": "Close", "preset.readOnly": "Read Only", "preset.workspaceWrite": "Workspace Write", "preset.fullAccess": "Full access", "confirm.title": "Enable Full access?", "confirm.description": "Full access reduces confirmation steps and lets the agent perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust the current task.", "confirm.acknowledge": "I understand the risks and want to continue", "confirm.cancel": "Cancel", "confirm.enable": "Enable Full access", "auto.label": "Auto review", "auto.badge": "EXP", "auto.description": "Run without a sandbox after an experimental same-model review of every native tool call and PTC inner call.", "auto.confirm.title": "Enable Auto review (experimental)?", "auto.confirm.description": "Auto review runs without a sandbox. Before every native tool call and PTC inner call, the same model as the current agent reviews whether to allow it; you approve or reject each call it denies. This feature is experimental, can falsely allow or deny actions, and uses additional tokens.", "auto.confirm.acknowledge": "I understand these risks and want to continue", "auto.confirm.enable": "Enable Auto review" } }, "sources": [ "dsh-client-ui-permission-presets" ] }, "plan": { "locales": { "zh": { "chip.label": "计划", "preview.title": "计划", "preview.document": "计划 · Markdown", "preview.action": "打开", "preview.open": "在侧边栏打开计划", "preview.full": "查看全文", "preview.openNamed": "打开计划:{title}", "preview.loading": "正在读取计划…", "preview.failed": "无法读取计划", "preview.invalidAddress": "计划地址无效", "preview.historyUnavailable": "无法读取会话历史", "preview.notFound": "未找到这份计划", "preview.unavailable": "计划预览不可用", "preview.expired": "临时计划预览已失效,请从仍在等待审批的卡片重新打开。", "chip.on.aria": "计划模式已开启,按下关闭", "chip.on.title": "计划模式已开启 — 点击关闭(/plan off)", "chip.exitFailed": "退出计划模式失败" }, "en": { "chip.label": "Plan", "preview.title": "Plan", "preview.document": "Plan · Markdown", "preview.action": "Open", "preview.open": "Open plan in sidebar", "preview.full": "View full plan", "preview.openNamed": "Open plan: {title}", "preview.loading": "Loading plan…", "preview.failed": "Could not load plan", "preview.invalidAddress": "Invalid plan address", "preview.historyUnavailable": "Session history is unavailable", "preview.notFound": "This plan was not found", "preview.unavailable": "Plan preview is unavailable", "preview.expired": "This temporary plan preview has expired. Reopen it from the pending review card.", "chip.on.aria": "Plan mode on, press to turn off", "chip.on.title": "Plan mode on — click to turn off (/plan off)", "chip.exitFailed": "Failed to exit plan mode" } }, "sources": [ "dsh-client-ui-plan" ] }, "pluginManager": { "locales": { "zh": { "panel": "插件", "title": "插件", "intro": "安装、启用和配置插件", "infoLabel": "插件说明", "infoDescription": "在这里配置官方插件,安装和管理其他插件。内置插件列表及运行状态可在「设置 → 内置插件」中查看", "loading": "正在读取插件…", "error": "可能由于网络问题,无法读取全部插件", "unavailable": "本部署没有可管理的 profile,无法安装或启停插件。", "retry": "重试", "refresh": "刷新", "refreshError": "刷新失败,请重试", "empty": "还没有安装任何插件。", "addPlugin": "添加插件", "restartNotice": "更改将在下次启动生效", "overriddenNotice": "{name} 已保存,但被更高优先级的配置覆盖,当前未生效", "bundlesTitle": "已安装", "officialTitle": "官方", "statusProblem": "异常", "statusBeta": "实验性", "reasonLabel": "原因", "metadataError": "包元信息错误:{error}", "versionTag": "v{version}", "partsLabel": "包含的组件", "partsEmpty": "这个插件包不包含任何组件。", "partsCountTotal": "共 {count} 个", "partsCountRunning": "{count} 运行中", "partsCountOff": "{count} 已停用", "partOff": "已关闭", "partsCountFailed": "{count} 异常", "partsFilter": "筛选组件", "partsFilterEmpty": "没有匹配的组件。", "partToggle": "启用组件 {name}", "rowPhasePending": "等待依赖", "rowPhaseLoading": "加载中", "rowPhaseActive": "运行中", "rowPhaseFailed": "异常", "rowPhaseUnloading": "卸载中", "enableToggle": "启用 {name}", "openDetail": "查看 {name}", "backToList": "返回插件列表", "crumbRoot": "插件列表", "backToPackage": "返回 {name}", "configureRow": "配置 {name}", "rowStateIdle": "未运行", "uninstall": "卸载", "uninstallLabel": "卸载 {name}", "installTitle": "添加插件", "installDescription": "输入插件的包名、GitHub 仓库地址或本地目录路径。", "installSpecLabel": "包名或地址", "installSpecPlaceholder": "例如 dsh-plugin-whale-pet", "installGuideToggle": "插件安装引导和示例", "installGuideHide": "收起引导", "installGuideIdTitle": "填入插件 npm 包名", "installGuideIdExample": "dsh-plugin-whale-pet", "installGuideIdHint": "插件包名即 npm 包名(如 dsh-xxx 或 @作者/插件名),社区插件的 README 安装命令中 dsh plugin add 或 pnpm add 之后的部分。", "installGuideExampleLabel": "示例:", "installGitTemplateHint": "请替换为实际的 Git 仓库地址", "installPathTemplateHint": "请替换为本机插件目录的实际路径", "installGuideFill": "填入示例", "installGuideFillAria": "填入示例 {example}", "installGuideSafety": "请确认插件来源可信。插件在本机以你的权限运行,来源不明的插件可能损坏 DeepSeek Harness,或读取和泄露你的数据。", "installUpgradeNotice": "插件安装后,暂不支持自动更新。若需升级,请先卸载再安装新版,后续版本会持续改善升级体验。", "registryToggle": "安装源", "registryLegend": "从哪个 npm 源下载插件", "registryDefault": "默认安装源", "registryOfficial": "npm 官方源", "registryNpmmirror": "中国大陆镜像源", "registryCustom": "自定义地址", "registryCustomPlaceholder": "https://npm.example.com/", "registryCustomHint": "填写内网或私有 npm 源地址,以 http:// 或 https:// 开头。若为需要登录的源,请把凭据放在本机的 ~/.npmrc 里。", "registryCustomInvalid": "请输入以 http:// 或 https:// 开头的地址", "registryListSeparator": "、", "sentenceSeparator": "", "installRun": "安装", "installChecking": "正在检查…", "installProblemInvalid": "无法识别这个包名或地址:{reason}", "installProblemInstalled": "该插件已安装。如需升级,请卸载后重新安装", "installProblemShipped": "该插件随 DSH 提供,升级 DSH 即可获得新版本", "installProblemNotFound": "未找到相关插件", "installProblemNotPackage": "该路径不存在或不是有效的插件包", "installProblemNotBundle": "这个包没有声明组合包,无法作为插件安装:{reason}", "installProblemNetwork": "无法连接插件源,请检查网络后重试", "installProblemNetworkAll": "所有安装源都无法连接(已尝试:{registries}),请检查网络或代理设置,或更换安装源", "installProblemUnknown": "无法获取插件信息:{reason}", "installingTitle": "插件安装中…", "installedTitle": "已安装", "installFailedTitle": "插件安装失败", "installGithubFailedTitle": "无法访问 GitHub", "installGithubTimeoutTitle": "连接 GitHub 超时", "installGithubFailedDescription": "请尝试其他安装来源。", "installUseGithubMirror": "改用国内镜像", "installTryAnotherWay": "试试其他方式", "installPackageLabel": "插件包名", "installEdit": "编辑", "installEditAria": "返回编辑", "installCancelAndEdit": "取消安装并返回编辑", "installApplyingCancellationError": "取消请求未得到确认;安装已进入收尾阶段,请等待结果。{reason}", "installReconcile": "核对安装状态", "installUnknownTitle": "未能获取安装结果", "installUnknownDescription": "后端当前没有此安装任务。请检查插件列表后再尝试安装。", "installResultUnconfirmed": "未收到安装结果,请核对安装状态。{reason}", "installAwaitingAcceptance": "正在等待后端接收安装任务,收到确认后会自动重试取消。", "installBackgroundUnknown": "未能获取安装结果,请检查插件列表。", "installCancel": "取消安装", "installCloseCancels": "取消安装并关闭", "installViewTask": "查看安装任务", "installUnconfirmedTitle": "安装状态尚未确认", "installBackgroundDone": "插件安装已完成,可查看安装结果。", "installBackgroundFailed": "插件安装失败,可查看安装详情。", "installBackgroundUnconfirmed": "安装状态暂未确认,请查看安装任务了解详情。", "installBackgroundApplying": "安装已进入收尾阶段,无法取消,可查看安装进度。", "installStarting": "正在准备安装…", "installCancelling": "正在停止安装…", "installApplying": "正在应用配置,请稍候…", "installCancelledShort": "已取消", "installCancelled": "已取消安装,插件未启用,下载的文件可能保留", "installCancelUnconfirmed": "尚未确认安装已停止,请重试取消或等待安装结果。{reason}", "installEnableNow": "立即启用", "installDetailsShow": "查看安装详情", "installDetailsHide": "收起安装详情", "installVersion": "版本 {version}", "installSubjectPath": "本地目录", "installSubjectGit": "Git 仓库", "installSubjectTarball": "压缩包", "installLocation": "安装位置:{dir}", "installRetry": "重试", "installChangeRegistry": "更换安装源", "installAttempt": "{previous} 不可用,正在改用 {registry} 重试(第 {index} 个源,共 {total} 个)", "installAttemptBadge": "第 {index} 次 · {registry}", "installFailureNetwork": "网络连接失败", "installFailureNetworkAll": "所有安装源都无法连接(已尝试:{registries})。请检查网络或代理设置,或更换安装源后重试。", "installFailureNetworkHost": "无法连接 {host}。GitHub 地址和 .tgz 直链不经过安装源,需要本机能直接访问它或配置代理;如果这个插件也发布到了 npm,请改填包名。", "installFailureNotFound": "未找到相关插件", "installFailureNoMatchingVersion": "没有匹配的版本", "installFailureDiskFull": "磁盘空间不足,安装已停止", "installFailurePermission": "没有写入权限,无法安装", "installFailureBuildBlocked": "有依赖的安装脚本需要你允许后才能继续", "installFailureBuildBlockedManual": "有依赖的安装脚本被 pnpm 拦下,请在 profile 的 pnpm-workspace.yaml 的 allowBuilds 中放行后重试", "installFailureIntegrity": "下载的安装包校验失败", "installFailureTimeout": "安装超时", "installFailurePnpmMissing": "没有找到 pnpm,无法安装", "installFailureGeneric": "安装过程中出错,原因见安装详情", "terminalRunning": "运行中", "terminalFailed": "失败", "terminalDone": "已完成", "terminalCopy": "复制", "terminalCopied": "复制成功", "terminalNoOutput": "无输出", "terminalCollapseAria": "收起输出", "terminalCollapse": "收起", "terminalExpandAria": "展开其余 {n} 行输出", "terminalExpand": "… 其余 {n} 行", "terminalExitCode": "退出码 {code}", "terminalSignal": "信号 {signal}", "terminalNoExitCode": "未正常退出", "installDoneNothing": "安装完成,没有新增依赖。", "installDoneRestart": "已安装,下次启动后加载。", "installDoneApproved": "已允许运行安装脚本:{names}", "installApprovalTitle": "需要允许安装脚本", "installApprovalDescription": "以下包声明了安装脚本,pnpm 默认不运行。", "installApprovalConsequence": "允许后,脚本会以你的权限在本机运行,授权保存在当前 profile,之后不再询问。", "installApprovalCaution": "只在信任这些包时允许。", "installApproveAndRetry": "允许这些脚本并重试", "installClose": "完成", "close": "关闭", "cancel": "取消", "confirmUninstallTitle": "卸载「{name}」?", "confirmUninstallDescription": "卸载后它提供的功能会消失。", "confirmUninstall": "卸载", "failedEnable": "启用失败:{reason}", "failedDisable": "停用失败:{reason}", "failedUninstall": "卸载失败:{reason}", "failedRowEnable": "组件启用失败:{reason}", "failedRowDisable": "组件停用失败:{reason}", "reasonManagementRequired": "插件管理所需,不能停用或卸载", "reasonUnaddressable": "当前 profile 的 patch 无法唯一定位这一项", "reasonUnknownPlugin": "找不到该插件", "reasonInvalidSpec": "请输入有效的包名或地址", "reasonAmbiguousInstall": "无法从依赖变更中确定安装了哪一个包", "reasonNotBundle": "这个包没有声明组合包,不能作为插件管理", "reasonNotRemovable": "这个包不属于当前 profile,或者是插件管理所需的组件", "reasonStopProfile": "这个 profile 没有启用 HMR,正在使用的包要停止后用 dsh plugin 卸载", "reasonBundleInUse": "其他配置仍在使用这个组合包的组件,请先停用它们", "reasonStaleApproval": "待允许的安装脚本列表已变化,请重新安装以刷新", "reasonIncompatibleVersion": "{plugin} 与 DSH {runtime} 不兼容(要求 {peers}),运行它可能导致崩溃或数据丢失。", "reasonIncompatibleVersionUnnamed": "这个插件与当前 DSH 版本不兼容,运行它可能导致崩溃或数据丢失。", "reasonIncompatibleInstall": "请安装与当前 DSH 兼容的插件版本。", "reasonIncompatibleInstalled": "请卸载后重新安装与当前 DSH 兼容的版本。", "reasonOperationError": "Host 报告了一个错误" }, "en": { "panel": "Plugins", "title": "Plugins", "intro": "Install, enable, and configure plugins", "infoLabel": "About plugins", "infoDescription": "Configure official plugins and install or manage other plugins here. View the built-in plugin list and runtime status in Settings → Built-in plugins.", "loading": "Reading plugins…", "error": "Could not read all plugins, possibly due to a network problem", "unavailable": "This deployment runs without a manageable profile, so plugins cannot be installed or switched here.", "retry": "Retry", "refresh": "Refresh", "refreshError": "Refresh failed. Please try again.", "empty": "No plugins are installed yet.", "addPlugin": "Add plugin", "restartNotice": "The change takes effect at the next start", "overriddenNotice": "{name} was saved, but a higher-priority configuration overrides it, so it is not in effect", "bundlesTitle": "Installed", "officialTitle": "Official", "statusProblem": "Problem", "statusBeta": "Experimental", "reasonLabel": "Reason", "metadataError": "Package metadata error: {error}", "versionTag": "v{version}", "partsLabel": "Components", "partsEmpty": "This plugin pack contains no components.", "partsCountTotal": "{count} total", "partsCountRunning": "{count} running", "partsCountOff": "{count} off", "partOff": "Off", "partsCountFailed": "{count} failed", "partsFilter": "Filter components", "partsFilterEmpty": "No component matches.", "partToggle": "Enable component {name}", "rowPhasePending": "Waiting for dependencies", "rowPhaseLoading": "Loading", "rowPhaseActive": "Running", "rowPhaseFailed": "Problem", "rowPhaseUnloading": "Unloading", "enableToggle": "Enable {name}", "openDetail": "View {name}", "backToList": "Back to plugins", "crumbRoot": "Plugins", "backToPackage": "Back to {name}", "configureRow": "Configure {name}", "rowStateIdle": "Not running", "uninstall": "Uninstall", "uninstallLabel": "Uninstall {name}", "installTitle": "Add plugin", "installDescription": "Enter the plugin's package name, GitHub repository address, or local directory path.", "installSpecLabel": "Package name or address", "installSpecPlaceholder": "for example dsh-plugin-whale-pet", "installGuideToggle": "Install guide and examples", "installGuideHide": "Hide the guide", "installGuideIdTitle": "Enter the plugin's npm package name", "installGuideIdExample": "dsh-plugin-whale-pet", "installGuideIdHint": "The plugin package name is the npm package name (like dsh-xxx or @author/plugin): the part after dsh plugin add or pnpm add in a community plugin's README install command.", "installGuideExampleLabel": "Example: ", "installGitTemplateHint": "Replace this with the actual Git repository address.", "installPathTemplateHint": "Replace this with the actual path to your local plugin directory.", "installGuideFill": "Use example", "installGuideFillAria": "Use the example {example}", "installGuideSafety": "Install only plugins you trust: they run with your permissions and can damage DeepSeek Harness or leak your data.", "installUpgradeNotice": "Installed plugins do not update automatically yet. To upgrade a plugin, uninstall it and install the new version. Later releases will keep improving the upgrade experience.", "registryToggle": "Registry", "registryLegend": "The npm registry the plugin is downloaded from", "registryDefault": "Default registry", "registryOfficial": "Official npm registry", "registryNpmmirror": "Mainland China mirror", "registryCustom": "Custom address", "registryCustomPlaceholder": "https://npm.example.com/", "registryCustomHint": "Enter an internal or private npm registry address starting with http:// or https://. If it requires a login, store the credentials in ~/.npmrc on this machine.", "registryCustomInvalid": "Enter an address starting with http:// or https://", "registryListSeparator": ", ", "sentenceSeparator": " ", "installRun": "Install", "installChecking": "Checking…", "installProblemInvalid": "This is not a package name or address that can be installed: {reason}", "installProblemInstalled": "This plugin is already installed. To upgrade it, uninstall it and install it again", "installProblemShipped": "This plugin ships with DSH; upgrading DSH updates it", "installProblemNotFound": "No such plugin was found", "installProblemNotPackage": "The path does not exist or is not a valid plugin package", "installProblemNotBundle": "This package declares no bundle, so it cannot be installed as a plugin: {reason}", "installProblemNetwork": "The plugin registry could not be reached; check the network and try again", "installProblemNetworkAll": "No registry could be reached (tried: {registries}); check the network or proxy settings, or change the registry", "installProblemUnknown": "The plugin could not be looked up: {reason}", "installingTitle": "Installing the plugin…", "installedTitle": "Installed", "installFailedTitle": "The plugin could not be installed", "installGithubFailedTitle": "Cannot access GitHub", "installGithubTimeoutTitle": "GitHub connection timed out", "installGithubFailedDescription": "Try another installation source.", "installUseGithubMirror": "Use mainland China mirror", "installTryAnotherWay": "Try another way", "installPackageLabel": "Plugin package name", "installEdit": "Edit", "installEditAria": "Back to editing", "installCancelAndEdit": "Cancel installation and return to editing", "installApplyingCancellationError": "Cancellation was not confirmed. Installation is being applied; wait for its result. {reason}", "installReconcile": "Check installation status", "installUnknownTitle": "Installation result unavailable", "installUnknownDescription": "The Host has no active installation with this request id. Check the plugin list before trying again.", "installResultUnconfirmed": "The installation result was not received. Check installation status. {reason}", "installAwaitingAcceptance": "Waiting for the Host to accept installation. Cancellation will retry automatically after confirmation.", "installBackgroundUnknown": "Installation result unavailable. Check the plugin list.", "installCancel": "Cancel install", "installCloseCancels": "Cancel install and close", "installViewTask": "View installation", "installUnconfirmedTitle": "Installation status unconfirmed", "installBackgroundDone": "Installation finished. View installation details.", "installBackgroundFailed": "Installation failed. View installation details.", "installBackgroundUnconfirmed": "Installation status is unconfirmed. View the installation for details.", "installBackgroundApplying": "Installation is being applied and cannot be cancelled. View installation progress.", "installStarting": "Preparing installation…", "installCancelling": "Stopping installation…", "installApplying": "Applying configuration, please wait…", "installCancelledShort": "Cancelled", "installCancelled": "Installation cancelled; the plugin is not enabled, and downloaded files may remain", "installCancelUnconfirmed": "Installation has not been confirmed stopped. Retry cancellation or wait for the installation result. {reason}", "installEnableNow": "Enable now", "installDetailsShow": "Show install details", "installDetailsHide": "Hide install details", "installVersion": "Version {version}", "installSubjectPath": "Local directory", "installSubjectGit": "Git repository", "installSubjectTarball": "Tarball", "installLocation": "Installs into {dir}", "installRetry": "Retry", "installChangeRegistry": "Change registry", "installAttempt": "{previous} could not serve the package; retrying through {registry} (registry {index} of {total})", "installAttemptBadge": "Attempt {index} · {registry}", "installFailureNetwork": "The network connection failed", "installFailureNetworkAll": "No registry could be reached (tried: {registries}). Check the network or proxy settings, or change the registry and retry.", "installFailureNetworkHost": "{host} could not be reached. A GitHub address or a .tgz link is not fetched through the registry: this machine must reach it directly or through a proxy. If the plugin is also published to npm, enter its package name instead.", "installFailureNotFound": "No such plugin was found", "installFailureNoMatchingVersion": "No version matches the request", "installFailureDiskFull": "The disk is full; the install stopped", "installFailurePermission": "No write permission; the plugin cannot be installed", "installFailureBuildBlocked": "A dependency's install scripts need your permission before the install can continue", "installFailureBuildBlockedManual": "pnpm blocked install scripts; allow them under allowBuilds in pnpm-workspace.yaml and retry", "installFailureIntegrity": "The downloaded package failed its integrity check", "installFailureTimeout": "The install timed out", "installFailurePnpmMissing": "pnpm was not found, so nothing can be installed", "installFailureGeneric": "Something went wrong during the install; the details say what", "terminalRunning": "Running", "terminalFailed": "Failed", "terminalDone": "Done", "terminalCopy": "Copy", "terminalCopied": "Copied", "terminalNoOutput": "No output", "terminalCollapseAria": "Collapse output", "terminalCollapse": "Collapse", "terminalExpandAria": "Expand the remaining {n} output lines", "terminalExpand": "… {n} more lines", "terminalExitCode": "exit code {code}", "terminalSignal": "signal {signal}", "terminalNoExitCode": "no exit code", "installDoneNothing": "Install finished with no new dependency.", "installDoneRestart": "Installed; it loads at the next start.", "installDoneApproved": "Install scripts allowed for {names}", "installApprovalTitle": "Install scripts need permission", "installApprovalDescription": "These packages have install scripts that pnpm did not run.", "installApprovalConsequence": "Once allowed, the scripts run here with your permissions, and the permission is saved in this profile.", "installApprovalCaution": "Allow only packages you trust.", "installApproveAndRetry": "Allow these scripts and retry", "installClose": "Done", "close": "Close", "cancel": "Cancel", "confirmUninstallTitle": "Uninstall \"{name}\"?", "confirmUninstallDescription": "What it provides goes away once it is uninstalled.", "confirmUninstall": "Uninstall", "failedEnable": "Could not enable: {reason}", "failedDisable": "Could not disable: {reason}", "failedUninstall": "Could not uninstall: {reason}", "failedRowEnable": "Could not enable the component: {reason}", "failedRowDisable": "Could not disable the component: {reason}", "reasonManagementRequired": "Plugin management needs it; it cannot be switched off or uninstalled.", "reasonUnaddressable": "The profile patch cannot address this one uniquely.", "reasonUnknownPlugin": "No such plugin.", "reasonInvalidSpec": "Enter a valid package name or address.", "reasonAmbiguousInstall": "Which package was installed cannot be told from the dependency change.", "reasonNotBundle": "This package declares no bundle, so it cannot be managed as a plugin.", "reasonNotRemovable": "This package is not owned by the profile, or plugin management needs it.", "reasonStopProfile": "This profile runs without HMR; stop it and uninstall the package with dsh plugin.", "reasonBundleInUse": "Other configuration still uses this bundle's components; switch them off first.", "reasonStaleApproval": "The pending script approvals changed; install again to refresh them.", "reasonIncompatibleVersion": "{plugin} is incompatible with DSH {runtime} (requires {peers}); running it may cause crashes or data loss.", "reasonIncompatibleVersionUnnamed": "This plugin is incompatible with the running DSH version; running it may cause crashes or data loss.", "reasonIncompatibleInstall": "Install a plugin version compatible with this DSH.", "reasonIncompatibleInstalled": "Uninstall it and install a version compatible with this DSH.", "reasonOperationError": "The Host reported an error." } }, "sources": [ "dsh-client-ui-plugin-manager" ] }, "reference": { "locales": { "zh": { "section.files": "文件与文件夹", "section.subagents": "子智能体", "section.sessions": "对话", "candidate.noCwd": "(无工作目录)", "crumb.root": "工作区", "time.now": "刚刚", "time.minutes": "{n}分钟", "time.hours": "{n}小时", "time.days": "{n}天", "time.months": "{n}个月", "time.years": "{n}年" }, "en": { "section.files": "Files & folders", "section.subagents": "Subagents", "section.sessions": "Sessions", "candidate.noCwd": "(no cwd)", "crumb.root": "Workspace", "time.now": "now", "time.minutes": "{n}min", "time.hours": "{n}h", "time.days": "{n}d", "time.months": "{n}mo", "time.years": "{n}y" } }, "sources": [ "dsh-client-ui-reference" ] }, "schedule.catalog": { "locales": { "zh": { "trigger.label": "提醒", "list.loading": "正在加载提醒…", "list.error": "无法加载提醒。", "list.retry": "重试", "delete.action": "删除", "delete.pending": "正在删除…", "delete.label": "删除提醒:{title}", "list.open": "打开提醒详情:{title}", "trigger.one": "{count} 个提醒", "trigger.other": "{count} 个提醒", "list.aria": "活动提醒", "list.nextRun": "下次运行", "frequency.once": "单次", "frequency.every": "{value}{unit}一次", "time.locale": "zh-CN", "time.utcPrefix": "UTC", "frequency.daily": "每天 {time}({timeZone})", "frequency.dailyLocal": "每天 {time}", "frequency.weekly": "每周{weekdays} {time}({timeZone})", "frequency.weeklyLocal": "每周{weekdays} {time}", "frequency.cron": "Cron {expression}({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule}({timeZone})", "cron.list.join": "、", "cron.part.join": " ", "cron.weekday.name": "周{weekday}", "cron.weekday.range": "{from}至{to}", "cron.months": "({months})", "cron.day.every": "每天{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "每月 {days} 日{months}", "cron.day.both": "每月 {days} 日或{weekdays}{months}", "cron.day.bothStarred": "每月 {days} 日且{weekdays}{months}", "cron.hours.range": "{from} 至 {to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "每分钟", "cron.time.everyMinutes": "每 {step} 分钟", "cron.time.joinedEveryMinute": "每分钟", "cron.time.joinedEveryMinutes": "每 {step} 分钟", "cron.time.everyHour": "每小时", "cron.time.joinedEveryHour": "每小时", "cron.time.everyNHours": "每 {count} 小时", "cron.time.joinedEveryNHours": "每 {count} 小时", "cron.time.hourlyAt": "每小时的第 {minutes} 分钟", "cron.time.joinedHourlyAt": "每小时的第 {minutes} 分钟", "cron.time.hoursEveryMinute": "{hours} 点的每分钟", "cron.time.hoursEveryMinutes": "{hours} 点内每 {step} 分钟", "cron.time.at": "{times}", "cron.time.hoursAt": "{hours} 点的第 {minutes} 分钟", "frequency.weekday.join": "、", "frequency.weekday.1": "一", "frequency.weekday.2": "二", "frequency.weekday.3": "三", "frequency.weekday.4": "四", "frequency.weekday.5": "五", "frequency.weekday.6": "六", "frequency.weekday.7": "日", "unit.day.one": "天", "unit.day.other": "天", "unit.hour.one": "小时", "unit.hour.other": "小时", "unit.minute.one": "分钟", "unit.minute.other": "分钟", "unit.second.one": "秒", "unit.second.other": "秒", "relative.now": "现在到期", "relative.future": "{value}{unit}后", "relative.overdue": "已逾期 {value}{unit}", "mark.aria": "{count} 个自动化任务", "hover.more": "另有 {count} 个任务" }, "en": { "trigger.label": "Reminders", "list.loading": "Loading reminders…", "list.error": "Could not load reminders.", "list.retry": "Retry", "delete.action": "Delete", "delete.pending": "Deleting…", "delete.label": "Delete reminder: {title}", "list.open": "Open reminder details: {title}", "trigger.one": "{count} reminder", "trigger.other": "{count} reminders", "list.aria": "Active reminders", "list.nextRun": "Next run", "frequency.once": "Once", "frequency.every": "Every {value} {unit}", "time.locale": "en", "time.utcPrefix": "UTC", "frequency.daily": "Daily at {time} ({timeZone})", "frequency.dailyLocal": "Daily at {time}", "frequency.weekly": "Weekly on {weekdays} at {time} ({timeZone})", "frequency.weeklyLocal": "Weekly on {weekdays} at {time}", "frequency.cron": "Cron {expression} ({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule} ({timeZone})", "cron.list.join": ", ", "cron.part.join": " ", "cron.weekday.name": "{weekday}", "cron.weekday.range": "{from}–{to}", "cron.months": " in {months}", "cron.day.every": "Every day{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "Day {days} of every month{months}", "cron.day.both": "Day {days} of every month or {weekdays}{months}", "cron.day.bothStarred": "Day {days} of every month and {weekdays}{months}", "cron.hours.range": "{from}–{to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "Every minute", "cron.time.everyMinutes": "Every {step} minutes", "cron.time.joinedEveryMinute": "every minute", "cron.time.joinedEveryMinutes": "every {step} minutes", "cron.time.everyHour": "Every hour", "cron.time.joinedEveryHour": "every hour", "cron.time.everyNHours": "Every {count} hours", "cron.time.joinedEveryNHours": "every {count} hours", "cron.time.hourlyAt": "Every hour at minute {minutes}", "cron.time.joinedHourlyAt": "every hour at minute {minutes}", "cron.time.hoursEveryMinute": "every minute during hours {hours}", "cron.time.hoursEveryMinutes": "every {step} minutes during hours {hours}", "cron.time.at": "at {times}", "cron.time.hoursAt": "at minute {minutes} of hours {hours}", "frequency.weekday.join": ", ", "frequency.weekday.1": "Mon", "frequency.weekday.2": "Tue", "frequency.weekday.3": "Wed", "frequency.weekday.4": "Thu", "frequency.weekday.5": "Fri", "frequency.weekday.6": "Sat", "frequency.weekday.7": "Sun", "unit.day.one": "day", "unit.day.other": "days", "unit.hour.one": "hour", "unit.hour.other": "hours", "unit.minute.one": "minute", "unit.minute.other": "minutes", "unit.second.one": "second", "unit.second.other": "seconds", "relative.now": "Due now", "relative.future": "in {value} {unit}", "relative.overdue": "{value} {unit} overdue", "mark.aria": "{count} scheduled tasks", "hover.more": "{count} more" } }, "sources": [ "dsh-client-ui-schedule" ] }, "schedule.manager": { "locales": { "zh": { "panel": "自动化任务", "title": "自动化任务", "new.action": "新建", "list.label": "任务列表", "list.nextPrefix": "下次计划时间:", "list.loading": "正在加载任务…", "list.error": "无法加载任务", "list.retry": "重试", "list.empty": "还没有自动化任务,在会话中创建的任务会显示在这里", "list.emptyInactive": "没有已结束的自动化任务", "list.noMatches": "没有匹配的自动化任务", "search.label": "搜索任务", "search.placeholder": "搜索自动化任务", "search.clear": "清空搜索", "empty.action": "新建自动化任务", "statusFilter.label": "任务状态", "statusFilter.all": "全部", "status.active": "已开启", "status.inactive": "已结束", "detail.label": "任务详情", "detail.close": "关闭详情", "detail.more": "自动化任务操作", "detail.nextRun": "下次运行", "detail.tabs": "任务详情视图", "detail.rule": "规则", "detail.records": "任务运行记录", "delivery.empty": "暂无任务运行记录", "delivery.loading": "正在加载任务运行记录…", "delivery.error": "无法加载任务运行记录", "delivery.notFound": "任务已不可用", "delivery.cursorError": "记录已更新", "delivery.retry": "重试", "delivery.refresh": "刷新", "delivery.loadMore": "加载更多", "delivery.expand": "展开", "delivery.collapse": "收起", "delivery.pruned": "更早的运行记录已清理", "delivery.retention": "保留规则", "delivery.retentionBounds": "每个任务最多保留近 {days} 天内的 {records} 条运行记录。", "delivery.retentionExplanation": "产生新记录时,超出范围的旧记录会自动清理。清理记录不影响任务继续运行。", "detail.name": "自动化任务名称", "detail.instruction": "自动化任务内容", "detail.status": "状态", "detail.next": "下次计划时间", "detail.frequency": "提醒频率", "detail.id": "任务 ID", "detail.session": "关联会话", "detail.openSession": "关联会话:打开原会话", "detail.openSessionTitle": "关联会话 {title}:打开原会话", "detail.sessionLoading": "正在加载原会话信息", "detail.sessionArchived": "原会话已归档", "detail.sessionUnavailable": "原会话当前不可用", "detail.missing": "任务已不可用,可能已被删除", "delivery.label": "已保存的任务运行记录", "frequency.once": "仅一次", "frequency.every": "每 {value} {unit}", "time.locale": "zh-CN", "time.utcPrefix": "UTC", "frequency.daily": "每天 {time}({timeZone})", "frequency.dailyLocal": "每天 {time}", "frequency.weekly": "每周{weekdays} {time}({timeZone})", "frequency.weeklyLocal": "每周{weekdays} {time}", "frequency.cron": "Cron {expression}({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule}({timeZone})", "cron.list.join": "、", "cron.part.join": " ", "cron.weekday.name": "周{weekday}", "cron.weekday.range": "{from}至{to}", "cron.months": "({months})", "cron.day.every": "每天{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "每月 {days} 日{months}", "cron.day.both": "每月 {days} 日或{weekdays}{months}", "cron.day.bothStarred": "每月 {days} 日且{weekdays}{months}", "cron.hours.range": "{from} 至 {to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "每分钟", "cron.time.everyMinutes": "每 {step} 分钟", "cron.time.joinedEveryMinute": "每分钟", "cron.time.joinedEveryMinutes": "每 {step} 分钟", "cron.time.everyHour": "每小时", "cron.time.joinedEveryHour": "每小时", "cron.time.everyNHours": "每 {count} 小时", "cron.time.joinedEveryNHours": "每 {count} 小时", "cron.time.hourlyAt": "每小时的第 {minutes} 分钟", "cron.time.joinedHourlyAt": "每小时的第 {minutes} 分钟", "cron.time.hoursEveryMinute": "{hours} 点的每分钟", "cron.time.hoursEveryMinutes": "{hours} 点内每 {step} 分钟", "cron.time.at": "{times}", "cron.time.hoursAt": "{hours} 点的第 {minutes} 分钟", "frequency.weekday.join": "、", "frequency.weekday.1": "一", "frequency.weekday.2": "二", "frequency.weekday.3": "三", "frequency.weekday.4": "四", "frequency.weekday.5": "五", "frequency.weekday.6": "六", "frequency.weekday.7": "日", "unit.day.one": "天", "unit.day.other": "天", "unit.hour.one": "小时", "unit.hour.other": "小时", "unit.minute.one": "分钟", "unit.minute.other": "分钟", "unit.second.one": "秒", "unit.second.other": "秒", "relative.now": "现在到期", "relative.future": "{value}{unit}后", "relative.overdue": "已逾期 {value}{unit}", "timing.date": "日期", "timing.time": "时间", "timing.hour": "时", "timing.minute": "分", "timing.second": "秒", "timing.prevMonth": "上个月", "timing.nextMonth": "下个月", "timing.zone": "时区", "timing.zoneSearch": "搜索 UTC 偏移、IANA 标识或城市", "timing.zoneNoResults": "没有匹配的时区", "timing.interval": "重复间隔", "timing.intervalIncrease": "增大间隔", "timing.intervalDecrease": "减小间隔", "timing.unit.hour": "小时", "timing.unit.minute": "分钟", "timing.unit.second": "秒", "timing.intervalHint.hour": "至少 1 小时。间隔自任务创建或上次修改规则时起计,不受时区影响", "timing.intervalHint.minute": "至少 1 分钟。间隔自任务创建或上次修改规则时起计,不受时区影响", "timing.intervalHint.second": "至少 60 秒。间隔自任务创建或上次修改规则时起计,不受时区影响", "timing.zoneNoStored": "单次任务只保存触发时刻,不保存时区;日期和时间按所选时区换算", "timing.inactive": "已结束的任务为只读,无法修改时间", "timing.conflict": "编辑期间任务已变化,草稿已保留。请在刷新后取消并重新打开编辑器,以修改最新规则", "timing.notFound": "此任务当前不可用,草稿已保留。请取消以关闭编辑器", "timing.invalid": "请输入有效的日期和时间,或检查时间字段", "timing.invalidZone": "请输入有效的 IANA 时区,例如 Asia/Shanghai", "timing.notFuture": "请选择未来的日期和时间", "timing.invalidInterval": "请输入至少 1 分钟的间隔", "timing.invalidInterval.hour": "请输入至少 1 小时的间隔", "timing.invalidInterval.minute": "请输入至少 1 分钟的间隔", "timing.invalidInterval.second": "请输入至少 60 秒的间隔", "timing.error": "无法确认时间修改是否已保存。草稿已保留,请在重试前检查任务", "rule.title": "运行时间", "rule.repeat": "重复", "rule.weekday": "星期", "rule.weekdayOption": "星期{weekday}", "rule.unsaved": "有未保存的修改", "rule.save": "保存修改", "rule.saving": "保存中…", "rule.cancel": "取消", "rule.invalidTitle": "请输入不超过 120 个字符的任务名称", "rule.invalidPrompt": "请输入任务内容", "rule.once": "仅一次", "rule.everyMinutes": "每 N 分钟", "rule.everyHours": "每 N 小时", "rule.everySeconds": "每 N 秒", "rule.daily": "每天", "rule.weekdays": "周一至周五", "rule.weekly": "每周", "rule.cron": "自定义", "rule.cronLabel": "Cron 表达式", "rule.cronInvalid": "请输入 5 字段的 cron 表达式,例如 0 9 * * 1-5", "cronForm.frequency": "频率", "cronForm.monthly": "每月", "cronForm.weekly": "每周", "cronForm.daily": "每天", "cronForm.dates": "在以下日期", "cronForm.dateOption": "{day} 日", "cronForm.atMinute": "在第几分钟", "cronForm.minuteIncrease": "增大分钟", "cronForm.minuteDecrease": "减小分钟", "rule.zone.system": "(系统)", "rule.error.conflict": "任务在保存前已发生变化。当前显示已保存的规则,请重试", "rule.error.notFound": "此任务当前不可用", "rule.error.unknown": "无法确认规则是否已更新。当前显示已保存的规则", "delete.action": "删除任务", "delete.title": "删除此任务?", "delete.description": "任务将停止触发,并连同其已保存的任务运行记录一并删除。原会话及其消息仍然保留;已排队的消息不会被撤回。", "delete.confirm": "确认删除", "delete.cancel": "取消", "delete.close": "关闭删除确认", "delete.pending": "正在删除…", "toast.deleted": "任务已删除", "toast.deleteFailed": "无法删除任务", "card.open": "打开", "card.openLabel": "打开任务详情:{title}", "card.deleted": "已删除", "tool.invoked": "已调用 {name}" }, "en": { "panel": "Automation tasks", "title": "Automation tasks", "new.action": "New", "list.label": "Task catalog", "list.nextPrefix": "Next scheduled time: ", "list.loading": "Loading tasks…", "list.error": "Could not load tasks.", "list.retry": "Retry", "list.empty": "No tasks yet. Tasks created in your sessions appear here.", "list.emptyInactive": "No inactive automation tasks", "list.noMatches": "No matching tasks", "search.label": "Search tasks", "search.placeholder": "Search automation tasks", "search.clear": "Clear search", "empty.action": "New automation task", "statusFilter.label": "Task status", "statusFilter.all": "All", "status.active": "Enabled", "status.inactive": "Inactive", "detail.label": "Task details", "detail.close": "Close details", "detail.more": "Automation task actions", "detail.nextRun": "Next run", "detail.tabs": "Task detail views", "detail.rule": "Rules", "detail.records": "Delivery records", "delivery.empty": "No delivery record available", "delivery.loading": "Loading delivery records…", "delivery.error": "Could not load delivery records.", "delivery.notFound": "This task is no longer available.", "delivery.cursorError": "Records were updated.", "delivery.retry": "Retry", "delivery.refresh": "Refresh", "delivery.loadMore": "Load more", "delivery.expand": "Expand", "delivery.collapse": "Collapse", "delivery.pruned": "Earlier delivery records have been cleared", "delivery.retention": "Retention rules", "delivery.retentionBounds": "Each task keeps up to {records} delivery records from the last {days} days.", "delivery.retentionExplanation": "When a new record is saved, older records outside these limits are cleared automatically. Clearing records does not stop the task.", "detail.name": "Automation task name", "detail.instruction": "Automation task instruction", "detail.status": "Status", "detail.next": "Next scheduled time", "detail.frequency": "Frequency", "detail.id": "Task ID", "detail.session": "Linked session", "detail.openSession": "Linked session: open original session", "detail.openSessionTitle": "Linked session {title}: open original session", "detail.sessionLoading": "Loading original session information.", "detail.sessionArchived": "The original session is archived.", "detail.sessionUnavailable": "The original session is unavailable.", "detail.missing": "Task unavailable. It may have been deleted.", "delivery.label": "Saved delivery record", "frequency.once": "Once", "frequency.every": "Every {value} {unit}", "time.locale": "en", "time.utcPrefix": "UTC", "frequency.daily": "Daily at {time} ({timeZone})", "frequency.dailyLocal": "Daily at {time}", "frequency.weekly": "Weekly on {weekdays} at {time} ({timeZone})", "frequency.weeklyLocal": "Weekly on {weekdays} at {time}", "frequency.cron": "Cron {expression} ({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule} ({timeZone})", "cron.list.join": ", ", "cron.part.join": " ", "cron.weekday.name": "{weekday}", "cron.weekday.range": "{from}–{to}", "cron.months": " in {months}", "cron.day.every": "Every day{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "Day {days} of every month{months}", "cron.day.both": "Day {days} of every month or {weekdays}{months}", "cron.day.bothStarred": "Day {days} of every month and {weekdays}{months}", "cron.hours.range": "{from}–{to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "Every minute", "cron.time.everyMinutes": "Every {step} minutes", "cron.time.joinedEveryMinute": "every minute", "cron.time.joinedEveryMinutes": "every {step} minutes", "cron.time.everyHour": "Every hour", "cron.time.joinedEveryHour": "every hour", "cron.time.everyNHours": "Every {count} hours", "cron.time.joinedEveryNHours": "every {count} hours", "cron.time.hourlyAt": "Every hour at minute {minutes}", "cron.time.joinedHourlyAt": "every hour at minute {minutes}", "cron.time.hoursEveryMinute": "every minute during hours {hours}", "cron.time.hoursEveryMinutes": "every {step} minutes during hours {hours}", "cron.time.at": "at {times}", "cron.time.hoursAt": "at minute {minutes} of hours {hours}", "frequency.weekday.join": ", ", "frequency.weekday.1": "Mon", "frequency.weekday.2": "Tue", "frequency.weekday.3": "Wed", "frequency.weekday.4": "Thu", "frequency.weekday.5": "Fri", "frequency.weekday.6": "Sat", "frequency.weekday.7": "Sun", "unit.day.one": "day", "unit.day.other": "days", "unit.hour.one": "hour", "unit.hour.other": "hours", "unit.minute.one": "minute", "unit.minute.other": "minutes", "unit.second.one": "second", "unit.second.other": "seconds", "relative.now": "Due now", "relative.future": "in {value} {unit}", "relative.overdue": "{value} {unit} overdue", "timing.date": "Date", "timing.time": "Time", "timing.hour": "Hour", "timing.minute": "Minute", "timing.second": "Second", "timing.prevMonth": "Previous month", "timing.nextMonth": "Next month", "timing.zone": "Time zone", "timing.zoneSearch": "Search by UTC offset, IANA ID, or city", "timing.zoneNoResults": "No matching time zones", "timing.interval": "Repeat every", "timing.intervalIncrease": "Increase interval", "timing.intervalDecrease": "Decrease interval", "timing.unit.hour": "hours", "timing.unit.minute": "minutes", "timing.unit.second": "seconds", "timing.intervalHint.hour": "At least 1 hour. The interval counts from task creation or the last rule change and is independent of time zones.", "timing.intervalHint.minute": "At least 1 minute. The interval counts from task creation or the last rule change and is independent of time zones.", "timing.intervalHint.second": "At least 60 seconds. The interval counts from task creation or the last rule change and is independent of time zones.", "timing.zoneNoStored": "A one-time task stores only its target moment, not a time zone. The date and time are interpreted in the selected time zone.", "timing.inactive": "Inactive tasks are read-only. Their timing cannot be edited.", "timing.conflict": "This task changed while you were editing. Your draft is retained. Cancel and reopen after refresh to edit the latest rule.", "timing.notFound": "This task is no longer available. Your draft is retained; cancel to close the editor.", "timing.invalid": "Enter a valid date and time, or check the timing fields.", "timing.invalidZone": "Enter a valid IANA time zone, for example Asia/Shanghai.", "timing.notFuture": "Choose a date and time in the future.", "timing.invalidInterval": "Enter an interval of at least 1 minute.", "timing.invalidInterval.hour": "Enter an interval of at least 1 hour.", "timing.invalidInterval.minute": "Enter an interval of at least 1 minute.", "timing.invalidInterval.second": "Enter an interval of at least 60 seconds.", "timing.error": "Could not confirm the timing update. Your draft is retained. Check the task before retrying.", "rule.title": "Run time", "rule.repeat": "Repeat", "rule.weekday": "Weekday", "rule.weekdayOption": "Weekday {weekday}", "rule.unsaved": "Unsaved changes", "rule.save": "Save changes", "rule.saving": "Saving…", "rule.cancel": "Cancel", "rule.invalidTitle": "Enter a task name of at most 120 characters.", "rule.invalidPrompt": "Enter a task instruction.", "rule.once": "Once", "rule.everyMinutes": "Every N minutes", "rule.everyHours": "Every N hours", "rule.everySeconds": "Every N seconds", "rule.daily": "Every day", "rule.weekdays": "Monday to Friday", "rule.weekly": "Weekly", "rule.cron": "Custom", "rule.cronLabel": "Cron expression", "rule.cronInvalid": "Enter a five-field cron expression, for example 0 9 * * 1-5.", "cronForm.frequency": "Frequency", "cronForm.monthly": "Monthly", "cronForm.weekly": "Weekly", "cronForm.daily": "Every day", "cronForm.dates": "On dates", "cronForm.dateOption": "Day {day}", "cronForm.atMinute": "At minute", "cronForm.minuteIncrease": "Increase minute", "cronForm.minuteDecrease": "Decrease minute", "rule.zone.system": " (system)", "rule.error.conflict": "This task changed before the update was saved. The row shows the saved rule; try again.", "rule.error.notFound": "This task is no longer available.", "rule.error.unknown": "Could not confirm the rule update. The row shows the saved rule.", "delete.action": "Delete task", "delete.title": "Delete this task?", "delete.description": "This stops the task from triggering and deletes it together with its saved delivery records. The original session and its messages remain; queued messages are not withdrawn.", "delete.confirm": "Confirm deletion", "delete.cancel": "Cancel", "delete.close": "Close deletion confirmation", "delete.pending": "Deleting…", "toast.deleted": "Task deleted.", "toast.deleteFailed": "Could not delete the task.", "card.open": "Open", "card.openLabel": "Open task details: {title}", "card.deleted": "Deleted", "tool.invoked": "Invoked {name}" } }, "sources": [ "dsh-client-ui-schedule" ] }, "settings.account": { "locales": { "en": { "modelSignInRequired": "Model unavailable. Please sign in and try again.", "sessionExpired": "You have signed out of your account, please log in again.", "onboardingArtworkLocale": "en", "onboardingWelcome": "Welcome to", "onboardingBrand": "DeepSeek Harness", "onboardingIntroduction": "DeepSeek Harness works in a local folder and uses tools to read and write files on your computer. It can help you research and organize information, create documents and spreadsheets, write code, troubleshoot issues, and more.", "onboardingStart": "Get started", "onboardingCredit": "Add credits", "onboardingCreditDescription": "DeepSeek Harness charges credits based on the tokens used by models and tools. Add credits in advance to keep your tasks running without interruption. Your balance is only used while the agent is working on a task.", "onboardingTopUp": "Add credits", "onboardingLater": "Next", "onboardingFundedTopUp": "Add credits", "onboardingPurposePrefix": "What would you like", "onboardingPurposeSuffix": "to help with?", "onboardingPurposeDescription": "We’ll tailor the interface and tools to fit the way you work.", "onboardingOffice": "Office & creative work", "onboardingOfficeDescription": "Edit documents, organize data, create presentations, and more", "onboardingDevelopment": "Coding & development", "onboardingDevelopmentDescription": "Edit code, debug issues, run commands, manage project files, and more", "onboardingContinue": "Continue", "onboardingProcess": "How much detail would you like to see?", "onboardingProcessDescription": "This only changes how progress is shown, not what DeepSeek Harness can do.", "onboardingCompact": "Results only", "onboardingCompactDescription": "See just the results in a clean, simple interface", "onboardingStandard": "Key details", "onboardingStandardDescription": "Focus on results, with only the most important steps and actions shown", "onboardingDetailed": "Full details", "onboardingDetailedDescription": "See the full process for easier debugging and troubleshooting", "onboardingEnter": "Open app", "onboardingBack": "Back", "onboardingSkip": "Skip", "onboardingSkipTitle": "Skip setup?", "onboardingSkipDescription": "You can change how progress, performance, and usage are displayed, or enable Coding Tools, anytime in Settings → General.", "onboardingKeepSetting": "Continue setup", "onboardingNoCreditTitle": "Skip adding credits?", "onboardingNoCreditDescription": "DeepSeek Harness can’t start new tasks without credits. You can add them later in Settings → Account.", "onboardingUnderstood": "Got it", "onboardingGoTopUp": "Add credits", "onboardingSaveFailed": "Could not save settings. Try again.", "onboardingRetry": "Retry", "onboardingLoading": "Loading settings…", "close": "Close", "addApiKey": "Add API Key", "retry": "Sign in again", "loginTitle": "Get started", "loginDescription": "Sign in to your DeepSeek account or add an API Key to get started. Your projects and files are stored locally.", "browserTitle": "Waiting for sign in", "browserPrompt": "Page did not open automatically? ", "copyLink": "Copy sign-in link", "copiedLink": "Link copied", "copyFailed": "Copy failed", "browserDescription": ", then open it in your browser to finish signing in.", "timeoutTitle": "Sign in timed out", "timeoutDescription": "Sign in again to continue.", "failureTitle": "Could not sign in", "platformFailed": "Could not complete the operation. Try again.", "platformRetry": "Retry", "loading": "Loading…", "backToHarness": "Back to DeepSeek Harness", "settings": "Settings", "contactUs": "Feedback", "menu": "Account menu", "nav": "Account", "signedIn": "Signed in to DeepSeek", "signedOut": "Not signed in", "signIn": "Sign in", "signOut": "Sign out", "signOutUnknownDescription": "Could not check running tasks. Signing out may interrupt tasks using this account. Sign out now?", "signOutDescription": "Signing out will not delete any data. You can sign in to this account again.", "signOutRunningDescription": "Tasks are currently running. Signing out will interrupt them. Sign out now?", "cancel": "Cancel", "open": "Open browser", "initializing": "Starting sign in…", "waiting": "Continue in your browser", "completing": "Completing sign in…", "expired": "Sign in expired. Try again.", "failed": "Could not complete the operation. Try again.", "settingsSignedOutTitle": "You are not signed in to DeepSeek Harness", "settingsSignedOutDescription": "Sign in to DeepSeek Harness to get your dedicated API Key", "signInDescription": "Use your DeepSeek account to get started.", "profileUnavailable": "Account details are not available yet.", "balance": "Topped-up balance", "bonusBalance": "Granted balance", "balanceUnavailable": "View on Platform", "balanceSignedOut": "Sign in to view", "accountInfo": "More account information", "more": "More", "usage": "View usage", "topUp": "Top up", "quotaTitle": "No balance available", "quotaDescription": "DeepSeek Harness cannot start a new task with this account when no balance is available. Would you like to top up? You can also top up later in Settings → Account.", "quotaTopUp": "Top up", "bonusNoticeTitle": "Bonus credited" } }, "sources": [ "dsh-client-ui-settings-account" ] }, "settings.agentLoop": { "locales": { "zh": { "title": "Agent 循环", "description": "控制 Agent 派发工具调用的方式。", "maxParallel": "并行工具调用数", "maxParallelHint": "同一步内最多同时运行多少个可并行的调用。", "overridden": "已覆盖", "reset": "恢复默认", "readOnly": "本部署的设置为只读。", "unavailable": "该插件当前未加载,暂时无法配置。", "save": "保存", "saving": "保存中…", "saveFailed": "本部署没有接受这些值,已保留供你修改。", "invalidNumber": "请填数字;留空表示使用默认值。" }, "en": { "title": "Agent loop", "description": "Control how the Agent dispatches tool calls.", "maxParallel": "Parallel tool calls", "maxParallelHint": "Upper bound on parallel-safe calls running at once within one step.", "overridden": "Overridden", "reset": "Reset to default", "readOnly": "This deployment stores settings read-only.", "unavailable": "This plugin is not loaded, so it cannot be configured right now.", "save": "Save", "saving": "Saving…", "saveFailed": "The deployment did not accept these values; they were left for you to correct.", "invalidNumber": "Enter a number, or leave blank to use the default." } }, "sources": [ "dsh-client-ui-settings-agent-loop" ] }, "settings": { "locales": { "zh": { "trigger": "设置", "shortcut.open": "打开设置", "desktop.update.available": "新版本", "desktop.update.checking": "正在检查更新…", "desktop.update.progress": "{percent}%", "desktop.update.verifying": "正在校验更新文件…", "desktop.update.installing": "正在准备重启…", "desktop.update.ready": "安装并重启", "desktop.update.retry": "重试更新", "desktop.update.versionDetail": "{label}:{version}", "desktop.update.downloadDetail": "正在下载更新:{percent}%\n目标版本:{version}", "desktop.update.checkFailed": "检查更新失败,请稍后重试。", "desktop.update.downloadFailed": "下载更新失败,请重试。", "desktop.update.installFailed": "安装更新失败,请稍后重试。", "desktop.update.checkNetworkFailed": "检查更新失败,请检查网络连接后重试。", "desktop.update.downloadNetworkFailed": "下载更新失败,请检查网络连接后重试。", "desktop.update.installNetworkFailed": "安装更新失败,请检查网络连接后重试。", "desktop.update.stopFailed": "未能安全停止任务,更新尚未安装,请稍后重试。", "desktop.update.tasksChanged": "有新任务开始运行,请重新确认是否停止任务并更新。", "desktop.update.tasksUnavailable": "无法确认任务状态,请在工作区就绪后重试更新。", "title": "设置", "close": "关闭", "openDocument": "打开配置文件", "openDocument.error": "无法打开配置文件", "general.nav": "通用设置", "general.currentVersion": "当前版本:{version}", "developerTools.title": "显示代码工作视图", "developerTools.error": "保存失败,请重试", "developerTools.description": "开启后,显示轨迹、本轮代码差异,可选择完整的 Agent 预设切换", "connection.error": "连接异常,刷新重试", "connection.connecting": "重新连接中", "connection.connected": "连接成功", "connection.reconnect": "连接异常,点击立即重连", "connection.restart": "连接中断,正在重试,点击立即重连" }, "en": { "trigger": "Settings", "shortcut.open": "Open settings", "desktop.update.available": "Update", "desktop.update.checking": "Checking for updates…", "desktop.update.progress": "{percent}%", "desktop.update.verifying": "Verifying update files…", "desktop.update.installing": "Preparing to restart…", "desktop.update.ready": "Install and Restart", "desktop.update.retry": "Retry update", "desktop.update.versionDetail": "{label}: {version}", "desktop.update.downloadDetail": "Downloading update: {percent}%\nTarget version: {version}", "desktop.update.checkFailed": "Could not check for updates. Please try again later.", "desktop.update.downloadFailed": "Could not download the update. Please try again.", "desktop.update.installFailed": "Could not install the update. Please try again later.", "desktop.update.checkNetworkFailed": "Could not check for updates. Check your connection and try again.", "desktop.update.downloadNetworkFailed": "Could not download the update. Check your connection and try again.", "desktop.update.installNetworkFailed": "Could not install the update. Check your connection and try again.", "desktop.update.stopFailed": "Could not safely stop the tasks. The update has not been installed. Please try again later.", "desktop.update.tasksChanged": "New tasks have started. Confirm again to stop the tasks and update.", "desktop.update.tasksUnavailable": "Task status is unavailable. Try updating again when the workspace is ready.", "title": "Settings", "close": "Close", "openDocument": "Open configuration file", "openDocument.error": "Could not open configuration file", "general.nav": "General", "general.currentVersion": "Current version: {version}", "developerTools.title": "Show coding view", "developerTools.error": "Could not save. Please try again.", "developerTools.description": "Shows trajectory, code diffs, and all Agent presets", "connection.error": "Disconnected", "connection.connecting": "Reconnecting", "connection.connected": "Connected", "connection.reconnect": "Disconnected, reconnect now", "connection.restart": "Reconnecting, reconnect now" } }, "sources": [ "dsh-client-ui-settings-general" ] }, "settings.models": { "locales": { "zh": { "nav": "模型", "deepSeekAccount": "DeepSeek 账号", "title": "模型", "intro": "填入各提供商的 API 密钥即可使用其模型。", "edit": "编辑", "editProvider": "编辑 {provider}", "remove": "删除", "removeProvider": "删除 {provider}", "deleteTitle": "删除 {provider}?", "deleteDescription": "删除 {provider} 会移除其配置;其使用的凭证(如有)由其他位置管理,将会保留。", "deleteDescriptionWithCredential": "删除 {provider} 会移除其配置和存储的 API 密钥。", "deleteConfirm": "删除 {provider}", "deleting": "正在删除 {provider}…", "add": "添加模型提供商", "addMode": "添加方式", "addCatalog": "第三方模型提供商", "addCustom": "自定义模型 API", "addCatalogHint": "从内置目录中选择 OpenAI、Anthropic、Kimi 等提供商,填入其 API 密钥即可使用。", "addCustomHint": "连接中转站、自部署服务或其他兼容 OpenAI / Anthropic 协议的接口,需填写 API 地址、协议和模型。", "addCatalogExhausted": "目录中的提供商都已添加。", "addCustomUnavailable": "没有可用的 API 协议。", "provider": "提供商", "close": "关闭", "cancel": "取消", "apply": "保存", "applying": "保存中…", "savedProvider": "已保存 {provider}。", "credentialConfigured": "API 密钥已配置", "credentialMissing": "API 密钥缺失", "readOnly": "当前部署的设置文档为只读。", "loadFailed": "加载提供商目录失败", "conflict": "这张卡片打开期间,这些设置已被其他地方改动。请关闭后重新打开,在当前值上编辑。", "retry": "重试", "keyInput": "API 密钥", "keyPlaceholder": "输入 API 密钥", "keyPlaceholderNative": "输入 API 密钥,或留空使用环境认证", "keyStored": "已配置——输入新值可替换", "keyEnvLocked": "由启动环境提供(只读)", "customized": "自定义设置", "baseUrl": "API 地址", "baseUrlDefault": "提供商默认", "deepSeekBaseUrl": "https://api.deepseek.com/anthropic", "deepSeekEndpointHint": "请填写兼容 Anthropic Messages 协议的 API 地址。", "models": "模型目录", "modelsInherited": "正在使用适配器默认模型", "modelsCustomized": "已自定义模型目录", "resetModels": "恢复默认模型", "model": "模型", "modelId": "模型 ID", "modelName": "显示名称", "modelNamePlaceholder": "留空时使用模型 ID", "contextWindow": "上下文窗口", "contextWindowPlaceholder": "使用提供商默认值", "maxTokens": "最大输出 token 数", "maxTokensPlaceholder": "使用提供商默认值", "modelAdvanced": "模型选项", "modelInputTypes": "输入类型", "modelInputText": "文本", "modelInputImage": "图片", "addModel": "添加模型", "removeModel": "删除模型", "modelsEmpty": "模型选择器中将不显示任何模型;目录外 ID 仍可直接发送。", "keyBlank": "请输入 API 密钥;留空则保持已存储的密钥。", "keyBlankNew": "请输入 API 密钥;若该提供商以其他方式鉴权,可以留空。", "keyIllegalCharacters": "该 API 密钥格式错误,请检查。", "modelIdRequired": "模型 ID 不能为空。", "modelIdDuplicate": "模型 ID 不能重复。", "modelNameInvalid": "显示名称不能为空。", "modelContextInvalid": "上下文窗口必须是正数,例如 131072、256K 或 1M。", "modelMaxTokensInvalid": "最大输出 token 数必须是正数,例如 8192、64K 或 1M。", "advancedHint": "其余字段在 cordis.patch.yml 中,请直接编辑对应段。", "modelCapacityInvalid": "容量需为数字,可加 K 或 M 后缀。", "modelDuplicate": "每个模型 ID 只能出现一次。", "fetchModels": "获取可用模型", "fetching": "正在询问提供商…", "fetchNeedsBaseUrl": "请先填写 API 地址,再获取。", "fetchEmpty": "该提供商没有列出任何模型,请手动添加。", "fetchTitle": "选择要添加的模型", "fetchDescription": "以下是模型提供商的可用模型,勾选要添加的模型。", "fetchSearch": "搜索模型", "fetchNoMatches": "没有匹配的模型。", "fetchSelectAll": "全选", "fetchDeselectAll": "取消全选", "fetchAdopt": "添加所选", "customTag": "自定义", "customRoute": "Provider ID", "customRouteHint": "以小写字母开头的标识,在请求中唯一标识该提供商,并用于派生凭据名。", "customRouteInvalid": "需以小写字母开头,之后可用小写字母、数字和短横线。", "customRouteTaken": "已有提供商使用了这个 ID。", "customDisplayName": "显示名称", "customApi": "API 协议", "customApiUnset": "未选择", "protocolOpenAiCompletions": "OpenAI Chat Completions", "protocolOpenAiResponses": "OpenAI Responses", "protocolAnthropicMessages": "Anthropic Messages", "customNeedsBaseUrl": "自定义模型 API 需要填写 API 地址。", "customBaseUrlInvalid": "请输入有效的 HTTP 或 HTTPS 地址。", "customNeedsModels": "自定义模型 API 至少需要一个模型。", "customBaseUrlPlaceholder": "https://gateway.example/v1", "customAnthropicBaseUrlPlaceholder": "https://gateway.example", "settingsPathUnresolvable": "无法解析设置路径", "create": "创建提供商", "creating": "创建中…", "welcomeTitle": "预览版说明", "welcomeBody": "DeepSeek Harness 目前的 0.2 版本仍处于预览阶段,还有许多地方需要持续改进和打磨,希望听取广大开发者和用户的反馈建议。现在,新的桌面端面向广泛用户,开发者相关的进阶功能可在配置中开启使用。预计 DeepSeek Harness 的产品功能以及插件 API 都会继续快速迭代、持续演化,并逐渐趋于稳定。\n\n我们期待与全球用户和开发者一起,在开源、可复用、可组合的基础设施之上,共同探索智能上限。欢迎大家用 DeepSeek Harness 将想法变成现实,与社区一起丰富插件生态。", "welcomeContinue": "继续", "welcomeError": "暂时无法保存确认状态,请重试。", "onboardingTitle": "添加一个 API Key 开始使用", "onboardingDescription": "配置 DeepSeek 官方模型,即可开始使用。", "onboardingLater": "稍后配置", "onboardingSave": "保存并继续", "onboardingSaving": "保存中…", "keyRequired": "请输入 API 密钥后继续。" }, "en": { "nav": "Models", "deepSeekAccount": "DeepSeek Account", "title": "Models", "intro": "Enter your API keys to use models from the following providers.", "edit": "Edit", "editProvider": "Edit {provider}", "remove": "Delete", "removeProvider": "Delete {provider}", "deleteTitle": "Delete {provider}?", "deleteDescription": "Deleting {provider} removes its configuration. Any credential it uses is managed elsewhere and will be kept.", "deleteDescriptionWithCredential": "Deleting {provider} removes its configuration and stored API key.", "deleteConfirm": "Delete {provider}", "deleting": "Deleting {provider}…", "add": "Add model provider", "addMode": "How to add", "addCatalog": "Third-party model provider", "addCustom": "Custom model API", "addCatalogHint": "Pick OpenAI, Anthropic, Kimi, or another provider from the built-in catalog and enter its API key.", "addCustomHint": "Connect a relay, a self-hosted server, or any other OpenAI- or Anthropic-compatible endpoint by its base URL, protocol, and models.", "addCatalogExhausted": "Every catalog provider is already configured.", "addCustomUnavailable": "No API protocol is available to declare.", "provider": "Provider", "close": "Close", "cancel": "Cancel", "apply": "Apply", "applying": "Applying…", "savedProvider": "Saved {provider}.", "credentialConfigured": "API key configured", "credentialMissing": "API key missing", "readOnly": "The settings document is read-only in this deployment.", "loadFailed": "Loading the provider directory failed", "conflict": "Someone else changed these settings while this card was open. Close it and reopen to edit the current values.", "retry": "Retry", "keyInput": "API key", "keyPlaceholder": "Enter your API key", "keyPlaceholderNative": "Enter an API key, or leave blank to use environment authentication", "keyStored": "Configured — enter a new value to replace", "keyEnvLocked": "Provided by the launch environment (read-only)", "customized": "Customized settings", "baseUrl": "Base URL", "baseUrlDefault": "Provider default", "deepSeekBaseUrl": "https://api.deepseek.com/anthropic", "deepSeekEndpointHint": "Use an API endpoint compatible with Anthropic Messages.", "models": "Models", "modelsInherited": "Using the adapter defaults", "modelsCustomized": "Customized model catalog", "resetModels": "Restore defaults", "model": "Model", "modelId": "Model ID", "modelName": "Display name", "modelNamePlaceholder": "Uses the model ID when empty", "contextWindow": "Context window", "contextWindowPlaceholder": "Uses the provider default", "maxTokens": "Max output tokens", "maxTokensPlaceholder": "Uses the provider default", "modelAdvanced": "Model options", "modelInputTypes": "Input types", "modelInputText": "Text", "modelInputImage": "Image", "addModel": "Add model", "removeModel": "Delete model", "modelsEmpty": "No models will be shown in the selector. Unlisted IDs can still be sent directly.", "keyBlank": "Enter the API key, or leave the field empty to keep the stored one.", "keyBlankNew": "Enter the API key, or leave the field empty if this provider authenticates another way.", "keyIllegalCharacters": "This API key is not in a valid format. Please check it.", "modelIdRequired": "Model ID is required.", "modelIdDuplicate": "Model ID must be unique.", "modelNameInvalid": "Display name cannot be empty.", "modelContextInvalid": "Context window must be a positive count, like 131072, 256K, or 1M.", "modelMaxTokensInvalid": "Max output tokens must be a positive count, like 8192, 64K, or 1M.", "advancedHint": "Other fields live in cordis.patch.yml; edit that section directly.", "modelCapacityInvalid": "A capacity must be a number, optionally suffixed K or M.", "modelDuplicate": "Each model ID may appear once.", "fetchModels": "Fetch available models", "fetching": "Asking the provider…", "fetchNeedsBaseUrl": "Enter the base URL first, then fetch.", "fetchEmpty": "The provider listed no models. Add them by hand.", "fetchTitle": "Choose models to add", "fetchDescription": "These are the models this provider has available. Choose the ones to add.", "fetchSearch": "Search models", "fetchNoMatches": "No matching models.", "fetchSelectAll": "Select all", "fetchDeselectAll": "Deselect all", "fetchAdopt": "Add selected", "customTag": "Custom", "customRoute": "Provider ID", "customRouteHint": "Lowercase identifier, starting with a letter, that uniquely names this provider in requests and as its credential name.", "customRouteInvalid": "Start with a lowercase letter; then lowercase letters, digits, and dashes.", "customRouteTaken": "A provider already uses this ID.", "customDisplayName": "Display name", "customApi": "API protocol", "customApiUnset": "Not selected", "protocolOpenAiCompletions": "OpenAI Chat Completions", "protocolOpenAiResponses": "OpenAI Responses", "protocolAnthropicMessages": "Anthropic Messages", "customNeedsBaseUrl": "A custom provider needs a base URL.", "customBaseUrlInvalid": "Enter a valid HTTP or HTTPS URL.", "customNeedsModels": "A custom provider needs at least one model.", "customBaseUrlPlaceholder": "https://gateway.example/v1", "customAnthropicBaseUrlPlaceholder": "https://gateway.example", "settingsPathUnresolvable": "unresolvable settings path", "create": "Create provider", "creating": "Creating…", "welcomeTitle": "Preview Notice", "welcomeBody": "DeepSeek Harness 0.2 is still in preview, and many areas need continued improvement and refinement. We welcome feedback and suggestions from all developers and users. The new desktop app now targets a broad range of users, while developer-related advanced features can be enabled in the settings. DeepSeek Harness’s product features and plugin APIs are expected to continue rapid iteration and evolution, and will gradually stabilize over time.\n\nWe look forward to exploring the limits of intelligence together with users and developers around the world, building on open-source, reusable, and composable infrastructure. We welcome everyone to bring their ideas to life with DeepSeek Harness and participate in the community to enrich the plugin ecosystem.", "welcomeContinue": "Continue", "welcomeError": "The acknowledgement could not be saved. Please try again.", "onboardingTitle": "Add an API key to get started", "onboardingDescription": "Configure the official DeepSeek provider to start building.", "onboardingLater": "Configure later", "onboardingSave": "Save and continue", "onboardingSaving": "Saving…", "keyRequired": "Enter an API key to continue." } }, "sources": [ "dsh-client-ui-settings-models" ] }, "settings.pluginInventory": { "locales": { "zh": { "tab": "插件列表", "loading": "正在读取插件…", "clientSyncing": "正在同步本页面的插件…", "clientSyncFailed": "本页面的插件未能完成同步;服务端的启用状态保持不变。", "clientSyncRetry": "重试本页面同步", "error": "暂时无法读取插件。", "metadataError": "包元信息错误:{error}", "retry": "重试", "search": "搜索插件", "empty": "暂无插件。", "emptySearch": "没有匹配的插件。", "presetTitle": "会话插件", "presetSubtitle": "由 Agent 预设按会话组成", "countUnit": "个", "switcherLabel": "选择要查看的 Agent 预设", "presetOptionDefault": "{name}(默认)", "presetOptionBroken": "{name}(加载失败)", "globalTitle": "全局插件", "globalSubtitle": "系统与所有会话共用", "presetProvidedDetail": "全局已停用,由 Agent 预设按会话提供", "enabledIn": "启用于", "viewInPreset": "去预设分组查看", "matchesInOtherPresets": "其他预设中还有 {count} 个匹配:", "failedCountLabel": "个失败", "enabledTag": "已启用", "disabledTag": "已停用", "conditionalTag": "条件启用", "presetEnabledTag": "预设中启用", "failedTag": "启动失败", "moduleLabel": "完整名称", "fromPreset": "来自", "condition": "禁用条件", "configuration": "配置状态", "runtime": "运行状态", "unobserved": "未运行", "pending": "等待依赖", "loadingPhase": "加载中", "active": "运行中", "failed": "启动失败", "unloading": "卸载中" }, "en": { "tab": "Plugin list", "loading": "Reading plugins…", "clientSyncing": "Syncing plugins on this page…", "clientSyncFailed": "Some plugins could not sync on this page. Host enablement is unchanged.", "clientSyncRetry": "Retry this page", "error": "Plugins are temporarily unavailable.", "metadataError": "Package metadata error: {error}", "retry": "Retry", "search": "Search plugins", "empty": "No plugins are available.", "emptySearch": "No matching plugins.", "presetTitle": "Session plugins", "presetSubtitle": "Composed per session by agent presets", "countUnit": "plugins", "switcherLabel": "Choose the agent preset to inspect", "presetOptionDefault": "{name} (default)", "presetOptionBroken": "{name} (failed to load)", "globalTitle": "Global plugins", "globalSubtitle": "Shared by the system and every session", "presetProvidedDetail": "Disabled globally; agent presets provide it per session", "enabledIn": "Enabled in", "viewInPreset": "View in the preset group", "matchesInOtherPresets": "{count} more matches in other presets: ", "failedCountLabel": "failed", "enabledTag": "Enabled", "disabledTag": "Disabled", "conditionalTag": "Conditional", "presetEnabledTag": "Via presets", "failedTag": "Failed", "moduleLabel": "Module", "fromPreset": "From", "condition": "Disabled when", "configuration": "Configuration", "runtime": "Status", "unobserved": "Not running", "pending": "Waiting for dependencies", "loadingPhase": "Loading", "active": "Running", "failed": "Failed to start", "unloading": "Unloading" } }, "sources": [ "dsh-client-ui-settings-plugin-inventory" ] }, "settings.plugins": { "locales": { "zh": { "nav": "内置插件", "title": "内置插件", "intro": "查看内置部署的插件列表", "tabs": "插件视图", "empty": "本部署没有开放任何插件视图。" }, "en": { "nav": "Built-in plugins", "title": "Built-in plugins", "intro": "Inspect the plugins this deployment ships.", "tabs": "Plugin views", "empty": "This deployment exposes no plugin views." } }, "sources": [ "dsh-client-ui-settings-plugins" ] }, "settings.sessionLog": { "locales": { "en": { "title": "Upload Session Log when using the official model API", "description": "Help improve DeepSeek models and products.", "saved": "Preference saved", "failed": "Could not save preference" }, "zh": { "title": "在使用官方模型 API 时上传 Session Log", "description": "帮助改进 DeepSeek 模型与产品", "saved": "设置已保存", "failed": "无法保存设置" } }, "sources": [ "dsh-client-ui-settings-session-log" ] }, "settings.shell": { "locales": { "zh": { "title": "终端", "description": "限制每条命令最多能跑多久、最多输出多少内容。", "timeoutMs": "命令超时(毫秒)", "timeoutMsHint": "单条命令允许运行多久,超时即终止。", "maxOutputBytes": "单流输出上限(字节)", "maxOutputBytesHint": "超出部分会转存到临时文件,而不是被丢弃。", "overridden": "已覆盖", "reset": "恢复默认", "readOnly": "本部署的设置为只读。", "unavailable": "该插件当前未加载,暂时无法配置。", "save": "保存", "saving": "保存中…", "saveFailed": "本部署没有接受这些值,已保留供你修改。", "invalidNumber": "请填数字;留空表示使用默认值。" }, "en": { "title": "Shell", "description": "Limit how long each command may run and how much it may output.", "timeoutMs": "Command timeout (ms)", "timeoutMsHint": "How long one command may run before it is terminated.", "maxOutputBytes": "Output cap per stream (bytes)", "maxOutputBytesHint": "Output beyond this spills to a temporary file rather than being lost.", "overridden": "Overridden", "reset": "Reset to default", "readOnly": "This deployment stores settings read-only.", "unavailable": "This plugin is not loaded, so it cannot be configured right now.", "save": "Save", "saving": "Saving…", "saveFailed": "The deployment did not accept these values; they were left for you to correct.", "invalidNumber": "Enter a number, or leave blank to use the default." } }, "sources": [ "dsh-client-ui-settings-shell" ] }, "settings.subagent": { "locales": { "zh": { "overridden": "已覆盖", "reset": "恢复默认", "readOnly": "本部署的设置为只读。", "unavailable": "该插件当前未加载,暂时无法配置。", "save": "保存", "saving": "保存中…", "saveFailed": "本部署没有接受这些值,已保留供你修改。", "subagentTitle": "子智能体", "subagentDescription": "设置子智能体的递归层级、数量和模型。", "subagentLimitsTitle": "运行限制", "subagentMaxDepth": "最大递归深度", "subagentDepthHelpLabel": "最大递归深度说明", "subagentDepthHelp": "限制 Agent 创建子智能体的递归层级。", "subagentDepthZero": "禁用子智能体", "subagentDepthOne": "仅允许主 Agent 创建子智能体", "subagentDepthOverride": "如果某个工具单独设置了最大递归深度,以该工具的设置为准。", "subagentMaxActive": "子智能体并行数量上限", "subagentCapacityHelpLabel": "子智能体并行数量上限说明", "subagentCapacityHelp": "同一主 Agent 下,所有递归层级同时存活的子智能体总数,主 Agent 不计入。达到上限时,新的启动请求会被拒绝。", "subagentDepthInvalid": "请输入不小于 0 的整数。", "subagentCapacityInvalid": "请输入不小于 1 的整数。", "subagentModelSelectionTitle": "模型选择", "subagentModelSelectionToggle": "允许 Agent 为子智能体选择模型", "subagentModelSelectionChoose": "开启后,Agent 可以从下方授权模型中,为每个子智能体选择提供方、模型和推理强度。仅影响新会话。", "subagentModelSelectionAllowed": "Agent 可选择的模型", "subagentModelSelectionLoading": "正在加载模型…", "subagentModelSelectionLoadFailed": "无法加载模型。", "subagentModelSelectionRetry": "重试", "subagentModelSelectionPartial": "部分模型提供方暂时无法加载;已保存的选择仍可移除。", "subagentModelSelectionUnavailable": "当前不可用", "subagentModelSelectionUnavailableGroup": "已保存但当前不可用", "subagentModelSelectionEmpty": "当前没有模型提供方公布模型。", "subagentModelSelectionRequired": "保存前请至少选择一个模型。", "subagentModelSelectionConflict": "设置已在其他位置更新。请放弃修改后重试。", "subagentModelSelectionOff": "关闭后,子智能体使用配置的默认模型或继承父 Agent 的模型;已选模型会保留。" }, "en": { "overridden": "Overridden", "reset": "Reset to default", "readOnly": "This deployment stores settings read-only.", "unavailable": "This plugin is not loaded, so it cannot be configured right now.", "save": "Save", "saving": "Saving…", "saveFailed": "The deployment did not accept these values; they were left for you to correct.", "subagentTitle": "Subagent", "subagentDescription": "Set Subagent recursion depth, count, and models.", "subagentLimitsTitle": "Limits", "subagentMaxDepth": "Maximum recursion depth", "subagentDepthHelpLabel": "About maximum recursion depth", "subagentDepthHelp": "Limits how many levels of Subagents an Agent can create.", "subagentDepthZero": "Disable Subagents", "subagentDepthOne": "Only the main Agent can create Subagents", "subagentDepthOverride": "If a tool defines its own maximum recursion depth, that setting takes precedence.", "subagentMaxActive": "Subagent parallelism limit", "subagentCapacityHelpLabel": "About the Subagent parallelism limit", "subagentCapacityHelp": "Total live Subagents under the same main Agent, across all recursion levels. The main Agent is excluded. New start requests are rejected when the limit is reached.", "subagentDepthInvalid": "Enter a whole number of 0 or more.", "subagentCapacityInvalid": "Enter a whole number of 1 or more.", "subagentModelSelectionTitle": "Model selection", "subagentModelSelectionToggle": "Allow agents to choose models for Subagents", "subagentModelSelectionChoose": "When enabled, agents can choose a provider, model, and reasoning effort for each Subagent from the authorized models below. Applies only to new sessions.", "subagentModelSelectionAllowed": "Models agents may choose", "subagentModelSelectionLoading": "Loading models…", "subagentModelSelectionLoadFailed": "Models could not be loaded.", "subagentModelSelectionRetry": "Retry", "subagentModelSelectionPartial": "Some model providers could not be loaded; saved choices remain removable.", "subagentModelSelectionUnavailable": "Currently unavailable", "subagentModelSelectionUnavailableGroup": "Saved but currently unavailable", "subagentModelSelectionEmpty": "No model provider currently advertises a model.", "subagentModelSelectionRequired": "Select at least one model before saving.", "subagentModelSelectionConflict": "Settings changed elsewhere. Discard your draft and try again.", "subagentModelSelectionOff": "Subagents use configured defaults or inherit the parent agent's model. Saved model choices are retained." } }, "sources": [ "dsh-client-ui-settings-subagent" ] }, "settings.webSearch": { "locales": { "zh": { "title": "网页搜索", "description": "设置 DeepSeek 的搜索提供方。", "apiKey": "API Key", "apiKeyHint": "不写入设置文件。留空表示保持当前密钥。", "apiKeySet": "已配置密钥。", "apiKeyUnset": "未配置密钥;仅使用 DeepSeek 账号模型的对话可以通过默认接口地址搜索。", "baseUrl": "接口地址", "baseUrlHint": "留空则使用提供方默认地址。", "maxUses": "单次请求最多搜索次数", "maxUsesHint": "一次请求在必须作答前最多可以搜索多少次。", "overridden": "已覆盖", "reset": "恢复默认", "readOnly": "本部署的设置为只读。", "unavailable": "该插件当前未加载,暂时无法配置。", "save": "保存", "saving": "保存中…", "saveFailed": "本部署没有接受这些值,已保留供你修改。", "invalidNumber": "请填数字;留空表示使用默认值。" }, "en": { "title": "Web search", "description": "Set up the DeepSeek search provider.", "apiKey": "API key", "apiKeyHint": "Stored outside the settings file. Leave blank to keep the current key.", "apiKeySet": "A key is configured.", "apiKeyUnset": "No key is configured; only conversations using a DeepSeek Account model can search, through the default endpoint.", "baseUrl": "Endpoint", "baseUrlHint": "Leave blank to use the provider default.", "maxUses": "Max searches per request", "maxUsesHint": "How many times one request may search before it must answer.", "overridden": "Overridden", "reset": "Reset to default", "readOnly": "This deployment stores settings read-only.", "unavailable": "This plugin is not loaded, so it cannot be configured right now.", "save": "Save", "saving": "Saving…", "saveFailed": "The deployment did not accept these values; they were left for you to correct.", "invalidNumber": "Enter a number, or leave blank to use the default." } }, "sources": [ "dsh-client-ui-settings-web-search" ] }, "shortcuts": { "locales": { "zh": { "edit-label": "修改{command}快捷键", "record": "按下快捷键", "record-help": "松开组合键即保存。Tab 切换操作,Esc 退出录键。", "web-help": "浏览器可用组合:Mod+/、Mod+Shift+,、Mod+Shift+.。Mod 在 Mac 上为 Command,其他系统为 Ctrl。", "unsupported-key": "暂不支持这个按键。", "reserved": "此组合由系统或文本编辑操作保留。", "modifier-required": "请同时按下 Command、Ctrl 或 Alt 修饰键。", "too-many-keys": "最多同时按下两个非修饰键。请松开后重试。", "macos-web-help": "可设置 Command+/、Command+,、Command+反斜杠、Control+反引号、Command+Option+按键或 Command+Shift+按键。也支持三个或四个不同修饰键的组合。浏览器或系统占用的组合可能无法送达页面。", "windows-web-help": "可设置 Ctrl+/、Ctrl+,、Ctrl+Alt+按键或 Ctrl+Shift+按键。也支持三个或四个不同修饰键的组合。浏览器或系统占用的组合可能无法送达页面。", "unsupported-browser": "此浏览器暂不支持该组合。", "conflict": "已被「{commands}」占用", "saved": "已修改", "clear": "移除", "retry-save": "重试保存", "reset": "恢复默认", "reset-all": "恢复全部默认", "modified-count": "{count} 项已自定义", "reset-title": "恢复全部默认快捷键?", "reset-description": "将恢复当前平台的默认快捷键。你修改或移除的快捷键都会恢复,其他平台不受影响。", "cancel": "取消", "reset-saved": "已恢复默认快捷键", "close-confirmation": "关闭确认", "reset-failed": "恢复默认失败。原快捷键已保留,请重试。", "review": "已核对最新配置", "stale": "快捷键配置或可用命令已更新。请核对最新键位后再保存。", "write-failed": "保存失败。原快捷键和当前草稿已保留,请重试。", "not-ready": "快捷键尚未准备好,请稍后重试。", "read": "无法读取 {location}。请检查访问权限后{reload}。", "invalid": "{location} 的快捷键配置内容损坏。请先备份并修复该配置,然后{reload}。", "future": "{location} 的快捷键配置由更新版本创建。请升级 Harness 后重试。", "web-document": "当前网站本地存储中的 dsh.keybindings.v1", "desktop-document": "userData/keybindings.json", "web-reload": "刷新页面", "desktop-reload": "重新启动 Harness", "using-defaults": "当前使用默认键位。", "using-accepted": "当前继续使用上次读取成功的键位。", "native-failed": "无法启用桌面录键保护,请关闭后重试。", "global-hint": "全局唤起查看", "clear-search": "清空搜索", "title": "快捷键", "open": "快捷键速查", "settings": "快捷键", "view": "编辑快捷键", "description": "查看和编辑当前可用的快捷键和输入操作", "search": "搜索快捷键", "close": "关闭快捷键", "application": "应用操作", "input": "消息输入", "menus": "菜单与弹层", "approval": "审批区域", "unbound": "暂无快捷键", "empty": "没有匹配的快捷键", "move": "移动菜单选择", "select": "选择菜单项", "dismiss": "关闭菜单或顶层弹窗" }, "en": { "edit-label": "Edit shortcut for {command}", "record": "Press a shortcut", "record-help": "Release the keys to save. Tab moves between actions; Esc cancels.", "web-help": "Browser combinations: Mod+/, Mod+Shift+,, Mod+Shift+.. Mod is Command on Mac and Ctrl elsewhere.", "unsupported-key": "This key is not supported.", "reserved": "This combination is reserved for system or text editing actions.", "modifier-required": "Include Command, Ctrl, or Alt in the combination.", "too-many-keys": "Hold at most two non-modifier keys. Release the keys to try again.", "macos-web-help": "Use Command+/, Command+,, Command+Backslash, Control+Backquote, Command+Option+key, or Command+Shift+key. Combinations with three or four distinct modifiers are also supported. Browser or system shortcuts may not reach the page.", "windows-web-help": "Use Ctrl+/, Ctrl+,, Ctrl+Alt+key, or Ctrl+Shift+key. Combinations with three or four distinct modifiers are also supported. Browser or system shortcuts may not reach the page.", "unsupported-browser": "This browser does not support this combination yet.", "conflict": "Already used by “{commands}”", "saved": "Modified", "clear": "Remove", "retry-save": "Retry save", "reset": "Restore default", "reset-all": "Restore all defaults", "modified-count": "{count} customized", "reset-title": "Restore all default shortcuts?", "reset-description": "Restore the default shortcuts for this platform. All modified or removed shortcuts will be restored. Other platforms are unaffected.", "cancel": "Cancel", "reset-saved": "Default shortcuts restored", "close-confirmation": "Close confirmation", "reset-failed": "Could not restore defaults. Your shortcuts are unchanged. Please retry.", "review": "I have reviewed the latest configuration", "stale": "Shortcut configuration or available commands changed. Review the latest bindings before saving.", "write-failed": "Could not save. Your previous shortcuts and current draft are preserved. Please retry.", "not-ready": "Shortcuts are not ready. Please try again.", "read": "Could not read {location}. Check access permissions, then {reload}.", "invalid": "Shortcut configuration in {location} is damaged. Back up and repair this configuration, then {reload}.", "future": "Shortcut configuration in {location} was created by a newer version. Upgrade Harness and try again.", "web-document": "this site’s localStorage entry dsh.keybindings.v1", "desktop-document": "userData/keybindings.json", "web-reload": "reload the page", "desktop-reload": "restart Harness", "using-defaults": "Default bindings are active.", "using-accepted": "The last successfully read bindings remain active.", "native-failed": "Could not protect desktop key recording. Exit recording and try again.", "global-hint": "Open from anywhere", "clear-search": "Clear search", "title": "Keyboard shortcuts", "open": "Open keyboard shortcuts", "settings": "Keyboard shortcuts", "view": "Edit shortcuts", "description": "View and edit available shortcuts and input actions", "search": "Search shortcuts", "close": "Close keyboard shortcuts", "application": "Application", "input": "Message input", "menus": "Menus and dialogs", "approval": "Approval area", "unbound": "No shortcut", "empty": "No matching shortcuts", "move": "Move menu selection", "select": "Select menu item", "dismiss": "Close menu or top dialog" } }, "sources": [ "dsh-client-ui-shortcuts" ] }, "sidebarBrowser": { "locales": { "zh": { "type.label": "浏览器", "guide.title": "浏览器", "guide.description": "浏览网页", "shortcut.noSession": "请先打开一个会话", "address.placeholder": "输入 HTTP(S) 地址", "address.changed": "URL 已变化", "back": "后退", "forward": "前进", "reload": "刷新", "go": "前往", "external": "在系统浏览器中打开", "sandbox.disable": "关闭沙箱限制", "sandbox.enable": "恢复沙箱限制", "sandbox.warning": "沙箱限制已关闭;页面可以导航顶层应用,并使用下载、模态对话框与输入锁定。", "start": "输入 HTTP(S) 地址开始浏览", "loading": "正在打开…", "restore.previous": "上次打开", "restore.action": "恢复页面", "error.empty": "请输入地址。", "error.invalid": "这个地址无效或过长。", "error.protocol": "只支持 HTTP 和 HTTPS 地址;本地文件请使用文档预览。", "error.credentials": "地址不能包含用户名或密码。", "error.application-origin": "不能在嵌入浏览器中打开 DSH 应用自身。", "load.failed": "页面加载失败;请刷新重试或在系统浏览器中打开。", "load.failed.detail": "页面加载失败 ({code}): {description}", "address.unknown": "页面已跳转;当前载体无法读取新的 URL。" }, "en": { "type.label": "Browser", "guide.title": "Browser", "guide.description": "Browse web pages", "shortcut.noSession": "Open a session first", "address.placeholder": "Enter an HTTP(S) address", "address.changed": "URL changed", "back": "Back", "forward": "Forward", "reload": "Reload", "go": "Go", "external": "Open in system browser", "sandbox.disable": "Disable sandbox restrictions", "sandbox.enable": "Restore sandbox restrictions", "sandbox.warning": "Sandbox restrictions are disabled; the page can navigate the top-level app and use downloads, modal dialogs, and input locks.", "start": "Enter an HTTP(S) address to start browsing", "loading": "Opening…", "restore.previous": "Previously opened", "restore.action": "Restore page", "error.empty": "Enter an address.", "error.invalid": "That address is invalid or too long.", "error.protocol": "Only HTTP and HTTPS addresses are supported; use Document Preview for local files.", "error.credentials": "Addresses cannot contain a username or password.", "error.application-origin": "The embedded browser cannot open the DSH application itself.", "load.failed": "The page could not load; reload or open it in the system browser.", "load.failed.detail": "Page load failed ({code}): {description}", "address.unknown": "The page navigated; this carrier cannot read its new URL." } }, "sources": [ "dsh-client-ui-sidebar-browser" ] }, "sidebarDocumentPreview": { "locales": { "zh": { "loading": "文档渲染中...", "loadMore": "加载更多", "changed": "文件已更新,当前显示为旧内容", "reloadNow": "重新载入", "reload": "重新读取文件", "autoRefresh": "自动刷新", "autoRefresh.enable": "开启自动刷新", "autoRefresh.disable": "关闭自动刷新", "wrap.enable": "自动换行", "wrap.disable": "取消换行", "wrap.aria": "自动换行", "openWith": "打开方式", "viewer.text": "纯文本", "resourceUnavailable": "文件资源服务不可用", "rendererUnavailable": "预览器 {name} 不可用", "unsupportedFile": "该格式文件暂时无法预览", "error.notFound": "文件不存在,可能已被移动或删除", "error.tooLarge": "单页内容超过 {limit} 上限,无法读取", "error.notText": "该格式文件暂时无法预览", "error.notRegularFile": "该路径不是普通文件,没有可显示的内容", "error.unavailable": "读取失败:{message}", "retry": "重试" }, "en": { "loading": "Rendering document...", "loadMore": "Load more", "changed": "The file has changed, showing the previous content.", "reloadNow": "Reload", "reload": "Read the file again", "autoRefresh": "Auto refresh", "autoRefresh.enable": "Enable auto refresh", "autoRefresh.disable": "Disable auto refresh", "wrap.enable": "Turn on line wrap", "wrap.disable": "Turn off line wrap", "wrap.aria": "Line wrap", "openWith": "Open with", "viewer.text": "Plain text", "resourceUnavailable": "The file resource service is unavailable.", "rendererUnavailable": "The {name} preview is unavailable.", "unsupportedFile": "Preview is not available for this file type yet.", "error.notFound": "File not found. It may have been moved or deleted.", "error.tooLarge": "This page exceeds the {limit} limit and cannot be read.", "error.notText": "Preview is not available for this file type yet.", "error.notRegularFile": "Not a regular file, nothing to display.", "error.unavailable": "Read failed: {message}", "retry": "Retry" } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "documentMarkdown": { "locales": { "zh": { "viewer.label": "Markdown", "code.copy": "复制", "code.copied": "已复制", "footnotes": "脚注" }, "en": { "viewer.label": "Markdown", "code.copy": "Copy", "code.copied": "Copied", "footnotes": "Footnotes" } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "documentHtml": { "locales": { "zh": { "title": "HTML", "frame": "HTML 文档预览", "loading": "文档渲染中...", "failed": "无法预览这份 HTML 文档" }, "en": { "title": "HTML", "frame": "HTML document preview", "loading": "Rendering document...", "failed": "This HTML document could not be previewed." } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarImage": { "locales": { "zh": { "zoomControls": "缩放控件", "zoomMenu": "选择缩放比例", "zoomOut": "缩小", "zoomIn": "放大", "zoomFitWidth": "适应宽度", "zoomValue": "{percent}%", "title": "图片", "preview": "图片预览:{name}", "loading": "文档渲染中...", "failed": "无法显示这张图片", "unsupported": "图片预览需要完整文件内容" }, "en": { "zoomControls": "Zoom controls", "zoomMenu": "Choose zoom", "zoomOut": "Zoom out", "zoomIn": "Zoom in", "zoomFitWidth": "Fit width", "zoomValue": "{percent}%", "title": "Image", "preview": "Image preview: {name}", "loading": "Rendering document...", "failed": "This image could not be displayed.", "unsupported": "Image preview requires the complete file contents." } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarPdf": { "locales": { "zh": { "zoomControls": "缩放控件", "zoomMenu": "选择缩放比例", "zoomOut": "缩小", "zoomIn": "放大", "zoomFitWidth": "适应宽度", "zoomValue": "{percent}%", "title": "PDF", "pageImage": "PDF 第 {page} 页", "loading": "文档渲染中...", "rendering": "正在绘制页面…", "failed": "无法显示 PDF:{message}", "password": "此 PDF 需要密码,暂不支持预览", "workerFailed": "PDF 渲染进程无法继续,请重试", "unsupported": "PDF 预览需要完整文件内容", "retry": "重试" }, "en": { "zoomControls": "Zoom controls", "zoomMenu": "Choose zoom", "zoomOut": "Zoom out", "zoomIn": "Zoom in", "zoomFitWidth": "Fit width", "zoomValue": "{percent}%", "title": "PDF", "pageImage": "PDF page {page}", "loading": "Rendering document...", "rendering": "Rendering page…", "failed": "Cannot display PDF: {message}", "password": "This PDF requires a password; password-protected previews are not supported.", "workerFailed": "The PDF rendering process could not continue. Please retry.", "unsupported": "PDF preview requires the complete file contents.", "retry": "Retry" } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarOffice": { "locales": { "zh": { "title": "Office 文档", "loading": "文档渲染中...", "retry": "重试", "viewMissingFonts": "缺失 {count} 种字体,点击查看", "missingFontsTitle": "缺失的字体", "missingFontsDescription": "本次预览无法使用以下字体,预览中的文字和排版可能与原文档不同。", "missingFontsCount": "{count} 种字体", "closeDetails": "关闭字体详情", "unavailable": "Office 预览不可用。请在运行 DeepSeek Harness 的主机上启用文档预览服务。", "invalid": "无法预览此 Office 文件。文件可能已损坏、受密码保护,或与扩展名不符。", "tooLarge": "Office 文件或转换后的 PDF 超过预览大小上限,请缩小文件或调整预览配置。", "failed": "Office 转换失败,未生成可用的 PDF。请检查该文件后重试。", "timeout": "Office 转换超时,请重试。", "busy": "Office 预览任务较多,请稍后重试。", "changed": "文件在读取时已更改,请重新打开预览。" }, "en": { "title": "Office document", "loading": "Rendering document...", "retry": "Retry", "viewMissingFonts": "Missing fonts: {count}. Click to view.", "missingFontsTitle": "Missing fonts", "missingFontsDescription": "These fonts are unavailable for this preview. Text and layout may differ from the original document.", "missingFontsCount": "Fonts: {count}", "closeDetails": "Close font details", "unavailable": "Office previews are unavailable. Enable the document preview service on the computer running DeepSeek Harness.", "invalid": "This Office file cannot be previewed. It may be damaged, password protected, or have the wrong extension.", "tooLarge": "The Office file or converted PDF exceeds the preview size limit. Reduce the file size or adjust the preview configuration.", "failed": "Office conversion did not produce a usable PDF. Check the file and try again.", "timeout": "Office conversion timed out. Try again.", "busy": "Office preview is busy. Try again shortly.", "changed": "The file changed while being read. Reopen the preview." } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarExcel": { "locales": { "zh": { "title": "表格", "language": "zh", "loading": "文档渲染中...", "invalid": "无法打开此表格。请检查文件格式、内容或密码保护。", "tooLarge": "此表格超过预览大小限制。", "timeout": "打开表格超时。请缩小文件后重试。", "encoding": "无法识别此文本文件的编码。请另存为 UTF-8 或带 BOM 的 UTF-16 后重试。", "formulaWarning": "此工作簿包含公式,显示结果可能缺失或不准确。", "unsupportedNotice": "当前预览不支持此工作簿中的{features}。请使用系统应用打开,以获得完整体验。", "charts": "图表", "images": "图片", "shapes": "形状", "conditionalFormatting": "条件格式", "featureSeparator": "、", "retry": "重试" }, "en": { "title": "Spreadsheet", "language": "en", "loading": "Rendering document...", "invalid": "This spreadsheet could not be opened. Check its format, contents, or password protection.", "tooLarge": "This workbook exceeds the preview size limit.", "timeout": "Opening this workbook timed out. Try a smaller file.", "encoding": "This text encoding could not be read. Save the file as UTF-8 or UTF-16 with a BOM and retry.", "formulaWarning": "This workbook contains formulas. Displayed results may be missing or inaccurate.", "unsupportedNotice": "This preview does not support {features} in this workbook. Open it in a system application for the full experience.", "charts": "charts", "images": "images", "shapes": "shapes", "conditionalFormatting": "conditional formatting", "featureSeparator": ", ", "retry": "Retry" } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarCodePreview": { "locales": { "zh": { "title": "代码", "copy": "复制", "copied": "已复制" }, "en": { "title": "Code", "copy": "Copy", "copied": "Copied" } }, "sources": [ "dsh-client-ui-sidebar-documentpreview" ] }, "sidebarFiles": { "locales": { "zh": { "shortcut.noSession": "请先选择会话", "type.label": "文件", "guide.title": "工作区文件", "guide.description": "浏览会话工作区的文件", "loading": "正在读取…", "empty": "空目录", "truncated": "条目太多,只显示了一部分。", "noWorkspace": "这个会话没有工作区目录。", "reload": "重新读取", "autoRefresh": "自动刷新", "autoRefresh.enable": "开启自动刷新", "autoRefresh.disable": "关闭自动刷新", "entry.other": "这不是文件或目录,没法打开。", "error.notFound": "这个目录不在了。可能已被移动或删除。", "error.outsideWorkspace": "这个目录在工作区之外,侧栏不会读取它。", "error.notDirectory": "这不是一个目录。", "error.unavailable": "读取失败:{message}" }, "en": { "shortcut.noSession": "Select a session first", "type.label": "Files", "guide.title": "Workspace files", "guide.description": "Browse files in this session's workspace", "loading": "Reading…", "empty": "Empty directory", "truncated": "Too many entries, showing only some of them.", "noWorkspace": "This session has no workspace directory.", "reload": "Reload", "autoRefresh": "Auto refresh", "autoRefresh.enable": "Enable auto refresh", "autoRefresh.disable": "Disable auto refresh", "entry.other": "Not a file or a directory, so it cannot be opened.", "error.notFound": "That directory is gone. It may have been moved or deleted.", "error.outsideWorkspace": "That directory is outside the workspace, so the sidebar will not read it.", "error.notDirectory": "That is not a directory.", "error.unavailable": "Read failed: {message}" } }, "sources": [ "dsh-client-ui-sidebar-files" ] }, "sidebarRight": { "locales": { "zh": { "command.close": "关闭当前页面/窗口", "command.refresh": "刷新当前页面", "command.noRefresh": "当前页面不支持刷新", "command.toggle": "展开/收起右侧栏", "command.fullscreen": "面板全屏/退出全屏", "command.noSession": "请先选择会话", "command.noFocus": "请先聚焦右侧面板", "command.stale": "页面已切换,请重新聚焦", "command.collapsed": "请先展开右侧栏", "command.float": "浮动面板不支持此操作", "command.empty": "请先打开页面", "command.budget": "已达两格上限", "command.width": "栏宽不足,拖宽侧边栏后再分栏", "chrome.expand": "打开侧边栏", "chrome.expandAria": "打开右侧边栏", "chrome.collapse": "收起侧边栏", "chrome.collapseAria": "收起右侧边栏", "chrome.toFullscreen": "全屏", "chrome.exitFullscreen": "退出全屏", "dock.emptyPane": "空面板", "dock.splitPane": "分栏", "dock.splitPaneDisabled": "已达两格上限", "dock.splitPaneNarrow": "栏宽不足,拖宽侧边栏后再分栏", "dock.closeTab": "关闭", "dock.addTab": "新标签页", "dock.dockFloat": "收回到侧边栏", "dock.closeFloat": "关闭", "dock.drop.center": "移到这里", "dock.drop.left": "左分栏", "dock.drop.right": "右分栏", "dock.drop.top": "上分栏", "dock.drop.bottom": "下分栏", "tab.guide.title": "开始", "tab.unavailable": "这类内容还没有可用的查看方式。" }, "en": { "command.close": "Close current page or window", "command.refresh": "Refresh current page", "command.noRefresh": "This page cannot be refreshed", "command.toggle": "Toggle right sidebar", "command.fullscreen": "Toggle panel fullscreen", "command.noSession": "Select a session first", "command.noFocus": "Focus a right sidebar pane first", "command.stale": "The page changed; focus it again", "command.collapsed": "Expand the right sidebar first", "command.float": "This action is unavailable in a floating panel", "command.empty": "Open a page first", "command.budget": "Two panes is the limit", "command.width": "Not enough width to split, widen the sidebar", "chrome.expand": "Open sidebar", "chrome.expandAria": "Open right sidebar", "chrome.collapse": "Collapse sidebar", "chrome.collapseAria": "Collapse right sidebar", "chrome.toFullscreen": "Fullscreen", "chrome.exitFullscreen": "Exit fullscreen", "dock.emptyPane": "Empty pane", "dock.splitPane": "Split", "dock.splitPaneDisabled": "Two panes is the limit", "dock.splitPaneNarrow": "Not enough width to split, widen the sidebar", "dock.closeTab": "Close", "dock.addTab": "New tab", "dock.dockFloat": "Send back to the sidebar", "dock.closeFloat": "Close", "dock.drop.center": "Move here", "dock.drop.left": "Add left split", "dock.drop.right": "Add right split", "dock.drop.top": "Add top split", "dock.drop.bottom": "Add bottom split", "tab.guide.title": "Start", "tab.unavailable": "Nothing here can view this kind of content yet." } }, "sources": [ "dsh-client-ui-sidebar-right" ] }, "sidebarTerminal": { "locales": { "zh": { "shortcut.noSession": "请先选择会话", "recoveryFailed": "恢复终端失败:{message}", "retryRecovery": "重试恢复终端", "shell": "选择 Shell", "shellLoading": "正在读取 Shell…", "shellEmpty": "没有可用的 Shell", "description": "在会话工作区运行命令", "title": "终端", "new": "新建终端", "loading": "正在读取终端环境…", "creating": "正在启动…", "connecting": "正在连接…", "disconnected": "连接已断开。", "reconnect": "重新连接", "readonly": "此页面当前只读。", "control": "接管输入", "closed": "终端已关闭。", "exited": "进程已退出({code})", "failed": "终端错误:{message}", "rename": "终端名称", "unavailable": "不可用", "retry": "重试", "cleanupFailed": "终端「{title}」未能结束:{message}", "missingTerminal": "此终端已不存在,请新建终端。", "inputFull": "输入缓冲区已满,请重新连接后重试。", "attachmentEnded": "终端连接已结束,请重新连接。", "invalidOutput": "终端画面传输异常,请重新连接。", "terminalLimit": "终端数量已达上限,请关闭不用的终端后重试。已退出的终端也计入数量。" }, "en": { "shortcut.noSession": "Select a session first", "recoveryFailed": "Terminal recovery failed: {message}", "retryRecovery": "Retry terminal recovery", "shell": "Choose shell", "shellLoading": "Loading shells…", "shellEmpty": "No shells available", "description": "Run commands in the Session workspace", "title": "Terminal", "new": "New terminal", "loading": "Reading terminal environment…", "creating": "Starting…", "connecting": "Connecting…", "disconnected": "Disconnected.", "reconnect": "Reconnect", "readonly": "This view is read-only.", "control": "Take control", "closed": "Terminal closed.", "exited": "Process exited ({code})", "failed": "Terminal error: {message}", "rename": "Terminal name", "unavailable": "Unavailable", "retry": "Retry", "cleanupFailed": "Terminal “{title}” could not be ended: {message}", "missingTerminal": "This terminal no longer exists. Open a new terminal.", "inputFull": "The input buffer is full. Reconnect and try again.", "attachmentEnded": "The terminal connection ended. Reconnect to continue.", "invalidOutput": "The terminal screen could not be received. Reconnect to recover it.", "terminalLimit": "The terminal limit has been reached. Close unused terminals and try again. Exited terminals also count toward the limit." } }, "sources": [ "dsh-client-ui-sidebar-terminal" ] }, "sidebar": { "locales": { "zh": { "session.new": "新会话", "session.new.label": "新建会话", "toggle.open": "打开侧边栏", "toggle.collapse": "收起侧边栏", "panels.label": "全局面板" }, "en": { "session.new": "New Session", "session.new.label": "New session", "toggle.open": "Open sidebar", "toggle.collapse": "Collapse sidebar", "panels.label": "Global panels" } }, "sources": [ "dsh-client-ui-sidebar" ] }, "skill": { "locales": { "zh": { "row.title": "加载技能", "row.running": "正在加载 skill", "row.preparing": "准备加载技能", "row.failed": "skill 加载失败", "row.stopped": "skill 加载已中止", "row.instructions": "说明", "row.inspect": "查看", "menu.userOnly": "仅用户" }, "en": { "row.title": "Skill", "row.running": "Loading skill", "row.preparing": "Preparing to load a skill", "row.failed": "Skill load failed", "row.stopped": "Skill load stopped", "row.instructions": "Instructions", "row.inspect": "Inspect", "menu.userOnly": "user-only" } }, "sources": [ "dsh-client-ui-skill" ] }, "subagent": { "locales": { "zh": { "duration.seconds": "{seconds}秒", "duration.minutes": "{minutes}分{seconds}秒", "duration.hours": "{hours}小时{minutes}分{seconds}秒", "duration.days": "{days}天", "duration.daysHours": "{days}天{hours}小时", "duration.months": "约{months}个月", "duration.monthsDays": "约{months}个月{days}天", "duration.years": "约{years}年", "duration.yearsMonths": "约{years}年{months}个月", "duration.exactDays": "{days}天{hours}小时{minutes}分{seconds}秒", "duration.exactTitle": "总活跃耗时:{duration}", "tokens.thousand": "{value}K", "tokens.million": "{value}M", "tokens.total": "{value} tok", "loading.label": "正在加载子智能体…", "load.error": "无法加载子智能体", "retry": "重试", "mode.oneShot": "一次性", "mode.continuable": "可继续", "mode.unknown": "模式未知", "readonly.unknown.body": "读取子会话后才能确定是否可继续。", "activity.running": "正在运行", "activity.completed": "已完成", "activity.inactive": "当前未运行", "branch.collapse": "收起 {label} 的下级子智能体", "branch.expand": "展开 {label} 的下级子智能体", "count.total.one": "{count} 个子智能体", "count.total.other": "{count} 个子智能体", "count.running.one": "{count} 个子智能体,正在运行", "count.running.other": "{count} 个子智能体,正在运行", "switcher.aria": "切换子智能体:{title}", "tree.aria": "子智能体会话", "open.sidebar": "在侧边栏打开", "open.sidebar.aria": "在侧边栏打开 {label}", "sidebar.chat": "聊天", "readonly.oneShot.title": "一次性子智能体记录", "readonly.title": "此子智能体暂时只读", "readonly.oneShot.body": "一次性任务不支持后续消息,可在这里查看完整执行记录。", "readonly.body": "父会话当前不在线,重新打开父会话后即可继续发送消息。" }, "en": { "duration.seconds": "{seconds}s", "duration.minutes": "{minutes}m {seconds}s", "duration.hours": "{hours}h {minutes}m {seconds}s", "duration.days": "{days}d", "duration.daysHours": "{days}d {hours}h", "duration.months": "~{months}mo", "duration.monthsDays": "~{months}mo {days}d", "duration.years": "~{years}y", "duration.yearsMonths": "~{years}y {months}mo", "duration.exactDays": "{days}d {hours}h {minutes}m {seconds}s", "duration.exactTitle": "Total active duration: {duration}", "tokens.thousand": "{value}K", "tokens.million": "{value}M", "tokens.total": "{value} tok", "loading.label": "Loading subagents…", "load.error": "Unable to load subagents", "retry": "Retry", "mode.oneShot": "one-shot", "mode.continuable": "continuable", "mode.unknown": "unknown mode", "readonly.unknown.body": "Read the child session to determine whether it can be continued.", "activity.running": "running", "activity.completed": "completed", "activity.inactive": "not running", "branch.collapse": "Collapse {label} descendants", "branch.expand": "Expand {label} descendants", "count.total.one": "{count} subagent", "count.total.other": "{count} subagents", "count.running.one": "{count} subagent running", "count.running.other": "{count} subagents running", "switcher.aria": "Switch subagent: {title}", "tree.aria": "Subagent sessions", "open.sidebar": "Open in sidebar", "open.sidebar.aria": "Open {label} in sidebar", "sidebar.chat": "Chat", "readonly.oneShot.title": "One-shot subagent record", "readonly.title": "This subagent is read-only for now", "readonly.oneShot.body": "One-shot tasks do not accept follow-ups; review the full execution record here.", "readonly.body": "The parent session is offline; reopen it to continue sending messages." } }, "sources": [ "dsh-client-ui-subagent" ] }, "settings.theme": { "locales": { "zh": { "appearance.title": "外观", "appearance.light": "浅色", "appearance.dark": "深色", "appearance.system": "跟随系统", "fontSize.title": "字号大小", "fontSize.description": "仅影响会话内容的字号", "fontSize.unit": "px", "fontSize.increase": "增大字号", "fontSize.decrease": "减小字号" }, "en": { "appearance.title": "Appearance", "appearance.light": "Light", "appearance.dark": "Dark", "appearance.system": "System", "fontSize.title": "Font size", "fontSize.description": "Only affects conversation content", "fontSize.unit": "px", "fontSize.increase": "Increase font size", "fontSize.decrease": "Decrease font size" } }, "sources": [ "dsh-client-ui-theme" ] }, "trajectory": { "locales": { "zh": { "view.trajectory": "轨迹", "toolbar.aria": "轨迹工具栏", "toolbar.duration": "时长", "toolbar.useActualDuration": "使用实际时长", "toolbar.useEqualWidth": "使用等宽操作", "toolbar.actualTime": "实际时间", "toolbar.turns": "轮次", "toolbar.expandTurns": "展开所有轮次", "toolbar.collapseTurns": "收起所有轮次", "toolbar.calls": "调用", "toolbar.expandCalls": "展开所有调用", "toolbar.collapseCalls": "收起所有调用", "toolbar.search": "搜索轨迹", "toolbar.searchPlaceholder": "搜索", "kind.system": "系统", "kind.user": "用户", "kind.context": "上下文", "kind.compacted": "已压缩", "kind.message": "消息", "kind.assistant": "助手", "kind.tool": "工具", "kind.subtool": "子工具", "kind.sub": "子项", "column.input": "输入", "column.output": "输出", "column.think": "思考", "column.time": "时间", "column.model": "模型", "column.tools": "工具", "turn.label": "第 {turn} 轮", "section.betweenTurns": "轮次之间", "group.message": "消息", "group.step": "第 {step} 步", "group.compaction": "压缩 {seq}", "status.failed": "失败", "status.pending": "等待中", "status.completed": "已完成", "timing.notAvailable": "不可用", "timing.notRecorded": "未记录", "timing.stepStartUnavailable": "步骤开始时间不可用", "timing.firstTokenUnavailable": "首 token 时间不可用", "timing.usageUnavailable": "用量不可用", "timing.outputTokensUnavailable": "输出 token 数不可用", "timing.durationTooShort": "时长过短", "timing.showLocalTime": "显示本地时间", "timing.showUnixTimestamp": "显示 Unix 时间戳", "timing.started": "开始时间", "timing.totalDuration": "总时长", "timing.ttft": "首 token 延迟", "timing.generation": "生成", "timing.throughput": "吞吐量", "timing.duration": "时长", "timing.source": "计时来源", "timing.sessionTimestamps": "会话时间戳", "timing.sessionTimestampsRunning": "会话时间戳(运行中)", "timing.request": "请求计时", "unit.milliseconds": "{value} 毫秒", "unit.seconds": "{value} 秒", "unit.tokens": "{value} tok", "unit.tokensPerSecond": "{value} tok/s", "usage.tokens": "Token", "usage.reasoning": "推理", "usage.content": "内容", "usage.notReported": "未报告用量", "usage.input": "输入", "usage.cached": "缓存读取", "usage.cacheCreated": "缓存写入", "usage.other": "其他", "usage.output": "输出", "usage.thisRequest": "本次请求", "usage.sessionCumulative": "会话累计", "options.notRecorded": "未记录选项", "options.json": "请求选项 JSON", "source.unknown": "未知", "source.user": "用户", "source.plugin": "插件", "source.pluginNamed": "插件 · {plugin}", "source.goal": "目标", "source.goalRound": "目标 · Round {round}", "source.notRecorded": "未记录来源", "source.messageJson": "消息来源 JSON", "tab.summary": "概述", "tab.rawOutput": "原始输出", "tab.preview": "预览", "tab.raw": "原始内容", "tab.source": "来源", "tab.payload": "参数", "tab.result": "结果", "tab.schema": "Schema", "tab.timing": "计时", "tab.diff": "差异", "tab.systemPrompt": "系统提示词", "tab.tools": "工具", "tab.options": "选项", "tab.usage": "用量", "record.toolCallOnly": "(仅工具调用)", "record.noContent": "无内容", "record.noPayload": "未捕获参数", "record.noResult": "未捕获结果", "record.noOutput": "无输出", "record.schemaUnavailable": "Schema 不可用", "record.parameters": "参数", "record.resultJson": "结果 JSON", "record.json": "JSON", "record.parametersJson": "参数 JSON", "record.namedParametersJson": "{name} 参数 JSON", "record.payloadJson": "参数 JSON", "record.outputJson": "结果 JSON", "record.thinking": "思考", "record.wrapLines": "自动换行", "code.source": "代码", "code.output": "输出", "code.copySource": "复制代码", "code.copyOutput": "复制输出", "code.originalJson": "原始 JSON", "code.running": "执行中…", "record.systemPromptMissing": "本次请求没有系统提示词", "record.toolsMissing": "本次请求没有工具", "record.systemPrompt": "系统提示词", "record.tools": "工具", "block.openSummary": "打开第 {index} 个块的工具调用概述", "block.openSummaryTitle": "打开工具调用概述", "block.label": "块 #{index} {type}", "history.loadingTrajectory": "正在加载轨迹…", "history.loadingEarlier": "正在加载更早的历史…", "history.loadingEarlierAria": "正在加载更早的历史…", "history.loadEarlier": "加载更早的历史", "history.clickToLoadEarlier": "点击加载更早的历史", "request.label": "请求 #{request}", "request.labelCompaction": "请求 #{request} · 压缩", "request.compaction": "压缩 · {section}", "request.compactionPurpose": "压缩", "request.retryProgress": "{retry}/{maximum}", "request.collapsedSummary": "已收起的{kind}概述,{summary}", "request.collapsedTurn": "轮次", "request.collapsedAssistant": "助手", "request.rowAria": "{request}{kind},{content}", "request.rowPrefix": "请求 {request},", "request.rowAriaCompaction": "请求 {request},压缩", "request.noContent": "无内容", "summary.toolCalls.one": "{count} 个工具调用", "summary.toolCalls.other": "{count} 个工具调用", "summary.steps.one": "{count} 个步骤", "summary.steps.other": "{count} 个步骤", "details.event": "事件详情", "details.resize": "调整事件详情宽度", "details.resizeTitle": "拖动调整大小;双击恢复默认值。", "details.close": "关闭详情", "details.status": "状态", "details.purpose": "用途", "details.provider": "提供方", "details.model": "模型", "details.toolCalls": "工具调用", "details.subtoolCalls": "子工具调用", "details.error": "错误", "details.failure.auth": "API 密钥无效", "details.retry": "重试", "details.scheduled": "已计划", "details.retryDelay": "重试延迟", "details.result": "结果", "details.compacted": "已压缩", "details.assistantMessage": "助手消息", "details.source": "来源", "details.hierarchy": "层级", "details.toolCall": "工具调用", "timeline.aria": "轨迹时间线", "timeline.overviewAria": "时间线概览;水平拖动可聚焦事件", "timeline.noTimingData": "无计时数据", "timeline.total": "总计 {duration}", "timeline.started": "开始于 {time}", "timeline.ttftDecoding": "首 token {ttft} · 解码 {decoding}", "layout.compacting": "正在压缩上下文…", "layout.compactionFailed": "上下文压缩失败", "layout.compacted": "上下文已压缩", "layout.toolCallOnly": "仅工具调用", "attachment.list": "附件", "attachment.imageName": "图片 {index}", "layout.imageCount": "图片 ×{count}", "layout.fileAttachments": "文件 ×{count}", "layout.initialSystemPrompt": "初始系统提示词", "layout.systemPromptUpdated": "系统提示词已更新", "layout.toolsUpdated": "工具已更新", "layout.toolAdded": "已添加工具:{name}", "layout.toolRemoved": "已移除工具:{name}", "layout.toolUpdateNotice": "工具已更新", "layout.toolsAdded": "新增:{names}", "layout.toolsAddedCount": "新增 {count} 个", "layout.toolsChanged": "新增 {added} 个,移除 {removed} 个", "layout.toolsRemoved": "移除:{names}", "layout.toolsRemovedCount": "移除 {count} 个", "layout.systemPromptAndToolsUpdated": "系统提示词和工具已更新", "layout.compactionInterrupted": "上下文压缩在完成前被中断。" }, "en": { "view.trajectory": "Trajectory", "toolbar.aria": "Trajectory toolbar", "toolbar.duration": "Duration", "toolbar.useActualDuration": "Use actual duration", "toolbar.useEqualWidth": "Use equal-width operations", "toolbar.actualTime": "Actual time", "toolbar.turns": "Turns", "toolbar.expandTurns": "Expand turns", "toolbar.collapseTurns": "Collapse turns", "toolbar.calls": "Calls", "toolbar.expandCalls": "Expand calls", "toolbar.collapseCalls": "Collapse calls", "toolbar.search": "Search trajectory", "toolbar.searchPlaceholder": "Search", "kind.system": "SYSTEM", "kind.user": "USER", "kind.context": "CONTEXT", "kind.compacted": "COMPACTED", "kind.message": "Message", "kind.assistant": "ASSISTANT", "kind.tool": "TOOL", "kind.subtool": "SUBTOOL", "kind.sub": "Sub", "column.input": "Input", "column.output": "Output", "column.think": "Think", "column.time": "Time", "column.model": "Model", "column.tools": "Tools", "turn.label": "Turn {turn}", "section.betweenTurns": "Between turns", "group.message": "Message", "group.step": "Step {step}", "group.compaction": "Compaction {seq}", "status.failed": "Failed", "status.pending": "Pending", "status.completed": "Completed", "timing.notAvailable": "Not available", "timing.notRecorded": "Not recorded", "timing.stepStartUnavailable": "Step start unavailable", "timing.firstTokenUnavailable": "First token unavailable", "timing.usageUnavailable": "Usage unavailable", "timing.outputTokensUnavailable": "Output tokens unavailable", "timing.durationTooShort": "Duration too short", "timing.showLocalTime": "Show local time", "timing.showUnixTimestamp": "Show Unix timestamp", "timing.started": "Started", "timing.totalDuration": "Total duration", "timing.ttft": "TTFT", "timing.generation": "Generation", "timing.throughput": "Throughput", "timing.duration": "Duration", "timing.source": "Timing source", "timing.sessionTimestamps": "Session timestamps", "timing.sessionTimestampsRunning": "Session timestamps (running)", "timing.request": "Request Timing", "unit.milliseconds": "{value} ms", "unit.seconds": "{value} s", "unit.tokens": "{value} tok", "unit.tokensPerSecond": "{value} tok/s", "usage.tokens": "Tokens", "usage.reasoning": "Reasoning", "usage.content": "Content", "usage.notReported": "Usage not reported", "usage.input": "Input", "usage.cached": "Cached", "usage.cacheCreated": "Cache created", "usage.other": "Other", "usage.output": "Output", "usage.thisRequest": "This request", "usage.sessionCumulative": "Session cumulative", "options.notRecorded": "Options not recorded", "options.json": "Request options JSON", "source.unknown": "Unknown", "source.user": "User", "source.plugin": "Plugin", "source.pluginNamed": "Plugin · {plugin}", "source.goal": "Goal", "source.goalRound": "Goal · Round {round}", "source.notRecorded": "Source not recorded", "source.messageJson": "Message source JSON", "tab.summary": "Summary", "tab.rawOutput": "Raw Output", "tab.preview": "Preview", "tab.raw": "Raw", "tab.source": "Source", "tab.payload": "Payload", "tab.result": "Result", "tab.schema": "Schema", "tab.timing": "Timing", "tab.diff": "Diff", "tab.systemPrompt": "System Prompt", "tab.tools": "Tools", "tab.options": "Options", "tab.usage": "Usage", "record.toolCallOnly": "(tool call only)", "record.noContent": "No content", "record.noPayload": "No payload captured", "record.noResult": "No result captured", "record.noOutput": "No output", "record.schemaUnavailable": "Schema unavailable", "record.parameters": "Parameters", "record.resultJson": "Result JSON", "record.json": "JSON", "record.parametersJson": "parameters JSON", "record.namedParametersJson": "{name} parameters JSON", "record.payloadJson": "Payload JSON", "record.outputJson": "Result JSON", "record.thinking": "Thinking", "record.wrapLines": "Wrap lines", "code.source": "Code", "code.output": "Output", "code.copySource": "Copy code", "code.copyOutput": "Copy output", "code.originalJson": "Original JSON", "code.running": "Running…", "record.systemPromptMissing": "No system prompt in this request", "record.toolsMissing": "No tools in this request", "record.systemPrompt": "System Prompt", "record.tools": "Tools", "block.openSummary": "Open Block #{index} tool call summary", "block.openSummaryTitle": "Open tool call summary", "block.label": "Block #{index} {type}", "history.loadingTrajectory": "Loading trajectory…", "history.loadingEarlier": "Loading earlier history…", "history.loadingEarlierAria": "Loading earlier history…", "history.loadEarlier": "Load earlier history", "history.clickToLoadEarlier": "Click to load earlier history", "request.label": "Request #{request}", "request.labelCompaction": "Request #{request} · Compaction", "request.compaction": "Compaction · {section}", "request.compactionPurpose": "Compaction", "request.retryProgress": "{retry} of {maximum}", "request.collapsedSummary": "Collapsed {kind} summary, {summary}", "request.collapsedTurn": "turn", "request.collapsedAssistant": "assistant", "request.rowAria": "{request}{kind}, {content}", "request.rowPrefix": "Request {request}, ", "request.rowAriaCompaction": "Request {request}, compaction", "request.noContent": "no content", "summary.toolCalls.one": "{count} tool call", "summary.toolCalls.other": "{count} tool calls", "summary.steps.one": "{count} step", "summary.steps.other": "{count} steps", "details.event": "Event details", "details.resize": "Resize event details", "details.resizeTitle": "Drag to resize. Double-click to reset.", "details.close": "Close details", "details.status": "Status", "details.purpose": "Purpose", "details.provider": "Provider", "details.model": "Model", "details.toolCalls": "Tool calls", "details.subtoolCalls": "Subtool calls", "details.error": "Error", "details.failure.auth": "API key is invalid", "details.retry": "Retry", "details.scheduled": "Scheduled", "details.retryDelay": "Retry delay", "details.result": "Result", "details.compacted": "Compacted", "details.assistantMessage": "Assistant Message", "details.source": "Source", "details.hierarchy": "Hierarchy", "details.toolCall": "Tool Call", "timeline.aria": "Trajectory timeline", "timeline.overviewAria": "Timeline overview; drag horizontally to focus events", "timeline.noTimingData": "No timing data", "timeline.total": "Total {duration}", "timeline.started": "Started {time}", "timeline.ttftDecoding": "TTFT {ttft} · Decoding {decoding}", "layout.compacting": "Compacting context…", "layout.compactionFailed": "Compaction failed", "layout.compacted": "Context compacted", "layout.toolCallOnly": "Tool call only", "attachment.list": "Attachments", "attachment.imageName": "Image {index}", "layout.imageCount": "Images ×{count}", "layout.fileAttachments": "Files ×{count}", "layout.initialSystemPrompt": "Initial System Prompt", "layout.systemPromptUpdated": "System Prompt Updated", "layout.toolsUpdated": "Tools Updated", "layout.toolAdded": "Tool added: {name}", "layout.toolRemoved": "Tool removed: {name}", "layout.toolUpdateNotice": "Tools updated", "layout.toolsAdded": "Added: {names}", "layout.toolsAddedCount": "{count} added", "layout.toolsChanged": "{added} added, {removed} removed", "layout.toolsRemoved": "Removed: {names}", "layout.toolsRemovedCount": "{count} removed", "layout.systemPromptAndToolsUpdated": "System Prompt and Tools Updated", "layout.compactionInterrupted": "Compaction was interrupted before completion." } }, "sources": [ "dsh-client-ui-trajectory" ] }, "question": { "locales": { "zh": { "error.incomplete": "请先完成这道问题。", "error.unanswered": "请选择一个选项或填写自定义答案。", "error.unavailable": "当前无法提交,请稍候再试。", "error.resubmit": "回答未送达,工作已继续,请再提交一次。", "status.sent": "回答已发送;面板未能关闭。", "wait.takeTime": "慢慢回答", "wait.countdown": "{seconds} 秒后继续工作", "wait.paused": "已暂停 · 剩余 {seconds} 秒", "wait.held": "会一直等你回答", "wait.continued": "已继续工作,仍可回答", "review.status": "已回答", "review.skipped": "这道问题当时被跳过。", "reply.label": "回答先前等待中的问题", "reply.open": "展开问题详情", "reply.close": "收起问题详情", "reply.answerLabel": "回答:", "reply.skipped": "已跳过", "nav.prev": "上一题", "nav.next": "下一题", "nav.minimize": "收起问题卡片", "nav.maximize": "展开问题卡片", "nav.cancel": "放弃整组问题", "nav.close": "收起问题面板,可从工具调用重新打开", "option.recommended": "推荐", "custom.placeholder": "输入你的答案", "action.skip": "跳过", "action.next": "下一题", "plan.header": "计划待审", "plan.approve": "同意执行", "plan.decline": "拒绝", "plan.discuss": "要求修改" }, "en": { "error.incomplete": "Please complete this question first.", "error.unanswered": "Please select an option or enter a custom answer.", "error.unavailable": "Cannot submit right now; try again in a moment.", "error.resubmit": "The answer did not arrive before work continued; submit it again.", "status.sent": "Reply sent; the panel could not close.", "wait.takeTime": "Take time", "wait.countdown": "Continuing in {seconds}s", "wait.paused": "Paused · {seconds}s remaining", "wait.held": "Waiting until you answer", "wait.continued": "Work continued — you can still answer", "review.status": "Answered", "review.skipped": "This question was skipped.", "reply.label": "Reply to earlier pending questions", "reply.open": "Open question details", "reply.close": "Close question details", "reply.answerLabel": "Answer: ", "reply.skipped": "Skipped", "nav.prev": "Previous question", "nav.next": "Next question", "nav.minimize": "Collapse the question card", "nav.maximize": "Expand the question card", "nav.cancel": "Dismiss all questions", "nav.close": "Close the panel — reopen it from the tool call", "option.recommended": "Recommended", "custom.placeholder": "Type your answer", "action.skip": "Skip", "action.next": "Next", "plan.header": "Plan review", "plan.approve": "Approve", "plan.decline": "Refuse", "plan.discuss": "Request changes" } }, "sources": [ "dsh-client-ui-user-questions" ] }, "workflowRun": { "locales": { "zh": { "run.title": "{name}", "run.members.one": "{count} 个成员", "run.members.other": "{count} 个成员", "run.empty": "没有启动成员", "phase.unassigned": "未分阶段", "phase.empty": "空阶段名", "statusCount.running": "运行中 {count}", "statusCount.completed": "已完成 {count}", "statusCount.failed": "失败 {count}", "statusCount.cancelled": "已取消 {count}", "statusCount.interrupted": "已中断 {count}", "member.empty": "空成员名", "member.open": "打开 {name}", "status.running": "运行中", "status.completed": "已完成", "status.failed": "失败", "status.cancelled": "已取消", "status.interrupted": "已中断" }, "en": { "run.title": "{name}", "run.members.one": "{count} member", "run.members.other": "{count} members", "run.empty": "No members started", "phase.unassigned": "Unphased", "phase.empty": "Empty phase name", "statusCount.running": "Running {count}", "statusCount.completed": "Completed {count}", "statusCount.failed": "Failed {count}", "statusCount.cancelled": "Cancelled {count}", "statusCount.interrupted": "Interrupted {count}", "member.empty": "Empty member name", "member.open": "Open {name}", "status.running": "Running", "status.completed": "Completed", "status.failed": "Failed", "status.cancelled": "Cancelled", "status.interrupted": "Interrupted" } }, "sources": [ "dsh-client-ui-workflow-run" ] }, "workspace": { "locales": { "zh": { "defaultWorkspace.failed": "无法创建默认工作区,请通过“选择工作区”选择文件夹", "group.ungrouped": "未分组", "session.new": "新会话", "session.untitled": "未命名", "shortcut.noSession": "请先选择一个会话", "shortcut.noPicker": "目录选择器不可用", "shortcut.directoryBusy": "正在选择或添加工作区", "shortcut.noCompletedTurn": "当前会话没有已结束的轮次", "shortcut.forkFailed": "无法分叉会话,请重试", "section.workspaces": "工作区", "section.sessions": "会话", "viewOptions.label": "视图选项", "groupBy.label": "分组方式", "groupBy.workspace": "按工作区", "groupBy.workspaceTree": "按工作区树", "groupBy.flat": "单列表", "orderBy.label": "排序方式", "orderBy.manual": "手动排序", "orderBy.updated": "最近更新", "filterBy.label": "筛选会话", "viewOptions.hideArchived": "隐藏已归档", "viewOptions.showArchived": "全部对话(显示已归档)", "viewOptions.onlyArchived": "仅显示已归档", "sessions.expand": "展开其余 {n} 个会话", "sessions.collapse": "收起", "empty.none": "暂无会话", "empty.noneArchived": "暂无已归档会话", "empty.viewOthers": "查看其他会话", "empty.noMatches": "无匹配结果", "workspace.add": "添加工作区", "search.sessions.aria": "搜索会话", "search.placeholder": "搜索会话名称", "search.clear": "清除搜索", "search.results.aria": "搜索结果", "search.pending": "正在搜索会话历史…", "search.noMatches": "无匹配会话", "search.hasMore": "仅显示前 {n} 条结果,请缩小搜索范围。", "menu.addWorkspace": "添加工作区…", "picker.loading": "正在加载工作区…", "conflict.named": "已存在名为“{name}”的工作区。", "folderError.title": "无法打开文件夹", "folderError.retry": "重新选择", "rename": "重命名", "rename.workspace.title": "重命名工作区", "rename.session.title": "重命名会话", "field.workspaceName": "工作区名称", "field.sessionName": "会话名称", "delete.workspace": "删除工作区", "delete.desc": "将把“{name}”从工作区列表中移除。文件夹与会话记录会保留,其会话将显示在“未分组”下。", "delete.pending": "正在删除工作区…", "menu.fork": "分叉会话", "menu.archiveSession": "归档会话", "menu.unarchiveSession": "取消归档", "menu.pinSession": "置顶会话", "menu.unpinSession": "取消置顶", "row.archived": "已归档", "row.pinned": "已置顶", "toast.archivedNotOpenable": "已归档对话暂时无法查看,请取消归档后查看", "toast.archived": "会话已归档,可", "toast.stoppedAndArchived": "已停止并归档,可", "archive.confirm.title": "停止并归档此会话?", "archive.confirm.desc": "“{title}”仍有正在进行的工作。归档会先停止这些工作;之后可在侧栏筛选“全部对话(显示已归档)”中恢复会话,被停止的工作不会自动继续。", "archive.confirm.activity": "将被停止的工作", "archive.confirm.turn": "进行中的回合", "archive.confirm.subagents.one": "{n} 个运行中的子智能体:{names}", "archive.confirm.subagents.other": "{n} 个运行中的子智能体:{names}", "archive.confirm.jobs.one": "{n} 个后台任务:{names}", "archive.confirm.jobs.other": "{n} 个后台任务:{names}", "archive.confirm.schedules.one": "{n} 条定时提醒:{names}", "archive.confirm.schedules.other": "{n} 条定时提醒:{names}", "archive.confirm.other.one": "{n} 项其他工作({kind})", "archive.confirm.other.other": "{n} 项其他工作({kind})", "archive.confirm.listSeparator": "、", "archive.confirm.action": "停止并归档", "archive.confirm.pending": "正在停止并归档…", "toast.archivedUndo": "撤销", "toast.archivedOr": "或", "toast.archivedFilter": "筛选已归档会话", "toast.pinFailed": "置顶失败,请稍后重试", "toast.unpinFailed": "取消置顶失败,请稍后重试", "toast.createFailed": "新建会话失败:{message}", "sessions.count.one": "{n} 个会话", "sessions.count.other": "{n} 个会话", "actions.workspace.aria": "工作区“{name}”的操作", "actions.session.aria": "会话“{name}”的操作", "actions.archive": "归档会话", "actions.unarchive": "取消归档", "actions.pin": "置顶会话", "actions.unpin": "取消置顶", "actions.newSession": "新会话", "actions.newSession.aria": "在“{name}”中新建会话", "status.running": "进行中", "status.subagentsRunning.one": "{n} 个子智能体运行中", "status.subagentsRunning.other": "{n} 个子智能体运行中", "status.idle": "空闲", "status.waitingApproval": "等待审批", "status.planReview": "计划待审", "status.waitingAnswer": "等待回答", "status.compact.approval": "待审批", "status.compact.planReview": "计划待审", "status.compact.answer": "待回答", "status.completed": "已完成", "hover.created": "创建于 {time}", "hover.copied": "已复制", "date.ymd": "{y}年{m}月{d}日", "time.now": "刚刚", "time.minutes": "{n}分钟", "time.hours": "{n}小时", "time.days": "{n}天", "time.months": "{n}个月", "time.years": "{n}年", "time.ago": "{t}前" }, "en": { "defaultWorkspace.failed": "Unable to create default workspace. Use Choose workspace to select a folder.", "group.ungrouped": "Ungrouped", "session.new": "New Session", "session.untitled": "Untitled", "shortcut.noSession": "Select a session first", "shortcut.noPicker": "Directory picker unavailable", "shortcut.directoryBusy": "Selecting or adding a workspace", "shortcut.noCompletedTurn": "This session has no completed turn", "shortcut.forkFailed": "Could not fork the session. Try again.", "section.workspaces": "Workspaces", "section.sessions": "Sessions", "viewOptions.label": "View options", "groupBy.label": "Group by", "groupBy.workspace": "WorkSpace", "groupBy.workspaceTree": "Workspace Tree", "groupBy.flat": "In one list", "orderBy.label": "Order by", "orderBy.manual": "Manual", "orderBy.updated": "Last updated", "filterBy.label": "Filter sessions", "viewOptions.hideArchived": "Hide archived", "viewOptions.showArchived": "All conversations (show archived)", "viewOptions.onlyArchived": "Archived only", "sessions.expand": "Show {n} more sessions", "sessions.collapse": "Show less", "empty.none": "No sessions yet", "empty.noneArchived": "No archived sessions yet", "empty.viewOthers": "View other sessions", "empty.noMatches": "No matches", "workspace.add": "Add workspace", "search.sessions.aria": "Search sessions", "search.placeholder": "Search session names", "search.clear": "Clear search", "search.results.aria": "Search results", "search.pending": "Searching session history…", "search.noMatches": "No matching sessions", "search.hasMore": "Showing the first {n} results. Narrow your search.", "menu.addWorkspace": "Add workspace…", "picker.loading": "Loading workspaces…", "conflict.named": "A workspace named “{name}” already exists.", "folderError.title": "Couldn’t open folder", "folderError.retry": "Choose again", "rename": "Rename", "rename.workspace.title": "Rename workspace", "rename.session.title": "Rename session", "field.workspaceName": "Workspace name", "field.sessionName": "Session name", "delete.workspace": "Delete workspace", "delete.desc": "This removes “{name}” from the workspace list. The folder and session logs will be kept. Its sessions will appear under Ungrouped.", "delete.pending": "Deleting workspace…", "menu.fork": "Fork session", "menu.archiveSession": "Archive session", "menu.unarchiveSession": "Unarchive session", "menu.pinSession": "Pin session", "menu.unpinSession": "Unpin session", "row.archived": "Archived", "row.pinned": "Pinned", "toast.archivedNotOpenable": "Archived sessions cannot be opened. Unarchive it to view.", "toast.archived": "Session archived. You can ", "toast.stoppedAndArchived": "Session stopped and archived. You can ", "archive.confirm.title": "Stop and archive this session?", "archive.confirm.desc": "“{title}” still has work in progress. Archiving stops it first; you can restore the session later from the “All conversations (show archived)” filter in the sidebar, and the stopped work will not resume on its own.", "archive.confirm.activity": "Work that will be stopped", "archive.confirm.turn": "The turn in progress", "archive.confirm.subagents.one": "{n} running subagent: {names}", "archive.confirm.subagents.other": "{n} running subagents: {names}", "archive.confirm.jobs.one": "{n} background job: {names}", "archive.confirm.jobs.other": "{n} background jobs: {names}", "archive.confirm.schedules.one": "{n} scheduled reminder: {names}", "archive.confirm.schedules.other": "{n} scheduled reminders: {names}", "archive.confirm.other.one": "{n} other item of work ({kind})", "archive.confirm.other.other": "{n} other items of work ({kind})", "archive.confirm.listSeparator": ", ", "archive.confirm.action": "Stop and archive", "archive.confirm.pending": "Stopping and archiving…", "toast.archivedUndo": "undo", "toast.archivedOr": " or ", "toast.archivedFilter": "filter archived sessions", "toast.pinFailed": "Pin failed. Try again later.", "toast.unpinFailed": "Unpin failed. Try again later.", "toast.createFailed": "New session failed: {message}", "sessions.count.one": "{n} session", "sessions.count.other": "{n} sessions", "actions.workspace.aria": "Workspace actions for {name}", "actions.session.aria": "Session actions for {name}", "actions.archive": "Archive", "actions.unarchive": "Unarchive", "actions.pin": "Pin", "actions.unpin": "Unpin", "actions.newSession": "New session", "actions.newSession.aria": "New session in {name}", "status.running": "Running", "status.subagentsRunning.one": "{n} subagent running", "status.subagentsRunning.other": "{n} subagents running", "status.idle": "Idle", "status.waitingApproval": "Waiting for approval", "status.planReview": "Plan awaiting review", "status.waitingAnswer": "Waiting for answer", "status.compact.approval": "Approval", "status.compact.planReview": "Plan review", "status.compact.answer": "Answer", "status.completed": "Completed", "hover.created": "Created {time}", "hover.copied": "Copied", "date.ymd": "{y}-{m}-{d}", "time.now": "now", "time.minutes": "{n}min", "time.hours": "{n}h", "time.days": "{n}d", "time.months": "{n}mo", "time.years": "{n}y", "time.ago": "{t} ago" } }, "sources": [ "dsh-client-ui-workspace" ] }, "agent-team": { "locales": { "zh": { "trigger": "智能体团队", "loading": "正在加载团队…", "unavailable": "Team 暂不可用", "failure": "团队持久记录无效:{message}", "empty": "暂无共享任务,可以通过对话创建", "roster": "成员", "tasks": "共享任务", "model": "模型", "open": "打开成员会话", "current": "当前会话", "owner": "Owner", "unowned": "未分配", "blockedBy": "依赖", "writeScopes": "写入范围", "ready": "可开始", "blocked": "被依赖阻塞", "task.expand": "展开", "task.collapse": "收起", "memberStatus.running": "运行中", "memberStatus.inactive": "未运行", "memberStatus.provisioning": "准备中", "memberStatus.failed": "失败", "status.pending": "待处理", "status.in_progress": "进行中", "status.completed": "已完成" }, "en": { "trigger": "Agent Team", "loading": "Loading Team…", "unavailable": "Team is unavailable", "failure": "Invalid persisted Team record: {message}", "empty": "No shared tasks yet. Create them through the conversation.", "roster": "Members", "tasks": "Shared tasks", "model": "Model", "open": "Open member conversation", "current": "Current chat", "owner": "Owner", "unowned": "Unowned", "blockedBy": "Blocked by", "writeScopes": "Write scopes", "ready": "Ready", "blocked": "Blocked by dependencies", "task.expand": "Show more", "task.collapse": "Show less", "memberStatus.running": "Running", "memberStatus.inactive": "Inactive", "memberStatus.provisioning": "Provisioning", "memberStatus.failed": "Failed", "status.pending": "Pending", "status.in_progress": "In progress", "status.completed": "Completed" } }, "sources": [ "dsh-experimental-client-ui-agent-team" ] }, "voice-input": { "locales": { "zh": { "dictate": "听写", "setupPrompt.title": "使用语音输入前需要安装", "setupPrompt.body": "语音输入插件已开启。首次使用需要在本机下载并准备识别模型,请前往插件详情页查看空间、内存和时间说明,再开始安装。", "setupPrompt.later": "稍后", "setupPrompt.open": "前往安装", "setupPrompt.trigger": "打开语音输入引导", "setupPrompt.details": "前往语音插件设置", "setupPrompt.unavailableTitle": "语音识别尚未就绪", "setupPrompt.unavailableBody": "请前往语音插件详情页查看识别服务状态、准备进度或错误信息", "setup.local": "将在运行 DSH 的机器上下载本地模型,无需安装 Python 或编译工具。", "setup.disk": "硬盘空间", "setup.diskValue": "建议预留约 {gb} GB,包含模型、运行时和下载缓存", "setup.memory": "运行内存", "setup.memoryValue": "模型加载后约 {gb} GB,识别时可能更高", "setup.time": "首次准备", "setup.timeValue": "参考 {min}–{max} 分钟,取决于网络和机器性能", "setup.estimateNote": "以上为估算;网络较慢时可能更久。已下载的资源会复用,默认在闲置后释放模型内存。", "step.check": "检查本地资源", "step.model": "准备语音识别模型", "step.vad": "准备语音检测模型", "step.verify": "校验模型文件", "step.load": "加载 {name}", "stepStatus.pending": "未开始", "stepStatus.running": "进行中", "stepStatus.complete": "已完成", "stepStatus.failed": "失败", "stepStatus.cancelled": "已取消", "short.downloading": "下载中", "short.failed": "准备失败", "retryRecording": "重新录音", "preparationSteps": "准备步骤", "prepare": "下载并准备", "retryPrepare": "重试准备", "cancelPrepare": "取消准备", "downloadProgress": "下载进度", "downloadBytes": "下载:{completed} / {total} MB,{percent}%", "downloadUnknown": "已下载 {completed} MB", "elapsed": "已等待 {seconds} 秒", "preparationFailed": "准备失败:{message}", "download.network": "无法下载 {resource}:连接下载服务失败。", "download.dns": "无法下载 {resource}:无法解析下载地址。", "download.timeout": "下载 {resource} 超时。", "download.certificate": "无法下载 {resource}:安全连接的证书校验失败。", "download.http": "无法下载 {resource}:下载服务返回 HTTP {status}。", "download.integrity": "{resource} 下载不完整或文件校验失败。", "download.storage": "无法保存 {resource}:磁盘空间不足或没有写入权限。", "download.unknown": "准备 {resource} 失败。", "downloadAdvice.network": "请检查运行 DSH 的机器能否访问下载来源及其模型下载服务;如需代理,请在该机器上配置后重试。", "downloadAdvice.dns": "请检查运行 DSH 的机器的 DNS 和代理设置,确认可以解析下载来源的域名后重试。", "downloadAdvice.timeout": "请检查运行 DSH 的机器的网络或代理连接,稍后重试。已下载并通过校验的文件会保留。", "downloadAdvice.certificate": "请检查运行 DSH 的机器的系统时间、受信任证书和代理设置后重试。", "downloadAdvice.http": "请确认下载地址可用、代理可正常连接下载服务,或稍后重试。", "downloadAdvice.integrity": "请重试下载。已完成并通过校验的其他文件会保留。", "downloadAdvice.storage": "请检查运行 DSH 的机器的剩余磁盘空间,以及模型目录的写入权限后重试。", "downloadAdvice.unknown": "请检查运行 DSH 的机器的网络、磁盘空间和模型目录权限后重试。", "downloadSource": "下载来源:{source}", "sourceChoice": "模型下载源", "sourceAuto": "自动选择(推荐)", "sourceHuggingFace": "Hugging Face", "sourceMirror": "HF-Mirror(国内镜像)", "sourceAutoHelp": "优先使用响应较快的源,下载失败时自动尝试其他源。", "sourceManualHelp": "仅从所选源下载;已下载并通过校验的文件会复用。", "downloadCode": "错误码:{code}", "reconnecting": "正在连接语音服务…", "preparation.unprepared": "首次使用需要下载本地识别模型。", "preparation.checking": "正在检查本地资源…", "preparation.loading": "正在加载 {name}…", "preparation.waking": "正在唤醒本地语音…", "preparation.ready": "本地语音已就绪。", "preparation.standby": "本地资源已准备,录音时自动唤醒。", "preparation.cancelled": "准备已取消,已完成的下载会保留。", "preparation.cancelling": "正在取消准备…", "cloudReady": "云端语音识别已就绪。", "discard": "丢弃识别文字", "transcribingShort": "识别中…", "wakingShort": "唤醒中…", "provider": "识别服务", "language": "识别语言", "auto": "自动识别", "zh": "中文", "en": "英语", "yue": "粤语", "ja": "日语", "ko": "韩语", "start": "开始录音", "stop": "停止并识别", "cancel": "取消", "insert": "插入文字", "loading": "正在读取识别服务…", "requesting": "请允许使用麦克风…", "recording": "正在录音…", "interrupted": "录音中断,请重试。", "local": "音频在运行 DSH 的机器上识别。需要下载模型时,请确保该机器能访问所选下载源及其文件服务。如需代理,请在该机器上配置。", "cloud": "音频将发送至所选云端服务。", "empty": "未识别到语音", "cancelled": "已取消语音输入。", "conflict": "草稿已被修改。识别文字已保留,可在当前光标位置插入。", "failed": "语音识别失败:{message}", "unavailable": "当前浏览器不支持录音,请使用支持麦克风的浏览器。", "permission": "麦克风权限未开启,请在浏览器和系统设置中允许访问。", "tooLarge": "录音超过服务限制,请缩短录音后重试。" }, "en": { "dictate": "Dictate", "setupPrompt.title": "Set up voice input before recording", "setupPrompt.body": "Voice input is enabled. First use requires downloading and preparing local recognition models. Open the plugin details to review disk space, memory and time estimates before starting setup.", "setupPrompt.later": "Later", "setupPrompt.open": "Go to setup", "setupPrompt.trigger": "Open voice input setup", "setupPrompt.details": "Open voice plugin settings", "setupPrompt.unavailableTitle": "Speech recognition is not ready", "setupPrompt.unavailableBody": "Open the voice plugin details to check recognition status, preparation progress, or errors.", "setup.local": "Local models will be downloaded to the machine running DSH. No Python or compiler is required.", "setup.disk": "Disk space", "setup.diskValue": "Allow about {gb} GB for models, runtime, and download caches", "setup.memory": "Memory", "setup.memoryValue": "About {gb} GB with the model loaded; recognition may use more", "setup.time": "First setup", "setup.timeValue": "Allow roughly {min}–{max} minutes, depending on the network and machine", "setup.estimateNote": "These are estimates; slow networks may take longer. Downloads are reused; idle models release memory by default.", "step.check": "Check local resources", "step.model": "Prepare recognition model", "step.vad": "Prepare voice detection model", "step.verify": "Verify model files", "step.load": "Load {name}", "stepStatus.pending": "Not started", "stepStatus.running": "In progress", "stepStatus.complete": "Completed", "stepStatus.failed": "Failed", "stepStatus.cancelled": "Cancelled", "short.downloading": "Downloading", "short.failed": "Setup failed", "retryRecording": "Record again", "preparationSteps": "Preparation steps", "prepare": "Download and prepare", "retryPrepare": "Retry preparation", "cancelPrepare": "Cancel preparation", "downloadProgress": "Download progress", "downloadBytes": "Download: {completed} / {total} MB, {percent}%", "downloadUnknown": "Downloaded {completed} MB", "elapsed": "Waiting {seconds} seconds", "preparationFailed": "Preparation failed: {message}", "download.network": "Cannot download {resource}: connection to the download service failed.", "download.dns": "Cannot download {resource}: the download address could not be resolved.", "download.timeout": "The download of {resource} timed out.", "download.certificate": "Cannot download {resource}: certificate verification failed.", "download.http": "Cannot download {resource}: the download service returned HTTP {status}.", "download.integrity": "The download of {resource} is incomplete or failed verification.", "download.storage": "Cannot save {resource}: insufficient disk space or write permission.", "download.unknown": "Could not prepare {resource}.", "downloadAdvice.network": "Check that the machine running DSH can reach the download source and its model download services. Configure a proxy on that machine if needed, then retry.", "downloadAdvice.dns": "Check DNS and proxy settings on the machine running DSH. Confirm that it can resolve the download source domain, then retry.", "downloadAdvice.timeout": "Check the network or proxy connection on the machine running DSH, then retry later. Verified downloaded files are retained.", "downloadAdvice.certificate": "Check the system clock, trusted certificates and proxy settings on the machine running DSH, then retry.", "downloadAdvice.http": "Confirm that the download address is available and the proxy can reach the download service, or retry later.", "downloadAdvice.integrity": "Retry the download. Other completed and verified files are retained.", "downloadAdvice.storage": "Check available disk space and write permission for the model directory on the machine running DSH, then retry.", "downloadAdvice.unknown": "Check the network, disk space and model directory permissions on the machine running DSH, then retry.", "downloadSource": "Download source: {source}", "sourceChoice": "Model download source", "sourceAuto": "Automatic (recommended)", "sourceHuggingFace": "Hugging Face", "sourceMirror": "HF-Mirror (China mirror)", "sourceAutoHelp": "Prefer the first responding source and try another if a download fails.", "sourceManualHelp": "Download only from the selected source. Verified downloaded files are reused.", "downloadCode": "Error code: {code}", "reconnecting": "Connecting to speech recognition…", "preparation.unprepared": "First use downloads the local recognition models.", "preparation.checking": "Checking local resources…", "preparation.loading": "Loading {name}…", "preparation.waking": "Waking local speech recognition…", "preparation.ready": "Local speech recognition is ready.", "preparation.standby": "Local resources are prepared. Recording wakes the recognizer.", "preparation.cancelled": "Preparation cancelled. Completed downloads are retained.", "preparation.cancelling": "Cancelling preparation…", "cloudReady": "Cloud speech recognition is ready.", "discard": "Discard transcript", "transcribingShort": "Transcribing…", "wakingShort": "Waking…", "provider": "Recognition service", "language": "Recognition language", "auto": "Detect automatically", "zh": "Chinese", "en": "English", "yue": "Cantonese", "ja": "Japanese", "ko": "Korean", "start": "Start recording", "stop": "Stop and transcribe", "cancel": "Cancel", "insert": "Insert text", "loading": "Loading recognition services…", "requesting": "Allow microphone access to continue…", "recording": "Recording…", "interrupted": "Recording was interrupted. Please try again.", "local": "Audio is recognized on the machine running DSH. If models need downloading, that machine must be able to reach the selected source and its file services. Configure a proxy on that machine if needed.", "cloud": "Audio will be sent to the selected cloud service.", "empty": "No speech recognized", "cancelled": "Voice input cancelled.", "conflict": "Your draft changed. The transcript is preserved and can be inserted at the current cursor.", "failed": "Speech recognition failed: {message}", "unavailable": "This browser cannot record audio. Use a browser with microphone support.", "permission": "Microphone access is disabled. Allow it in browser and system settings.", "tooLarge": "The recording exceeds the service limit. Try a shorter recording." } }, "sources": [ "dsh-experimental-client-ui-voice-input" ] }, "session-log-download": { "locales": { "zh": { "header.more": "更多操作", "menu.download": "下载 Session 日志", "menu.feedback": "反馈", "dialog.preparingTitle": "正在导出 Session", "dialog.preparingDescription": "正在准备包含当前 Session、子 Session 和附件的 ZIP 文件。", "dialog.successTitle": "Session 导出已开始下载", "dialog.successDescription": "浏览器正在下载 Session ZIP 文件。", "dialog.errorTitle": "Session 导出失败", "dialog.close": "关闭", "dialog.commandFailed": "无法启动 Session 导出。" }, "en": { "header.more": "More actions", "menu.download": "Download session log", "menu.feedback": "Feedback", "dialog.preparingTitle": "Exporting Session", "dialog.preparingDescription": "Preparing a ZIP containing this Session, its sub-Sessions, and attachments.", "dialog.successTitle": "Session download started", "dialog.successDescription": "The browser is downloading the Session ZIP.", "dialog.errorTitle": "Session export failed", "dialog.close": "Close", "dialog.commandFailed": "Could not start the Session export." } }, "sources": [ "dsh-session-log-export" ] } }, "problems": [ { "pkg": "dsh-api-gateway", "file": "dsh-api-gateway/lib/client.js", "error": "apply: loader.await(...).then is not a function @ (client.js:1617:25) | (client.js:1584:4)" }, { "pkg": "dsh-api-job-controller", "file": "dsh-api-job-controller/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-api-remotes", "file": "dsh-api-remotes/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-api-session-controller", "file": "dsh-api-session-controller/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-api-terminal-controller", "file": "dsh-api-terminal-controller/lib/client.js", "error": "apply: function is not iterable (cannot read property Symbol(Symbol.iterator)) @ new Set () | (client.js:683:13)" }, { "pkg": "dsh-api-workspace-controller", "file": "dsh-api-workspace-controller/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-api-workspace-files", "file": "dsh-api-workspace-files/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-connection", "file": "dsh-client-connection/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-file-upload", "file": "dsh-client-file-upload/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-hmr", "file": "dsh-client-hmr/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-modules", "file": "dsh-client-modules/lib/client.js", "error": "apply: client-modules: the Loader has no client module system @ (client.js:867:45) | (extract-locale.cjs:277:19)" }, { "pkg": "dsh-client-product-analytics", "file": "dsh-client-product-analytics/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-resources", "file": "dsh-client-resources/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-shortcuts", "file": "dsh-client-shortcuts/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-attachment", "file": "dsh-client-ui-attachment/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-brand-official", "file": "dsh-client-ui-brand-official/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-directory-picker-native", "file": "dsh-client-ui-directory-picker-native/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-renderer", "file": "dsh-client-ui-renderer/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-session", "file": "dsh-client-ui-session/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-settings", "file": "dsh-client-ui-settings/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-client-ui-tool", "file": "dsh-client-ui-tool/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-cordis-client-runner", "file": "dsh-cordis-client-runner/lib/client.js", "error": "sin diccionarios" }, { "pkg": "dsh-typert-registry", "file": "dsh-typert-registry/lib/client.js", "error": "sin diccionarios" } ], "perPlugin": { "dsh-client-locale": 42, "dsh-client-ui-agent-preset": 41, "dsh-client-ui-approval": 5, "dsh-client-ui-chat": 186, "dsh-client-ui-commands": 28, "dsh-client-ui-conversation": 369, "dsh-client-ui-cordis": 51, "dsh-client-ui-deliverables": 60, "dsh-client-ui-directory-picker-browse": 13, "dsh-client-ui-goal": 12, "dsh-client-ui-input-trigger": 9, "dsh-client-ui-jobs": 39, "dsh-client-ui-layout": 1, "dsh-client-ui-message-feedback": 20, "dsh-client-ui-model-selection": 23, "dsh-client-ui-open-in-app": 45, "dsh-client-ui-permission-presets": 17, "dsh-client-ui-plan": 17, "dsh-client-ui-plugin-manager": 189, "dsh-client-ui-reference": 11, "dsh-client-ui-schedule": 257, "dsh-client-ui-settings-account": 93, "dsh-client-ui-settings-agent-loop": 12, "dsh-client-ui-settings-general": 34, "dsh-client-ui-settings-models": 113, "dsh-client-ui-settings-plugin-inventory": 40, "dsh-client-ui-settings-plugins": 5, "dsh-client-ui-settings-session-log": 4, "dsh-client-ui-settings-shell": 14, "dsh-client-ui-settings-subagent": 35, "dsh-client-ui-settings-web-search": 18, "dsh-client-ui-shortcuts": 56, "dsh-client-ui-sidebar-browser": 26, "dsh-client-ui-sidebar-documentpreview": 89, "dsh-client-ui-sidebar-files": 17, "dsh-client-ui-sidebar-right": 34, "dsh-client-ui-sidebar-terminal": 28, "dsh-client-ui-sidebar": 5, "dsh-client-ui-skill": 8, "dsh-client-ui-subagent": 39, "dsh-client-ui-theme": 9, "dsh-client-ui-trajectory": 192, "dsh-client-ui-user-questions": 31, "dsh-client-ui-workflow-run": 18, "dsh-client-ui-workspace": 112, "dsh-experimental-client-ui-agent-team": 25, "dsh-experimental-client-ui-voice-input": 101, "dsh-session-log-export": 10 }, "methods": { "dsh-client-locale": "estatico", "dsh-client-ui-agent-preset": "dinamico", "dsh-client-ui-approval": "dinamico", "dsh-client-ui-chat": "dinamico", "dsh-client-ui-commands": "dinamico", "dsh-client-ui-conversation": "dinamico", "dsh-client-ui-cordis": "dinamico", "dsh-client-ui-deliverables": "dinamico", "dsh-client-ui-directory-picker-browse": "dinamico", "dsh-client-ui-goal": "dinamico", "dsh-client-ui-input-trigger": "dinamico", "dsh-client-ui-jobs": "dinamico", "dsh-client-ui-layout": "dinamico", "dsh-client-ui-message-feedback": "dinamico", "dsh-client-ui-model-selection": "dinamico", "dsh-client-ui-open-in-app": "dinamico", "dsh-client-ui-permission-presets": "dinamico", "dsh-client-ui-plan": "dinamico", "dsh-client-ui-plugin-manager": "dinamico", "dsh-client-ui-reference": "dinamico", "dsh-client-ui-schedule": "dinamico", "dsh-client-ui-settings-account": "estatico", "dsh-client-ui-settings-agent-loop": "dinamico", "dsh-client-ui-settings-general": "dinamico", "dsh-client-ui-settings-models": "dinamico", "dsh-client-ui-settings-plugin-inventory": "dinamico", "dsh-client-ui-settings-plugins": "dinamico", "dsh-client-ui-settings-session-log": "dinamico", "dsh-client-ui-settings-shell": "dinamico", "dsh-client-ui-settings-subagent": "dinamico", "dsh-client-ui-settings-web-search": "dinamico", "dsh-client-ui-shortcuts": "dinamico", "dsh-client-ui-sidebar-browser": "dinamico", "dsh-client-ui-sidebar-documentpreview": "dinamico", "dsh-client-ui-sidebar-files": "dinamico", "dsh-client-ui-sidebar-right": "dinamico", "dsh-client-ui-sidebar-terminal": "dinamico", "dsh-client-ui-sidebar": "dinamico", "dsh-client-ui-skill": "dinamico", "dsh-client-ui-subagent": "dinamico", "dsh-client-ui-theme": "estatico (fabrica: apply: theme registry lost \"ctx.configForms.get().getSnapshot().value.)", "dsh-client-ui-trajectory": "dinamico", "dsh-client-ui-user-questions": "dinamico", "dsh-client-ui-workflow-run": "dinamico", "dsh-client-ui-workspace": "dinamico", "dsh-experimental-client-ui-agent-team": "dinamico", "dsh-experimental-client-ui-voice-input": "estatico", "dsh-session-log-export": "dinamico" } }