Back to home@Johnblur

dsh-bilingual-reader

No description

Stars
0
Language
TypeScript
Created
Aug 24, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

dsh-bilingual-reader

中文 | English

DeepSeek Harness (DSH)dsh-better-sidebar 里阅读论文 PDF,用大模型做划词翻译的插件。

在侧边栏打开 PDF → 选中一句话复制 → 插件结合上下文用大模型译成中文。翻译走 DSH 现有模型,完全隔离主对话上下文,只作阅读辅助。

使用场景

  • 你在 DSH 侧边栏(better-sidebar)打开一篇论文 PDF 阅读。
  • 想快速弄懂某个句子 / 术语:选中 + 复制,插件自动翻译。
  • 不想把内容丢进主对话去问 —— 翻译只发生在插件里,不污染主对话上下文

特性

  • PDF 原生渲染:用浏览器 / Electron 的 PDF 引擎显示原文 —— 排版完美、可翻页、可复制,与内置阅读器一致。
  • 划词翻译:复制选中文本 → 桌面版(Electron)自动翻译;无法自动时点「翻译选中」按钮。
  • 上下文感知:在全文里查找复制内容的唯一位置,取周边文字作上下文。唯一命中最准;多处出现 / 未命中则无上下文直译(避免错误上下文误导)。
  • 上下文长度可调:滑块控制取周围多少字作上下文。
  • 原文 + 译文对照:下方同时显示复制的原文与译文,便于核对,并支持一键复制译文
  • 隔离主对话:翻译走 ctx.llm 的一次性独立调用,不写回主会话,复用 DSH 已配置的模型与 API key。

安装

dsh plugin add github:Johnblur/dsh-bilingual-reader

装完彻底退出托盘里的 DSH Desktop 再重新打开。

使用

  1. better-sidebar 侧栏 + → 打开「双语阅读」标签(标签栏名为 translator,菜单内按界面语言显示 翻译 / translator)。
  2. 输入或粘贴 PDF 路径 → 点「加载」。
  3. 在上方 PDF 里选中一段文字并复制
    • 桌面版(Electron):检测到剪贴板变化,自动翻译
    • web 端或自动不可用时:点「翻译选中」按钮。
  4. 下方显示 原文 + 译文;用「上下文」滑块调整取上下文的长度。

依赖与说明

  • 依赖 DSH 运行时注入的服务(dsh-better-sidebar@deepseek-ai/dsh-llm)与 pdfjs-dist(主机端取文)。
  • 复用 DSH 现有模型与 API key(无需额外 key),可用环境变量覆盖:
    • DSH_BILINGUAL_PROVIDER(默认 deepseek-official
    • DSH_BILINGUAL_MODEL(默认 deepseek-v4-flash-vision-exp
  • 「自动翻译」依赖主机读取系统剪贴板(Electron 桌面版);纯 web 端没有该能力,走按钮。

本地构建(给开发者)

pnpm i
pnpm build      # tsdown -> lib/ + tsc -> lib/types
pnpm test       # vitest:纯逻辑 + 隔离测试

常见问题

  • 复制后不自动翻译:确认用的是桌面版(Electron);或直接点「翻译选中」按钮。
  • 译文没用上下文:选中的词在文中出现多次 / 没匹配到唯一位置 → 插件主动用无上下文直译,避免错误上下文。
  • 想更准:选中一整句而不是单个词,通常能唯一匹配、上下文更准。
  • 重新打开后标签还是旧标题:旧标签是开标签时固化的标题;关掉该标签重新通过 + 打开即可显示 translator

License

MIT