@ragnoryok1/dsh-client-locale-ru 0.2.10 → 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/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,112 +1,139 @@
1
- <!-- Сгенерировано `npm run namespaces`; проверяется `npm run check:namespaces`. -->
2
- # Что переведено
3
-
4
- Пакет переводит **96 namespace** — 9012 строк. Колонка «как это выглядит»
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-cost-meter` | Счётчик расходов | 85 | @goodandready/dsh-cost-meter@0.8.22 |
32
- | `dsh-cron` | — | 396 | @goodandready/dsh-cron@0.3.14 |
33
- | `dsh-image-gen` | Студия ИИ-изображений | 330 | @goodandready/dsh-image-gen@0.12.8 |
34
- | `dsh-kanban` | Канбан | 420 | @goodandready/dsh-kanban@0.2.33 |
35
- | `dsh-market` | Магазин плагинов | 733 | dshmarket@1.66.44 |
36
- | `dsh-moa` | Ансамбль агентов (MoA) | 159 | @goodandready/dsh-moa@0.2.53 |
37
- | `dsh-remote-ssh` | — | 111 | @zhangfengshun/dsh-remote-ssh@2.4.33 |
38
- | `dsh-skill-explorer` | — | 75 | @linxin666/dsh-client-ui-skill-explorer@0.4.7 |
39
- | `dsh-ssh` | — | 154 | @linxin666/dsh-ssh@0.4.7 |
40
- | `dsh-tts` | Речь | 226 | @goodandready/dsh-tts@0.4.34 |
41
- | `dsh-usage-guard` | Сторож расхода | 42 | @goodandready/dsh-usage-guard@0.1.19 |
42
- | `dsh-voice` | Голос | 321 | @goodandready/dsh-voice@0.9.39 |
43
- | `dsh-web-ui-market` | — | 106 | @linxin666/dsh-client-ui-market@0.4.7 |
44
- | `dsh-web-ui-preset-center` | — | 46 | @linxin666/dsh-client-ui-preset-center@0.4.7 |
45
- | `dsh-web-ui-session-archive` | — | 124 | @linxin666/dsh-session-archive@0.4.7 |
46
- | `dsh-web-ui-usage` | — | 63 | @linxin666/dsh-usage@0.4.7 |
47
- | `ego-browser` | ego-browser | 75 | dsh-ego-browser@0.8.6 |
48
- | `feedback` | — | 20 | харнесс |
49
- | `foldPositions` | — | 481 | billion-context@0.1.202 |
50
- | `git-graph` | — | 63 | @linxin666/dsh-client-ui-git-graph@0.4.7 |
51
- | `goal` | — | 12 | харнесс |
52
- | `inspectorPanel` | Инспектор Node.js | 4 | харнесс |
53
- | `job` | — | 50 | харнесс |
54
- | `liangshen` | — | 42 | @linxin666/dsh-liangshen@0.4.7 |
55
- | `michengai.codexUi` | — | 293 | @michengai/dsh-codex-ui@1.1.42 |
56
- | `model` | — | 23 | харнесс |
57
- | `open-in-app` | — | 45 | харнесс |
58
- | `permission.access` | Права доступа | 20 | харнесс |
59
- | `personalDirective` | Переключение личной директивы | 5 | dsh-personal-directive@0.2.11 |
60
- | `pet` | — | 81 | @linxin666/dsh-pet@0.4.7 |
61
- | `plan` | — | 17 | харнесс |
62
- | `pluginManager` | Плагины | 227 | харнесс |
63
- | `pluginMarket` | Обзор плагинов | 78 | харнесс |
64
- | `question` | — | 31 | харнесс |
65
- | `reference` | — | 15 | харнесс |
66
- | `remote` | Удалённый доступ | 115 | @linxin666/dsh-remote-web-ui@0.4.7 |
67
- | `schedule.catalog` | — | 90 | харнесс |
68
- | `schedule.manager` | Задачи автоматизации | 207 | харнесс |
69
- | `secretMask` | — | 2 | харнесс |
70
- | `session-inspector` | — | 52 | харнесс |
71
- | `session-log-download` | — | 10 | харнесс |
72
- | `settings` | Настройки | 41 | харнесс |
73
- | `settings.account` | Учётная запись | 94 | харнесс |
74
- | `settings.agentLoop` | Цикл агента | 12 | харнесс |
75
- | `settings.agentPreset` | Пресеты агента | 47 | харнесс |
76
- | `settings.locale` | — | 1 | харнесс |
77
- | `settings.models` | Модели | 134 | харнесс |
78
- | `settings.permission` | Права доступа | 20 | харнесс |
79
- | `settings.pluginInventory` | — | 37 | харнесс |
80
- | `settings.plugins` | Встроенные плагины | 5 | харнесс |
81
- | `settings.sessionLog` | — | 4 | харнесс |
82
- | `settings.shell` | Командная оболочка | 14 | харнесс |
83
- | `settings.subagent` | — | 35 | харнесс |
84
- | `settings.theme` | — | 25 | харнесс |
85
- | `settings.webSearch` | Веб-поиск | 27 | харнесс |
86
- | `shortcuts` | Горячие клавиши | 56 | харнесс |
87
- | `shortcuts.layout` | — | 1 | харнесс |
88
- | `sidebar` | — | 5 | харнесс |
89
- | `sidebarBrowser` | — | 26 | харнесс |
90
- | `sidebarCodePreview` | Код | 3 | харнесс |
91
- | `sidebarDocumentPreview` | — | 22 | харнесс |
92
- | `sidebarExcel` | Таблица | 15 | харнесс |
93
- | `sidebarFiles` | — | 17 | харнесс |
94
- | `sidebarImage` | Изображение | 11 | харнесс |
95
- | `sidebarOffice` | Документ Office | 15 | харнесс |
96
- | `sidebarPdf` | PDF | 15 | харнесс |
97
- | `sidebarRight` | — | 34 | харнесс |
98
- | `sidebarTerminal` | Терминал | 28 | харнесс |
99
- | `skill` | — | 8 | харнесс |
100
- | `slash.menu` | — | 9 | харнесс |
101
- | `subagent` | — | 79 | харнесс |
102
- | `task-board` | — | 437 | @linxin666/dsh-client-ui-task-board@0.4.7 |
103
- | `task-board-github` | — | 113 | @linxin666/dsh-client-ui-task-board-github@0.4.7 |
104
- | `trajectory` | — | 196 | харнесс |
105
- | `univer` | Просмотр Univer | 53 | dsh-univer-office@0.3.7 |
106
- | `update` | — | 43 | @linxin666/dsh-update@0.4.7 |
107
- | `voice-input` | — | 109 | харнесс |
108
- | `web-ui-plugins` | Веб-плагины | 1 | @linxin666/dsh-client-ui-web-ui-settings@0.4.7 |
109
- | `workflowRun` | — | 20 | харнесс |
110
- | `workspace` | — | 131 | харнесс |
111
-
112
- Итого: **96** namespace, **9012** строк.
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,9 +1,9 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.10",
4
+ "version": "0.2.12",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Full Russian interface (i18n) for the DeepSeek Harness web GUI: 96 namespaces, 9012 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: 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",
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,17 +21,17 @@
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-90-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-9012-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
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)
26
26
 
27
- Russian (`ru`) language pack for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web GUI (`dsh`). It registers `ru` as a selectable client language through the locale service (`ctx.locale.addLanguage`) plus one dictionary per namespace — 96 namespaces, 9,012 strings, built against dsh `0.2.1-rc.2`. Install with `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru`, then pick **Русский** in Settings → General. Missing keys fall back to English, so a newer harness keeps working. The scope is the harness's own client interface only — third-party plugin dictionaries are deliberately out of scope, and 11 of the 17 most-downloaded ecosystem plugins ship no strings of their own, so they are already Russian through these namespaces. MIT, community-maintained, not affiliated with DeepSeek.
27
+ Russian (`ru`) language pack for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web GUI (`dsh`). It registers `ru` as a selectable client language through the locale service (`ctx.locale.addLanguage`) plus one dictionary per namespace — 123 namespaces, 12,590 strings, built against dsh `0.2.1-rc.2`. Install with `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru`, then pick **Русский** in Settings → General. Missing keys fall back to English, so a newer harness keeps working. The scope is the harness's own client interface — 64 namespaces (3 033 strings) — plus the dictionaries of 59 third-party plugins, translated from the English each plugin publishes (9 557 strings in total). MIT, community-maintained, not affiliated with DeepSeek.
28
28
 
29
29
  > **If the pack was useful to you, please star the repository.** It is the only signal that a
30
30
  > translation is wanted, and it is what decides which parts get worked on next.
31
31
 
32
32
  ---
33
33
 
34
- The complete inventory is in [NAMESPACES.md](NAMESPACES.md): 96 namespaces, 9012 strings, with the bundled plugin dictionaries marked.
34
+ The complete inventory is in [NAMESPACES.md](NAMESPACES.md): 123 namespaces, 12,590 strings, with the bundled plugin dictionaries marked.
35
35
 
36
36
  The plugin names and descriptions on the Plugins page cannot come from this pack: the harness
37
37
  keeps them in `locale/<language>.json` inside each package, builds a translation map from them,
@@ -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 614 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: 32 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
 
@@ -368,7 +373,7 @@ The report is advisory — the same key name can mean different things in differ
368
373
  (`list.aria` is "Active reminders" in the catalog and "Background jobs" in jobs), so a
369
374
  translation is copied across namespaces only where one dictionary serves both. On the pinned
370
375
  tag the report is empty: every string the harness renders in a namespace we register lives in
371
- that namespace. All 56 of the pack's namespaces are compared — the link comes both from a
376
+ that namespace. All 123 of the pack's namespaces are compared — the link comes both from a
372
377
  dictionary imported beside the registration and from the names that registration passes
373
378
  (`locale.register(NS, { zh, en })`); without the second rule `common` and `settings.locale`,
374
379
  whose dictionaries sit in a neighbouring directory, would stay uncovered. The other direction is
@@ -378,8 +383,8 @@ This is how `settings.sessionLog` was found — the “Upload Session Log” swi
378
383
  settings page.
379
384
 
380
385
  ## Coverage scope: the harness and plugin dictionaries
381
- The package translates **the harness client's own namespaces** — 96 namespaces, reconciled
382
- against the pinned tag — and **the dictionaries of third-party plugins**: 32 plugins whose
386
+ The package translates **the harness client's own namespaces** — 64 namespaces reconciled
387
+ against the pinned tag — and **the dictionaries of third-party plugins**: 59 plugins whose
383
388
  English text is vendored from their own publication, with the version and the licence.
384
389
 
385
390
  Plugin dictionaries were out of scope before, and there was a reason: `dshmarket` is already
@@ -461,7 +466,7 @@ The workflow also has a manual run with a «только проверки, бе
461
466
 
462
467
  ## Contents
463
468
 
464
- - `src/client/dicts.ts` — the Russian dictionaries (96 namespaces, 9012 translations, ~6000 lines). This is where the main value lies.
469
+ - `src/client/dicts.ts` — the Russian dictionaries (123 namespaces, 12,590 translations, ~13,000 lines). This is where the main value lies.
465
470
  - `src/client/index.ts` — the client plugin entry point (registration of `ru` + the dictionaries).
466
471
  - `src/index.ts` — the empty host half (`apply()`).
467
472
  - `cordis.patch.yml` — the profile patch (`- insert:` of the client entry `locale-ru`).
package/README.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.10",
4
+ "version": "0.2.12",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Full Russian interface (i18n) for the DeepSeek Harness web GUI: 96 namespaces, 9012 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: 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",
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,17 +21,17 @@
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-90-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-9012-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
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)
26
26
 
27
- Русский язык для веб-интерфейса DeepSeek Harness: 96 namespaces, 9012 перевод, экранная типографика и аудит локализации в CI.
27
+ Русский язык для веб-интерфейса DeepSeek Harness: 123 namespaces, 12590 перевод, экранная типографика и аудит локализации в CI.
28
28
 
29
29
  > **If the pack was useful to you, please star the repository.** It is the only signal that a
30
30
  > translation is wanted, and it is what decides which parts get worked on next.
31
31
 
32
32
  ---
33
33
 
34
- Полный список того, что переведено, — в [NAMESPACES.md](NAMESPACES.md): 96 namespaces, 9012 строки, с пометкой у словарей плагинов.
34
+ Полный список того, что переведено, — в [NAMESPACES.md](NAMESPACES.md): 123 namespaces, 12 590 строк, с пометкой у словарей плагинов.
35
35
 
36
36
  Плагины за пределами дерева харнесса переводятся так же, но их английский текст берётся
37
37
  из их собственной публикации: `plugins/<namespace>.json` хранит пакет, версию, лицензию и
@@ -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 иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает 614 КБ: баннер отдаётся 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
- Пакет несёт эти названия сам: 32 плагина, у каждого английское название и описание — то, из
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
 
@@ -379,7 +384,7 @@ PLAN_NEXT_ACTION_EN`). Пока читался только первый вид,
379
384
  (`list.aria` — «Активные напоминания» в каталоге и «Фоновые задачи» в задачах), поэтому
