DSH 划词翻译:在桌面窗口内选中文字就地翻译

前言

在 DSH 里读长文档、对照侧栏说明或翻看对话记录时,经常需要把一小段外文翻成中文。常见做法是复制到浏览器或独立翻译工具,再贴回来,选区容易丢、步骤也碎。下面介绍社区插件 dsh-selection-translate(维护者 ringo-x):在 DSH 桌面 Web 客户端里划选文字,选区旁出现「翻译」按钮,点击后在原位弹出翻译卡片,走 DSH 内置的 Bing / Google 免费匿名接口,不需要 API key,也没有构建步骤。

这是什么

dsh-selection-translate 是 DSH Desktop 的 Web Client 插件,分类为联网工具。仓库:ringo-x/dsh-selection-translate;社区目录页:skillhub.cn 条目。README 英文简介为:在桌面客户端中选中文本并在原地翻译(select text, translate it in place)。

插件当前为 MVP:README 记录 npm 公开包 @ringo-x/dsh-selection-translate@0.1.1(MIT),语法、清单与后端接口已做自动化校验;实际划词与视觉交互仍建议安装后自行点验。

核心功能

按 README 已核实的能力概括如下。

选区与浮层

  • 鼠标划选或 Shift+方向键选择后,在选区末端显示浮动「翻译」按钮。
  • 浮层注册在 shell.overlay;该层默认可点击穿透,按钮与卡片通过 pointer-events: auto 接收事件。
  • 默认不在 input、textarea、contenteditable 内触发,避免干扰编辑。

翻译卡片

  • 展示所用服务、目标语言、原文预览与译文;支持复制、重试与错误提示。
  • Esc、点击外部、滚动或窗口失焦时自动关闭。
  • 主题 token 适配亮/暗色;中英文案走 ctx.locale。

请求与限制

  • 单次选区最多 4000 字符;20 秒超时、请求可取消、带内存缓存。
  • 选中文本会发往 Bing / Google,卡片底部有隐私提示。

工作原理(简要)

选中文字
  → document mouseup / keyup
  → 校验选区(非空、长度、是否在输入框/插件卡片内)
  → shell.overlay 浮动按钮
  → 点击(mousedown preventDefault 保留选区)
  → ctx.get('remote.cotTranslation') → face.translate(...)
  → Host translator → Bing / Google 免费匿名接口
  → 翻译卡片
  • Client:client.js,纯 React(React.createElement),无第三方 npm 运行时依赖。
  • Host:index.js 仅保留 bundle 行,翻译在 Host 的 translator 服务中完成。
  • 翻译链路:ctx.remote.cotTranslation 由内置「思考翻译」bundle 提供;目标语言与翻译服务跟随该 bundle 的设置。

依赖与前置条件

依赖 说明
DSH Desktop 0.2.1-rc.2 插件运行在 Web Client / shell.overlay
@deepseek-ai/dsh-experimental-cot-translation-bundle 必须启用;提供 translator 与 cotTranslation Remote,默认 Bing + auto
Node.js 仅开发与跑 npm run check 时需要;插件运行时不依赖 Node API

没有 npm 运行时依赖,也没有构建步骤。禁用「思考翻译」后,划词翻译不可用;若把翻译服务切到付费 DeepSeek Flash,划词会提示改回 Bing/Google(当前版本不绑定 Session)。

安装与启用

已抓取资料中未给出形如 dsh plugin add … 的固定安装命令。README 说明:包已发布到 npm(@ringo-x/dsh-selection-translate),社区市场(如 dsh-compat-market)从 npm 注册表与 GitHub 仓库 dsh-plugin topic 聚合目录,无单独上传接口;新包需等 npm 检索收录后出现在市场,在此之前可通过带 dsh-plugin topic 的 GitHub 仓库发现。

安装前建议自行核对 GitHub 源码 与 MIT 许可证。插件随当前 DSH 进程权限运行,联网请求会把选中文本发给第三方翻译端点。

启用步骤(逻辑顺序):

  1. 使用满足版本要求的 DSH Desktop,并在 profile 中安装、启用本插件(通过 DSH 插件管理或社区市场界面,以你当前环境文档为准)。
  2. 同时启用 @deepseek-ai/dsh-experimental-cot-translation-bundle(思考翻译)。
  3. 确认插件在 shell.overlay 中为 active(README 验证记录中 selection-translate 已注册且为 active)。

开发者在工作区通过 plugin_manager 安装或更新到 profile;不要手动改 profile 的 package.json / cordis.patch.yml。

典型用法

  1. 在对话正文或侧栏中选中文字(输入框内默认不触发)。
  2. 点击选区旁的「翻译」。
  3. 在卡片中查看译文;可复制或重试;用 Esc 或点击外部关闭。

修改目标语言或翻译服务:

  • 打开 设置 → 插件 → 思考翻译。
  • 默认 Bing + auto(中文界面下即简体中文)。
  • 可切换 Google,或填写 zh、en、ja 等语言代码。

适用场景与注意

适合

  • 已在 DSH 窗口内阅读、希望少切换应用做短句翻译的场景。
  • 愿意使用 Bing / Google 免费匿名接口、且接受选区内容出网的用户。

不适合或需注意

  • 不是系统级划词工具,只在 DSH 窗口内部生效。
  • 付费 DeepSeek Flash 不支持划词;长文单次上限 4000 字符。
  • 启用思考翻译后,展开的思考内容会多出翻译工具栏(不会自动翻译),与划词能力是同一 bundle 的副作用。

README 标明:68 个单元测试已通过,但按钮位置、卡片视觉、窄窗口等仍需人工确认。生态上 DSH 强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-selection-translate 把「选中 → 点翻译 → 看卡片」收进 DSH 桌面客户端,复用思考翻译 bundle 的 Bing/Google 链路,免 API key、免构建。若你需要在 Harness 里就地看懂一段外文,可先装好思考翻译依赖,再从社区目录或 npm 包名安装本插件,按上文路径设置语言与服务后试用。

  • 目录页:https://www.skillhub.cn/plugins/ringo-x/dsh-selection-translate
  • GitHub:https://github.com/ringo-x/dsh-selection-translate
羽毛球分组比赛记分
小程序二维码

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

Xiaoye