前言¶
在 DeepSeek Harness(DSH)里读英文文档、看助手回复里的外文片段时,常见做法是切到浏览器翻译扩展、复制到在线词典,或另开窗口。这些步骤会打断当前对话上下文。下面介绍社区插件 dsh-translate-on-select:在 DSH 页面内用鼠标选中非中文文本,松手后选区下方就地浮出简体中文译文卡片,无需快捷键、浏览器扩展或跳转。
DSH 生态强调「一切皆插件」;插件目录由社区站点维护,与 DeepSeek / 幻方无官方从属关系。本文事实来自插件 GitHub README 与 package 信息,安装与配置以原文为准。
这是什么¶
dsh-translate-on-select 由维护者 syzke 发布,分类为联网工具。一句话定位:DSH 划词翻译插件——鼠标选中非中文内容后,在选区下方就地浮出一张卡片显示简体中文译文(Select-to-translate plugin for DeepSeek Harness)。
当前 npm 包版本为 0.1.1,许可证 MIT。实现为纯 JavaScript,零第三方依赖,无 prepare/build 脚本。
核心功能¶
划词与展示¶
- 划词即译:松开鼠标约 200ms 后自动请求翻译,卡片落在选区正下方;下方空间不足时会翻到上方。
- 自动判断要不要翻:纯中文选区直接跳过;日语、韩语因含假名/谚文会正确判定为需要翻译。
- 不打扰输入:输入框、文本域、
contenteditable内的选区不会触发。 - 源语言识别:英文、日文、德文等可识别,卡片上会显示类似「英语 → 简体中文」。
体验与交互¶
- 毛玻璃卡片、圆角与投影,跟随 DSH / 系统明暗主题;加载时有骨架屏;尊重
prefers-reduced-motion。 - 支持复制译文、重新翻译;
Esc或点击空白处关闭。 - 缓存:同一段文本再次选中可瞬时返回(宿主与前端各一层内存 LRU)。
翻译后端¶
主用 cn.bing.com,失败自动回退 MyMemory。请求在宿主侧发出(默认只监听 127.0.0.1),前端经本地路由 POST /dsh-translate/translate 调用,便于绕开 CORS、集中分片与多后端回退。
安装与启用¶
需要已安装 dsh CLI(桌面客户端自带;源码运行时可使用 pnpm dsh)。
方式一:从 npm 安装(推荐)¶
dsh plugin --profile desktop add dsh-translate-on-select
- 桌面客户端使用
desktopprofile;若运行dsh web,将--profile desktop换成--profile web。 - 包已发布在 npm:dsh-translate-on-select。
- 无需本机安装
git;无构建脚本,一般不必在pnpm-workspace.yaml里追加allowBuilds。
方式二:从 GitHub 安装¶
dsh plugin --profile desktop add github:syzke/dsh-translate-on-select
需要本机已装 git。锁定版本示例:
dsh plugin --profile desktop add github:syzke/dsh-translate-on-select#v0.1.1
方式三:本地源码链接¶
dsh plugin --profile desktop add "link:/absolute/path/to/dsh-translate-on-select"
link: 为软链安装,改代码可立即生效(前端硬刷新;宿主改动需重启客户端)。目录移动或重命名后需重新 add。
装完必须重启一次客户端¶
webserver/index-inject 的注入行在宿主启动时一次性收集,不会热生效。仅刷新页面不够,需重启 DeepSeek Harness 一次。
重启后自检:
- 右下角无常驻图标属正常(本插件不提供托盘图标)。
- 在任意助手回复里选中一段英文,选区下方应出现译文卡片。
- 若无反应:开发者工具 Console 查看
/dsh-translate/client.js;Network 中该请求应返回 200。
配置¶
配置文件路径:$DSH_HOME/.dsh-translate.json(Windows 默认 C:\Users\<你>\.dsh\.dsh-translate.json),首次修改时创建:
{
"to": "zh-Hans",
"enabled": true
}
| 字段 | 说明 |
|---|---|
to |
目标语言。默认 zh-Hans(简体中文);亦支持 zh-Hant、en、ja 等 BCP-47 码,可当作反向词典使用。 |
enabled |
设为 false 整体关闭翻译(插件仍加载,接口返回「已关闭」)。 |
改配置无需重启,每次请求会重新读文件。
可选环境变量:
| 变量 | 用途 |
|---|---|
DSH_TRANSLATE_CONTACT |
MyMemory 联系邮箱;匿名约 5000 字符/天,填写后可提高到约 5 万。 |
DSH_TRANSLATE_TRUSTED_HOSTS |
逗号分隔;仅在宿主信任栅栏不可用且 DSH 置于反代/局域网后时使用。 |
典型用法¶
- 按上文安装并完成一次重启。
- 在 DSH 对话或任意已注入页面中,用鼠标拖选一段非纯中文文本。
- 松手等待约 200ms,阅读选区下方卡片中的译文;需要时可复制或点重新翻译。
- 若主要阅读繁体或英译需求,编辑
.dsh-translate.json中的to字段后再次划词即可。
插件以当前 dsh 进程权限运行;安装前建议浏览仓库源码与 MIT 许可证,确认符合你的环境策略。
安全、隐私与限制¶
安全与隐私¶
- 路由带信任栅栏(同源 / 宿主委托 / fail-closed);无宿主栅栏时仅放行回环地址或
DSH_TRANSLATE_TRUSTED_HOSTS中的主机。 - 选中内容会发送到公共免费接口(cn.bing.com,必要时 MyMemory)。勿用于密钥、隐私数据或未公开代码。
已知限制¶
- 长文本按 4000 字符分片翻译后拼接,换行可能与原文不完全一致。
- 短句延迟约 0.7–1.4s,约 2000 字符级别约 4s;无流式输出。
- 公共接口稳定性不受插件控制;Bing token 或页面结构变化可能导致失效;双后端均失败时显示失败卡片并可重试。
- 滚动或缩放窗口时卡片会收起;选中超过 20000 字符不翻译。
卸载¶
dsh plugin --profile desktop remove dsh-translate-on-select
然后重启客户端。
结尾¶
dsh-translate-on-select 把划词翻译收进 DSH 页面内:选中、稍等、读卡片,适合在助手对话与文档阅读中快速看译文。使用前请接受公共翻译接口的隐私与准确度边界,并按要求在安装后重启宿主。
- 社区目录页:https://www.skillhub.cn/plugins/syzke/dsh-translate-on-select
- 源码与完整说明:https://github.com/syzke/dsh-translate-on-select