前言¶
在 DeepSeek Harness(DSH) 里和模型对话时,常见做法是整段复制到外部翻译工具,或另开窗口对照阅读。DSH 本身不提供「按段落、在原文旁边一键翻译」的界面能力。维护者 mikulo 的 dsh-translator 是分类为「客户端」的 Web 插件:在 AI 每一段回复(不含思维链)下方提供翻译控件,调用你在 设置 → 模型 里已配置的模型,把选中段落译成目标语言,译文显示在原文下方或替换页面上的原文显示(不改变发给模型的上下文)。
这是什么¶
dsh-translator(npm 包名 @mikulo/dsh-translator,当前版本 1.0.1)是标准 DSH bundle:package.json 中声明了 dsh.bundle.patch 与 dsh.client,Host 与 Browser 均为纯 ESM,无运行时依赖,安装时无需构建。
- 兼容:DSH
>=0.1.7-rc.1;Node>=22.19 - 目录页:skillhub.cn/plugins/mikulo/dsh-translator
- 源码:github.com/mikulo/dsh-translator(MIT)
翻译请求经 DSH 自身的模型服务发出,使用 设置 → 模型 中的 API Key;插件不单独保存密钥。
核心功能¶
下面按 README 中已说明的行为归纳,便于对照界面使用。
逐段翻译与替换显示¶
AI 每段回复(每个回复步骤里的每个文本块)在生成完成后,段落下方右侧会出现 「翻译」 和 「替换原文」。思维链、工具调用、用户消息不出现按钮;回复仍在流式输出时不显示按钮。
- 翻译:译文排在原文之后、下一段之前,处于正常文档流,不浮动覆盖原文。
- 替换原文:译文占据原文在页面上的位置(原文隐藏),按钮变为 「显示原文」,再点可恢复。仅改变页面显示:会话记录与发给模型的对话上下文仍是原文;轮次底部「复制」复制的也是原文。
译文按 Markdown 渲染(代码块、列表、表格等与原文样式一致),左侧有细色条区分,并注明目标语言、所用模型和思考强度。阿拉伯语、乌尔都语等 RTL 语言按从右到左排版(1.0.1 起目标语言列表以十种常用语言为主,见下文设置项)。
显示、重译与取消¶
翻译完成后 「翻译」 变为 「隐藏译文 / 显示译文」,两种展示方式可切换且不会重复请求;旁侧 ↻ 可重新翻译。翻译进行中再次点击转圈中的按钮可取消。
自动滚动¶
点击按钮后,若长文本展开、收起或替换导致高度变化,对话区会尽量滚到译文第一行附近(隐藏译文或显示原文时则定位到原文第一行);第一行已在视口内则不移动。等待翻译期间若用户自行滚动或点了其他段落,译文返回后不再强制跳转。
错误与模型¶
模型超时、模型不存在或已删除、未配置模型、API 报错(余额、密钥等)、无法连接 dsh web、插件 Host 未加载等情况,在按钮左侧以红字显示原因,失败按钮变为 「重试」;替换失败时原文保持显示。Host 未加载时,设置页与按钮旁会提示 「请重启 dsh web」。
设置页的模型列表与 设置 → 模型 一致(与对话框模型选择器同源),按提供商分组;可选 「跟随 DSH 默认模型」。思考强度默认关闭,可选 low / medium / high;若模型不支持所选档位,会自动映射到最接近的一档并在设置页提示。
语言、提示词与筛选¶
默认目标语言为简体中文,可选十种:简体中文、English、繁體中文、日本語、한국어、Français、Español、Deutsch、Русский、Português。翻译提示词可自定义,{{target}} 为目标语言,{{text}} 为原文(未写 {{text}} 时原文会附加在末尾);留空保存即恢复内置默认。
默认 「只在包含英文的段落显示翻译按钮」 为开启(中文回复里少量英文术语不算「含英文段落」);关闭后所有回复段落均显示按钮。
缓存与测试¶
译文在页面内保留,切换对话再回来仍在;最近 200 条保存在浏览器 localStorage(键名 dsh-translator.cache.v1),刷新后仍可恢复。设置页底部可输入文字测试当前配置。
安装与启用¶
DSH 生态里插件可通过社区清单或 dsh plugin 直接安装;安装后需 重启 dsh web 并刷新页面(Browser 半可随页面热更新,Host 半须重启进程才加载新代码)。
通过 dsh-plugins 清单(推荐)¶
git clone https://github.com/mikulo/dsh-plugins.git
cd dsh-plugins
node install.mjs --profile web --only dsh-translator
直接安装¶
dsh plugin --profile web add github:mikulo/dsh-translator
维护命令(README 原文):
dsh plugin --profile web update @mikulo/dsh-translator
dsh plugin --profile web remove @mikulo/dsh-translator
更新或安装后同样需要重启 dsh web。
典型用法¶
- 打开 设置 → 回复翻译,选择翻译模型(或 跟随 DSH 默认模型)、思考强度、目标语言;在 设置 → 模型 中增删模型后,可在回复翻译页点 「刷新」 同步列表。底部 测试 可先验证配置。
- 在对话中等待 AI 某段文本生成结束,点该段下方的 翻译 或 替换原文,按需切换隐藏/显示译文或显示原文。
- 需要改超时或提示词时,在同一设置页调整 超时(秒)(默认 60,范围 5–600)与 翻译提示词。
默认提示词模板(可在设置中覆盖):
将下面的文本翻译为{{target}}。要求:
- 只输出译文,不要添加任何解释、注释或前后缀;
- 保留原有的 Markdown 结构(标题、列表、表格、引用、链接);
- 代码块、行内代码、命令、文件路径和 URL 保持原样,不要翻译;
- 专有名词和技术术语可保留原文。
{{text}}
设置与数据位置¶
| 设置 | 默认值 | 说明 |
|---|---|---|
| 翻译模型 | 跟随 DSH 默认模型 | 来自 设置 → 模型;变更后点刷新 |
| 思考强度 | 关闭 | 关闭 / low / medium / high |
| 翻译成 | 简体中文 | 十种常用语言 |
| 翻译提示词 | 内置模板 | {{target}}、{{text}};留空保存恢复默认 |
| 超时(秒) | 60 | 5–600 |
| 只在包含英文的段落显示翻译按钮 | 开 | 关闭则所有回复段落均有按钮 |
- 插件设置文件:
~/.dsh/dsh-translator.json(若设置了DSH_HOME,则为$DSH_HOME/dsh-translator.json),与 DSH 主配置分开,重装或更新插件不会清掉这些项。 - 译文缓存:仅本机浏览器 localStorage。
工作原理(简要)¶
Host 半(lib/index.js)提供仅限本机访问的 /api/dsh-translator/*;模型列表经 DSH llm 服务解析,与内置模型选择器一致;翻译时调用 llm.stream(),只取正文文本块,丢弃思考内容。Browser 半(lib/client.js)注册 回复翻译 设置页,并在每个已完成的 AI 文本块后插入容器,通过 React portal 渲染按钮与译文;优先使用 DSH MarkdownText 的原始 Markdown,取不到时退回页面可见文本。
适用场景与注意¶
适合在 DSH Web 里阅读英文(或其他语言)模型输出、又不想离开对话页复制粘贴的场景。插件以当前 dsh web 进程权限运行,安装前建议阅读 仓库源码与 LICENSE,确认符合你的环境与合规要求。SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
结尾¶
dsh-translator 把「逐段翻译」嵌进 DSH 对话 UI:复用已有模型配置,区分思维链与正文,并明确「替换原文」只影响显示。需要安装说明与更新日志时,以 GitHub README 为准。