@goodandready/dsh-russian-lang 0.2.17 → 0.2.20

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.
Files changed (152) hide show
  1. package/README.md +3 -2
  2. package/README.ru.md +2 -1
  3. package/README.zh.md +102 -0
  4. package/lib/client.js +242 -277
  5. package/lib/index.js +49 -10
  6. package/lib/locales/plugins/01-token-dashboard.json +1 -0
  7. package/lib/locales/plugins/02-subscriptions.json +1 -0
  8. package/lib/locales/plugins/03-dshmarket.json +1 -0
  9. package/lib/locales/plugins/04-context-doctor.json +1 -0
  10. package/lib/locales/plugins/05-plugins-store.json +1 -0
  11. package/lib/locales/plugins/06-im-hub.json +1 -0
  12. package/lib/locales/plugins/07-better-sidebar.json +1 -0
  13. package/lib/locales/plugins/08-task-board.json +1 -0
  14. package/lib/locales/plugins/09-dshmarket-1.13.json +1 -0
  15. package/lib/locales/plugins/10-kanban.json +1 -0
  16. package/lib/locales/plugins/11-skill-hub.json +1 -0
  17. package/lib/locales/plugins/12-skills-manager.json +1 -0
  18. package/lib/locales/plugins/13-agent-teams.json +1 -0
  19. package/lib/locales/plugins/14-ollama-cloud.json +1 -0
  20. package/lib/locales/plugins/15-commandcode.json +1 -0
  21. package/lib/locales/plugins/16-usage-stats.json +1 -0
  22. package/lib/locales/plugins/17-dsh-context.json +1 -0
  23. package/lib/locales/plugins/18-opencode-palette.json +1 -0
  24. package/lib/locales/plugins/19-univer-office.json +1 -0
  25. package/lib/locales/plugins/20-skill-explorer.json +1 -0
  26. package/lib/locales/plugins/21-auto-collapse.json +1 -0
  27. package/lib/locales/plugins/22-subagent-director.json +1 -0
  28. package/lib/locales/plugins/23-moa.json +1 -0
  29. package/lib/locales/plugins/24-personal-directive.json +1 -0
  30. package/lib/locales/plugins/25-hooks.json +1 -0
  31. package/lib/locales/plugins/26-config-manager.json +1 -0
  32. package/lib/locales/plugins/27-config-manager-sync.json +1 -0
  33. package/lib/locales/plugins/28-config-manager-market.json +1 -0
  34. package/lib/locales/plugins/29-config-manager-recovery.json +1 -0
  35. package/lib/locales/plugins/30-config-manager-history.json +1 -0
  36. package/lib/locales/plugins/31-dshhub-market.json +1 -0
  37. package/lib/locales/plugins/32-vision-bridge.json +1 -0
  38. package/lib/locales/plugins/33-messenger-gateway.json +1 -0
  39. package/lib/locales/plugins/34-key-rotation.json +1 -0
  40. package/lib/locales/plugins/35-gitea.json +1 -0
  41. package/lib/locales/plugins/36-cost-meter.json +1 -0
  42. package/lib/locales/plugins/37-time-machine.json +1 -0
  43. package/lib/locales/plugins/38-context-lens.json +1 -0
  44. package/lib/locales/plugins/39-shadow-auditor.json +1 -0
  45. package/lib/locales/plugins/40-clinebot.json +1 -0
  46. package/lib/locales/plugins/41-lanmode.json +1 -0
  47. package/lib/locales/plugins/42-plugin-console.json +1 -0
  48. package/lib/locales/plugins/43-better-input.json +1 -0
  49. package/lib/locales/plugins/44-auto-review.json +1 -0
  50. package/lib/locales/plugins/45-session-control.json +1 -0
  51. package/lib/locales/plugins/46-memory-brain.json +1 -0
  52. package/lib/locales/plugins/47-llm-wiki.json +1 -0
  53. package/lib/locales/plugins/48-task-tracker.json +1 -0
  54. package/lib/locales/plugins/49-usage-guard.json +1 -0
  55. package/lib/locales/plugins/50-automode.json +1 -0
  56. package/lib/locales/plugins/51-plugin-guard.json +1 -0
  57. package/lib/locales/plugins/52-navbar.json +1 -0
  58. package/lib/locales/plugins/53-remote-workspace.json +1 -0
  59. package/lib/locales/plugins/54-workshop-market.json +1 -0
  60. package/lib/locales/plugins/55-skin-center.json +1 -0
  61. package/lib/locales/plugins/56-cron.json +1 -0
  62. package/lib/locales/plugins/57-live-canvas.json +1 -0
  63. package/lib/locales/plugins/58-grok-xsearch.json +1 -0
  64. package/lib/locales/plugins/59-goal.json +1 -0
  65. package/lib/locales/plugins/60-model-sync.json +1 -0
  66. package/lib/locales/plugins/61-issue-reporter.json +1 -0
  67. package/lib/locales/plugins/62-model-search.json +1 -0
  68. package/lib/locales/plugins/63-agent-orchestrator.json +1 -0
  69. package/lib/locales/plugins/64-key-limits.json +1 -0
  70. package/lib/locales/plugins/65-subscriptions.json +1 -0
  71. package/lib/locales/plugins/66-tts.json +1 -0
  72. package/lib/locales/plugins/67-voice.json +1 -0
  73. package/lib/locales/plugins/68-image-gen.json +1 -0
  74. package/lib/locales/plugins/69-plugin-notify.json +1 -0
  75. package/lib/locales/plugins/70-hypotheses.json +1 -0
  76. package/lib/locales/zh-ru.json +1 -0
  77. package/lib/locales.js +32 -0
  78. package/lib/plugin-updater.js +8 -2
  79. package/package.json +6 -7
  80. package/docs/media/banner.jpg +0 -0
  81. package/docs/media/language-selector.png +0 -0
  82. package/docs/media/ui-russian.png +0 -0
  83. package/ru/01-core-small.json +0 -201
  84. package/ru/02-conversation.json +0 -834
  85. package/ru/03-models-workspace.json +0 -190
  86. package/ru/04-preset-cordis.json +0 -136
  87. package/ru/05-plugins-subagent.json +0 -158
  88. package/ru/06-rest.json +0 -257
  89. package/ru/07-sidebar-previewers.json +0 -57
  90. package/ru-plugins/01-token-dashboard.json +0 -83
  91. package/ru-plugins/02-subscriptions.json +0 -40
  92. package/ru-plugins/03-dshmarket.json +0 -536
  93. package/ru-plugins/04-context-doctor.json +0 -64
  94. package/ru-plugins/05-plugins-store.json +0 -81
  95. package/ru-plugins/06-im-hub.json +0 -97
  96. package/ru-plugins/07-better-sidebar.json +0 -490
  97. package/ru-plugins/08-task-board.json +0 -126
  98. package/ru-plugins/09-dshmarket-1.13.json +0 -46
  99. package/ru-plugins/10-kanban.json +0 -460
  100. package/ru-plugins/11-skill-hub.json +0 -257
  101. package/ru-plugins/12-skills-manager.json +0 -222
  102. package/ru-plugins/13-agent-teams.json +0 -193
  103. package/ru-plugins/14-ollama-cloud.json +0 -72
  104. package/ru-plugins/15-commandcode.json +0 -200
  105. package/ru-plugins/16-usage-stats.json +0 -126
  106. package/ru-plugins/17-dsh-context.json +0 -316
  107. package/ru-plugins/18-opencode-palette.json +0 -31
  108. package/ru-plugins/19-univer-office.json +0 -57
  109. package/ru-plugins/20-skill-explorer.json +0 -69
  110. package/ru-plugins/21-auto-collapse.json +0 -16
  111. package/ru-plugins/22-subagent-director.json +0 -142
  112. package/ru-plugins/23-moa.json +0 -214
  113. package/ru-plugins/24-personal-directive.json +0 -9
  114. package/ru-plugins/25-hooks.json +0 -11
  115. package/ru-plugins/26-config-manager.json +0 -453
  116. package/ru-plugins/27-config-manager-sync.json +0 -202
  117. package/ru-plugins/28-config-manager-market.json +0 -142
  118. package/ru-plugins/29-config-manager-recovery.json +0 -102
  119. package/ru-plugins/30-config-manager-history.json +0 -55
  120. package/ru-plugins/31-dshhub-market.json +0 -398
  121. package/ru-plugins/32-vision-bridge.json +0 -216
  122. package/ru-plugins/33-messenger-gateway.json +0 -236
  123. package/ru-plugins/34-key-rotation.json +0 -217
  124. package/ru-plugins/35-gitea.json +0 -174
  125. package/ru-plugins/36-cost-meter.json +0 -90
  126. package/ru-plugins/37-time-machine.json +0 -38
  127. package/ru-plugins/38-context-lens.json +0 -36
  128. package/ru-plugins/39-shadow-auditor.json +0 -67
  129. package/ru-plugins/40-clinebot.json +0 -142
  130. package/ru-plugins/41-lanmode.json +0 -164
  131. package/ru-plugins/42-plugin-console.json +0 -354
  132. package/ru-plugins/43-better-input.json +0 -127
  133. package/ru-plugins/44-auto-review.json +0 -83
  134. package/ru-plugins/45-session-control.json +0 -122
  135. package/ru-plugins/46-memory-brain.json +0 -33
  136. package/ru-plugins/47-llm-wiki.json +0 -26
  137. package/ru-plugins/48-task-tracker.json +0 -19
  138. package/ru-plugins/49-usage-guard.json +0 -51
  139. package/ru-plugins/50-automode.json +0 -28
  140. package/ru-plugins/51-plugin-guard.json +0 -12
  141. package/ru-plugins/52-navbar.json +0 -6
  142. package/ru-plugins/53-remote-workspace.json +0 -140
  143. package/ru-plugins/54-workshop-market.json +0 -58
  144. package/ru-plugins/55-skin-center.json +0 -97
  145. package/ru-plugins/56-cron.json +0 -334
  146. package/ru-plugins/57-live-canvas.json +0 -121
  147. package/ru-plugins/58-grok-xsearch.json +0 -80
  148. package/ru-plugins/59-goal.json +0 -54
  149. package/ru-plugins/60-model-sync.json +0 -121
  150. package/ru-plugins/61-issue-reporter.json +0 -192
  151. package/ru-plugins/62-model-search.json +0 -22
  152. package/ru-plugins/63-agent-orchestrator.json +0 -10
