前言¶
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/桌面界面使用俄语的操作者、希望与内置中/英并列切换语言的团队。
需注意:
- 加载屏(如「HARNESS」「Loading plugins…」)来自应用 shell(
dsh-web-frontend),不在 locale 字典体系内,语言包无法覆盖。 - 宿主侧
LocalizedText(例如部分 slash 命令如/model的描述)由各包内地图解析,属于dsh-client-locale文档中的已知限制,本插件不修改这部分。 - 版本:字典针对 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