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

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/CHANGELOG.md CHANGED
@@ -6,6 +6,26 @@
6
6
  Пакет следует за харнессом: целевая версия — `dsh 0.2.1-alpha.1` и новее
7
7
  (`>=0.1.0-rc.2 <0.3.0` для `@deepseek-ai/dsh-client-locale`).
8
8
 
9
+ ## [0.2.12] — 2026-10-20
10
+
11
+ ### Добавлено
12
+
13
+ - **Названия и описания сторонних плагинов — на русском.** Проход, который подставляет
14
+ русское название плагина в отрисованный интерфейс, знал только 32 названия плагинов
15
+ самого харнесса. Теперь в `src/client/plugin-names-ru.json` лежат названия и описания
16
+ ещё 32 сторонних плагинов — тех, чьи словари пакет переводит: английский текст взят
17
+ из их собственной публикации, русский — из того же словаря. Файл собирается
18
+ (`npm run build:plugin-names`), а гейт `npm run check:plugin-names:map` падает, когда
19
+ карта разошлась со словарями. Одно и то же английское название не может быть
20
+ переведено дважды: по-разному у харнесса и у плагина — сборка падает.
21
+
22
+ ### Исправлено
23
+
24
+ - **Проверка собранного бандла перестала врать о больших файлах.** `git show` бандла
25
+ больше мегабайта упирался в мегабайтный буфер `spawnSync` и завершался ошибкой, а
26
+ проверка читала это как «файла нет в коммите»: бандл любого размера выше лимита нельзя
27
+ было сверить с коммитом.
28
+
9
29
  ## [0.2.11] — 2026-10-20
10
30
 
