dsh-translate-on-select:在 DSH 里划词即译,不必离开当前页面

前言

在 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 脚本。

核心功能

划词与展示

  1. 划词即译:松开鼠标约 200ms 后自动请求翻译,卡片落在选区正下方;下方空间不足时会翻到上方。
  2. 自动判断要不要翻:纯中文选区直接跳过;日语、韩语因含假名/谚文会正确判定为需要翻译。
  3. 不打扰输入:输入框、文本域、contenteditable 内的选区不会触发。
  4. 源语言识别:英文、日文、德文等可识别,卡片上会显示类似「英语 → 简体中文」。

体验与交互

  • 毛玻璃卡片、圆角与投影,跟随 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
  • 桌面客户端使用 desktop profile;若运行 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 一次。

重启后自检:

  1. 右下角无常驻图标属正常(本插件不提供托盘图标)。
  2. 在任意助手回复里选中一段英文,选区下方应出现译文卡片。
  3. 若无反应:开发者工具 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 置于反代/局域网后时使用。

典型用法

  1. 按上文安装并完成一次重启。
  2. 在 DSH 对话或任意已注入页面中,用鼠标拖选一段非纯中文文本。
  3. 松手等待约 200ms,阅读选区下方卡片中的译文;需要时可复制或点重新翻译。
  4. 若主要阅读繁体或英译需求,编辑 .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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