dsh-locale-ru:爲 DeepSeek Harness 增加俄語界面

前言

DeepSeek Harness(DSH)的 Web 界面默認提供中文與 English。若團隊或用戶習慣俄語,只能依賴瀏覽器翻譯或忍受英文界面,菜單、設置、任務與插件相關文案無法與 DSH 內置語言機制對齊。下面介紹社區客戶端插件 dsh-locale-ru(維護者 kvashninsasha-gif):通過 DSH 官方本地化 API 註冊 Русский,與內置語言並列可選,未譯字符串回退到 English,而不是裸露鍵名。

這是什麼

dsh-locale-ru 是 DSH 客戶端類插件(分類:客戶端)。它不改寫 DOM,而是在運行時向 DSH 註冊俄語及按 namespace 劃分的翻譯字典。字典規模來自 README 說明:2615 條界面字符串、58 個 namespace,自全部 71 個 @deepseek-ai/dsh-client-* 客戶端插件、DSH 版本 0.2.0-rc.2 提取,覆蓋對話框、側欄、設置、目標、任務、子代理、軌跡、審批、插件、終端、文件、計劃、語音輸入等常見界面區域。

包版本 1.0.0,許可證 MIT。插件在 DSH 進程內加載運行;安裝前建議在 GitHub 倉庫 查看源碼與 LICENSE,確認符合你的環境策略。社區目錄頁:SkillHub - dsh-locale-ru(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

核心機制

註冊方式

插件走 DSH 內置本地化路徑:

  • 通過 ctx.locale.addLanguage({ id: 'ru', label: 'Русский', fallback: 'en' }) 增加語言項;
  • 每個 namespace 用 ctx.locale.register(ns, 'ru', dict) 掛載俄語字典。

Fallback 與卸載

  • Fallback ru → en:未翻譯或後續 DSH 版本新增的鍵,界面顯示英文,而非原始 key。
  • 可逆:註冊掛在 ctx.effect 上;禁用或移除 bundle 後,界面回到 English/中文可選狀態,語言列表中的「Русский」一併消失。

安裝與啓用

1. 作爲 DSH bundle(推薦)

包聲明瞭 dsh.bundle.patch,可在 Web 界面 Plugins 頁或 CLI 一條命令安裝。

桌面 profile:

dsh plugin --profile desktop add github:kvashninsasha-gif/dsh-locale-ru

CLI / Web profile:

dsh plugin --profile web add github:kvashninsasha-gif/dsh-locale-ru
dsh web

安裝完成後,打開 設置 → 通用 → 語言,選擇 Русский。若尚未手動選語言,DSH 會按 navigator.languages 匹配第一個支持的語言;瀏覽器系統語言爲俄語時,界面可能自動切到俄語。

2. 手動掛載(不用包管理器)

將插件目錄拷到 profile,並在 $DSH_HOME/profiles/<profile>/cordis.patch.yml 增加:

- insert:
    - id: locale-ru
      name: './plugins/dsh-locale-ru/lib/index.js'

此方式不修改 profile 的 package.json / lock。不要與 bundle 安裝同時使用,否則包名解析衝突。

卸載

dsh plugin --profile desktop remove dsh-locale-ru

手動安裝時:刪除 plugins/dsh-locale-ru 目錄及 cordis.patch.yml 中的 locale-ru 條目;設置中的語言會回到 English/中文。

典型用法

對多數用戶,安裝並選語言即可,無額外配置項。維護翻譯或跟進 DSH 升級時,倉庫提供 Node.js ≥ 22 的腳本(npm run check 不依賴 npm install):

npm run build   # source/*.json → lib/client.js(翻譯不完整會失敗)
npm run check   # 完整性、ICU 佔位符、bundle 是否過期、運行時註冊/卸載

DSH 應用升級後,字符串可能變化;README 給出從 macOS app.asar 內 @deepseek-ai 客戶端包重新提取字典、合併到 source/en.json、補全 source/ru.json 再 npm run build && npm run check 的流程。當前倉庫內字典基準版本爲 0.2.0-rc.2;其他 DSH 版本上新增鍵在 fallback 下會先顯示英文,直到重新提取並翻譯。

適用場景與限制

適合:需要在 DSH Web/桌面界面使用俄語的操作者、希望與內置中/英並列切換語言的團隊。

需注意:

  1. 加載屏(如「HARNESS」「Loading plugins…」)來自應用 shell(dsh-web-frontend),不在 locale 字典體系內,語言包無法覆蓋。
  2. 宿主側 LocalizedText(例如部分 slash 命令如 /model 的描述)由各包內地圖解析,屬於 dsh-client-locale 文檔中的已知限制,本插件不修改這部分。
  3. 版本:字典針對 DSH 0.2.0-rc.2 提取;peerDependencies 未聲明,以免安裝被兼容性檢查攔住,但實際界面完整度仍取決於 DSH 版本是否與提取源一致。

倉庫結構(便於二次開發)

路徑 說明
lib/client.js 瀏覽器端:語言註冊與全部字典(生成物)
lib/index.js 宿主端:供加載器引用的入口
cordis.patch.yml bundle 補丁,掛載到選定 profile
source/en.json / source/ru.json 英文(及中文)源與俄語譯文
tools/ 構建、校驗、從應用提取字典的腳本

結尾

dsh-locale-ru 用 DSH 標準 ctx.locale 擴展俄語 UI,2615 條字符串覆蓋 58 個 namespace,安裝後於設置中選 Русский 即可;未譯內容回退 English,移除插件可完全還原。目錄與源碼:

  • 目錄頁:https://www.skillhub.cn/plugins/kvashninsasha-gif/dsh-locale-ru
  • GitHub:https://github.com/kvashninsasha-gif/dsh-locale-ru
羽毛球分组比赛记分
小程序二维码

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

小夜