11
31
  ### Добавлено
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Ragnoryok1
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ragnoryok1
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NAMESPACES.md CHANGED
@@ -1,139 +1,139 @@
1
- <!-- Сгенерировано `npm run namespaces`; проверяется `npm run check:namespaces`. -->
2
- # Что переведено
3
-
4
- Пакет переводит **123 namespace** — 12590 строк. Колонка «как это выглядит»
5
- берёт заголовок самого namespace (то, что читает пользователь), а не отдельное описание:
6
- список нельзя разойтись с переводами.
7
-
8
- Колонка «источник» говорит, откуда взят английский текст: «харнесс» — собственные словари
9
- клиента, «пакет@версия» — словарь стороннего плагина, выгруженный из его собственной
10
- публикации (`npm run fetch:plugins`). Плагины проверяются теми же правилами, поэтому
11
- список — это обещание, а не перечень.
12
-
13
- | namespace | как это выглядит | строк | источник |
14
- |---|---|---|---|
15
- | `agent-team` | Команда агентов | 25 | харнесс |
16
- | `approval` | — | 5 | харнесс |
17
- | `better-input` | — | 123 | dsh-better-input@0.2.6 |
18
- | `betterSidebar` | — | 627 | dsh-better-sidebar@0.28.0 |
19
- | `chat` | — | 200 | харнесс |
20
- | `claude-code-mods` | — | 4 | харнесс |
21
- | `command` | — | 28 | харнесс |
22
- | `common` | — | 41 | харнесс |
23
- | `config-manager` | — | 36 | dsh-config-manager@0.1.78 |
24
- | `conversation` | — | 379 | харнесс |
25
- | `cordis` | — | 51 | харнесс |
26
- | `cotTranslation` | — | 32 | харнесс |
27
- | `deepseek-model-label-1017` | — | 1 | харнесс |
28
- | `deliverables` | — | 60 | харнесс |
29
- | `documentHtml` | HTML | 4 | харнесс |
30
- | `documentMarkdown` | — | 4 | харнесс |
31
- | `dsh-approval-gate` | Шлюз подтверждений | 30 | @goodandready/dsh-approval-gate@0.1.30 |
32
- | `dsh-clinebot` | ClineBot | 206 | @goodandready/dsh-clinebot@0.5.33 |
33
- | `dsh-context-lens` | Линза контекста | 11 | @goodandready/dsh-context-lens@0.1.34 |
34
- | `dsh-cost-meter` | Счётчик расходов | 85 | @goodandready/dsh-cost-meter@0.8.22 |
35
- | `dsh-cron` | — | 396 | @goodandready/dsh-cron@0.3.14 |
36
- | `dsh-gitea` | Gitea | 132 | @goodandready/dsh-gitea@0.7.36 |
37
- | `dsh-github-ops` | Работа с GitHub | 109 | @goodandready/dsh-github-ops@0.6.5 |
38
- | `dsh-goal` | — | 97 | @goodandready/dsh-goal@0.2.28 |
39
- | `dsh-grok-xsearch` | — | 55 | @goodandready/dsh-grok-xsearch@0.3.30 |
40
- | `dsh-image-gen` | Студия ИИ-изображений | 330 | @goodandready/dsh-image-gen@0.12.8 |
41
- | `dsh-issue-reporter` | Отчёты о проблемах | 99 | @goodandready/dsh-issue-reporter@0.1.14 |
42
- | `dsh-kanban` | Канбан | 420 | @goodandready/dsh-kanban@0.2.33 |
43
- | `dsh-key-rotation` | Ротация ключей | 251 | @goodandready/dsh-key-rotation@0.8.69 |
44
- | `dsh-lanmode` | DeepSeek Harness | 18 | @goodandready/dsh-lanmode@0.8.48 |
45
- | `dsh-live-canvas` | Предпросмотр живого холста | 161 | @goodandready/dsh-live-canvas@0.2.30 |
46
- | `dsh-market` | Магазин плагинов | 733 | dshmarket@1.66.44 |
47
- | `dsh-messenger-gateway` | Шлюз мессенджеров | 138 | @goodandready/dsh-messenger-gateway@0.4.18 |
48
- | `dsh-moa` | Ансамбль агентов (MoA) | 159 | @goodandready/dsh-moa@0.2.53 |
49
- | `dsh-model-sync` | Синхронизация моделей | 167 | @goodandready/dsh-model-sync@0.5.15 |
50
- | `dsh-remote-ssh` | — | 111 | @zhangfengshun/dsh-remote-ssh@2.4.33 |
51
- | `dsh-remote-workspace` | Удалённая рабочая область | 201 | @goodandready/dsh-remote-workspace@0.3.17 |
52
- | `dsh-server-monitor` | Монитор серверов | 168 | @goodandready/dsh-server-monitor@0.1.19 |
53
- | `dsh-session-control` | — | 113 | @goodandready/dsh-session-control@0.2.10 |
54
- | `dsh-shadow-auditor` | Теневой аудитор безопасности | 74 | @goodandready/dsh-shadow-auditor@0.2.35 |
55
- | `dsh-skill-explorer` | — | 75 | @linxin666/dsh-client-ui-skill-explorer@0.4.7 |
56
- | `dsh-ssh` | — | 154 | @linxin666/dsh-ssh@0.4.7 |
57
- | `dsh-subscriptions` | Подписки | 293 | @goodandready/dsh-subscriptions@0.6.72 |
58
- | `dsh-superpower` | Переключатели навыков | 19 | @wenaixi/dsh-superpower@8.0.0 |
59
- | `dsh-time-machine` | Машина времени и точки отката | 41 | @goodandready/dsh-time-machine@0.1.30 |
60
- | `dsh-tts` | Речь | 226 | @goodandready/dsh-tts@0.4.34 |
61
- | `dsh-usage-guard` | Сторож расхода | 42 | @goodandready/dsh-usage-guard@0.1.19 |
62
- | `dsh-vision-bridge` | Зрение | 116 | @goodandready/dsh-vision-bridge@0.6.21 |
63
- | `dsh-voice` | Голос | 321 | @goodandready/dsh-voice@0.9.39 |
64
- | `dsh-web-gateway` | Веб-шлюз | 95 | @goodandready/dsh-web-gateway@0.2.1 |
65
- | `dsh-web-ui-market` | — | 106 | @linxin666/dsh-client-ui-market@0.4.7 |
66
- | `dsh-web-ui-preset-center` | — | 46 | @linxin666/dsh-client-ui-preset-center@0.4.7 |
67
- | `dsh-web-ui-session-archive` | — | 124 | @linxin666/dsh-session-archive@0.4.7 |
68
- | `dsh-web-ui-usage` | — | 63 | @linxin666/dsh-usage@0.4.7 |
69
- | `ego-browser` | ego-browser | 75 | dsh-ego-browser@0.8.6 |
70
- | `feedback` | — | 20 | харнесс |
71
- | `foldPositions` | — | 481 | billion-context@0.1.202 |
72
- | `git-graph` | — | 63 | @linxin666/dsh-client-ui-git-graph@0.4.7 |
73
- | `goal` | — | 12 | харнесс |
74
- | `goodandready-smart-restart` | Сторож перезапуска | 29 | @goodandready/dsh-smart-restart@0.1.9 |
75
- | `inspectorPanel` | Инспектор Node.js | 4 | харнесс |
76
- | `job` | — | 50 | харнесс |
77
- | `liangshen` | — | 42 | @linxin666/dsh-liangshen@0.4.7 |
78
- | `michengai.codexUi` | — | 293 | @michengai/dsh-codex-ui@1.1.42 |
79
- | `model` | — | 23 | харнесс |
80
- | `open-in-app` | — | 45 | харнесс |
81
- | `permission.access` | Права доступа | 20 | харнесс |
82
- | `personalDirective` | Переключение личной директивы | 5 | dsh-personal-directive@0.2.11 |
83
- | `pet` | — | 81 | @linxin666/dsh-pet@0.4.7 |
84
- | `pin` | — | 2 | @vlln/dsh-navbar@0.4.0 |
85
- | `plan` | — | 17 | харнесс |
86
- | `pluginManager` | Плагины | 227 | харнесс |
87
- | `pluginMarket` | Обзор плагинов | 78 | харнесс |
88
- | `question` | — | 31 | харнесс |
89
- | `reference` | — | 15 | харнесс |
90
- | `remote` | Удалённый доступ | 115 | @linxin666/dsh-remote-web-ui@0.4.7 |
91
- | `schedule.catalog` | — | 90 | харнесс |
92
- | `schedule.manager` | Задачи автоматизации | 207 | харнесс |
93
- | `secretMask` | — | 2 | харнесс |
94
- | `session-inspector` | — | 52 | харнесс |
95
- | `session-log-download` | — | 10 | харнесс |
96
- | `settings` | Настройки | 41 | харнесс |
97
- | `settings.account` | Учётная запись | 94 | харнесс |
98
- | `settings.agentLoop` | Цикл агента | 12 | харнесс |
99
- | `settings.agentPreset` | Пресеты агента | 47 | харнесс |
100
- | `settings.commandcode` | Command Code | 224 | @mars-sea/dsh-commandcode-provider@0.14.3 |
101
- | `settings.ip-pool` | Пул IP (opencode2dsh) | 102 | @opencode2dsh/dsh-plugin@0.3.13 |
102
- | `settings.locale` | — | 1 | харнесс |
103
- | `settings.models` | Модели | 134 | харнесс |
104
- | `settings.permission` | Права доступа | 20 | харнесс |
105
- | `settings.pluginConsole` | — | 627 | @noob-stupid/dsh-plugin-console@0.5.92 |
106
- | `settings.pluginInventory` | — | 37 | харнесс |
107
- | `settings.plugins` | Встроенные плагины | 5 | харнесс |
108
- | `settings.sessionLog` | — | 4 | харнесс |
109
- | `settings.shell` | Командная оболочка | 14 | харнесс |
110
- | `settings.subagent` | — | 35 | харнесс |
111
- | `settings.theme` | — | 25 | харнесс |
112
- | `settings.webSearch` | Веб-поиск | 27 | харнесс |
113
- | `shortcuts` | Горячие клавиши | 56 | харнесс |
114
- | `shortcuts.layout` | — | 1 | харнесс |
115
- | `sidebar` | — | 5 | харнесс |
116
- | `sidebarBrowser` | — | 26 | харнесс |
117
- | `sidebarCodePreview` | Код | 3 | харнесс |
118
- | `sidebarDocumentPreview` | — | 22 | харнесс |
119
- | `sidebarExcel` | Таблица | 15 | харнесс |
120
- | `sidebarFiles` | — | 17 | харнесс |
121
- | `sidebarImage` | Изображение | 11 | харнесс |
122
- | `sidebarOffice` | Документ Office | 15 | харнесс |
123
- | `sidebarPdf` | PDF | 15 | харнесс |
124
- | `sidebarRight` | — | 34 | харнесс |
125
- | `sidebarTerminal` | Терминал | 28 | харнесс |
126
- | `skill` | — | 8 | харнесс |
127
- | `slash.menu` | — | 9 | харнесс |
128
- | `subagent` | — | 79 | харнесс |
129
- | `task-board` | — | 437 | @linxin666/dsh-client-ui-task-board@0.4.7 |
130
- | `task-board-github` | — | 113 | @linxin666/dsh-client-ui-task-board-github@0.4.7 |
131
- | `trajectory` | — | 196 | харнесс |
132
- | `univer` | Просмотр Univer | 53 | dsh-univer-office@0.3.7 |
133
- | `update` | — | 43 | @linxin666/dsh-update@0.4.7 |
134
- | `voice-input` | — | 109 | харнесс |
135
- | `web-ui-plugins` | Веб-плагины | 1 | @linxin666/dsh-client-ui-web-ui-settings@0.4.7 |
136
- | `workflowRun` | — | 20 | харнесс |
137
- | `workspace` | — | 131 | харнесс |
138
-
139
- Итого: **123** namespace, **12590** строк.
1
+ <!-- Сгенерировано `npm run namespaces`; проверяется `npm run check:namespaces`. -->
2
+ # Что переведено
3
+
4
+ Пакет переводит **123 namespace** — 12590 строк. Колонка «как это выглядит»
5
+ берёт заголовок самого namespace (то, что читает пользователь), а не отдельное описание:
6
+ список нельзя разойтись с переводами.
7
+
8
+ Колонка «источник» говорит, откуда взят английский текст: «харнесс» — собственные словари
9
+ клиента, «пакет@версия» — словарь стороннего плагина, выгруженный из его собственной
10
+ публикации (`npm run fetch:plugins`). Плагины проверяются теми же правилами, поэтому
11
+ список — это обещание, а не перечень.
12
+
13
+ | namespace | как это выглядит | строк | источник |
14
+ |---|---|---|---|
15
+ | `agent-team` | Команда агентов | 25 | харнесс |
16
+ | `approval` | — | 5 | харнесс |
17
+ | `better-input` | — | 123 | dsh-better-input@0.2.6 |
18
+ | `betterSidebar` | — | 627 | dsh-better-sidebar@0.28.0 |
19
+ | `chat` | — | 200 | харнесс |
20
+ | `claude-code-mods` | — | 4 | харнесс |
21
+ | `command` | — | 28 | харнесс |
22
+ | `common` | — | 41 | харнесс |
23
+ | `config-manager` | — | 36 | dsh-config-manager@0.1.78 |
24
+ | `conversation` | — | 379 | харнесс |
25
+ | `cordis` | — | 51 | харнесс |
26
+ | `cotTranslation` | — | 32 | харнесс |
27
+ | `deepseek-model-label-1017` | — | 1 | харнесс |
28
+ | `deliverables` | — | 60 | харнесс |
29
+ | `documentHtml` | HTML | 4 | харнесс |
30
+ | `documentMarkdown` | — | 4 | харнесс |
31
+ | `dsh-approval-gate` | Шлюз подтверждений | 30 | @goodandready/dsh-approval-gate@0.1.30 |
32
+ | `dsh-clinebot` | ClineBot | 206 | @goodandready/dsh-clinebot@0.5.33 |
33
+ | `dsh-context-lens` | Линза контекста | 11 | @goodandready/dsh-context-lens@0.1.34 |
34
+ | `dsh-cost-meter` | Счётчик расходов | 85 | @goodandready/dsh-cost-meter@0.8.22 |
35
+ | `dsh-cron` | — | 396 | @goodandready/dsh-cron@0.3.14 |
36
+ | `dsh-gitea` | Gitea | 132 | @goodandready/dsh-gitea@0.7.36 |
37
+ | `dsh-github-ops` | Работа с GitHub | 109 | @goodandready/dsh-github-ops@0.6.5 |
38
+ | `dsh-goal` | — | 97 | @goodandready/dsh-goal@0.2.28 |
39
+ | `dsh-grok-xsearch` | — | 55 | @goodandready/dsh-grok-xsearch@0.3.30 |
40
+ | `dsh-image-gen` | Студия ИИ-изображений | 330 | @goodandready/dsh-image-gen@0.12.8 |
41
+ | `dsh-issue-reporter` | Отчёты о проблемах | 99 | @goodandready/dsh-issue-reporter@0.1.14 |
42
+ | `dsh-kanban` | Канбан | 420 | @goodandready/dsh-kanban@0.2.33 |
43
+ | `dsh-key-rotation` | Ротация ключей | 251 | @goodandready/dsh-key-rotation@0.8.69 |
44
+ | `dsh-lanmode` | DeepSeek Harness | 18 | @goodandready/dsh-lanmode@0.8.48 |
45
+ | `dsh-live-canvas` | Предпросмотр живого холста | 161 | @goodandready/dsh-live-canvas@0.2.30 |
46
+ | `dsh-market` | Магазин плагинов | 733 | dshmarket@1.66.44 |
47
+ | `dsh-messenger-gateway` | Шлюз мессенджеров | 138 | @goodandready/dsh-messenger-gateway@0.4.18 |
48
+ | `dsh-moa` | Ансамбль агентов (MoA) | 159 | @goodandready/dsh-moa@0.2.53 |
49
+ | `dsh-model-sync` | Синхронизация моделей | 167 | @goodandready/dsh-model-sync@0.5.15 |
50
+ | `dsh-remote-ssh` | — | 111 | @zhangfengshun/dsh-remote-ssh@2.4.33 |
51
+ | `dsh-remote-workspace` | Удалённая рабочая область | 201 | @goodandready/dsh-remote-workspace@0.3.17 |
52
+ | `dsh-server-monitor` | Монитор серверов | 168 | @goodandready/dsh-server-monitor@0.1.19 |
53
+ | `dsh-session-control` | — | 113 | @goodandready/dsh-session-control@0.2.10 |
54
+ | `dsh-shadow-auditor` | Теневой аудитор безопасности | 74 | @goodandready/dsh-shadow-auditor@0.2.35 |
55
+ | `dsh-skill-explorer` | — | 75 | @linxin666/dsh-client-ui-skill-explorer@0.4.7 |
56
+ | `dsh-ssh` | — | 154 | @linxin666/dsh-ssh@0.4.7 |
57
+ | `dsh-subscriptions` | Подписки | 293 | @goodandready/dsh-subscriptions@0.6.72 |
58
+ | `dsh-superpower` | Переключатели навыков | 19 | @wenaixi/dsh-superpower@8.0.0 |
59
+ | `dsh-time-machine` | Машина времени и точки отката | 41 | @goodandready/dsh-time-machine@0.1.30 |
60
+ | `dsh-tts` | Речь | 226 | @goodandready/dsh-tts@0.4.34 |
61
+ | `dsh-usage-guard` | Сторож расхода | 42 | @goodandready/dsh-usage-guard@0.1.19 |
62
+ | `dsh-vision-bridge` | Зрение | 116 | @goodandready/dsh-vision-bridge@0.6.21 |
63
+ | `dsh-voice` | Голос | 321 | @goodandready/dsh-voice@0.9.39 |
64
+ | `dsh-web-gateway` | Веб-шлюз | 95 | @goodandready/dsh-web-gateway@0.2.1 |
65
+ | `dsh-web-ui-market` | — | 106 | @linxin666/dsh-client-ui-market@0.4.7 |
66
+ | `dsh-web-ui-preset-center` | — | 46 | @linxin666/dsh-client-ui-preset-center@0.4.7 |
67
+ | `dsh-web-ui-session-archive` | — | 124 | @linxin666/dsh-session-archive@0.4.7 |
68
+ | `dsh-web-ui-usage` | — | 63 | @linxin666/dsh-usage@0.4.7 |
69
+ | `ego-browser` | ego-browser | 75 | dsh-ego-browser@0.8.6 |
70
+ | `feedback` | — | 20 | харнесс |
71
+ | `foldPositions` | — | 481 | billion-context@0.1.202 |
72
+ | `git-graph` | — | 63 | @linxin666/dsh-client-ui-git-graph@0.4.7 |
73
+ | `goal` | — | 12 | харнесс |
74
+ | `goodandready-smart-restart` | Сторож перезапуска | 29 | @goodandready/dsh-smart-restart@0.1.9 |
75
+ | `inspectorPanel` | Инспектор Node.js | 4 | харнесс |
76
+ | `job` | — | 50 | харнесс |
77
+ | `liangshen` | — | 42 | @linxin666/dsh-liangshen@0.4.7 |
78
+ | `michengai.codexUi` | — | 293 | @michengai/dsh-codex-ui@1.1.42 |
79
+ | `model` | — | 23 | харнесс |
80
+ | `open-in-app` | — | 45 | харнесс |
81
+ | `permission.access` | Права доступа | 20 | харнесс |
82
+ | `personalDirective` | Переключение личной директивы | 5 | dsh-personal-directive@0.2.11 |
83
+ | `pet` | — | 81 | @linxin666/dsh-pet@0.4.7 |
84
+ | `pin` | — | 2 | @vlln/dsh-navbar@0.4.0 |
85
+ | `plan` | — | 17 | харнесс |
86
+ | `pluginManager` | Плагины | 227 | харнесс |
87
+ | `pluginMarket` | Обзор плагинов | 78 | харнесс |
88
+ | `question` | — | 31 | харнесс |
89
+ | `reference` | — | 15 | харнесс |
90
+ | `remote` | Удалённый доступ | 115 | @linxin666/dsh-remote-web-ui@0.4.7 |
91
+ | `schedule.catalog` | — | 90 | харнесс |
92
+ | `schedule.manager` | Задачи автоматизации | 207 | харнесс |
93
+ | `secretMask` | — | 2 | харнесс |
94
+ | `session-inspector` | — | 52 | харнесс |
95
+ | `session-log-download` | — | 10 | харнесс |
96
+ | `settings` | Настройки | 41 | харнесс |
97
+ | `settings.account` | Учётная запись | 94 | харнесс |
98
+ | `settings.agentLoop` | Цикл агента | 12 | харнесс |
99
+ | `settings.agentPreset` | Пресеты агента | 47 | харнесс |
100
+ | `settings.commandcode` | Command Code | 224 | @mars-sea/dsh-commandcode-provider@0.14.3 |
101
+ | `settings.ip-pool` | Пул IP (opencode2dsh) | 102 | @opencode2dsh/dsh-plugin@0.3.13 |
102
+ | `settings.locale` | — | 1 | харнесс |
103
+ | `settings.models` | Модели | 134 | харнесс |
104
+ | `settings.permission` | Права доступа | 20 | харнесс |
105
+ | `settings.pluginConsole` | — | 627 | @noob-stupid/dsh-plugin-console@0.5.92 |
106
+ | `settings.pluginInventory` | — | 37 | харнесс |
107
+ | `settings.plugins` | Встроенные плагины | 5 | харнесс |
108
+ | `settings.sessionLog` | — | 4 | харнесс |
109
+ | `settings.shell` | Командная оболочка | 14 | харнесс |
110
+ | `settings.subagent` | — | 35 | харнесс |
111
+ | `settings.theme` | — | 25 | харнесс |
112
+ | `settings.webSearch` | Веб-поиск | 27 | харнесс |
113
+ | `shortcuts` | Горячие клавиши | 56 | харнесс |
114
+ | `shortcuts.layout` | — | 1 | харнесс |
115
+ | `sidebar` | — | 5 | харнесс |
116
+ | `sidebarBrowser` | — | 26 | харнесс |
117
+ | `sidebarCodePreview` | Код | 3 | харнесс |
118
+ | `sidebarDocumentPreview` | — | 22 | харнесс |
119
+ | `sidebarExcel` | Таблица | 15 | харнесс |
120
+ | `sidebarFiles` | — | 17 | харнесс |
121
+ | `sidebarImage` | Изображение | 11 | харнесс |
122
+ | `sidebarOffice` | Документ Office | 15 | харнесс |
123
+ | `sidebarPdf` | PDF | 15 | харнесс |
124
+ | `sidebarRight` | — | 34 | харнесс |
125
+ | `sidebarTerminal` | Терминал | 28 | харнесс |
126
+ | `skill` | — | 8 | харнесс |
127
+ | `slash.menu` | — | 9 | харнесс |
128
+ | `subagent` | — | 79 | харнесс |
129
+ | `task-board` | — | 437 | @linxin666/dsh-client-ui-task-board@0.4.7 |
130
+ | `task-board-github` | — | 113 | @linxin666/dsh-client-ui-task-board-github@0.4.7 |
131
+ | `trajectory` | — | 196 | харнесс |
132
+ | `univer` | Просмотр Univer | 53 | dsh-univer-office@0.3.7 |
133
+ | `update` | — | 43 | @linxin666/dsh-update@0.4.7 |
134
+ | `voice-input` | — | 109 | харнесс |
135
+ | `web-ui-plugins` | Веб-плагины | 1 | @linxin666/dsh-client-ui-web-ui-settings@0.4.7 |
136
+ | `workflowRun` | — | 20 | харнесс |
137
+ | `workspace` | — | 131 | харнесс |
138
+
139
+ Итого: **123** namespace, **12590** строк.
package/README.en.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.11",
4
+ "version": "0.2.12",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
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.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
@@ -105,7 +105,7 @@ two (the message names the version) or drop the `minimumReleaseAge` limit in the
105
105
  settings.