@@ -1,164 +0,0 @@
1
- {
2
- "dsh-lanmode": {
3
- "sub": "mDNS (dsh.local), полифилы Web API, TLS для микрофона и PWA",
4
- "title": "Локальный и мобильный доступ (dsh-lanmode)",
5
- "quickConnect": "Быстрое подключение со смартфона или планшета",
6
- "openQr": "Открыть QR-код",
7
- "copyUrl": "Скопировать URL",
8
- "copied": "Скопировано ✔",
9
- "desktopMode": "Принудительный десктопный режим",
10
- "desktopModeSub": "Отключает мобильную адаптацию и показывает полный десктопный UI",
11
- "secNetwork": "Сетевые интерфейсы и привязка портов",
12
- "secNetworkDesc": "Настройка локальных сетевых адаптеров, портов и режимов привязки",
13
- "bindHostLabel": "Сетевой интерфейс для прослушивания (bindHost)",
14
- "bindHostPh": "0.0.0.0 (все адаптеры), 192.168.1.x или 127.0.0.1",
15
- "portLabel": "Порт веб-сервера (port)",
16
- "portPh": "По умолчанию 3000 (оставьте пустым для авто)",
17
- "modeLabel": "Режим локального доступа (mode)",
18
- "modeAuto": "auto (автоопределение интерфейса)",
19
- "modeLan": "lan (только локальная сеть)",
20
- "modeLoopback": "loopback (только локальный компьютер)",
21
- "secSecurity": "Безопасность и фильтрация IP",
22
- "secSecurityDesc": "Разграничение прав по подсетям и контроль привилегированных действий",
23
- "allowLabel": "Разрешённые подсети IP (allow)",
24
- "allowPh": "192.168.1.0/24, 127.0.0.1 (пусто = разрешить всем)",
25
- "adminAllowLabel": "Подсети с правами администратора (adminAllow)",
26
- "adminAllowPh": "192.168.1.100, 10.0.0.0/24 (настройки и плагины)",
27
- "guestAllowLabel": "Подсети с гостевым доступом (guestAllow)",
28
- "guestAllowPh": "192.168.2.0/24 (только чат, настройки заблокированы)",
29
- "unlockPrivilegedLabel": "Разрешить привилегированные вызовы (настройки, ключи) из LAN",
30
- "secMobile": "Мобильный интерфейс, mDNS и PWA",
31
- "secMobileDesc": "Локальное обнаружение, мобильные жесты и веб-приложение (PWA)",
32
- "mdnsNameLabel": "Имя домена mDNS (mdnsName)",
33
- "mdnsNamePh": "dsh.local (обязательно оканчивается на .local)",
34
- "mdnsAnnounceLabel": "Анонсировать домен через mDNS (Zeroconf / Bonjour)",
35
- "pwaLabel": "Внедрять манифест PWA и мобильные мета-теги viewport",
36
- "mobileEnterLabel": "Клавиша Enter отправляет сообщение на сенсорной клавиатуре",
37
- "diagnosticsLabel": "Включить эндпоинты диагностики (/dsh-lanmode/health, /probe)",
38
- "secPolyfills": "Полифилы браузерных Web API (HTTP Shims)",
39
- "secPolyfillsDesc": "Восстанавливает работу ограниченных API браузера на незащищённом HTTP",
40
- "unblockSettingsLabel": "Разблокировать ограничение настроек для loopback",
41
- "randomUuidLabel": "Полифил crypto.randomUUID для обычного HTTP",
42
- "clipboardLabel": "Фолбэк navigator.clipboard.writeText для обычного HTTP",
43
- "secAuth": "Аутентификация и защита входа",
44
- "secAuthDesc": "Защита DSH логином и паролем для многопользовательских сетей",
45
- "passwordAuthLabel": "Требовать обязательную авторизацию по логину и паролю",
46
- "authUserLabel": "Имя пользователя администратора (authUser)",
47
- "authSessionDaysLabel": "Срок действия сессии в днях (authSessionDays)",
48
- "authPasswordLabel": "Пароль администратора (authPassword)",
49
- "authPasswordPh": "Пароль для входа",
50
- "authPasswordRefLabel": "Ссылка на секрет пароля (authPasswordRef)",
51
- "authPasswordRefPh": "DSH_AUTH_PASSWORD или имя секрета в Credentials",
52
- "secTunnel": "Удалённый доступ (Cloudflare Tunnel)",
53
- "secTunnelDesc": "Безопасный доступ из интернета без белого IP и проброса портов",
54
- "tunnelModeLabel": "Режим туннеля (tunnel)",
55
- "tunnelOff": "off (выключен)",
56
- "tunnelQuick": "quick (быстрый временный trycloudflare.com)",
57
- "tunnelNamed": "named (постоянный туннель по токену)",
58
- "tunnelTokenRefLabel": "Ссылка на токен туннеля (tunnelTokenRef)",
59
- "tunnelTokenRefPh": "CF_TUNNEL_TOKEN или имя секрета в Credentials",
60
- "tunnelPinLabel": "Требовать LAN PIN при входе через WAN-туннель Cloudflare",
61
- "saveSettings": "Сохранить настройки LAN",
62
- "saving": "Сохранение…",
63
- "saveSuccess": "Настройки успешно сохранены ✔",
64
- "saveError": "Ошибка сохранения настроек: ",
65
- "logout": "Выйти из системы",
66
- "logoutConfirm": "Вы уверены, что хотите выйти из DSH?",
67
- "healthLink": "Открыть страницу диагностики (/dsh-lanmode/health) ↗",
68
- "quickQrTitle": "📱 Вход с мобильного устройства",
69
- "downloadProfile": "Профиль iOS (.mobileconfig)",
70
- "downloadCa": "Корневой сертификат (.crt)",
71
- "shareUrl": "Поделиться ↗",
72
- "interfacesLabel": "Сетевой адаптер:",
73
- "rttLabel": "Пинг",
74
- "ms": "мс",
75
- "activeMdns": "активен",
76
- "phoneConnected": "📱 Готов к работе со смартфона",
77
- "turnEndNotification": "Ассистент завершил ответ",
78
- "approvalNotification": "Требуется подтверждение действия",
79
- "toolPrefix": "Инструмент: ",
80
- "retry": "Повторить",
81
- "cardError": "⚠️ Ошибка карточки LanMode:",
82
- "header.title": "Локальный доступ (LAN Mode)",
83
- "header.sub": "Удобный доступ к DeepSeek Harness из локальной сети Wi-Fi/LAN с мобильных устройств",
84
- "badge.active": "LAN активен ({ip})",
85
- "badge.local_only": "Только localhost",
86
- "section.qr": "Подключение по QR-коду",
87
- "section.qr_desc": "Отсканируйте код камерой смартфона для мгновенного перехода в чат DSH",
88
- "section.network": "Сетевые интерфейсы и адреса",
89
- "section.network_desc": "Выберите сетевой адаптер для трансляции интерфейса в локальную сеть",
90
- "section.security": "Безопасность и пароли доступа",
91
- "section.security_desc": "Защита входа в LAN-режиме с помощью PIN-кода или токена сессии",
92
- "field.bind_address": "Сетевой интерфейс (IP)",
93
- "field.bind_address_hint": "IP-адрес в локальной сети (обычно 192.168.x.x или 10.x.x.x)",
94
- "field.port": "Порт",
95
- "field.port_hint": "Порт веб-сервера (по умолчанию 3000)",
96
- "field.pin_auth": "Защита PIN-кодом",
97
- "field.pin_auth_hint": "Требовать 4-значный PIN-код при первом входе с мобильного устройства",
98
- "field.pin_code": "Установленный PIN-код",
99
- "field.token_ttl": "Срок действия сессии (часы)",
100
- "field.token_ttl_hint": "Время хранения авторизации на мобильном устройстве",
101
- "field.https_proxy": "Использовать HTTPS / reverse proxy",
102
- "field.https_proxy_hint": "Включите, если используете Nginx/Caddy с SSL-сертификатом",
103
- "modal.qr_title": "Сканируйте для подключения",
104
- "modal.qr_sub": "Убедитесь, что смартфон подключен к той же Wi-Fi сети",
105
- "modal.url_label": "Адрес для браузера:",
106
- "modal.close": "Закрыть",
107
- "btn.save": "Сохранить настройки LAN",
108
- "btn.regenerate_pin": "Сгенерировать новый PIN",
109
- "btn.refresh_ips": "Обновить список IP",
110
- "stat.connected_devices": "Подключено устройств",
111
- "stat.last_device": "Последнее устройство",
112
- "stat.traffic": "LAN трафик",
113
- "msg.saved": "Параметры LAN-доступа сохранены",
114
- "msg.pin_changed": "Новый PIN-код установлен: {pin}",
115
- "status.listening": "Слушает на http://{ip}:{port}",
116
- "status.stopped": "Остановлен",
117
- "err.bind_failed": "Не удалось занять порт {port}: {error}",
118
- "err.invalid_pin": "Неверный PIN-код",
119
- "notifStatus": "Статус уведомлений в браузере:",
120
- "notifEnable": "Включить уведомления",
121
- "notifGranted": "Разрешены ✔",
122
- "notifDenied": "Заблокированы пользователем",
123
- "telemetryTitle": "Телеметрия локальной сети",
124
- "telemetryRtt": "Сетевая задержка (RTT)",
125
- "telemetryConns": "Активных WebSocket-соединений",
126
- "telemetrySent": "Передано данных",
127
- "telemetryRecv": "Принято данных",
128
- "devicesTitle": "Подключённые устройства",
129
- "devicesSub": "Список мобильных устройств и браузеров, авторизованных в LAN-режиме",
130
- "devicesIp": "IP-адрес",
131
- "devicesUa": "Устройство / Браузер",
132
- "devicesLastSeen": "Последняя активность",
133
- "devicesActions": "Действия",
134
- "deviceCurrent": "Текущее устройство",
135
- "deviceRevoke": "Отозвать доступ",
136
- "deviceRevokeAllOthers": "Отозвать доступ всем остальным",
137
- "deviceRevokeConfirm": "Вы уверены, что хотите отозвать доступ для этого устройства?",
138
- "deviceRevokeAllConfirm": "Отозвать доступ всем мобильным устройствам, кроме текущего?",
139
- "deviceNoDevices": "Подключённых мобильных устройств не обнаружено",
140
- "secRouting": "Маршрутизация и проксирование",
141
- "secRoutingDesc": "Параметры прямого доступа и проксирования запросов локальной сети",
142
- "modeDirect": "direct (прямое подключение)",
143
- "modeProxy": "proxy (через реверс-прокси Nginx/Caddy)",
144
- "directPortLabel": "Порт прямого подключения",
145
- "streamTimeoutLabel": "Таймаут стриминга ответов (сек)",
146
- "streamTimeoutPh": "По умолчанию 120",
147
- "privilegedExtraLabel": "Дополнительные доверенные IP",
148
- "privilegedExtraPh": "192.168.1.50, 10.0.0.5",
149
- "secTls": "Безопасное соединение (TLS / SSL)",
150
- "secTlsDesc": "Шифрование трафика для работы аудио/видео и PWA на мобильных устройствах",
151
- "tlsModeLabel": "Режим TLS",
152
- "tlsSelfSigned": "self-signed (автоматический самоподписанный сертификат)",
153
- "tlsFiles": "files (пользовательские файлы сертификата и ключа)",
154
- "tlsOff": "off (обычный незашифрованный HTTP)",
155
- "tlsHostsLabel": "Домены и IP в сертификате",
156
- "tlsHostsPh": "dsh.local, 192.168.1.111",
157
- "tlsCertLabel": "Путь к файлу сертификата (.crt)",
158
- "tlsKeyLabel": "Путь к файлу закрытого ключа (.key)",
159
- "secAccess": "Политика авторизации и LAN PIN",
160
- "secAccessDesc": "Требование ввода PIN-кода для новых устройств в локальной сети",
161
- "lanPinRefLabel": "Ссылка на секрет LAN PIN",
162
- "lanPinRefPh": "LAN_PIN или имя секрета в Credentials"
163
- }
164
- }
@@ -1,354 +0,0 @@
1
- {
2
- "settings.pluginConsole": {
3
- "active": "Подключён",
4
- "adaptUnlockBtn": "Адаптировано — разблокировать",
5
- "adaptUnlockDone": "Разблокировано: обновите страницу, строка включена",
6
- "adaptUnlockHint": "Установленная версия прошла проверку исходного кода: разблокировать сейчас",
7
- "addLocal": "Добавить локальный",
8
- "addSearchSource": "Добавить источник поиска",
9
- "addSource": "Добавить",
10
- "aggregateBadge": "Агрегатор",
11
- "aggregateTitle": "Репозиторий-агрегатор: корень не опубликован; плагины находятся в подпакетах (откройте для установки)",
12
- "aiConfirmDeploy": "Будет выполнено шагов развёртывания: {n} для {name} (возможна установка ПО, запись настроек, запуск служб). Подтвердить и развернуть?",
13
- "aiConsentApprove": "Согласен, продолжить (может взиматься плата)",
14
- "aiConsentDecline": "Отмена",
15
- "aiConsentNotifyTitle": "Установка плагина требует подтверждения",
16
- "aiConsentRemember": "Больше не спрашивать (автоодобрение ИИ-планировщика; напоминания можно вернуть внизу маркета)",
17
- "aiConsentText": "Все стандартные каналы установки не сработали. Локальный ИИ может взять установку на себя, вызвав модель DeepSeek API (может взиматься плата). Продолжить?",
18
- "aiEmpowerCancel": "Отмена",
19
- "aiEmpowerComponents": "Обнаруженные серверные компоненты",
20
- "aiEmpowerDone": "Развёртывание через ИИ завершено",
21
- "aiEmpowerExecuting": "ИИ выполняет развёртывание…",
22
- "aiEmpowerFail": "Сбой развёртывания через ИИ",
23
- "aiEmpowerFrameworkCheck": "Проверка совместимости с платформой",
24
- "aiEmpowerLabel": "ИИ-развёртывание",
25
- "aiEmpowerLogs": "Журнал выполнения",
26
- "aiEmpowerNeedSteps": "Выберите хотя бы один шаг, затем нажмите «Одобрить и развернуть»",
27
- "aiEmpowerPlanTitle": "План развёртывания через ИИ",
28
- "aiEmpowerRun": "Одобрить и развернуть",
29
- "aiEmpowerSrcTitle": "Компонент для развёртывания (npm-пакет или репозиторий GitHub)",
30
- "aiEmpowerSteps": "Шаги выполнения (выбираемые)",
31
- "aiEmpowerTitle": "ИИ-развёртывание: чтение документации, планирование и автоматическое развёртывание компонента; для серверных компонентов доступны кнопки запуска/остановки",
32
- "aiEmpowerType": "Тип",
33
- "aiEmpowerWaiting": "ИИ анализирует документацию и составляет план (1–5 мин, использует DeepSeek API)…",
34
- "aiFallbackLabel": "ИИ-помощник",
35
- "aiFallbackOff": "ИИ-помощник отключён вашими настройками; установка отменена без затрат",
36
- "aiFallbackTitle": "Когда выключено: при сбое стандартных каналов установка сразу отменяется без вызова API модели",
37
- "aiPlanHint": "⚠️ ИИ только составляет план — для развёртывания требуется ваше явное подтверждение: выбор шагов → Одобрить и развернуть → повторное подтверждение",
38
- "aiProgressTitle": "Выполняется развёртывание через ИИ — нажмите для просмотра",
39
- "aiRememberNote": "ИИ-помощник одобрен автоматически согласно вашим настройкам (напоминания можно вернуть внизу)",
40
- "aiRememberReset": "Напоминания ИИ-помощника отключены (нажмите для восстановления)",
41
- "aiRepaired": "Локальные AI took over and finished the repair; refresh the page",
42
- "aiWorkspaceInfo": "Рабочее пространство исследования",
43
- "autoReload": "Страница будет перезагружена автоматически…",
44
- "backToSearch": "Назад к поиску",
45
- "bundleNote": "Этот пакет является бандл-плагином (например, пакет оформления); перезапустите службу DSH для активации",
46
- "cancelEdit": "Отмена",
47
- "checkUpdate": "Проверить обновление",
48
- "checkingUpdate": "Проверка…",
49
- "cleanResiduals": "Очистить остаточные резервные копии",
50
- "closeModal": "Закрыть",
51
- "collapseDesc": "Свернуть",
52
- "collapseResults": "Свернуть результаты",
53
- "compActionDone": "{action}: {name}",
54
- "compAutoTitle": "Автозапуск: запускать этот сервер автоматически при старте DSH (выкл. = вручную)",
55
- "compCollapseTitle": "Свернуть карточку сервера",
56
- "compDropTitle": "Развернуть для открытия всех URL сервера",
57
- "compExpandTitle": "Развернуть карточку сервера",
58
- "compHealthy": "Исправен",
59
- "compNoUrl": "URL пока отсутствует",
60
- "compOpen": "Открыть",
61
- "compRefresh": "Обновить component status",
62
- "compRunning": "Работает",
63
- "compStart": "Запустить",
64
- "compStatus": "Статус",
65
- "compStop": "Остановить",
66
- "compStopped": "Остановлен",
67
- "compUnhealthy": "Неисправен",
68
- "config-only": "Только настройки",
69
- "confirmDelete": "Подтвердить delete?",
70
- "consentWaiting": "Ожидание одобрения…",
71
- "copiedInstallCmd": "Установить command copied — paste into your terminal to run it manually",
72
- "copyInstallCmd": "Копировать",
73
- "deleteBundleNote": "Бандл удалён; изменения вступят в силу после перезапуска службы",
74
- "deleteNote": "Плагин deleted and package uninstalled; refreshing",
75
- "deletePlugin": "Удалить plugin (remove config and uninstall package)",
76
- "deleting": "Удаление…",
77
- "depsOutdatedHint": "Для обновления этого пакета также требуются версии подпакетов (во избежание конфликтов)",
78
- "details": "Сведения",
79
- "direct": "(Браузер обращается к GitHub напрямую; серверный канал используется как резервный)",
80
- "directOther": "Поискing {source} through the server channel (custom sources do not use browser-direct)",
81
- "disabledTag": "Отключён",
82
- "dismissFailure": "Скрыть уведомление",
83
- "dshHint": "Похоже на плагин DSH",
84
- "editSource": "Изменить",
85
- "elapsed": "Прошло",
86
- "empty": "Нет доступных плагинов.",
87
- "enabledTag": "Включён",
88
- "error": "Плагины are temporarily unavailable.",
89
- "expandDesc": "Развернуть",
90
- "expandResults": "Развернуть результаты",
91
- "extraEmpty": "Нет установленных сторонних плагинов.",
92
- "extraFilter": "Установитьed",
93
- "extraFilterAll": "Все",
94
- "extraFilterTitle": "Переключить: установленные (сторонние) / все",
95
- "extraTag": "Сторонний",
96
- "failed": "Операция не удалась",
97
- "familyCheckUpdate": "Проверить все",
98
- "familyCheckUpdateTip": "When a newer version is detected this Обновить button appears; click to start the full-family update (subpackage alignment + adapt check)",
99
- "familyCollapse": "Свернуть",
100
- "familyExpand": "Развернуть",
101
- "familySubs": "подпакетов",
102
- "familyTag": "Семейство бандлов",
103
- "familyUnlockAll": "Разблокировать all adapted",
104
- "familyUnlockAllConfirm": "Разблокировать all adapted (source-scan passed) sub packages in this family? Сбой ones stay disabled.",
105
- "familyUnlockAllDone": "Пакетная разблокировка семейства выполнена",
106
- "familyUnlockAllTip": "Пакетно разблокировать все подпакеты семейства, прошедшие проверку исходного кода",
107
- "familyUpdate": "Проверка версий семейства",
108
- "familyUpdateBtn": "Обновить",
109
- "frameworkPatchApplied": "применён повторно",
110
- "frameworkPatchSkipped": "не требуется",
111
- "frameworkRollbackBtn": "Откатить к предыдущей",
112
- "frameworkRollbackDone": "Откат запущен: {from} -> восстановление, служба кратковременно отключится",
113
- "frameworkRollbackTitle": "Откат к предыдущей версии платформы в один клик, служба перезапустится автоматически",
114
- "frameworkUpToDate": "Платформа обновлена",
115
- "frameworkUpToDateTitle": "Текущая платформа DSH уже последней версии",
116
- "frameworkUpgradeBtn": "Обновление платформы",
117
- "frameworkUpgradeCheckFailed": " (ошибка проверки версии — проверьте сеть и повторите)",
118
- "frameworkUpgradeConfirm": "Подтвердить upgrade? (service will restart)",
119
- "frameworkUpgradeDone": "Процесс обновления платформы выполнен",
120
- "frameworkUpgradeNotice": "Обнаружено обновление платформы DSH: {from} → {to}. Настройки сохранены в {dir}; патч: {patch}. Проверьте совместимость сторонних плагинов.",
121
- "frameworkUpgradeTitle": "Обновление платформы: резервная копия настроек → перезапуск службы DSH → npm upgrade платформы и пакетов (автооткат при ошибке)",
122
- "frameworkUpgradeUpToDate": " (уже последняя версия)",
123
- "frameworkUseUpgrade": "deepseek-harness является платформой DSH, а не плагином; обновление выполняется через карточку обновления платформы",
124
- "fwStepBackup": "Резервное копирование настроек",
125
- "fwStepDone": "Обновление завершено",
126
- "fwStepInstall": "Обновление платформы",
127
- "fwStepPkg": "Обновить official packages",
128
- "fwStepRelaunch": "Перезапуск службы DSH",
129
- "fwStepRollback": "Откат при сбое",
130
- "fwStepStop": "Остановка службы (страница временно отключится)",
131
- "giteeClear": "Очистить вход",
132
- "giteeClientId": "Client ID",
133
- "giteeClientSecret": "Client Secret",
134
- "giteeDesc": "Gitee direct-repo mode needs no login; login only raises API rate limits (optional): ① Open gitee.com → Настройки → Data management → Third-party apps (or go directly to https://gitee.com/oauth/applications/new); ② Create an app: any app name, homepage URL = http://127.0.0.1:{port} (any valid URL works), redirect/callback URL = http://127.0.0.1:{port}/plugin-console/gitee-oauth-callback, grant scope user_info, projects; ③ Fill Client ID / Client Secret below, click Сохранить, then click Авторize Gitee",
135
- "giteeEmpty": "Официальный API поиска Gitee устарел: введите имя репозитория (владелец/репо, напр. oschina/git-osc) и нажмите Enter",
136
- "giteeLoggedIn": "Выполнен вход в Gitee: ",
137
- "giteeLoginBtn": "Авторize Gitee",
138
- "giteeLoginPrompt": "Вход в Gitee не обязателен: введите имя репозитория для поиска и установки",
139
- "giteeRepoPlaceholder": "Введите репозиторий Gitee (владелец/репо, напр. oschina/git-osc)",
140
- "giteeSave": "Сохранить",
141
- "giteeSetupHint": "Вход не выполнен (необязательно) — прямой режим работает без входа; вход снимает ограничения лимитов",
142
- "giteeTitle": "Вход в Gitee (необязательно)",
143
- "githubCornerOut": "Вход в GitHub не выполнен",
144
- "githubLoggedIn": "Выполнен вход в GitHub: ",
145
- "headersPlaceholder": "Headers (optional): one per line, format Name: Value, e.g. Авторization: Bearer token",
146
- "homepageLabel": "Домашняя страница",
147
- "hubUpdateAvailable": "Скачать update",
148
- "install": "Добавить и включить",
149
- "installNote": "Применяется HMR; обновите страницу, если плагин содержит интерфейс",
150
- "installSkill": "Установить skill",
151
- "installed": "Установитьed and enabled",
152
- "installedAt": "Установитьed",
153
- "installedSkillsTitle": "Установитьed skills",
154
- "installedTitle": "Установитьed plugins",
155
- "installing": "Установитьing…",
156
- "installingLocal": "Установитьing…",
157
- "invalidSearchUrl": "Поиск URL template must contain the {q} placeholder",
158
- "invalidSourceUrl": "Источник URL must start with https:// (or a private http:// address)",
159
- "loadMore": "Загрузить ещё",
160
- "loading": "Чтение плагинов…",
161
- "loadingDetails": "Чтение сведений…",
162
- "loadingMore": "Загрузка…",
163
- "loadingPhase": "Загрузка",
164
- "marketEmpty": "Нет подходящих проектов.",
165
- "marketError": "Поиск failed",
166
- "marketLoading": "Поискing GitHub…",
167
- "marketLoadingOther": "Поискing {source}…",
168
- "marketTitle": "Плагин market (GitHub)",
169
- "marketTitleOther": "Плагин market ({source})",
170
- "migrateBtn": "Миграция и адаптация",
171
- "migrateTip": "Проект перенесён (адаптирован к текущей платформе)",
172
- "modeBtn": "Переключить режим маркета: маркет плагинов / маркет навыков (навыки устанавливаются из репозиториев SKILL.md в ~/.dsh/skills)",
173
- "multiEmpty": "Подходящих плагинов не найдено ни в одном источнике поиска.",
174
- "multiSourceTitle": "Мультиисточник: параллельный поиск по GitHub и всем источникам",
175
- "multiSourceToggle": "Переключатель мультиисточникового поиска",
176
- "needPackage": "В этом репозитории нет package.json, прямое добавление невозможно",
177
- "noComponents": "Серверных компонентов пока нет (они появятся после ИИ-развёртывания)",
178
- "noDetail": "Описание для этого плагина не предоставлено.",
179
- "noMatch": "Нет подходящих плагинов.",
180
- "noPackage": "В этом репозитории нет package.json, установка невозможна",
181
- "off": "Выключить",
182
- "officialBadge": "Официальный",
183
- "officialChecking": "Определение типов плагинов…",
184
- "officialInstallLabel": "Официальная установка",
185
- "officialOnlyToggle": "Только официальные",
186
- "officialTitle": "Установитьable via official dsh plugin add (dsh.bundle manifest)",
187
- "on": "Включить",
188
- "packageName": "npm-пакет",
189
- "pending": "Ожидание зависимостей",
190
- "pendingCompatHint": "Force-disabled after framework upgrade: click Check update first; if a newer version exists the button becomes Обновить & adapt - click it and it unlocks automatically after the compat check",
191
- "pendingCompatTag": "Ожидает адаптации",
192
- "pluginSkillTag": "Плагин",
193
- "pluginSkillsHint": "Предоставляются установленными плагинами, только для чтения; вызываются по имени навыка",
194
- "pluginSkillsTitle": "Плагин-provided skills",
195
- "pluginsMode": "Плагины",
196
- "pluginsTab": "Плагины",
197
- "privateRootHint": "Корневой пакет не опубликован в npm (приватный); прямая установка невозможна",
198
- "protectedTag": "Защищённый",
199
- "pure-plugin": "Обычный плагин",
200
- "readmeLabel": "Сводка Readme",
201
- "recentFailures": "Недавние ошибки установки",
202
- "refreshList": "Обновить plugin list",
203
- "relaunchBtn": "Перезапустить службу",
204
- "relaunchDone": "Запрошен ручной перезапуск (запуск службы, если порт не прослушивается)",
205
- "relaunchTitle": "Во время обновления платформы служба может отключиться — нажмите для ручного перезапуска DSH",
206
- "reloadPage": "Обновить страницу",
207
- "removeSource": "Удалить",
208
- "repoError": "Сбой to read repository",
209
- "repoLabel": "Репозиторий",
210
- "repoLandBusy": "Клонирование… (крупные репозитории могут занять время)",
211
- "repoLandDirLabel": "Сохранить path",
212
- "repoLandDone": "Размещено в: ",
213
- "repoLandEntry": "Клонирование репозиториев",
214
- "repoLandExists": "Уже существует — клонирование не требуется",
215
- "repoLandLabel": "Клонирование репозиториев",
216
- "repoLandLanded": "Размещено",
217
- "repoLandList": "Клонированные репозитории",
218
- "repoLandOpenFolder": "Открыть папку",
219
- "repoLandPlaceholder": "владелец/репо или URL GitHub, напр. deepseek-ai/deepseek-harness",
220
- "repoLandRemoveConfirm": "Удалить landed repo {repo} (local folder will be removed)?",
221
- "repoLandSaveDir": "Сохранить path",
222
- "repoLandTitle": "Клонирование репозиториев: клонирование любого проекта {source} в ~/.dsh/repos/ (не только плагинов DSH)",
223
- "repoLoading": "Чтение репозитория…",
224
- "resetSources": "Сбросить по умолчанию",
225
- "restartService": "Перезапустить service",
226
- "restarting": "Служба перезапускается, страница скоро восстановится…",
227
- "retry": "Повторить",
228
- "saveSource": "Сохранить",
229
- "search": "Поиск",
230
- "searchInstalledPlaceholder": "Поиск installed plugins (name or id)",
231
- "searchPlaceholder": "Поиск dsh-plugin projects on GitHub (empty = default query)",
232
- "searchPlaceholderOther": "Поиск {source} for plugins (empty = default query)",
233
- "searchSourceTitle": "Нажмите для переключения источника поиска (GitHub / Gitee / свой)",
234
- "searchSourcesDesc": "Поиск platforms (switch via the pill). Пользовательские sources use a URL template: {q}=keyword, {page}=page number",
235
- "searchSourcesTitle": "Поиск sources",
236
- "searchUrlPlaceholder": "Шаблон URL (должен содержать {q})",
237
- "service": "Серверный компонент",
238
- "setPrimary": "Сделать основным",
239
- "skillBadge": "Навык",
240
- "skillDelete": "Удалить skill",
241
- "skillDeleteConfirm": "Удалить skill「{name}」?",
242
- "skillDeletedMsg": "Навык удалён",
243
- "skillDetailDisabled": "Отключён",
244
- "skillDetailInstalled": "Установитьed",
245
- "skillDetailPath": "Путь",
246
- "skillDisable": "Отключить",
247
- "skillDisabledTag": "Отключён",
248
- "skillDisabledTitle": "Отключён: neither model nor user commands can invoke it (disable-model-invocation: true, re-enable anytime)",
249
- "skillEnable": "Включить",
250
- "skillEnabledMsg": "Навык включён",
251
- "skillInstallNote": "Навык скопирован в ~/.dsh/skills; если в профиле не включён плагин dsh-skill-filesystem, навык не обнаружится",
252
- "skillInstalledMsg": "Навык установлен",
253
- "skillInstalledTag": "Установлен",
254
- "skillMarketEmpty": "Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)",
255
- "skillMetaLabel": "Описание навыка",
256
- "skillNameLabel": "Имя навыка",
257
- "skillRepoNote": "Репозиторий навыка (SKILL.md), не npm-пакет",
258
- "skillSystemTag": "Системный",
259
- "skillSystemTitle": "Системный навык (~/.dsh/skills/.system и т.д.), удаление невозможно",
260
- "skillTab": "Навыки",
261
- "skillTitle": "Репозиторий содержит SKILL.md — можно установить как навык в ~/.dsh/skills",
262
- "skillToggledMsg": "Навык отключён",
263
- "skillTopicsLabel": "Темы",
264
- "skillUninstallHint": "Чтобы удалить навык: удалите каталог ~/.dsh/skills/<name>",
265
- "skillWhenToUseLabel": "Когда использовать",
266
- "skillsEmpty": "Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)",
267
- "skillsEmptyHint": "Здесь учитываются только пользовательские навыки (~/.dsh/skills); навыки из плагинов отображаются в Центре навыков",
268
- "skillsGithubOnly": "Поиск навыков поддерживается только через источник GitHub",
269
- "skillsMarketTitle": "Маркет навыков (GitHub)",
270
- "skillsMarketTitleOther": "Маркет навыков ({source})",
271
- "skillsMode": "Навыки",
272
- "skillsNote": "Режим навыков поддерживает только GitHub; установка навыка = клонирование репозитория в ~/.dsh/skills/<name>/ без патчей и перезапуска",
273
- "skillsSearchPlaceholder": "Поиск по навыкам (имя, автор, описание)…",
274
- "sourceName": "Имя",
275
- "sourceOf": "Источник:",
276
- "sourcePrimary": "Основной",
277
- "sourceUrl": "URL (https://…)",
278
- "sourcesBtn": "Источники",
279
- "sourcesDesc": "Настройка внешних источников и репозиториев для поиска и установки плагинов",
280
- "sourcesTitle": "Источники ПО",
281
- "sourcesUpdated": "Источники обновлены",
282
- "stageConfiguring": "Запись конфигурации активации",
283
- "stageInstalling": "Установка",
284
- "stageLabel": "Этап",
285
- "stagePreparing": "Подготовка",
286
- "stageRepairing": "Восстановление",
287
- "subpackagesEmpty": "Устанавливаемых подпакетов не найдено.",
288
- "subpackagesError": "Ошибка загрузки подпакетов",
289
- "subpackagesLoading": "Чтение списка подпакетов…",
290
- "subpackagesTitle": "Подпакеты репозитория (устанавливаются по отдельности)",
291
- "suiteBadge": "Набор",
292
- "suiteComponentFail": "Сбой",
293
- "suiteComponentOk": "OK",
294
- "suiteComponentType": "Компонент",
295
- "suiteInstall": "Установить набор",
296
- "suiteInstalledMsg": "Набор установлен",
297
- "suiteRepoNote": "Репозиторий набора (агрегатор подмодулей), не npm-пакет — см. официальную команду установки ниже",
298
- "suiteTitle": "Агрегатор подмодулей: автосборка компонентов (бандл-плагины / плагины / навыки / пресеты агентов) по логике install.ps1",
299
- "tab": "Консоль плагинов",
300
- "toggledOff": "Запрошено отключение",
301
- "toggledOn": "Запрошено включение",
302
- "toolbarCloseTitle": "Свернуть панель функций",
303
- "toolbarLabel": "Панель функций",
304
- "toolbarOpenTitle": "Развернуть панель функций",
305
- "unloading": "Выгрузка",
306
- "unobserved": "Не подключён",
307
- "upToDate": "Актуальная версия",
308
- "update": "Обновить",
309
- "updateAndAdapt": "Обновить и адаптировать",
310
- "updateAvailable": "Доступна новая версия",
311
- "updateCheckFailed": "Сбой проверки",
312
- "updateNow": "Обновить сейчас",
313
- "userDisabledTag": "Отключено пользователем",
314
- "userForcedTag": "Принудительно включён патчем",
315
- "versionLabel": "Версия",
316
- "view": "Осмотреть",
317
- "addGitSource": "Добавить источник Git",
318
- "addIndexSource": "Добавить индексный источник",
319
- "editSourceHint": "Укажите URL реестра или репозитория пакетов плагинов",
320
- "gitSourceBtn": "Git-источники",
321
- "gitSourcesDesc": "Шаблон URL для клонирования (плейсхолдеры {owner}/{repo}). Этот список И ЕСТЬ список пользовательских git-источников — два встроенных лишь по умолчанию; нажмите «Добавить git-источник», чтобы заменить на свой: Gitee = https://gitee.com/{owner}/{repo}.git; GitLab = https://gitlab.com/{owner}/{repo}.git; собственный Gitea = https://your-domain/{owner}/{repo}.git; зеркало/прокси = https://mirror/https://github.com/{owner}/{repo}.git; локальный bare-репозиторий = file:///D:/repos/{owner}/{repo}.git. Основной первый, при сбое переход к следующим",
322
- "gitSourcesTitle": "Источники Git-репозиториев",
323
- "gitUrlPlaceholder": "напр. https://gitee.com/{owner}/{repo}.git",
324
- "indexMergeDesc": "Объединение поисковых индексов из нескольких внешних каталогов плагинов",
325
- "indexMergeTitle": "Слияние индексов",
326
- "indexSync": "Синхронизировать индексы",
327
- "indexSyncing": "Синхронизация индексов…",
328
- "indexSyncDone": "Индексы успешно обновлены",
329
- "gitBranch": "Ветка Git",
330
- "gitAuthToken": "Токен доступа Git",
331
- "gitAuthHint": "Укажите имя секрета DSH с токеном доступа (не вставляйте сам токен)",
332
- "gitCloneDepth": "Глубина клонирования (shallow clone)",
333
- "gitSubmodules": "Клонировать подмодули",
334
- "gitStatus": "Статус источника Git",
335
- "indexMergeLabel": "Объединять все источники индекса",
336
- "indexSourcesDesc": "URL-адреса для скачивания статического индекса витрины плагинов (основной опрашивается первым, остальные по порядку при сбое). Укажите сервис интранета — СОДЕРЖИМОЕ индекса берётся из этого JSON, поэтому размещайте там объединённый публичный и приватный индекс. Чтобы видеть обе стороны сразу, включите опцию «Объединять все источники индекса» ниже",
337
- "indexSourcesTitle": "Источники индекса",
338
- "indexUrlPlaceholder": "URL JSON-индекса (https:// или локальный/интранет http://)",
339
- "marketIndexFailed": "Не удалось загрузить индекс витрины",
340
- "marketIndexFrom": "Источник индекса: {source}",
341
- "marketIndexOffline": "Офлайн-данные · кэш от {time} (источники индекса недоступны, показан последний удачный результат)",
342
- "removeSourceHint": "Удалить: убрать этот источник из списка (установленные плагины не пострадают)",
343
- "repoLandSourceUnknown": "настроенный источник git",
344
- "setPrimaryHint": "Сделать основным: опрашивается первым, при сбое используются остальные",
345
- "unknown": "неизвестно",
346
- "registryScan": "Сканировать источники",
347
- "registryScanBest": "Свежая {version} получена из: {name}",
348
- "registryScanFail": "недоступен",
349
- "registryScanHint": "Опрос реестров npm: доступность, пинг и последняя версия dsh-plugin-console для выбора основного источника",
350
- "registryScanNoVersion": "Пакет отсутствует в этом реестре",
351
- "registryScanSummary": "Сканирование завершено: {ok} из {total} доступны",
352
- "registryScanning": "Сканирование…"
353
- }
354
- }