Back to home

limulin778-web

dsh-translator

Built-in translator plugin for DeepSeek Harness (DSH): multi-language, multi-model streaming translation, document import (PDF/DOCX/PPTX/XLSX/text), translation history, Markdown preview.

Stars
1
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-translator

DeepSeek Harness (DSH) 内置翻译插件:多语言、多模型流式翻译,支持文档导入、翻译历史与 Markdown 预览。

A translator plugin for DeepSeek Harness: multi-language, multi-model streaming translation with document import, translation history and Markdown preview.

功能 Features

  • 🧭 侧边栏底部「文 / 翻译」入口(宽侧栏 / 56px 窄轨道均正常显示)
  • 🌐 16 种语言 + 源语言自动检测 + 语言互换
  • 🤖 模型选择:列出 DSH 中所有已配置 provider 的模型(DeepSeek / Kimi / Claude / GPT …),默认选中当前默认模型
  • ⚡ 流式翻译输出,任务进度实时刷新
  • 📄 文档导入:纯文本类 + PDF / DOCX / PPTX / XLSX(markitdown-node → 内置 ZIP/XML 解析 → pdfjs-dist 三级降级)
  • 🕘 翻译历史(持久化到 ~/.dsh/translator-state.json,上限 100 条,可单删/清空/点击回填)
  • 📝 Markdown 预览(内置轻量渲染器,可切换纯文本)
  • ⚙️ 可自定义翻译提示词(支持 {{target_language}}{{text}} 占位符)
  • ⌨️ Ctrl+Enter 快捷翻译、拖拽文件到输入框直接导入、一键复制结果

安装 Install

需要 DeepSeek Harness 桌面版(内置 Host 的 dsh web 模式)。

方式一:安装脚本(推荐)

# 在仓库目录下执行
powershell -ExecutionPolicy Bypass -File install.ps1
# 自定义 DSH 家目录:
powershell -ExecutionPolicy Bypass -File install.ps1 -DshHome C:\Users\你的用户名\.dsh

脚本会:① 把插件复制到 <DSH_HOME>\profiles\web\node_modules\dsh-translator\;② 在 <DSH_HOME>\profiles\web\cordis.patch.yml 幂等追加注册行。然后重启 DeepSeek Harness 即可。

方式二:手动安装

  1. lib/package.json 复制到 <DSH_HOME>\profiles\web\node_modules\dsh-translator\

  2. 编辑 <DSH_HOME>\profiles\web\cordis.patch.yml,追加(注意必须是 insert 块语法,裸 - id: 会被 loader 当作"覆盖已有条目"而跳过):

    - insert:
        - id: translator
          name: dsh-translator
          config: {}
    
  3. 重启 DeepSeek Harness(桌面端与浏览器端共用同一 Host,都会生效)。

使用 Usage

  1. 点击左侧边栏底部的「翻译」按钮;
  2. 选择源语言(可自动检测)与目标语言;
  3. 选择翻译模型;
  4. 输入文本,或点「导入文档」/ 直接把文件拖进输入框;
  5. 点「翻译」(或 Ctrl+Enter),流式结果实时显示在右侧;
  6. 打开右上角 🕘 查看历史、⚙ 调整设置(Markdown 预览 / 提示词)。

工作原理 How it works

文件职责
Hostlib/index.js通过 webServer 注册 /api/translator 路由(JSON RPC + 文件导入);用 llm.stream() 做流式翻译任务;文档转换(markitdown-node / 内置 ZIP+XML / pdfjs-dist);历史与设置持久化
Clientlib/client.jssidebar.footer.action 侧栏入口 + shell.overlay 全屏翻译面板;同源 fetch("/api/translator/*") 调用 Host(与官方 dsh-file-upload 同一模式)

状态文件:~/.dsh/translator-state.json(设置 + 历史)。

依赖 Dependencies

  • node >= 22.6.0(DSH Host 运行时)
  • 可选(用于复杂文档转换,缺失时自动回退到内置解析器):
  • 在 DSH web profile 中安装时,会优先复用同目录 dsh-file-upload 携带的上述依赖(零额外安装)。

许可 License

MIT © 2026 limulin778-web