106
106
  The manifest is checked against the harness's own rules rather than by eye (`npm run check:manifest`, part of `verify`). Each rule was read out of the harness sources and each is a failure the user would otherwise meet first: `parseDshClient` accepts `platform` as any string while the consumers keep only `platform === 'web'`, so a typo like `'Web'` would **silently drop** the client half; a declared `dsh.client` without the `./client` export makes `client-modules` throw; and `dsh.bundle.patch` has to point at a file that exists.
107
107
 
108
- Installing from GitHub works too: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (the form the plugin catalogue generates, without the npm scope) installs the repository archive, and the built `lib/` is committed — no build runs on your machine, and none is needed. That is exactly why `npm run check:built` (part of `verify`) rebuilds `lib/` and compares it with the commit: a stale bundle in git would reach the user, while the audit would never see it, because the audit reads the sources. The published package is 693 kB: the banner ships as JPEG, and the icon and source map stay out of the npm payload.
108
+ Installing from GitHub works too: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (the form the plugin catalogue generates, without the npm scope) installs the repository archive, and the built `lib/` is committed — no build runs on your machine, and none is needed. That is exactly why `npm run check:built` (part of `verify`) rebuilds `lib/` and compares it with the commit: a stale bundle in git would reach the user, while the audit would never see it, because the audit reads the sources. The published package is 695 kB: the banner ships as JPEG, and the icon and source map stay out of the npm payload.
109
109
 
