dsh-selection-translator:在 Harness Web UI 里划词就地译成中文

前言

在 DeepSeek Harness(DSH)里读英文对话、工具输出或日志时,常见做法是复制到外部翻译页或另开插件面板。选区与上下文容易断开,流式输出还在刷新时更不方便。下面介绍社区插件 dsh-selection-translator:在 Web UI 里选中文字后右键,用菜单把选区就地换成中文;再右键一次可还原原文,不弹窗、不新增一条消息。

DSH 生态强调「一切皆插件」;插件目录由社区站点维护,与 DeepSeek / 幻方无官方从属关系。本文事实来自插件 GitHub README 与 package.json(当前包版本 0.2.1,许可证 MIT)。

这是什么

dsh-selection-translator(仓库 DevinMx520/dsh-selection-translator)由维护者 DevinMx520 发布,分类为客户端插件。它面向在 Harness Web UI 中阅读可选中文本的场景:右键菜单在「复制」之外增加「翻译成中文」,译文覆盖原选区;对已翻译片段再次右键可选「取消翻译」恢复原文。

核心功能

  • 选中文字右键 → 菜单含 复制 / 翻译成中文(菜单文案固定为中文,不跟随界面语言)。
  • 翻译结果就地覆盖选区,不弹窗、不新增消息;被翻译片段带点状下划线。
  • 再次右键已翻译文字 → 取消翻译 还原原文。
  • 中英混合选区会整体翻译成中文。
  • 安装后会同时挂载 Harness 自带的 @deepseek-ai/dsh-experimental-translator,用于匿名翻译服务,无需账号或 API Key。

安装与启用

插件发布到 npm 后,在 Harness 的插件管理器中安装,包名为:

dsh-selection-translator

README 说明:本地开发时可克隆仓库后在插件管理器中从本地目录安装,或把该目录加为 profile 的依赖;本文不涉及 git clone 步骤。

安装前请自行查看仓库源码与 MIT 许可证。插件以当前 DSH 进程权限运行,并会插入 translator 相关 bundle;若环境中已有其他 bundle 挂载 translator,可能存在服务冲突(见下文限制)。

典型用法

  1. 在对话、工具输出或任意可选中的文本上拖选内容。
  2. 在选区上点右键,选择「翻译成中文」。
  3. 中文就地覆盖原文。
  4. 对中文片段再次右键,选择「取消翻译」恢复原文。

长文本翻译时,菜单里可能显示进度条;关闭菜单会取消进行中的翻译。

隐私与数据去向

选中的文本会离开本机,发往 Harness 的匿名翻译提供方(README 写明当前为 Microsoft Bing 的 Edge 翻译端点)。本插件自身不保存原文或译文,也不会随翻译请求发送会话 ID;翻译由 Harness 的 translator 服务完成,结果不落盘。涉及敏感信息的文本请不要使用翻译功能。

适用场景与注意

适合:在 Harness Web UI 内快速看懂英文片段、工具返回或混合中英文选区,且希望保持页面布局、不额外开翻译窗口的开发者。

限制(摘自 README「已知限制」):

  • 按段落/文本节点分别翻译,长文本自动分段;极短片段(尤其被行内代码切开时)译文可能不如整段通顺。
  • 完整选中的段落会保留段落、标题、列表和行内代码/代码块;加粗、链接等不承载代码语义的内联样式会被拍平。
  • 消息被 React 重新渲染(例如流式输出或切换会话)时,翻译片段可能丢失,原文会重新出现;可重新翻译。
  • 若其他 bundle 也挂载了 translator,可能产生服务冲突。

实现概要(便于排查问题):client.js 在 shell.overlay 槽位注册浮动菜单;Electron 桌面端会通过保存并清空选区等方式处理原生右键菜单。index.js 在 Host 侧注册 POST /api/dsh/selection-translator,调用 Harness translator 服务;超过 3500 字符的片段会自动切块后拼接。cordis.patch.yml 同时挂载 translator 服务与本插件。

结尾

dsh-selection-translator 把「选中 → 右键 → 就地中文 → 再右键还原」收进 Harness 界面内,适合日常阅读英文输出又不想打断对话流的使用方式。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye