@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/CHANGELOG.md +1341 -1300
- package/LICENSE +21 -21
- package/NAMESPACES.md +139 -112
- package/README.en.md +22 -17
- package/README.md +48 -43
- package/README.zh.md +33 -33
- package/cordis.patch.yml +8 -8
- package/lib/client.js +3689 -0
- package/package.json +136 -134
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
|
-
Пакет переводит **
|
|
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-
|
|
32
|
-
| `dsh-
|
|
33
|
-
| `dsh-
|
|
34
|
-
| `dsh-
|
|
35
|
-
| `dsh-
|
|
36
|
-
| `dsh-
|
|
37
|
-
| `dsh-
|
|
38
|
-
| `dsh-
|
|
39
|
-
| `dsh-
|
|
40
|
-
| `dsh-
|
|
41
|
-
| `dsh-
|
|
42
|
-
| `dsh-
|
|
43
|
-
| `dsh-
|
|
44
|
-
| `dsh-
|
|
45
|
-
| `dsh-
|
|
46
|
-
| `dsh-
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
80
|
-
| `
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
| `
|
|
106
|
-
| `
|
|
107
|
-
| `
|
|
108
|
-
| `
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
|
|
112
|
-
|
|
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.
|
|
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:
|
|
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)
|
|
22
22
|
[](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
|
|
23
23
|
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
24
|
-
[](https://github.com/Ragnoryok1/dsh-client-locale-ru)
|
|
25
|
+
[](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 —
|
|
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):
|
|
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
|
|
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
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
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
|
|
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** —
|
|
382
|
-
against the pinned tag — and **the dictionaries of third-party plugins**:
|
|
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 (
|
|
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.
|
|
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:
|
|
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)
|
|
22
22
|
[](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
|
|
23
23
|
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
24
|
-
[](https://github.com/Ragnoryok1/dsh-client-locale-ru)
|
|
25
|
+
[](https://github.com/Ragnoryok1/dsh-client-locale-ru)
|
|
26
26
|
|
|
27
|
-
Русский язык для веб-интерфейса DeepSeek Harness:
|
|
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):
|
|
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 иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает
|
|
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
|
-
|
|
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
|
-
|
|
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, лежит именно в нём. Сверяются все
|
|
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 клиента харнесса** —
|
|
393
|
-
закреплённым тегом, — и **словари сторонних плагинов**:
|
|
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` — русские словари (
|
|
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`).
|