110
110
  ## Why hybrid
111
111
 
@@ -175,11 +175,12 @@ resolves that map without consulting registered dictionaries — its own documen
175
175
  plugin's name: the pack has no access to another package's map, and the English name stays
176
176
  English until the plugin itself ships `locale/ru.json`.
177
177
 
178
- The pack carries those names itself: 59 plugins, each with the English title and description
179
- the translation was made from, and the Russian text. The rendered interface passes through a
180
- pass that puts the Russian text where the English was — in the plugin cards, in the rows of a
181
- bundle, on a plugin's page and in the settings inventory. The accessible name (`aria-label`)
182
- is replaced too, so a card is read in Russian as a whole.
178
+ The pack carries those names itself: the names of the 32 harness plugins and the names and
179
+ descriptions of 32 third-party plugins whose dictionaries it translates. Each comes with the
180
+ English text the translation was made from and the Russian text. The rendered interface passes
181
+ through a pass that puts the Russian text where the English was — in the plugin cards, in the
182
+ rows of a bundle, on a plugin's page and in the settings inventory. The accessible name
183
+ (`aria-label`) is replaced too, so a card is read in Russian as a whole.
183
184
 
184
185
  The pass matches exactly: a string is replaced only when the whole string is one of the titles
185
186
  or descriptions the pack knows. A sentence that merely mentions a name keeps its wording;
