前言¶
DeepSeek Harness(DSH)桌面/Web 客户端里,英文与简体中文通常随 @deepseek-ai/dsh-client-* 内置;若需要俄语、德语、繁体中文等界面,改 app.asar 或自行重打包既不安全也不易维护。社区插件 dsh_languages 走 DSH 公开的 ctx.locale 机制,在一个 bundle 里注册多种语言包,安装后在设置里切换即可。
下面介绍该插件的定位、能力与安装方式;事实以 GitHub 仓库 README 为准。该项目为社区维护,与 DeepSeek 无官方关联。
这是什么¶
dsh_languages(维护者 elims777)是 客户端 类 DSH 插件:面向 DeepSeek Harness Web UI 的社区翻译集合。简介为「Community translations (14 languages) for the DeepSeek Harness web UI」——一个插件包、多种语言,覆盖聊天、设置、插件、调度、侧栏、对话框与系统消息等界面文案。
许可证为 MIT(package.json 版本 1.0.1)。插件在 DSH 进程权限下运行;安装前建议浏览源码与 LICENSE,再决定是否启用。
核心功能¶
语言覆盖¶
当前打包进构建的语言共 14 种,每种约 2 886 行、63 个 namespace。README 语言表摘要如下(状态均为「就绪」;除俄语标注 100% 外,其余多为社区草稿):
| 语言 | 代码 |
|---|---|
| Русский | ru |
| Español | es |
| Português (Brasil) | pt-BR |
| Deutsch | de |
| Français | fr |
| Italiano | it |
| Polski | pl |
| Türkçe | tr |
| 日本語 | ja |
| 한국어 | ko |
| 繁體中文 | zh-TW |
| Bahasa Indonesia | id |
| Tiếng Việt | vi |
| हिन्दी | hi |
带完整 locales/<代码>/ 目录的语言会自动纳入构建。阿拉伯语 ar 未包含:DSH 界面暂不支持 RTL 布局。
与内置 i18n 的衔接方式¶
DSH 不把全部翻译放在独立文件里;英文与中文在客户端 bundle 中通过 ctx.locale.register(ns, { zh, en }) 注册。本插件在浏览器侧(lib/client.js)对每个语言调用:
ctx.locale.addLanguage({ id: 'de', label: 'Deutsch', fallback: 'en' });
ctx.locale.register('settings', 'de', { trigger: 'Einstellungen' });
要点如下:
- 使用官方 API(
ctx.locale.addLanguage+ctx.locale.register),不 patchapp.asar,不重编译应用。 - 未翻译的 key 自动回退到英文(fallback
en)。 - 零 npm 运行时依赖;预构建的 JavaScript bundle 随包分发。
- 通过
cordis.patch.yml将locales注入 bundle 组合;Node 侧lib/index.js主要为满足 Loader 占位。
已知限制(README)¶
- 主机下发的动态元数据(如插件/包名等
LocalizedText)仍在app.asar清单中,不会被本插件本地化。 {count} min、{value} tok/s等紧凑单位,以及 Cursor、VS Code、PDF 等产品名有意保留不译。- DSH 无 ICU 复数;含
{count}的字符串采用中性表述。 - 社区翻译可能含机器辅助;欢迎母语者 PR 改进。
安装与启用¶
图形界面¶
- 侧栏 Plugins → Install。
- 填写 spec:
dsh_languages(npm)或github:elims777/dsh_languages(GitHub)。 - 启用 bundle 并刷新页面(Ctrl+R)。
- Settings → General → Language 选择目标语言。
注意:若语言未出现在列表中,可能是 bundle 未在启动时挂载——需确认 dsh_languages 在 dsh.profile.bundles 中,并重启应用(仅 Ctrl+R 不足以重建组合图)。
CLI¶
dsh plugin add dsh_languages
# 或从 GitHub:
dsh plugin add github:elims777/dsh_languages
安装后重启 DSH,在 Settings → General → Language 选择语言。
Discover 索引(可选)¶
若构建启用了插件市场(Plugins 的 Discover tab),可添加本仓库市场索引:
https://raw.githubusercontent.com/elims777/dsh_languages/main/market/index.json
索引格式为 DSH format: 1;版本按 commit 解析,安装可复现。
离线手动安装¶
从 Releases 下载 dsh_languages-<版本>.zip,解压后执行(Windows 示例):
powershell -ExecutionPolicy Bypass -File install.ps1
脚本会将包复制到 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh_languages 并写入 dsh.profile.bundles。可用 -Profile <名称>、-DshHome <路径> 指定配置。完成后重启 DSH。
典型用法与贡献¶
日常切换¶
经过上面的安装步骤后,无需额外配置项:在 Settings → General → Language 切换即可全局生效聊天、设置、插件页等已覆盖 namespace。
新增或维护某一语言¶
维护者或贡献者可使用仓库工具链(需 Node.js 22+ 与已安装 DSH,用于提取英文字符串):
node tools/new-locale.mjs de "Deutsch" # 创建 locales/de/ 与 locales.json 条目
# 翻译 locales/de/*.json 中的值(勿改 key 与 {占位符})
npm run check # 校验完整性并重建 lib/client.js
提交 locales.json、对应 locales/<代码>/ 与 lib/client.js 后发起 PR;细则见仓库 CONTRIBUTING.md。若不想并入本包,可单独发布只做 addLanguage / register 的语言插件,DSH 可同时加载多个语言插件。
DSH 升级后若出现大量英文残留,可按 README 从 app.asar 重新提取基准:
node tools/extract.mjs "<DSH 安装路径>\resources\app.asar"
npm run build
适用场景与注意¶
适合谁: 日常使用 DSH Web/桌面客户端、界面语言不在内置中英之列、又希望避免改 asar 的开发者或用户。需要 繁体中文 界面时,应选 zh-TW(本包未列出简体 zh 作为独立社区包语言项;内置中文仍由客户端 bundle 提供)。
安全与信任: 插件与 DSH 同进程运行,bundle 会在启动时注入客户端组合。安装前请自行审阅 elims777/dsh_languages 源码与 MIT 许可证。
故障提示(来自 README): 部分字符串仍为英文,多为新版本 DSH 新增 key,需 extract 后补译并 npm run build。账户面板显示「数据暂不可用」通常与 platform.deepseek.com 请求失败有关,非本地化问题。安装后出现空白屏,应暂时从 dsh.profile.bundles 移除 dsh_languages 并反馈 issue(附 DSH 版本)。
结尾¶
dsh_languages 把 14 种社区语言收进一个 DSH 客户端插件,依托 ctx.locale 官方扩展点,实现「装插件、选语言」的界面本地化路径。目录与源码:
- 社区目录页:https://www.skillhub.cn/plugins/elims777/dsh_languages
- GitHub:https://github.com/elims777/dsh_languages