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
羽毛球分组比赛记分
小程序二维码

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

小夜