380
385
  перевод переносится в чужой namespace только там, где оба namespace обслуживает один и
381
386
  тот же словарь. На закреплённом теге отчёт пуст: каждая строка, которую харнесс рисует в
382
- нашем namespace, лежит именно в нём. Сверяются все 96 namespace пака — привязка строится и по
387
+ нашем namespace, лежит именно в нём. Сверяются все 123 namespace пака — привязка строится и по
383
388
  импорту словаря рядом с регистрацией, и по именам, которые передаёт сама регистрирующая
384
389
  строка (`locale.register(NS, { zh, en })`); без второго правила `common` и `settings.locale`,
385
390
  чьи словари лежат в соседнем каталоге, оставались бы вне сверки. Обратная сторона проверяется
@@ -389,34 +394,34 @@ PLAN_NEXT_ACTION_EN`). Пока читался только первый вид,
389
394
  странице общих настроек.
390
395
 
391
396
  ## Область покрытия: харнесс и словари плагинов
392
- Пакет переводит **собственные namespace клиента харнесса** — 96 namespace, сверенные с
393
- закреплённым тегом, — и **словари сторонних плагинов**: 32 плагина, чей английский текст
394
- выгружен из их собственной публикации вместе с версией и лицензией.
395
-
396
- Раньше словари плагинов в область не входили, и на то была причина: у `dshmarket` уже
397
- версия 1.66.44, её ключи меняются независимо от харнесса, а молчаливое обещание «покрыто
398
- всё» — это не обещание, а долг, который нельзя предъявить. Ответ оказался простым: чужой
399
- английский текст **выгружается** (`npm run fetch:plugins`) и хранится рядом с переводом —
400
- с именем пакета, версией и лицензией, а аудит сверяет наш перевод именно с этим снимком, а
401
- не с чужим русским. Мы проверили 17 самых скачиваемых плагинов экосистемы (npm,
402
- `keywords:dsh-plugin`, скачивания за месяц) и посмотрели, какие из них вообще поставляют
403
- собственные строки:
404
-
405
- | Что обнаружено | Плагинов |
406
- |---|---|
407
- | **Своих строк нет** — интерфейс берёт текст из namespace харнесса | **11 из 17** |
408
- | Крупный собственный словарь (подтверждено вручную) | 2 — `dshmarket` (733 ключа), `@nanmicoder/dsh-agent-teams` (420) |
409
- | Только типы `.d.ts`, строк нет | 1 — `dsh-plugin-model-proxy` |
410
- | Требует отдельной проверки | 3 |
411
-
412
- У 11 из 17 популярнейших плагинов русский интерфейс уже работает без отдельного словаря:
413
- их текст лежит в общих namespace харнесса, которые пакет переводит полностью. Словари
414
- есть там, где плагин везёт свои строки, — их 32, и у каждого зафиксирована версия, с
415
- которой выгружен английский текст.
416
-
417
- Такой словарь — обязательство следить за чужими релизами, но теперь оно проверяемое:
418
- новая версия плагина с другими ключами видна как расхождение снимка, а не как тишина.
419
- Нужен конкретный плагин — заведите issue: словарь для него возможен как отдельный слой,
397
+ Пакет переводит **собственные namespace клиента харнесса** — 64 namespace сверенных с
398
+ закреплённым тегом, — и **словари сторонних плагинов**: 59 плагинов, чей английский текст
399
+ выгружен из их собственной публикации вместе с версией и лицензией.
400
+
401
+ Раньше словари плагинов в область не входили, и на то была причина: у `dshmarket` уже
402
+ версия 1.66.44, её ключи меняются независимо от харнесса, а молчаливое обещание «покрыто
403
+ всё» — это не обещание, а долг, который нельзя предъявить. Ответ оказался простым: чужой
404
+ английский текст **выгружается** (`npm run fetch:plugins`) и хранится рядом с переводом —
405
+ с именем пакета, версией и лицензией, а аудит сверяет наш перевод именно с этим снимком, а
406
+ не с чужим русским. Мы проверили 17 самых скачиваемых плагинов экосистемы (npm,
407
+ `keywords:dsh-plugin`, скачивания за месяц) и посмотрели, какие из них вообще поставляют
408
+ собственные строки:
409
+
410
+ | Что обнаружено | Плагинов |
411
+ |---|---|
412
+ | **Своих строк нет** — интерфейс берёт текст из namespace харнесса | **11 из 17** |
413
+ | Крупный собственный словарь (подтверждено вручную) | 2 — `dshmarket` (733 ключа), `@nanmicoder/dsh-agent-teams` (420) |
414
+ | Только типы `.d.ts`, строк нет | 1 — `dsh-plugin-model-proxy` |
415
+ | Требует отдельной проверки | 3 |
416
+
417
+ У 11 из 17 популярнейших плагинов русский интерфейс уже работает без отдельного словаря:
418
+ их текст лежит в общих namespace харнесса, которые пакет переводит полностью. Словари
419
+ есть там, где плагин везёт свои строки, — их 32, и у каждого зафиксирована версия, с
420
+ которой выгружен английский текст.
421
+
422
+ Такой словарь — обязательство следить за чужими релизами, но теперь оно проверяемое:
423
+ новая версия плагина с другими ключами видна как расхождение снимка, а не как тишина.
424
+ Нужен конкретный плагин — заведите issue: словарь для него возможен как отдельный слой,
420
425
  привязанный к версии, а не как молчаливое обещание «покрыто всё».
421
426
 
422
427
  ## Разработка
@@ -471,7 +476,7 @@ npm run verify -- путь/к/дереву/харнесса
471
476
 
472
477
  ## Содержимое
473
478
 
474
- - `src/client/dicts.ts` — русские словари (96 namespaces, 9012 перевод, ~6000 строк). Это и есть основная ценность.
479
+ - `src/client/dicts.ts` — русские словари (123 namespaces, 12590 перевод, ~13 000 строк). Это и есть основная ценность.
475
480
  - `src/client/index.ts` — точка входа клиентского плагина (регистрация `ru` + словарей).
476
481
  - `src/index.ts` — пустая host-половина (`apply()`).
477
482
  - `cordis.patch.yml` — профиль-патч (`- insert:` клиентской строки `locale-ru`).