@@ -190,7 +191,11 @@ The same 32 names go to the harness as a patch (`docs/harness-descriptors-ru.pat
190
191
  harness interface the plugins are named in Russian, and the patch gets there first. The patch
191
192
  is a build artefact — it is built from the translations and the harness tree, and the gate
192
193
  `npm run check:descriptor-patch` fails when the built patch and the committed one differ.
193
- `npm run check:plugin-names` proves on a real document (jsdom, 11 cases) that the pass
194
+ The third-party names live in `src/client/plugin-names-ru.json`: the file is built from the
195
+ vendored plugin dictionaries (`npm run build:plugin-names`), and the gate
196
+ `npm run check:plugin-names:map` fails when the map has drifted from the dictionaries. The same
197
+ English name cannot be translated two ways — differently in the harness and in a plugin.
198
+ `npm run check:plugin-names` proves on a real document (jsdom, 12 cases) that the pass
194
199
  translates the title, the description, the accessible name and a bundle row — and leaves what
195
200
  it must alone.
196
201
 
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.11",
4
+ "version": "0.2.12",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
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.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
@@ -114,7 +114,7 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
114
114
  половину; declared `dsh.client` без экспорта `./client` заставляет `client-modules` бросить
115
115
  ошибку; `dsh.bundle.patch` обязан указывать на существующий файл.
116
116
 
117
- Установка из GitHub тоже работает: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (в таком виде команду генерирует каталог плагинов, без `@`-скоупа) ставит архив репозитория, а собранный `lib/` лежит в git — сборка на вашей машине не запускается и не требуется. Поэтому `npm run check:built` (входит в `verify`) пересобирает `lib/` и сверяет его с коммитом: устаревший бандл в git иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает 693 КБ: баннер отдаётся JPEG, а иконка и карта исходников в npm не входят.
117
+ Установка из GitHub тоже работает: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (в таком виде команду генерирует каталог плагинов, без `@`-скоупа) ставит архив репозитория, а собранный `lib/` лежит в git — сборка на вашей машине не запускается и не требуется. Поэтому `npm run check:built` (входит в `verify`) пересобирает `lib/` и сверяет его с коммитом: устаревший бандл в git иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает 695 КБ: баннер отдаётся JPEG, а иконка и карта исходников в npm не входят.
118
118
 
119
119
  ## Почему гибрид
120
120
 
@@ -185,11 +185,12 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
185
185
  перевести — у пакета нет доступа к чужой карте, и английское название остаётся английским,
186
186
  пока сам плагин не привезёт `locale/ru.json`.
187
187
 
188
- Пакет несёт эти названия сам: 59 плагинов, у каждого английское название и описание — то, из
189
- чего перевод сделан, — и русское. Отрисованный интерфейс проходит через проход, который
190
- подставляет русский текст на место английского: в карточках плагинов, в строках состава
191
- bundle, на странице плагина и в реестре настроек. Подменяется и имя для скринридера
192
- (`aria-label`), чтобы карточка читалась по-русски целиком.
188
+ Пакет несёт эти названия сам: названия 32 плагинов харнесса и названия с описаниями 32
189
+ сторонних плагинов, чьи словари он переводит. У каждого — английский текст, из которого сделан
190
+ перевод, и русский. Отрисованный интерфейс проходит через проход, который подставляет
191
+ русский текст на место английского: в карточках плагинов, в строках состава bundle, на
192
+ странице плагина и в реестре настроек. Подменяется и имя для скринридера (`aria-label`),
193
+ чтобы карточка читалась по-русски целиком.
193
194
 
194
195
  Проход берёт только точное совпадение: строка целиком равна названию или описанию из пакета.
195
196
  Предложение, в котором название лишь упомянуто, остаётся как было; код, поля ввода и переписка
@@ -199,7 +200,11 @@ bundle, на странице плагина и в реестре настрое
199
200
  интерфейсе самого харнесса плагины называются по-русски, и патч этот до начала. Патч —
200
201
  собираемый артефакт: он строится из переводов и дерева харнесса, а гейт
201
202
  `npm run check:descriptor-patch` падает, когда собранный и лежащий в репозитории разошлись.
202
- `npm run check:plugin-names` доказывает на настоящем документе (jsdom, 11 случаев), что проход
203
+ Сторонние названия лежат в `src/client/plugin-names-ru.json`: файл собирается из
204
+ выгруженных словарей плагинов (`npm run build:plugin-names`), а гейт
205
+ `npm run check:plugin-names:map` падает, когда карта разошлась со словарями. Одно и то же
206
+ английское название не может быть переведено дважды — по-разному у харнесса и у плагина.
207
+ `npm run check:plugin-names` доказывает на настоящем документе (jsdom, 12 случаев), что проход
203
208
  переводит название, описание, имя для скринридера и строку bundle — и не трогает то, что не
204
209
  должен.
205
210
 
package/README.zh.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.11",
4
+ "version": "0.2.12",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
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.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
@@ -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 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 693 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 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 695 KB:横幅以 JPEG 提供,图标与源码映射不进入 npm 包。
94
94
 
95
95
  ## 为什么是混合插件
96
96
 
@@ -123,11 +123,11 @@ 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
- 本包自带这些名称:59 个插件,每个都记着翻译所依据的英文标题与说明,以及俄文文本。已经渲染出来的界面会经过一个处理流程,把俄文放到英文的位置上:插件卡片、bundle 的组成行、插件详情页以及设置中的插件清单。朗读用的名称(`aria-label`)也会一并替换,因此整张卡片读起来都是俄文。
126
+ 本包自带这些名称:32 个 harness 插件的名称,以及 32 个第三方插件的名称与说明(这些插件的词典本包在翻译)。每一项都记着翻译所依据的英文文本和俄文文本。已经渲染出来的界面会经过一个处理流程,把俄文放到英文的位置上:插件卡片、bundle 的组成行、插件详情页以及设置中的插件清单。朗读用的名称(`aria-label`)也会一并替换,因此整张卡片读起来都是俄文。
127
127
 
128
128
  这个流程只做精确匹配:整段文本与本包知道的标题或说明完全相同时才会替换。只是提到了某个名称的句子保持原样;代码、输入框和对话不会被触碰。与排版流程一样,它只在俄文是当前语言时工作。
129
129
 
130
- 同样这 32 个名称会作为补丁(`docs/harness-descriptors-ru.patch`)送到 harness:在 harness 自己的界面里插件也有俄文名称,而这个补丁先到。补丁是构建产物——它由翻译和 harness 目录树生成,门禁 `npm run check:descriptor-patch` 在生成的补丁与仓库里那份不一致时失败。`npm run check:plugin-names` 在真实文档上证明(jsdom,11 个用例)这个流程会翻译标题、说明、朗读名称和 bundle 的一行,而该不动的它不动。
130
+ 同样这 32 个名称会作为补丁(`docs/harness-descriptors-ru.patch`)送到 harness:在 harness 自己的界面里插件也有俄文名称,而这个补丁先到。补丁是构建产物——它由翻译和 harness 目录树生成,门禁 `npm run check:descriptor-patch` 在生成的补丁与仓库里那份不一致时失败。第三方插件的名称放在 `src/client/plugin-names-ru.json`:这个文件由插件词典生成(`npm run build:plugin-names`),门禁 `npm run check:plugin-names:map` 在它与词典不一致时失败。同一个英文名称不能有两种译法——harness 与插件各说各话。`npm run check:plugin-names` 在真实文档上证明(jsdom,12 个用例)这个流程会翻译标题、说明、朗读名称和 bundle 的一行,而该不动的它不动。
131
131
 
132
132
 
133
133
  ## 检查
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'
package/lib/client.js CHANGED
@@ -13213,6 +13213,49 @@ window.__ModuleLoader__.load({
13213
13213
  }
13214
13214
  };
13215
13215
  //#endregion
13216
+ //#region src/client/plugin-names-ru.json
13217
+ var pairs = {
13218
+ "AI Image Studio": "Студия ИИ-изображений",
13219
+ "Approval Gate": "Шлюз подтверждений",
13220
+ "Context Lens": "Линза контекста",
13221
+ "Cost Meter": "Счётчик расходов",
13222
+ "Ensemble model orchestration: parallel candidate proposals + judge synthesis via /moa <prompt>.": "Оркестрация ансамбля агентов: параллельные предложения кандидатов и синтез судьи по команде /moa <запрос>.",
13223
+ "GitHub ops": "Работа с GitHub",
13224
+ "Gitea or Forgejo tools and credentials.": "Инструменты и учётные данные Gitea или Forgejo.",
13225
+ "Goal Mode & Autonomous Loop": "Режим цели и автономный цикл",
13226
+ "Grok X Search & Intelligence Suite": "Grok X Search и набор инструментов аналитики",
13227
+ "Interactive in-browser canvas for real-time preview of HTML (with Tailwind CSS & Lucide icons), React components, SVGs, and diagrams with workspace file discovery, session switcher, props controls, visual diffs, device matrix, AI mock data, 1-click Vite project packager, and Better Sidebar integration.": "Интерактивный холст прямо в браузере для предпросмотра в реальном времени: HTML (с Tailwind CSS и иконками Lucide), компоненты React, SVG и схемы, а также поиск файлов рабочей области, переключатель сессий, управление свойствами, визуальные различия, матрица устройств, фиктивные данные от ИИ, сборка проекта Vite в один клик и интеграция с Better Sidebar.",
13228
+ "Issue Reporter": "Отчёты о проблемах",
13229
+ "Kanban": "Канбан",
13230
+ "Key Rotation": "Ротация ключей",
13231
+ "Live Canvas Preview": "Предпросмотр живого холста",
13232
+ "Messenger gateway": "Шлюз мессенджеров",
13233
+ "Mixture of Agents (MoA)": "Ансамбль агентов (MoA)",
13234
+ "Model synchronization": "Синхронизация моделей",
13235
+ "Per-provider API key rotation. For each provider, list its API keys (env names, stored in DSH credentials). The plugin routes a model through that provideru2019s keys in order and switches to the next on a quota/rate-limit failure.": "Ротация ключей API по провайдерам. Для каждого провайдера перечислите его ключи API (имена переменных окружения, хранящиеся в учётных данных DSH). Плагин направляет модель по ключам этого провайдера по порядку и переключается на следующий при отказе по квоте или лимиту запросов.",
13236
+ "Plugin Market": "Магазин плагинов",
13237
+ "Refresh model catalogs for API-key providers. A dry-run is the default; applying changes is explicit.": "Обновить каталоги моделей для провайдеров с API-ключом. По умолчанию выполняется пробный прогон; изменения применяются явно.",
13238
+ "Remote Workspace": "Удалённая рабочая область",
13239
+ "Remote access": "Удалённый доступ",
13240
+ "Restart guard": "Сторож перезапуска",
13241
+ "Server Monitor": "Монитор серверов",
13242
+ "Shadow Security Auditor": "Теневой аудитор безопасности",
13243
+ "Skill switches": "Переключатели навыков",
13244
+ "Speech": "Речь",
13245
+ "Subscriptions": "Подписки",
13246
+ "Telegram bot: text, voice, photos, documents, and interactive asks.": "Бот Telegram: текст, голос, фотографии, документы и интерактивные вопросы.",
13247
+ "Time Machine & Checkpoints": "Машина времени и точки отката",
13248
+ "Toggle personal directive": "Переключение личной директивы",
13249
+ "Turn a DSH plugin problem into a reviewable issue with automated diagnostics and previews.": "Оформите проблему с плагином DSH как задачу для проверки — с автоматической диагностикой и предпросмотром.",
13250
+ "Univer Preview": "Просмотр Univer",
13251
+ "Usage Guard": "Сторож расхода",
13252
+ "Verified restart: the boot is checked, the verdict comes back to the session that asked, and the work resumes.": "Проверенный перезапуск: запуск проверяется, вердикт возвращается в сессию, которая его запросила, и работа продолжается.",
13253
+ "Vision": "Зрение",
13254
+ "Voice": "Голос",
13255
+ "Web Gateway": "Веб-шлюз",
13256
+ "Web Plugins": "Веб-плагины"
13257
+ };
13258
+ //#endregion
13216
13259
  //#region src/client/typography.ts
13217
13260
  /**
13218
13261
  * Russian screen typography for translated strings.
@@ -13341,6 +13384,12 @@ window.__ModuleLoader__.load({
13341
13384
  *
13342
13385
  * The pass follows the active language like the typography pass: the names are Russian,
13343
13386
  * so an English interface must keep its English names.
13387
+ *
13388
+ * Two sources of names. `descriptor-ru.json` holds the plugins of the harness itself,
13389
+ * whose descriptions the harness publishes. `plugin-names-ru.json` holds the
13390
+ * third-party plugins whose dictionaries this pack carries: the English text comes
13391
+ * from the plugin's own publication and the Russian from the same dictionary, so the
13392
+ * pair is the plugin's own wording and not a guess.
13344
13393
  */
13345
13394
  /**
13346
13395
  * The texts the pass replaces, longest English first: a shorter name that is a prefix
@@ -13357,6 +13406,14 @@ window.__ModuleLoader__.load({
13357
13406
  russian
13358
13407
  });
13359
13408
  }
13409
+ const pairs$1 = pairs ?? {};
13410
+ for (const [english, russian] of Object.entries(pairs$1)) {
13411
+ if (english === russian) continue;
13412
+ texts.push({
13413
+ english,
13414
+ russian
13415
+ });
13416
+ }
13360
13417
  return texts.sort((left, right) => right.english.length - left.english.length);
13361
13418
  }
13362
13419
  /** Every text the pass knows, by its English form. */
package/package.json CHANGED
@@ -1,134 +1,136 @@
1
- {
2
- "name": "@ragnoryok1/dsh-client-locale-ru",
3
- "description": "dsh language pack — i18n for the DeepSeek Harness Web GUI: Russian (ru) locale, 123 namespaces, 12590 strings, 59 third-party plugin dictionaries, ru plural forms",
4
- "version": "0.2.11",
5
- "keywords": [
6
- "dsh",
7
- "deepseek-harness",
8
- "dsh-plugin",
9
- "dsh-language-pack",
10
- "dsh-locale",
11
- "dsh-i18n",
12
- "dsh-russian",
13
- "language-pack",
14
- "locale",
15
- "i18n",
16
- "l10n",
17
- "localization",
18
- "localisation",
19
- "russian",
20
- "ru",
21
- "русский",
22
- "перевод",
23
- "локализация",
24
- "typography",
25
- "cordis",
26
- "cordis-plugin"
27
- ],
28
- "publishConfig": {
29
- "access": "public"
30
- },
31
- "repository": {
32
- "type": "git",
33
- "url": "git+https://github.com/Ragnoryok1/dsh-client-locale-ru.git"
34
- },
35
- "homepage": "https://github.com/Ragnoryok1/dsh-client-locale-ru#readme",
36
- "bugs": {
37
- "url": "https://github.com/Ragnoryok1/dsh-client-locale-ru/issues"
38
- },
39
- "author": "Ragnoryok1",
40
- "type": "module",
41
- "main": "lib/index.js",
42
- "types": "lib/index.d.ts",
43
- "exports": {
44
- ".": {
45
- "types": "./lib/index.d.ts",
46
- "default": "./lib/index.js"
47
- },
48
- "./client": {
49
- "default": "./lib/client.js"
50
- },
51
- "./typography": {
52
- "types": "./lib/typography.d.ts",
53
- "default": "./lib/typography.js"
54
- },
55
- "./cordis.patch.yml": "./cordis.patch.yml",
56
- "./package.json": "./package.json"
57
- },
58
- "dsh": {
59
- "bundle": {
60
- "patch": "./cordis.patch.yml"
61
- },
62
- "client": {
63
- "inject": [
64
- "@deepseek-ai/dsh-client-locale"
65
- ],
66
- "platform": "web"
67
- }
68
- },
69
- "scripts": {
70
- "build": "tsdown && node scripts/normalize-map.mjs",
71
- "check:readmes": "node scripts/check-readmes.mjs",
72
- "check:typography": "node scripts/check-typography.mjs",
73
- "check:typography:dom": "node scripts/check-typography-dom.mjs",
74
- "check:locale": "node scripts/check-locale.mjs",
75
- "check:plural": "node scripts/check-plural.mjs",
76
- "check:upstream": "node scripts/watch-upstream.mjs --self-test",
77
- "check:compat": "node scripts/check-compat.mjs",
78
- "check:peers": "node scripts/check-peers.mjs",
79
- "check:manifest": "node scripts/check-manifest.mjs",
80
- "check:built": "node scripts/check-built.mjs",
81
- "check:size": "node scripts/check-size.mjs",
82
- "audit": "node scripts/audit.mjs",
83
- "verify": "npm run check:readmes && npm run check:readmes:pairs && npm run check:changelog && npm run check:manifest && npm run check:meta && npm run check:built && npm run check:size && npm run check:tarball && npm run check:typography && npm run check:typography:dom && npm run check:locale && npm run check:plural && npm run check:composition && npm run check:namespaces && npm run check:upstream && npm run check:peers && npm run check:workflows && npm run check:workflow-yaml && npm run check:release-race && npm run check:conflict-notice && npm run check:descriptors && npm run check:descriptor-patch && npm run check:plugin-names && node scripts/audit.mjs",
84
- "prepublishOnly": "npm run build",
85
- "check:composition": "node scripts/check-composition.mjs",
86
- "namespaces": "node scripts/namespaces.mjs",
87
- "check:namespaces": "node scripts/namespaces.mjs --check",
88
- "readmes:record": "node scripts/readmes-pairs.mjs --record",
89
- "check:readmes:pairs": "node scripts/readmes-pairs.mjs",
90
- "check:workflows": "node scripts/check-workflows.mjs",
91
- "check:changelog": "node scripts/check-changelog.mjs",
92
- "check:tarball": "node scripts/check-tarball.mjs",
93
- "diff:harness": "node scripts/diff-harness.mjs",
94
- "fetch:plugins": "node scripts/fetch-plugin-dicts.mjs",
95
- "report:plugins": "node scripts/report-plugins.mjs",
96
- "report:descriptors": "node scripts/descriptor-coverage.mjs",
97
- "apply:descriptors": "node scripts/apply-descriptor-ru.mjs",
98
- "check:descriptors": "node scripts/apply-descriptor-ru.mjs --check",
99
- "check:descriptor-patch": "node scripts/check-descriptor-patch.mjs",
100
- "check:plugin-names": "node scripts/check-plugin-names-dom.mjs",
101
- "build:descriptor-patch": "node scripts/build-descriptor-patch.mjs --write",
102
- "release:status": "node scripts/release-status.mjs",
103
- "check:meta": "node scripts/check-meta.mjs",
104
- "check:workflow-yaml": "node scripts/check-workflow-yaml.mjs",
105
- "check:release-race": "node scripts/check-release-race.mjs",
106
- "check:conflict-notice": "node scripts/check-conflict-notice.mjs"
107
- },
108
- "license": "MIT",
109
- "peerDependencies": {
110
- "@deepseek-ai/cordis": "^4.0.2 || >=4.0.5-0 <4.0.6-0",
111
- "@deepseek-ai/dsh-client-locale": ">=0.1.0-rc.2 <0.1.1-0 || >=0.1.1-0 <0.1.2-0 || >=0.1.2-0 <0.1.3-0 || >=0.1.3-0 <0.1.5-0 || >=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0 || >=0.1.7-0 <0.2.0-0 || >=0.2.0-rc.1 <0.2.1-0 || >=0.2.1-0 <0.3.0-0"
112
- },
113
- "devDependencies": {
114
- "@deepseek-ai/cordis": "4.0.5",
115
- "@deepseek-ai/dsh-client-locale": "0.2.1-rc.2",
116
- "jsdom": "^30.1.2",
117
- "semver": "^7.8.5",
118
- "tsdown": "^0.22.2",
119
- "typescript": "^5.6.0"
120
- },
121
- "files": [
122
- "lib/*.js",
123
- "lib/*.d.ts",
124
- "images/",
125
- "assets/banner.jpg",
126
- "cordis.patch.yml",
127
- "README.md",
128
- "CHANGELOG.md",
129
- "LICENSE",
130
- "README.en.md",
131
- "README.zh.md",
132
- "NAMESPACES.md"
133
- ]
134
- }
1
+ {
2
+ "name": "@ragnoryok1/dsh-client-locale-ru",
3
+ "description": "dsh language pack — i18n for the DeepSeek Harness Web GUI: Russian (ru) locale, 123 namespaces, 12590 strings, 59 third-party plugin dictionaries, ru plural forms",
4
+ "version": "0.2.12",
5
+ "keywords": [
6
+ "dsh",
7
+ "deepseek-harness",
8
+ "dsh-plugin",
9
+ "dsh-language-pack",
10
+ "dsh-locale",
11
+ "dsh-i18n",
12
+ "dsh-russian",
13
+ "language-pack",
14
+ "locale",
15
+ "i18n",
16
+ "l10n",
17
+ "localization",
18
+ "localisation",
19
+ "russian",
20
+ "ru",
21
+ "русский",
22
+ "перевод",
23
+ "локализация",
24
+ "typography",
25
+ "cordis",
26
+ "cordis-plugin"
27
+ ],
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/Ragnoryok1/dsh-client-locale-ru.git"
34
+ },
35
+ "homepage": "https://github.com/Ragnoryok1/dsh-client-locale-ru#readme",
36
+ "bugs": {
37
+ "url": "https://github.com/Ragnoryok1/dsh-client-locale-ru/issues"
38
+ },
39
+ "author": "Ragnoryok1",
40
+ "type": "module",
41
+ "main": "lib/index.js",
42
+ "types": "lib/index.d.ts",
43
+ "exports": {
44
+ ".": {
45
+ "types": "./lib/index.d.ts",
46
+ "default": "./lib/index.js"
47
+ },
48
+ "./client": {
49
+ "default": "./lib/client.js"
50
+ },
51
+ "./typography": {
52
+ "types": "./lib/typography.d.ts",
53
+ "default": "./lib/typography.js"
54
+ },
55
+ "./cordis.patch.yml": "./cordis.patch.yml",
56
+ "./package.json": "./package.json"
57
+ },
58
+ "dsh": {
59
+ "bundle": {
60
+ "patch": "./cordis.patch.yml"
61
+ },
62
+ "client": {
63
+ "inject": [
64
+ "@deepseek-ai/dsh-client-locale"
65
+ ],
66
+ "platform": "web"
67
+ }
68
+ },
69
+ "scripts": {
70
+ "build": "tsdown && node scripts/normalize-map.mjs",
71
+ "check:readmes": "node scripts/check-readmes.mjs",
72
+ "check:typography": "node scripts/check-typography.mjs",
73
+ "check:typography:dom": "node scripts/check-typography-dom.mjs",
74
+ "check:locale": "node scripts/check-locale.mjs",
75
+ "check:plural": "node scripts/check-plural.mjs",
76
+ "check:upstream": "node scripts/watch-upstream.mjs --self-test",
77
+ "check:compat": "node scripts/check-compat.mjs",
78
+ "check:peers": "node scripts/check-peers.mjs",
79
+ "check:manifest": "node scripts/check-manifest.mjs",
80
+ "check:built": "node scripts/check-built.mjs",
81
+ "check:size": "node scripts/check-size.mjs",
82
+ "audit": "node scripts/audit.mjs",
83
+ "verify": "npm run check:readmes && npm run check:readmes:pairs && npm run check:changelog && npm run check:manifest && npm run check:meta && npm run check:built && npm run check:size && npm run check:tarball && npm run check:typography && npm run check:typography:dom && npm run check:locale && npm run check:plural && npm run check:composition && npm run check:namespaces && npm run check:upstream && npm run check:peers && npm run check:workflows && npm run check:workflow-yaml && npm run check:release-race && npm run check:conflict-notice && npm run check:descriptors && npm run check:descriptor-patch && npm run check:plugin-names && npm run check:plugin-names:map && node scripts/audit.mjs",
84
+ "prepublishOnly": "npm run build",
85
+ "check:composition": "node scripts/check-composition.mjs",
86
+ "namespaces": "node scripts/namespaces.mjs",
87
+ "check:namespaces": "node scripts/namespaces.mjs --check",
88
+ "readmes:record": "node scripts/readmes-pairs.mjs --record",
89
+ "check:readmes:pairs": "node scripts/readmes-pairs.mjs",
90
+ "check:workflows": "node scripts/check-workflows.mjs",
91
+ "check:changelog": "node scripts/check-changelog.mjs",
92
+ "check:tarball": "node scripts/check-tarball.mjs",
93
+ "diff:harness": "node scripts/diff-harness.mjs",
94
+ "fetch:plugins": "node scripts/fetch-plugin-dicts.mjs",
95
+ "report:plugins": "node scripts/report-plugins.mjs",
96
+ "report:descriptors": "node scripts/descriptor-coverage.mjs",
97
+ "apply:descriptors": "node scripts/apply-descriptor-ru.mjs",
98
+ "check:descriptors": "node scripts/apply-descriptor-ru.mjs --check",
99
+ "check:descriptor-patch": "node scripts/check-descriptor-patch.mjs",
100
+ "check:plugin-names": "node scripts/check-plugin-names-dom.mjs",
101
+ "build:descriptor-patch": "node scripts/build-descriptor-patch.mjs --write",
102
+ "release:status": "node scripts/release-status.mjs",
103
+ "check:meta": "node scripts/check-meta.mjs",
104
+ "check:workflow-yaml": "node scripts/check-workflow-yaml.mjs",
105
+ "check:release-race": "node scripts/check-release-race.mjs",
106
+ "check:conflict-notice": "node scripts/check-conflict-notice.mjs",
107
+ "build:plugin-names": "node scripts/build-plugin-names.mjs",
108
+ "check:plugin-names:map": "node scripts/build-plugin-names.mjs --check"
109
+ },
110
+ "license": "MIT",
111
+ "peerDependencies": {
112
+ "@deepseek-ai/cordis": "^4.0.2 || >=4.0.5-0 <4.0.6-0",
113
+ "@deepseek-ai/dsh-client-locale": ">=0.1.0-rc.2 <0.1.1-0 || >=0.1.1-0 <0.1.2-0 || >=0.1.2-0 <0.1.3-0 || >=0.1.3-0 <0.1.5-0 || >=0.1.5-0 <0.1.6-0 || >=0.1.6-0 <0.1.7-0 || >=0.1.7-0 <0.2.0-0 || >=0.2.0-rc.1 <0.2.1-0 || >=0.2.1-0 <0.3.0-0"
114
+ },
115
+ "devDependencies": {
116
+ "@deepseek-ai/cordis": "4.0.5",
117
+ "@deepseek-ai/dsh-client-locale": "0.2.1-rc.2",
118
+ "jsdom": "^30.1.2",
119
+ "semver": "^7.8.5",
120
+ "tsdown": "^0.22.2",
121
+ "typescript": "^5.6.0"
122
+ },
123
+ "files": [
124
+ "lib/*.js",
125
+ "lib/*.d.ts",
126
+ "images/",
127
+ "assets/banner.jpg",
128
+ "cordis.patch.yml",
129
+ "README.md",
130
+ "CHANGELOG.md",
131
+ "LICENSE",
132
+ "README.en.md",
133
+ "README.zh.md",
134
+ "NAMESPACES.md"
135
+ ]
136
+ }