← 返回列表
未验证
这是一个将 DeepSeek Harness DSH 的 Web GUI 日语化的语言包插件。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/13 · 已提供中文文档
DeepSeek Harness Web GUI 的日语(ja)语言包插件
综合分
29.6
GitHub 分
29.6
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add rbstxt/dsh-locale-ja该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-locale-ja
这是一个将 DeepSeek Harness (DSH) 的 Web GUI 日语化的语言包插件。
它并非替换 en / zh,而是新增 ja 区域设置。其中收录了 in-box 客户端 UI 所拥有的 42 个命名空间 / 1257 个键。缺失译文的键会回退到 en,因此画面上不会出现原始键名。
安装
dsh plugin --profile web add file:/path/to/jpdsh
dsh plugin add 会在配置文件目录中执行 pnpm,并根据安装结果更新 dsh.profile.bundles。由于本包声明了 dsh.bundle,它会作为配置文件的一个层被集成进来。
也可以直接从 git 安装。
dsh plugin --profile web add github:rbstxt/dsh-locale-ja
安装后,在 设置 → 通用 → 语言 中选择“日本語”,或在 $DSH_HOME/settings.yaml 中写入以下内容。
locale:
preference: ja
headless 或 sdk 等不具备浏览器面的配置文件不在支持范围内。
工作原理
DSH 的插件由 bundle 和 client 两个面构成。本包也遵循这一约定。
| 面 | 声明 | 作用 |
|---|---|---|
| bundle | dsh.bundle.patch | 向配置文件插入一行 Loader 行 |
| client | dsh.client、platform: web | 将 lib/client.js 作为浏览器面进行分发 |
启动流程如下。
1. dsh plugin add 将包添加到 dsh.profile.bundles
2. cordis.patch.yml 插入 id: locale-ja 的 Loader 行
3. @deepseek-ai/dsh-client-modules 检测到 dsh.client,并将其作为 /plugins/dsh-locale-ja/client.js 分发
4. 浏览器侧的 cordis 执行 lib/client.js 的 apply(ctx)
apply 只使用 @deepseek-ai/dsh-client-locale 的语言包 API。
ctx.effect(() => ctx.locale.addLanguage({ id: "ja", label: "日本語", fallback: "en" }), "…");
for (const [ns, dict] of Object.entries(DICTIONARIES)) {
ctx.effect(() => ctx.locale.register(ns, "ja", dict), …);
}
addLanguage 注册语言的定义,register(ns, locale, dict) 注册按命名空间划分的词典。这种单一区域设置形式是语言包专用的入口,可以为既有功能所拥有的命名空间追加其他区域设置。重复判定以 namespace 和 locale 的组合为单位。所有注册都归 ctx.effect 所有,因此移除插件时 ja 也会一并消失。
宿主面的 lib/index.js 不做任何事情。它的作用仅仅是一个声明了 dsh.client 的可解析 Loader 行,不会增加模型可见的服务。
文件结构
| 路径 | 作用 |
|---|---|
| lib/client.js | 浏览器面。生成物 |
| lib/index.js | 宿主面 |
| cordis.patch.yml | bundle 补丁 |
| locales/ja.json | 合并后的日语词典 |
| translation/ | 原文的提取结果、翻译的输入输出、术语表 |
| tools/ | 提取、拆分、一致性校验、构建、验证的脚本 |
同捆包
better-sidebar-ja/ 是独立的第二个包 dsh-better-sidebar-ja。它并非针对 DSH 本体,而是将 dsh-better-sidebar 的 UI 日语化的桥接包,通过 ctx.betterLocale 存储启用侧边栏同捆的 ja 词典。由于 dsh-better-sidebar 自身只原生注册 zh / en,日语只能通过该存储解析,因此若没有它,侧边栏会以英语渲染。详情请参阅 better-sidebar-ja/README.md。
dsh plugin --profile web add file:/path/to/jpdsh/better-sidebar-ja
node better-sidebar-ja/tools/verify.mjs
维护
当更新 DSH 本体导致 UI 字符串增加时,执行同样的步骤。
node tools/capture-dictionaries.mjs --out translation/source-en-zh.json --verbose
node tools/split-translation.mjs translation/source-en-zh.json
翻译 translation/in/part-NN.json 并写入 out/part-NN.json
node tools/consistency-pass.mjs --write
node tools/build-plugin.mjs
node tools/verify-client.mjs
capture-dictionaries.mjs 会在 VM 中加载各个 lib/client.js,取出 window.__ModuleLoader__.load 的工厂函数。然后,在模拟的客户端上下文中调用 apply(ctx),
记录 locale.register。由于 bundle 使用 Rolldown 的 __toESM 辅助函数自行组装模块的
命名空间,因此 harness 使用会公开 bundle 中所有标识符的代理,
以免 react.memo 这样的具名导出消失。
build-plugin.mjs 会验证命名空间、键集合和占位符,若有缺失或多余
则中止构建。译文遗漏在画面上只会表现为回退到英文,
因此在构建时让其失败更安全。
验证
node tools/verify-client.mjs
ok: 日本語 (ja), 42 namespaces, 1257 keys, 44 owned effects
按照与生产环境相同的契约,即 __ModuleLoader__.load → factory(require) →
apply(ctx) 的顺序执行生成的 bundle,并确认注册内容与 locales/ja.json 一致。
使用隔离的 DSH_HOME,即可在不污染本地环境的情况下进行集成确认。
DSH_HOME=/tmp/dsh-ja-test dsh plugin --profile web add file:$PWD
printf 'locale:\n preference: ja\n' > /tmp/dsh-ja-test/settings.yaml
DSH_HOME=/tmp/dsh-ja-test dsh web --port 3081 --no-open
使用无头 Chrome 能够确认的范围如下。
- 设置了
- 侧边栏、设置的所有标签页、插件列表、引导流程均以日文显示
- 不含日文的行中不残留未翻译的英文字符。插件 ID 和模型名等标识符除外
验证时的截图
字体
该插件还会设置面向日文的字体。DSH 的排版全部
集中在 --dsw-font-family 和 --ds-font-family-code 这两个变量上,因此只需覆盖这两个
即可切换整个 GUI。实际加载的字体栈如下。
| 用途 | 首位 | 后续回退 |
|---|---|---|
| 无衬线 | Noto Sans JP | Noto Sans CJK JP、Hiragino Sans、Yu Gothic、Meiryo、DSH 默认的顺序 |
| 等宽 | Geist Mono | SF Mono、JetBrains Mono、Fira Code、Consolas、Menlo、DSH 默认的顺序 |
字体仅按名称指定本地已安装的字体,不获取 Web 字体。
即使在未安装 Noto Sans JP 的环境中,也将日文字体系列排在前面,
以免日文以中文字体显示。
--dsw-font-family 由主题在 :root 中定义,因此覆盖在 html:root
(优先级高一级)上应用。不依赖于样式标签的插入顺序。
翻译方针
译词表位于 translation/GLOSSARY.md,机械性规则位于 tools/consistency-pass.mjs。
- 按钮和标签使用名词结句
- 不修改 {placeholder}。省略号为 …
- 英文字母与日文之间使用 1 个半角空格。数字与量词相连。例如 {n}件、1回
- 时间单位用日文书写。例如 {seconds}秒、{n}日。token 的单位保持原拼写。例如 {value} tok、{value}K
- API、JSON、CLI、Diff、Schema、TTFT 等技术术语和产品名保持原拼写
限制
- 受 @deepseek-ai/dsh-client-locale 侧的限制,注册时引入的文案在切换语言后不会跟随变化。通过 slot 渲染的文案会即时切换。
- 仅翻译客户端 UI 的文案。插件 ID、模型 ID、命令名、文件路径、宿主返回的错误码属于标识符,因此不翻译。
- 当 DSH 本体版本升级、命名空间或键增加时,需要重新执行上述步骤。未翻译的键将以英文显示。
许可证
MIT扫码进群