Zum Hauptinhalt springen
S

dsh-select-translate

shan5246992zhui/dsh-select-translate

Select text in any Windows app and read the translation in an always-on-top card next to the cursor: streaming text follows the newest line, up to 15000 characters per request. Windows only.

Installation

dsh plugin --profile web add github:shan5246992zhui/dsh-select-translate

README

划词翻译

在任意 Windows 应用里选中文字 —— 译文就在鼠标旁出现。

不切窗口、不复制粘贴、不留记录。

npm downloads license platform DSH plugin

划词翻译卡片

✨ 它好在哪

  • 即划即译 —— 选中、松手,卡片就出现在鼠标旁,首字实测 0.3–0.7 秒。
  • 绝不打断你 —— 原生置顶卡片,不抢焦点:原文选区不会消失,边看边译、还能继续操作下面的应用。
  • 长文也跟得上 —— 单次 15000 字。译文边流边显示,卡片自动跟着最新一行;想回看就滚轮,右侧细滚动条随滚动淡入。
  • 保留原文结构 —— 分段、编号列表原样保留;PDF 里被文字层压成一整行的题目,也会按 (a) 1. ① 重新分条。
  • 卡片随你调 —— 拖左右边缘即可改宽度,正文自动重排;也能切成小图标模式,点一下才翻译。
  • 想译成什么就什么 —— 自动 / 中文 / English,或自定义任意语种(日本語、한국어、Français…)。
  • 零依赖、零构建 —— 不装原生模块、不跑构建脚本,复用 DSH 自带的能力。

🚀 安装

最简单:DSH 桌面端 → 设置 → 插件市场 → 搜「划词翻译」→ 一键安装。 (本插件已被 awesome-dsh-plugin 收录。)

命令行安装:

dsh plugin --profile web add dsh-select-translate

也可以从源码装:

dsh plugin --profile web add github:SHAN5246992ZHUI/dsh-select-translate

装完重启 DSH(宿主半边不会热加载)。已发布到 npm:dsh-select-translate。 卸载:市场里点卸载,或 dsh plugin remove dsh-select-translate。

🖱 怎么用

操作效果
划词鼠标旁弹出卡片,译文流式出现
拖卡片左右边缘改卡片宽度(300–900),正文自动重排
滚轮翻长译文
Esc / 点卡片外 / ✕关闭,并中断在途请求
头部 ⚡即划即译 ↔ 小图标模式(选择会记住)
头部 📌钉住:点外面不关;再划词时原地换内容
头部 翻译 ⌄目标语言:自动 / 中文 / English / 自定义…
页脚 复制 / 重译复制译文 / 用同一段原文再译一次

选「自动」时,卡片头部会显示判定结果(例如 自动·中文),不用猜。

🖼 两种触发方式

模式行为
即划即译(默认)划词停手就直接出卡片和译文
小图标划词停手只亮一个 24px 小圆图标,点它才翻译;移开鼠标 / Esc / 点别处即收起
小图标模式

📏 长文本

超过卡片高度后,视图跟着新译文往上顶——最新一行永远在窗口里,翻译结束回到开头;中途往上滚会暂停跟随,滚回底部恢复。

流式跟随

🔒 隐私

  • 选中的文字只经 DSH 宿主发给你自己配置的模型,不经过任何第三方服务。
  • 不落盘:原文和译文都不写文件、不进会话日志、不进侧栏。伴生进程只在内存里留最近一次取词结果,重启即失。
  • 取词完全不碰剪贴板;剪贴板只在**你点「复制」**时被写入。
  • 写盘只有两个小文件:触发模式设置 $DSH_HOME/dsh-select-translate.json,以及给本机排障工具用的运行时文件。
  • 本机内部 HTTP 口需要随机令牌;带自定义头的跨源请求会被 CORS 预检挡在浏览器侧。

⚠️ 适用范围与已知限制

  • 仅 Windows。非 Windows 上插件会主动跳过加载,不会影响 DSH 启动。
  • 需要 DSH 桌面端(纯 Web 端没有原生窗口)。
  • 以管理员权限运行的应用取不到词(Windows UIPI 限制),这是预期行为,不是故障。
  • 取词走 UI Automation,WPS / Office 不在支持范围——取不到就安静地不弹。
  • 单次原文上限 15000 字。

❓ 常见问题

会消耗我的模型额度吗?

会。每次划词都是一次真实的模型调用,走你自己在 DSH 里配置的模型。关卡片、再划词、点「重译」都会取消在途请求,避免白跑。

用的是哪个翻译模型?

跟着 DSH 当前的默认模型座走,可以在 DSH 设置里换成别的模型。

为什么在有些窗口里划词没反应?

目标应用没有向 UI Automation 暴露文本,或者它是以管理员权限运行的。WPS / Office 属于已知不支持的范围。

卡片为什么不抢焦点,还能不能打字?

卡片是原生分层窗口且刻意不激活,所以不会打断你。需要输入时(自定义语种)会另开一个小输入框,支持中文输入法。

页内卡片和系统级卡片有什么区别?

系统级卡片是真正置顶在所有应用之上的原生窗口;页内卡片是 DSH 页面里的预览/兜底路径。两者交互对齐。

🛠 开发

想改代码、跑测试、看实现细节,见 docs/DEVELOPMENT.md。

  • 纯 JS,无构建步骤
  • 单测 153 个(零依赖,pnpm test)
  • 真进程冒烟检查覆盖取词、落位、真译文、长文本、小图标模式

📄 许可与致谢

本项目以 MIT 发布,见 LICENSE。

取词内核衍生自 dsh-selection-tools(作者 @fyisgod,MIT)。 上游的许可原文与逐文件改动说明在 THIRD-PARTY-NOTICES.md——

感谢 @fyisgod 把这套 Windows 取词内核开源出来,这个插件能跑起来靠的就是它。

Ähnliche Plugins