前言¶
在 DeepSeek Harness(DSH)裏和模型長對話時,英文回覆、論文摘要或 agent 輸出往往需要對照中文閱讀;若把整段原文丟給通用翻譯,公式、代碼塊和 URL 容易被改壞。單獨開瀏覽器翻譯或手工複製,又和聊天上下文脫節。下面介紹社區插件 dsh-plugin-translate(維護者 jcy0chenyuan0):在 GUI 聊天區增加翻譯入口,並可選把論文 PDF 按文字塊位置譯後另存,與 DSH「一切皆插件」的擴展方式一致。插件目錄歸類爲聯網工具;生態目錄站 SkillHub 插件頁 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係。
這是什麼¶
dsh-plugin-translate 給 DSH 增加翻譯能力:聊天區頂部右側只有一個「🌐 翻譯」按鈕,鼠標懸停展開面板、移開收起;點一下可翻譯最新回覆並釘住面板。同一套能力還暴露爲模型工具 translate_text、translate_pdf,agent 可直接調用。
倉庫當前版本在 package.json 中爲 1.2.0,許可證 MIT。源碼:https://github.com/jcy0chenyuan0/dsh-plugin-translate。
核心功能¶
聊天區 GUI¶
- 懸停展開面板,選擇模式與目標語言,翻譯最新回覆;選中聊天文字後可點「翻譯選中」。
- 面板底部可填 PDF 路徑,執行「翻譯 PDF 並另存爲 _t.pdf」。
翻譯後端(多種模式)¶
配置項 mode 默認 auto,依次嘗試 DeepSeek 直連 → 任意 AI API → 微軟翻譯(配了 microsoftKey 時面板纔會出現該模式)。也可固定爲 deepseek / custom / microsoft。
- 任意 AI 的 API:OpenAI 兼容的
baseUrl + apiKey + model(aiStyle可選openai或 anthropic 風格/v1/messages),可接 OpenAI、Kimi、Qwen、GLM、OpenRouter、本地 Ollama / LM Studio 等。 - DeepSeek 直連:有 API Key 走 OpenAI 兼容端點;沒有 Key 時可複用當前 profile 已登錄的 DeepSeek 賬號憑據(與 harness 自帶
dsh-llm-deepseek-account同一套取憑據方式,useAccountCredential默認true)。 - 微軟翻譯:可選,需配置
microsoftKey與microsoftRegion。
結構化切片(不誤翻公式與代碼)¶
AI 模式會先切片,只把自然語言送去翻譯;公式($…$、$$…$$、\(…\)、\[…\])、代碼(圍欄、行內、縮進塊)、URL、郵箱原樣保留。
目標語言¶
支持 13 種:zh-Hans、zh-Hant、en、ja、ko、fr、de、es、it、pt、ru、ar、hi。默認目標語言配置鍵 target 爲 zh-Hans。
論文 PDF 翻譯¶
通過 PyMuPDF 助手 lib/pdfhelper.py 識別 PDF 文字塊與位置,逐塊翻譯後寫回原位置,另存爲 <文件名>_t.pdf(頁數不變;公式、代碼、圖、未翻譯內容保持原樣)。掃描版無文字層不做 OCR,會明確報告 pagesWithoutText。
純文本聊天翻譯不需要 Python;PDF 流水線需要帶 PyMuPDF 的解釋器。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前應自行查看源碼與 MIT 許可證。倉庫不包含本機絕對路徑或 API Key:cordis.patch.yml 由安裝腳本按當前目錄生成(已 .gitignore)。
1. 放置目錄並生成本地 patch¶
把整個目錄放到任意位置,例如 Windows 下 %USERPROFILE%\.dsh\plugins\dsh-plugin-translate,在該目錄運行一次安裝腳本:
powershell -ExecutionPolicy Bypass -File .\install.ps1
macOS / Linux:
node install.mjs
腳本按當前目錄自動生成 cordis.patch.yml,不寫死盤符。
2. 讓 DSH 加載 bundle¶
任選其一:
- 在 DSH 中讓 agent 執行:
plugin_manager install_bundle file:<該目錄的絕對路徑>(注意install_bundle與file:之間有兩個空格,與 README 一致)。 - 或按生成的
cordis.patch.yml裏insert的內容,手工追加到<profile>/cordis.patch.yml(例如%USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml)。
裝完後在 GUI「設置 → 插件」中可見 dsh-plugin-translate,可整體啓用/停用。
3. PDF 相關依賴(可選)¶
安裝腳本在 Windows 上默認靜默安裝缺失環境;僅檢查時:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -CheckOnly
插件加載時還會在後臺運行 bootstrap.ps1 -AutoInstall -Quiet(6 小時內不重複),不阻塞 DSH 啓動。需要 Python(優先 DSH 自帶運行時)與 pip install pymupdf 時才做 PDF 翻譯;可用 DSH_PYTHON 或 config.pythonPath 指定解釋器。關閉自動安裝:patch 的 config 設 autoInstall: false,或環境變量 DSH_BOOTSTRAP=0。
改 Host 代碼後立刻生效:loader 按 ES 模塊路徑緩存,可換未加載過的實現文件名(如 translate-host2.js)並同步改 cordis.patch.yml 的 name,再重新 install_bundle,免重啓換新代碼。
配置要點¶
cordis.patch.yml 的 config 全部可選,常用項如下(完整表見倉庫 README):
| 鍵 | 默認 | 說明 |
|---|---|---|
mode |
auto |
auto / deepseek / custom / microsoft |
target |
zh-Hans |
默認目標語言 |
aiBaseUrl aiApiKey aiModel |
空 | 任意 AI OpenAI 兼容 API |
aiStyle |
openai |
openai / anthropic |
deepseekApiKey deepseekModel |
空 | 留空則用 profile 登錄憑據 |
batchChars batchItems |
1800 / 12 | 單次請求規模上限 |
maxChars maxPdfPages maxPdfBlocks |
20000 / 300 / 4000 | 文本與 PDF 上限 |
也可用環境變量:AI_BASE_URL、AI_API_KEY、AI_MODEL、AI_STYLE、DEEPSEEK_API_KEY、MS_TRANSLATOR_KEY、MS_TRANSLATOR_REGION。README 說明 Key 不落盤保存。
典型用法¶
GUI¶
聊天區「🌐 翻譯」→ 懸停展開 → 選模式與目標語言 → 翻譯最新回覆或選中文字;PDF 路徑填在面板底部後另存 _t.pdf。
模型工具¶
// translate_text
{ "text": "……", "target": "en", "mode": "deepseek" }
// translate_pdf —— 另存爲 <原文件名>_t.pdf(可用 out 指定路徑 / dryRun 只體檢)
{ "path": "<PDF 路徑>", "target": "zh-Hans" }
{ "path": "<PDF 路徑>", "target": "zh-Hans", "dryRun": true }
倉庫自測命令(節選):
node test/smoke.mjs
node test/client-bundle.mjs
node test/e2e.mjs
適用場景與注意¶
適合:在 DSH 內快速譯最新回覆或選中片段;需要保留 LaTeX / 代碼的 AI 輸出;有文字層的論文 PDF 希望版面大致原位譯成 _t.pdf。
已知限制(來自 README):掃描版 PDF 無 OCR;中英版面長度差異可能導致個別塊 overflow 警告;推理模型偶發空響應體會自動拆批重試;圖片內文字、矢量圖標註不處理。第一次請求可能偏慢。
插件分類爲聯網工具,調用外部 API 或 DeepSeek 賬號時需自行承擔密鑰與合規責任。
結尾¶
dsh-plugin-translate 把「懸停翻譯面板 + 多後端 + 公式代碼保護 + PDF 塊級另存」收進一個 DSH bundle,適合已在使用 Harness 的開發者按需啓用。