@ragnoryok1/dsh-client-locale-ru 0.2.12 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.12",
4
+ "version": "0.2.13",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Full Russian interface (i18n) for the DeepSeek Harness web GUI: 123 namespaces, 12590 translated strings, Russian screen typography, and a locale audit in CI pinned to a harness tag. Includes the automation-task manager and the reminder catalog.",
6
+ "description": "Full Russian interface (i18n) for the DeepSeek Harness web GUI: 130 namespaces, 14086 translated strings, Russian screen typography, and a locale audit in CI pinned to a harness tag. Includes the automation-task manager and the reminder catalog.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
8
8
  "compatible_versions": ["v0.2.1-rc.2", "v0.2.1-rc.1", "v0.2.1-alpha.5", "v0.2.1-alpha.4", "v0.2.1-alpha.3", "v0.2.1-alpha.2", "v0.2.1-alpha.1", "v0.2.0-rc.2", "v0.2.0-rc.1", "v0.1.7-rc.2", "v0.1.7-rc.1", "v0.1.7-alpha.2"],
9
9
  "screenshots": "images",
@@ -21,16 +21,16 @@
21
21
  [![license](https://img.shields.io/npm/l/%40ragnoryok1%2Fdsh-client-locale-ru)](LICENSE)
22
22
  [![verify](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml/badge.svg)](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
23
23
  [![dsh](https://img.shields.io/badge/dsh-0.2.1--rc.2%2B-6366f1)](https://github.com/deepseek-ai/deepseek-harness)
24
- [![namespaces](https://img.shields.io/badge/namespaces-123-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-12590-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
24
+ [![namespaces](https://img.shields.io/badge/namespaces-130-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
+ [![strings](https://img.shields.io/badge/strings-14086-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
26
26
 
27
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web 界面(`dsh`)的俄语(`ru`)语言包。它通过 locale 服务(`ctx.locale.addLanguage`)把 `ru` 注册为可选的客户端语言,并为每个 namespace 提供一份词典——共 123 个 namespace、12,590 条翻译,基于 dsh `0.2.1-alpha.3` 构建。用 `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru` 安装,然后在 Settings → General 中选择 **Русский**。缺失的 key 会回退到英文,因此更新的 harness 也能照常工作。覆盖范围是 harness 自带的客户端界面(64 个 namespace,3 033 条翻译),以及 59 个第三方插件的词典——它们各自发布的英文原文都被取来翻译(共 9 557 条)。MIT 许可,由社区维护,与 DeepSeek 无隶属关系。
27
+ [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web 界面(`dsh`)的俄语(`ru`)语言包。它通过 locale 服务(`ctx.locale.addLanguage`)把 `ru` 注册为可选的客户端语言,并为每个 namespace 提供一份词典——共 130 个 namespace、14,086 条翻译,基于 dsh `0.2.1-alpha.3` 构建。用 `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru` 安装,然后在 Settings → General 中选择 **Русский**。缺失的 key 会回退到英文,因此更新的 harness 也能照常工作。覆盖范围是 harness 自带的客户端界面(64 个 namespace,3 033 条翻译),以及 59 个第三方插件的词典——它们各自发布的英文原文都被取来翻译(共 9 557 条)。MIT 许可,由社区维护,与 DeepSeek 无隶属关系。
28
28
 
29
29
  > **如果这个包对你有用,请给仓库点一颗 star。** 这是表明「有人需要这份翻译」的唯一信号,它也决定了接下来优先做哪些部分。
30
30
 
31
31
  ---
32
32
 
33
- 完整清单见 [NAMESPACES.md](NAMESPACES.md):123 个 namespace、12,590 条字符串,随包附带的插件词典单独标注。
33
+ 完整清单见 [NAMESPACES.md](NAMESPACES.md):130 个 namespace、14,086 条字符串,随包附带的插件词典单独标注。
34
34
 
35
35
  如果 pnpm 报 `ERR_PNPM_NO_MATURE_MATCHING_VERSION`,这不是包坏了,而是成熟度策略:配置文件
36
36
  不安装发布不足 48 小时的版本。等一两天(报错信息里写着版本号),或在配置文件设置里去掉
@@ -90,7 +90,7 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
90
90
 
91
91
  清单按 harness 自身的规则检查,而不是靠肉眼(`npm run check:manifest`,包含在 `verify` 中)。每一条规则都取自 harness 源码,每一条都对应一种否则会先落到用户头上的失败:`parseDshClient` 接受任意字符串作为 `platform`,但消费方只保留 `platform === 'web'` 的行,因此写成 `'Web'` 这样的笔误会**悄悄关掉**客户端那一半;声明了 `dsh.client` 却没有 `./client` 导出会让 `client-modules` 抛错;`dsh.bundle.patch` 必须指向确实存在的文件。
92
92
 
93
- 从 GitHub 安装同样可用:`dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru`(插件目录生成的就是这种不带 npm scope 的写法)安装的是仓库归档,而构建好的 `lib/` 已提交进 git——你的机器上不会运行构建,也不需要运行。正因如此,`npm run check:built`(包含在 `verify` 中)会重新构建 `lib/` 并与提交内容比对:git 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 695 KB:横幅以 JPEG 提供,图标与源码映射不进入 npm 包。
93
+ 从 GitHub 安装同样可用:`dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru`(插件目录生成的就是这种不带 npm scope 的写法)安装的是仓库归档,而构建好的 `lib/` 已提交进 git——你的机器上不会运行构建,也不需要运行。正因如此,`npm run check:built`(包含在 `verify` 中)会重新构建 `lib/` 并与提交内容比对:git 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 724 KB:横幅以 JPEG 提供,图标与源码映射不进入 npm 包。
94
94
 
95
95
  ## 为什么是混合插件
96
96
 
@@ -123,7 +123,7 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
123
123
 
124
124
  插件的名称来自它自己的 `locale/<语言>.json` 文件,而本地化服务解析这张映射时不会去查已注册的词典——它自己的文档写着 «maps do not consult registered dictionaries»。因此词典无法翻译插件名称:本包拿不到别的包的映射,英文名称会一直是英文,直到插件自己带上 `locale/ru.json`。
125
125
 
126
- 本包自带这些名称:32 个 harness 插件的名称,以及 32 个第三方插件的名称与说明(这些插件的词典本包在翻译)。每一项都记着翻译所依据的英文文本和俄文文本。已经渲染出来的界面会经过一个处理流程,把俄文放到英文的位置上:插件卡片、bundle 的组成行、插件详情页以及设置中的插件清单。朗读用的名称(`aria-label`)也会一并替换,因此整张卡片读起来都是俄文。
126
+ 本包自带这些名称:32 个 harness 插件的名称,以及 33 个第三方插件的名称与说明(这些插件的词典本包在翻译)。每一项都记着翻译所依据的英文文本和俄文文本。已经渲染出来的界面会经过一个处理流程,把俄文放到英文的位置上:插件卡片、bundle 的组成行、插件详情页以及设置中的插件清单。朗读用的名称(`aria-label`)也会一并替换,因此整张卡片读起来都是俄文。
127
127
 
128
128
  这个流程只做精确匹配:整段文本与本包知道的标题或说明完全相同时才会替换。只是提到了某个名称的句子保持原样;代码、输入框和对话不会被触碰。与排版流程一样,它只在俄文是当前语言时工作。
129
129
 
@@ -169,11 +169,11 @@ npm run diff:harness -- <old> <new> # harness 改写了哪些英文
169
169
 
170
170
  标签的新旧由单独的 workflow 盯守:`watch-upstream` 每周把锁定的标签与 harness 的标签比对一次,出现更新的标签就开一个 issue(内含操作步骤)并把运行标红——让「落后」按计划被发现,而不是靠用户的截图。版本比较无需网络即可验证(`npm run check:upstream`,五个用例),并且纳入 `verify`:正式版本必须比自己的预发布版本更新,否则盯守会永远报警。
171
171
 
172
- 覆盖率数字不是门禁:有些分区是有意保留英文的。紧随其后,审计会打印**按 namespace** 的报告:它根据注册方重建「namespace → 词典」的对应关系(`NS` 声明,或 `locale.register` 里的字面量;`bind` 与 `PropsLocale` 只是读取 namespace),并列出既不在自己 namespace、也不在运行时回退所用的 `common` 词典中的 key。全局比较 key 名称看不到这类空洞:放在别的 namespace 下的翻译会被算作已覆盖,而那个界面实际显示英文。该报告仅供参考——同名 key 在不同 namespace 下含义可能不同(`list.aria` 在提醒目录里是「活动提醒」,在任务里是「后台任务」),因此只有在两个 namespace 由同一份词典提供服务时才会跨 namespace 搬运翻译。在锁定的标签上,该报告为空:harness 在我们注册的 namespace 里渲染的每一条字符串,都位于该 namespace。本包的全部 123 个 namespace 都会被比对——对应关系既来自紧邻注册处的词典导入,也来自注册语句本身传入的名称(`locale.register(NS, { zh, en })`);若没有第二条规则,词典位于相邻目录的 `common` 与 `settings.locale` 就会落在检查之外。反方向是硬失败而不是参考报告:harness 注册并填充了 key、而本包从不注册的 namespace,会让那个界面停留在英文,而按 key 名称统计的覆盖率看起来依然完整。`settings.sessionLog` 正是这样被发现的——通用设置页上的「上传 Session Log」开关。
172
+ 覆盖率数字不是门禁:有些分区是有意保留英文的。紧随其后,审计会打印**按 namespace** 的报告:它根据注册方重建「namespace → 词典」的对应关系(`NS` 声明,或 `locale.register` 里的字面量;`bind` 与 `PropsLocale` 只是读取 namespace),并列出既不在自己 namespace、也不在运行时回退所用的 `common` 词典中的 key。全局比较 key 名称看不到这类空洞:放在别的 namespace 下的翻译会被算作已覆盖,而那个界面实际显示英文。该报告仅供参考——同名 key 在不同 namespace 下含义可能不同(`list.aria` 在提醒目录里是「活动提醒」,在任务里是「后台任务」),因此只有在两个 namespace 由同一份词典提供服务时才会跨 namespace 搬运翻译。在锁定的标签上,该报告为空:harness 在我们注册的 namespace 里渲染的每一条字符串,都位于该 namespace。本包的全部 130 个 namespace 都会被比对——对应关系既来自紧邻注册处的词典导入,也来自注册语句本身传入的名称(`locale.register(NS, { zh, en })`);若没有第二条规则,词典位于相邻目录的 `common` 与 `settings.locale` 就会落在检查之外。反方向是硬失败而不是参考报告:harness 注册并填充了 key、而本包从不注册的 namespace,会让那个界面停留在英文,而按 key 名称统计的覆盖率看起来依然完整。`settings.sessionLog` 正是这样被发现的——通用设置页上的「上传 Session Log」开关。
173
173
 
174
174
  ## 覆盖范围:harness 与插件词典
175
175
  本包翻译 **harness 客户端自有的 namespace**——共 64 个 namespace,已与锁定标签核对——以及
176
- **第三方插件的词典**:59 个插件,其英文文本连同版本与许可证一起从它们自己的发布物中提取。
176
+ **第三方插件的词典**:66 个插件,其英文文本连同版本与许可证一起从它们自己的发布物中提取。
177
177
 
178
178
  此前插件词典不在范围内,理由是:`dshmarket` 已经到 1.66.44 版本,它的 key 变化与 harness
179
179
  无关,而「全部都覆盖了」这种无声承诺不是承诺,是一笔没人能讨的债。答案其实很简单:把
@@ -236,7 +236,7 @@ npm run verify -- путь/к/дереву/харнесса
236
236
 
237
237
  ## 内容
238
238
 
239
- - `src/client/dicts.ts`——俄语词典(123 个 namespace、12,590 条翻译、约 13,000 行)。这正是本包的核心价值。
239
+ - `src/client/dicts.ts`——俄语词典(130 个 namespace、14,086 条翻译、约 15,000 行)。这正是本包的核心价值。
240
240
  - `src/client/index.ts`——客户端插件入口(注册 `ru` 和词典)。
241
241
  - `src/index.ts`——空的宿主部分(`apply()`)。
242
242
  - `cordis.patch.yml`——profile 补丁(`- insert:` 客户端条目 `locale-ru`)。
package/cordis.patch.yml CHANGED
@@ -1,8 +1,8 @@
1
- # @ragnoryok1/dsh-client-locale-ru profile-bundle patch.
2
- # Adds the Russian (ru) language pack as a dynamic client-plugin row. Composed
3
- # at profile boot; the dsh-client-modules host serves lib/client.js via the
4
- # combo /plugins/??<id>/client.js route. The row name resolves to this package,
5
- # which declares dsh.client (platform web) and exports ./client.
6
- - insert:
7
- - id: locale-ru
8
- name: '@ragnoryok1/dsh-client-locale-ru'
1
+ # @ragnoryok1/dsh-client-locale-ru profile-bundle patch.
2
+ # Adds the Russian (ru) language pack as a dynamic client-plugin row. Composed
3
+ # at profile boot; the dsh-client-modules host serves lib/client.js via the
4
+ # combo /plugins/??<id>/client.js route. The row name resolves to this package,
5
+ # which declares dsh.client (platform web) and exports ./client.
6
+ - insert:
7
+ - id: locale-ru
8
+ name: '@ragnoryok1/dsh-client-locale-ru'