dsh-l10n-hardpatch:導入即漢化的 DSH 硬編碼中文化補丁插件

前言

如果你在用 DSH(DeepSeek Harness),大概率見過這些英文界面:命令菜單裏各命令的描述、權限預設的說明文字、計劃模式的審查按鈕、軌跡視圖的標籤。它們不是配置項能改的文案,而是硬編碼在包文件裏的英文字符串,官方沒有提供 i18n 覆蓋點。想換成中文,只能直接改包文件——改完能生效,但 dsh 一升級,補丁就丟了,又得重做一遍。

社區作者 lingyingaojue 把這套手動操作做成了插件 dsh-l10n-hardpatch:安裝後重啓 DSH Web 即自動漢化,升級導致英文迴歸時,重啓會自動重新打上補丁。下面介紹它的實現方式和用法。

這是什麼

dsh-l10n-hardpatch 是一個本地目錄型 bundle 插件,定位是「硬編碼中文化補丁」:插件加載時,把 dsh 各包裏已知的硬編碼英文行,整行替換爲對應的中文行。許可證爲 MIT。

它不新增功能、不改交互,只解決一件事:讓 dsh 包內那部分英文 UI 字符串顯示爲中文,並且在 dsh 升級後能自動恢復這個狀態。

工作原理

插件通過 dsh 的 bundle patch 機制註冊(cordis.patch.ymlinsert)。加載時讀取 patches.json,對候選副本文件執行整行精確替換。patches.json 裏共 144 組「原版英文行 → 中文行」替換對,由 extract_lines.py 從「npm 原版包 vs 已漢化文件」的逐行 diff 自動生成,可以重新生成以適配新版本。

替換是冪等的,規則分三種情況:

  1. 文件已含中文目標行 → 跳過
  2. 文件含英文原行 → 替換爲中文行
  3. 無匹配 → 保持不動

核心特性與漢化範圍

按 README 的描述,插件有四個重點:

  • 導入即漢化:安裝後重啓 DSH Web 生效
  • 自動重打:dsh 升級導致英文迴歸時,重啓自動重新漢化
  • 覆蓋全面:同時掃描全局 npm 依賴樹與 ~/.dsh/profiles 各級 node_modules(含 pnpm store 佈局),命中實際加載的文件
  • 安全:行級精確替換,不誤傷代碼邏輯;替換後語法校驗通過;任何異常只告警,不阻斷插件加載

漢化範圍覆蓋以下包:

內容
dsh-command-compact 壓縮對話命令描述
dsh-command-feedback 反饋命令描述
dsh-command-goal 目標命令描述
dsh-session-log-export 導出會話命令描述
dsh-permission-presets 權限預設描述
dsh-plan-mode 計劃審查按鈕(批准 / 繼續規劃等)
dsh-client-ui-trajectory 軌跡視圖 UI 標籤(約 100 處)

有一處不需要補丁:advisor 預設與 client-connection 的中文是官方 rc.7 自帶的。

安裝與啓用

這是本地目錄型 bundle 插件,需要先把文件下載到本地,再讓 dsh 引用該目錄。

1、下載插件,兩種方式任選:

# 方式 A:git 克隆
git clone https://github.com/lingyingaojue/dsh-l10n-hardpatch

# 方式 B:GitHub 頁面 Code → Download ZIP,解壓到任意目錄

2、安裝到 dsh,把 <路徑> 換成你下載或解壓的目錄:

dsh plugin --profile web add <路徑>\dsh-l10n-hardpatch

3、重啓 DSH Web,漢化即生效。也可以在 Web UI 設置 → 插件 → 添加本地插件 → 選擇目錄。

一個已知坑

dsh plugin add 可能因 pnpm 的 ERR_PNPM_IGNORED_BUILDS(如 @jackwener/openclinode-pty)以退出碼 1 中斷。此時依賴其實已經裝好,但 package.jsondsh.profile.bundles 沒有更新,插件不會被加載。

處理方法:手動把包名加入 dsh.profile.bundles 數組,然後重啓。

更新維護

dsh 升級後,如果部分英文串變了,對應的替換對會失效。重新生成替換對的步驟:

# 1. 下載對應版本原版包
npm pack @deepseek-ai/dsh-client-ui-trajectory@<version>
# 2. 運行提取腳本(需配置路徑)
python extract_lines.py
# 3. 替換 patches.json 後重啓 DSH Web

適用場景與注意

適合兩類人:一是希望在 DSH Web 裏看到中文界面、且能接受直接替換包內字符串的用戶;二是自己維護 dsh 定製、想省掉每次升級後手動改包文件的開發者。

使用前有兩點需要清楚:

  1. 插件加載時會修改 dsh 包內的文件(整行替換加語法校驗),並始終以當前 dsh 進程的權限運行。安裝前建議先瀏覽源碼,確認替換對內容符合預期,再決定是否加載。

  2. 它替換的是硬編碼字符串,不是官方 i18n 方案。dsh 後續版本英文串變化時,需要按上一節重新生成替換對。插件本身採用 MIT 許可。

小結

dsh-l10n-hardpatch 把「手動改包文件 → 升級後重來」這個重複勞動,變成插件加載時的一次自動處理:冪等替換、異常只告警、升級後自動重打。如果你對 dsh 界面的英文硬編碼有同樣的困擾,可以按上面的步驟試一下。

  • GitHub:https://github.com/lingyingaojue/dsh-l10n-hardpatch
  • 社區目錄頁:https://www.skillhub.cn/plugins/lingyingaojue/dsh-l10n-hardpatch

社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

羽毛球分组比赛记分
小程序二维码

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

小夜