@goodandready/dsh-russian-lang 0.2.19 → 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 (159) hide show
  1. package/README.md +1 -1
  2. package/README.ru.md +1 -1
  3. package/README.zh.md +102 -0
  4. package/lib/client.js +72 -203
  5. package/lib/index.js +41 -8
  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 -225
  84. package/ru/02-conversation.json +0 -846
  85. package/ru/03-models-workspace.json +0 -193
  86. package/ru/04-preset-cordis.json +0 -142
  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 -58
  90. package/ru/08-sidebar-terminal-archive.json +0 -48
  91. package/ru-plugins/01-token-dashboard.json +0 -83
  92. package/ru-plugins/02-subscriptions.json +0 -40
  93. package/ru-plugins/03-dshmarket.json +0 -539
  94. package/ru-plugins/04-context-doctor.json +0 -64
  95. package/ru-plugins/05-plugins-store.json +0 -81
  96. package/ru-plugins/06-im-hub.json +0 -97
  97. package/ru-plugins/07-better-sidebar.json +0 -490
  98. package/ru-plugins/08-task-board.json +0 -126
  99. package/ru-plugins/09-dshmarket-1.13.json +0 -46
  100. package/ru-plugins/10-kanban.json +0 -460
  101. package/ru-plugins/11-skill-hub.json +0 -257
  102. package/ru-plugins/12-skills-manager.json +0 -222
  103. package/ru-plugins/13-agent-teams.json +0 -193
  104. package/ru-plugins/14-ollama-cloud.json +0 -72
  105. package/ru-plugins/15-commandcode.json +0 -253
  106. package/ru-plugins/16-usage-stats.json +0 -126
  107. package/ru-plugins/17-dsh-context.json +0 -321
  108. package/ru-plugins/18-opencode-palette.json +0 -31
  109. package/ru-plugins/19-univer-office.json +0 -57
  110. package/ru-plugins/20-skill-explorer.json +0 -69
  111. package/ru-plugins/21-auto-collapse.json +0 -16
  112. package/ru-plugins/22-subagent-director.json +0 -142
  113. package/ru-plugins/23-moa.json +0 -214
  114. package/ru-plugins/24-personal-directive.json +0 -9
  115. package/ru-plugins/25-hooks.json +0 -11
  116. package/ru-plugins/26-config-manager.json +0 -468
  117. package/ru-plugins/27-config-manager-sync.json +0 -202
  118. package/ru-plugins/28-config-manager-market.json +0 -142
  119. package/ru-plugins/29-config-manager-recovery.json +0 -102
  120. package/ru-plugins/30-config-manager-history.json +0 -55
  121. package/ru-plugins/31-dshhub-market.json +0 -398
  122. package/ru-plugins/32-vision-bridge.json +0 -216
  123. package/ru-plugins/33-messenger-gateway.json +0 -236
  124. package/ru-plugins/34-key-rotation.json +0 -217
  125. package/ru-plugins/35-gitea.json +0 -174
  126. package/ru-plugins/36-cost-meter.json +0 -90
  127. package/ru-plugins/37-time-machine.json +0 -38
  128. package/ru-plugins/38-context-lens.json +0 -36
  129. package/ru-plugins/39-shadow-auditor.json +0 -67
  130. package/ru-plugins/40-clinebot.json +0 -142
  131. package/ru-plugins/41-lanmode.json +0 -164
  132. package/ru-plugins/42-plugin-console.json +0 -382
  133. package/ru-plugins/43-better-input.json +0 -127
  134. package/ru-plugins/44-auto-review.json +0 -83
  135. package/ru-plugins/45-session-control.json +0 -122
  136. package/ru-plugins/46-memory-brain.json +0 -33
  137. package/ru-plugins/47-llm-wiki.json +0 -26
  138. package/ru-plugins/48-task-tracker.json +0 -19
  139. package/ru-plugins/49-usage-guard.json +0 -51
  140. package/ru-plugins/50-automode.json +0 -46
  141. package/ru-plugins/51-plugin-guard.json +0 -12
  142. package/ru-plugins/52-navbar.json +0 -6
  143. package/ru-plugins/53-remote-workspace.json +0 -140
  144. package/ru-plugins/54-workshop-market.json +0 -58
  145. package/ru-plugins/55-skin-center.json +0 -97
  146. package/ru-plugins/56-cron.json +0 -334
  147. package/ru-plugins/57-live-canvas.json +0 -121
  148. package/ru-plugins/58-grok-xsearch.json +0 -80
  149. package/ru-plugins/59-goal.json +0 -54
  150. package/ru-plugins/60-model-sync.json +0 -121
  151. package/ru-plugins/61-issue-reporter.json +0 -192
  152. package/ru-plugins/62-model-search.json +0 -22
  153. package/ru-plugins/63-agent-orchestrator.json +0 -11
  154. package/ru-plugins/64-key-limits.json +0 -27
  155. package/ru-plugins/65-subscriptions.json +0 -185
  156. package/ru-plugins/66-tts.json +0 -211
  157. package/ru-plugins/67-voice.json +0 -158
  158. package/ru-plugins/68-image-gen.json +0 -143
  159. package/ru-plugins/69-plugin-notify.json +0 -29
@@ -0,0 +1 @@
1
+ {"dsh-lanmode":{"activeMdns":"активен","adminAllowLabel":"Подсети с правами администратора (adminAllow)","adminAllowPh":"192.168.1.100, 10.0.0.0/24 (настройки и плагины)","allowLabel":"Разрешённые подсети IP (allow)","allowPh":"192.168.1.0/24, 127.0.0.1 (пусто = разрешить всем)","approvalNotification":"Требуется подтверждение действия","authPasswordLabel":"Пароль администратора (authPassword)","authPasswordPh":"Пароль для входа","authPasswordRefLabel":"Ссылка на секрет пароля (authPasswordRef)","authPasswordRefPh":"DSH_AUTH_PASSWORD или имя секрета в Credentials","authSessionDaysLabel":"Срок действия сессии в днях (authSessionDays)","authUserLabel":"Имя пользователя администратора (authUser)","badge.active":"LAN активен ({ip})","badge.local_only":"Только localhost","bindHostLabel":"Сетевой интерфейс для прослушивания (bindHost)","bindHostPh":"0.0.0.0 (все адаптеры), 192.168.1.x или 127.0.0.1","btn.refresh_ips":"Обновить список IP","btn.regenerate_pin":"Сгенерировать новый PIN","btn.save":"Сохранить настройки LAN","cardError":"⚠️ Ошибка карточки LanMode:","clipboardLabel":"Фолбэк navigator.clipboard.writeText для обычного HTTP","copied":"Скопировано ✔","copyUrl":"Скопировать URL","desktopMode":"Принудительный десктопный режим","desktopModeSub":"Отключает мобильную адаптацию и показывает полный десктопный UI","deviceCurrent":"Текущее устройство","deviceNoDevices":"Подключённых мобильных устройств не обнаружено","deviceRevoke":"Отозвать доступ","deviceRevokeAllConfirm":"Отозвать доступ всем мобильным устройствам, кроме текущего?","deviceRevokeAllOthers":"Отозвать доступ всем остальным","deviceRevokeConfirm":"Вы уверены, что хотите отозвать доступ для этого устройства?","devicesActions":"Действия","devicesIp":"IP-адрес","devicesLastSeen":"Последняя активность","devicesSub":"Список мобильных устройств и браузеров, авторизованных в LAN-режиме","devicesTitle":"Подключённые устройства","devicesUa":"Устройство / Браузер","diagnosticsLabel":"Включить эндпоинты диагностики (/dsh-lanmode/health, /probe)","directPortLabel":"Порт прямого подключения","downloadCa":"Корневой сертификат (.crt)","downloadProfile":"Профиль iOS (.mobileconfig)","err.bind_failed":"Не удалось занять порт {port}: {error}","err.invalid_pin":"Неверный PIN-код","field.bind_address":"Сетевой интерфейс (IP)","field.bind_address_hint":"IP-адрес в локальной сети (обычно 192.168.x.x или 10.x.x.x)","field.https_proxy":"Использовать HTTPS / reverse proxy","field.https_proxy_hint":"Включите, если используете Nginx/Caddy с SSL-сертификатом","field.pin_auth":"Защита PIN-кодом","field.pin_auth_hint":"Требовать 4-значный PIN-код при первом входе с мобильного устройства","field.pin_code":"Установленный PIN-код","field.port":"Порт","field.port_hint":"Порт веб-сервера (по умолчанию 3000)","field.token_ttl":"Срок действия сессии (часы)","field.token_ttl_hint":"Время хранения авторизации на мобильном устройстве","guestAllowLabel":"Подсети с гостевым доступом (guestAllow)","guestAllowPh":"192.168.2.0/24 (только чат, настройки заблокированы)","header.sub":"Удобный доступ к DeepSeek Harness из локальной сети Wi-Fi/LAN с мобильных устройств","header.title":"Локальный доступ (LAN Mode)","healthLink":"Открыть страницу диагностики (/dsh-lanmode/health) ↗","interfacesLabel":"Сетевой адаптер:","lanPinRefLabel":"Ссылка на секрет LAN PIN","lanPinRefPh":"LAN_PIN или имя секрета в Credentials","logout":"Выйти из системы","logoutConfirm":"Вы уверены, что хотите выйти из DSH?","mdnsAnnounceLabel":"Анонсировать домен через mDNS (Zeroconf / Bonjour)","mdnsNameLabel":"Имя домена mDNS (mdnsName)","mdnsNamePh":"dsh.local (обязательно оканчивается на .local)","mobileEnterLabel":"Клавиша Enter отправляет сообщение на сенсорной клавиатуре","modal.close":"Закрыть","modal.qr_sub":"Убедитесь, что смартфон подключен к той же Wi-Fi сети","modal.qr_title":"Сканируйте для подключения","modal.url_label":"Адрес для браузера:","modeAuto":"auto (автоопределение интерфейса)","modeDirect":"direct (прямое подключение)","modeLabel":"Режим локального доступа (mode)","modeLan":"lan (только локальная сеть)","modeLoopback":"loopback (только локальный компьютер)","modeProxy":"proxy (через реверс-прокси Nginx/Caddy)","ms":"мс","msg.pin_changed":"Новый PIN-код установлен: {pin}","msg.saved":"Параметры LAN-доступа сохранены","notifDenied":"Заблокированы пользователем","notifEnable":"Включить уведомления","notifGranted":"Разрешены ✔","notifStatus":"Статус уведомлений в браузере:","openQr":"Открыть QR-код","passwordAuthLabel":"Требовать обязательную авторизацию по логину и паролю","phoneConnected":"📱 Готов к работе со смартфона","portLabel":"Порт веб-сервера (port)","portPh":"По умолчанию 3000 (оставьте пустым для авто)","privilegedExtraLabel":"Дополнительные доверенные IP","privilegedExtraPh":"192.168.1.50, 10.0.0.5","pwaLabel":"Внедрять манифест PWA и мобильные мета-теги viewport","quickConnect":"Быстрое подключение со смартфона или планшета","quickQrTitle":"📱 Вход с мобильного устройства","randomUuidLabel":"Полифил crypto.randomUUID для обычного HTTP","retry":"Повторить","rttLabel":"Пинг","saveError":"Ошибка сохранения настроек: ","saveSettings":"Сохранить настройки LAN","saveSuccess":"Настройки успешно сохранены ✔","saving":"Сохранение…","secAccess":"Политика авторизации и LAN PIN","secAccessDesc":"Требование ввода PIN-кода для новых устройств в локальной сети","secAuth":"Аутентификация и защита входа","secAuthDesc":"Защита DSH логином и паролем для многопользовательских сетей","secMobile":"Мобильный интерфейс, mDNS и PWA","secMobileDesc":"Локальное обнаружение, мобильные жесты и веб-приложение (PWA)","secNetwork":"Сетевые интерфейсы и привязка портов","secNetworkDesc":"Настройка локальных сетевых адаптеров, портов и режимов привязки","secPolyfills":"Полифилы браузерных Web API (HTTP Shims)","secPolyfillsDesc":"Восстанавливает работу ограниченных API браузера на незащищённом HTTP","secRouting":"Маршрутизация и проксирование","secRoutingDesc":"Параметры прямого доступа и проксирования запросов локальной сети","secSecurity":"Безопасность и фильтрация IP","secSecurityDesc":"Разграничение прав по подсетям и контроль привилегированных действий","secTls":"Безопасное соединение (TLS / SSL)","secTlsDesc":"Шифрование трафика для работы аудио/видео и PWA на мобильных устройствах","secTunnel":"Удалённый доступ (Cloudflare Tunnel)","secTunnelDesc":"Безопасный доступ из интернета без белого IP и проброса портов","section.network":"Сетевые интерфейсы и адреса","section.network_desc":"Выберите сетевой адаптер для трансляции интерфейса в локальную сеть","section.qr":"Подключение по QR-коду","section.qr_desc":"Отсканируйте код камерой смартфона для мгновенного перехода в чат DSH","section.security":"Безопасность и пароли доступа","section.security_desc":"Защита входа в LAN-режиме с помощью PIN-кода или токена сессии","shareUrl":"Поделиться ↗","stat.connected_devices":"Подключено устройств","stat.last_device":"Последнее устройство","stat.traffic":"LAN трафик","status.listening":"Слушает на http://{ip}:{port}","status.stopped":"Остановлен","streamTimeoutLabel":"Таймаут стриминга ответов (сек)","streamTimeoutPh":"По умолчанию 120","sub":"mDNS (dsh.local), полифилы Web API, TLS для микрофона и PWA","telemetryConns":"Активных WebSocket-соединений","telemetryRecv":"Принято данных","telemetryRtt":"Сетевая задержка (RTT)","telemetrySent":"Передано данных","telemetryTitle":"Телеметрия локальной сети","title":"Локальный и мобильный доступ (dsh-lanmode)","tlsCertLabel":"Путь к файлу сертификата (.crt)","tlsFiles":"files (пользовательские файлы сертификата и ключа)","tlsHostsLabel":"Домены и IP в сертификате","tlsHostsPh":"dsh.local, 192.168.1.111","tlsKeyLabel":"Путь к файлу закрытого ключа (.key)","tlsModeLabel":"Режим TLS","tlsOff":"off (обычный незашифрованный HTTP)","tlsSelfSigned":"self-signed (автоматический самоподписанный сертификат)","toolPrefix":"Инструмент: ","tunnelModeLabel":"Режим туннеля (tunnel)","tunnelNamed":"named (постоянный туннель по токену)","tunnelOff":"off (выключен)","tunnelPinLabel":"Требовать LAN PIN при входе через WAN-туннель Cloudflare","tunnelQuick":"quick (быстрый временный trycloudflare.com)","tunnelTokenRefLabel":"Ссылка на токен туннеля (tunnelTokenRef)","tunnelTokenRefPh":"CF_TUNNEL_TOKEN или имя секрета в Credentials","turnEndNotification":"Ассистент завершил ответ","unblockSettingsLabel":"Разблокировать ограничение настроек для loopback","unlockPrivilegedLabel":"Разрешить привилегированные вызовы (настройки, ключи) из LAN"}}
@@ -0,0 +1 @@
1
+ {"settings.pluginConsole":{"active":"Подключён","adaptUnlockBtn":"Адаптировано — разблокировать","adaptUnlockDone":"Разблокировано: обновите страницу, строка включена","adaptUnlockHint":"Установленная версия прошла проверку исходного кода: разблокировать сейчас","addGitSource":"Добавить источник Git","addIndexSource":"Добавить индексный источник","addLocal":"Добавить локальный","addSearchSource":"Добавить источник поиска","addSource":"Добавить","adoptableDetected":"Теперь совместим: версия {version} прошла проверку исходного кода — нажмите «Адаптирован — разблокировать» для включения (автоматически никогда не включается)","aggregateBadge":"Агрегатор","aggregateTitle":"Репозиторий-агрегатор: корень не опубликован; плагины находятся в подпакетах (откройте для установки)","aiConfirmDeploy":"Будет выполнено шагов развёртывания: {n} для {name} (возможна установка ПО, запись настроек, запуск служб). Подтвердить и развернуть?","aiConsentApprove":"Согласен, продолжить (может взиматься плата)","aiConsentDecline":"Отмена","aiConsentNotifyTitle":"Установка плагина требует подтверждения","aiConsentRemember":"Больше не спрашивать (автоодобрение ИИ-планировщика; напоминания можно вернуть внизу маркета)","aiConsentText":"Все стандартные каналы установки не сработали. Локальный ИИ может взять установку на себя, вызвав модель DeepSeek API (может взиматься плата). Продолжить?","aiEmpowerCancel":"Отмена","aiEmpowerComponents":"Обнаруженные серверные компоненты","aiEmpowerDone":"Развёртывание через ИИ завершено","aiEmpowerExecuting":"ИИ выполняет развёртывание…","aiEmpowerFail":"Сбой развёртывания через ИИ","aiEmpowerFrameworkCheck":"Проверка совместимости с платформой","aiEmpowerLabel":"ИИ-развёртывание","aiEmpowerLogs":"Журнал выполнения","aiEmpowerNeedSteps":"Выберите хотя бы один шаг, затем нажмите «Одобрить и развернуть»","aiEmpowerPlanTitle":"План развёртывания через ИИ","aiEmpowerRun":"Одобрить и развернуть","aiEmpowerSrcTitle":"Компонент для развёртывания (npm-пакет или репозиторий GitHub)","aiEmpowerSteps":"Шаги выполнения (выбираемые)","aiEmpowerTitle":"ИИ-развёртывание: чтение документации, планирование и автоматическое развёртывание компонента; для серверных компонентов доступны кнопки запуска/остановки","aiEmpowerType":"Тип","aiEmpowerWaiting":"ИИ анализирует документацию и составляет план (1–5 мин, использует DeepSeek API)…","aiFallbackLabel":"ИИ-помощник","aiFallbackOff":"ИИ-помощник отключён вашими настройками; установка отменена без затрат","aiFallbackTitle":"Когда выключено: при сбое стандартных каналов установка сразу отменяется без вызова API модели","aiPlanHint":"⚠️ ИИ только составляет план — для развёртывания требуется ваше явное подтверждение: выбор шагов → Одобрить и развернуть → повторное подтверждение","aiProgressTitle":"Выполняется развёртывание через ИИ — нажмите для просмотра","aiRememberNote":"ИИ-помощник одобрен автоматически согласно вашим настройкам (напоминания можно вернуть внизу)","aiRememberReset":"Напоминания ИИ-помощника отключены (нажмите для восстановления)","aiRepaired":"Локальные AI took over and finished the repair; refresh the page","aiWorkspaceInfo":"Рабочее пространство исследования","autoReload":"Страница будет перезагружена автоматически…","backToSearch":"Назад к поиску","bundleNote":"Этот пакет является бандл-плагином (например, пакет оформления); перезапустите службу DSH для активации","cancelEdit":"Отмена","checkUpdate":"Проверить обновление","checkingUpdate":"Проверка…","cleanResiduals":"Очистить остаточные резервные копии","closeModal":"Закрыть","collapseDesc":"Свернуть","collapseResults":"Свернуть результаты","compActionDone":"{action}: {name}","compAutoTitle":"Автозапуск: запускать этот сервер автоматически при старте DSH (выкл. = вручную)","compCollapseTitle":"Свернуть карточку сервера","compDropTitle":"Развернуть для открытия всех URL сервера","compExpandTitle":"Развернуть карточку сервера","compHealthy":"Исправен","compNoUrl":"URL пока отсутствует","compOpen":"Открыть","compRefresh":"Обновить component status","compRunning":"Работает","compStart":"Запустить","compStatus":"Статус","compStop":"Остановить","compStopped":"Остановлен","compUnhealthy":"Неисправен","compatGateAutoDetect":"Проверять адаптированные плагины при открытии (только подсказка)","compatGateAutoDisable":"Автоматически отключать несовместимые плагины при обновлении","compatGateHint":"Выключите для полностью ручного управления: обновление только выдаст предупреждение и не изменит тумблеры, а подсказки проверки отображаться не будут","compatGateLabel":"Гейт совместимости","compatGateSaved":"Настройки гейта совместимости сохранены","config-only":"Только настройки","confirmDelete":"Подтвердить delete?","consentWaiting":"Ожидание одобрения…","copiedInstallCmd":"Установить command copied — paste into your terminal to run it manually","copyInstallCmd":"Копировать","deleteBundleNote":"Бандл удалён; изменения вступят в силу после перезапуска службы","deleteNote":"Плагин deleted and package uninstalled; refreshing","deletePlugin":"Удалить plugin (remove config and uninstall package)","deleting":"Удаление…","depsOutdatedHint":"Для обновления этого пакета также требуются версии подпакетов (во избежание конфликтов)","details":"Сведения","direct":"(Браузер обращается к GitHub напрямую; серверный канал используется как резервный)","directOther":"Поискing {source} through the server channel (custom sources do not use browser-direct)","disabledTag":"Отключён","dismissFailure":"Скрыть уведомление","dshHint":"Похоже на плагин DSH","editSource":"Изменить","editSourceHint":"Укажите URL реестра или репозитория пакетов плагинов","elapsed":"Прошло","empty":"Нет доступных плагинов.","enabledTag":"Включён","error":"Плагины are temporarily unavailable.","expandDesc":"Развернуть","expandResults":"Развернуть результаты","extraEmpty":"Нет установленных сторонних плагинов.","extraFilter":"Установитьed","extraFilterAll":"Все","extraFilterTitle":"Переключить: установленные (сторонние) / все","extraTag":"Сторонний","failed":"Операция не удалась","familyCheckUpdate":"Проверить все","familyCheckUpdateTip":"When a newer version is detected this Обновить button appears; click to start the full-family update (subpackage alignment + adapt check)","familyCollapse":"Свернуть","familyExpand":"Развернуть","familySubs":"подпакетов","familyTag":"Семейство бандлов","familyUnlockAll":"Разблокировать all adapted","familyUnlockAllConfirm":"Разблокировать all adapted (source-scan passed) sub packages in this family? Сбой ones stay disabled.","familyUnlockAllDone":"Пакетная разблокировка семейства выполнена","familyUnlockAllTip":"Пакетно разблокировать все подпакеты семейства, прошедшие проверку исходного кода","familyUpdate":"Проверка версий семейства","familyUpdateBtn":"Обновить","frameworkPatchApplied":"применён повторно","frameworkPatchSkipped":"не требуется","frameworkRollbackBtn":"Откатить к предыдущей","frameworkRollbackDone":"Откат запущен: {from} -> восстановление, служба кратковременно отключится","frameworkRollbackTitle":"Откат к предыдущей версии платформы в один клик, служба перезапустится автоматически","frameworkUpToDate":"Платформа обновлена","frameworkUpToDateTitle":"Текущая платформа DSH уже последней версии","frameworkUpgradeBtn":"Обновление платформы","frameworkUpgradeCheckFailed":" (ошибка проверки версии — проверьте сеть и повторите)","frameworkUpgradeConfirm":"Подтвердить upgrade? (service will restart)","frameworkUpgradeDone":"Процесс обновления платформы выполнен","frameworkUpgradeNotice":"Обнаружено обновление платформы DSH: {from} → {to}. Настройки сохранены в {dir}; патч: {patch}. Проверьте совместимость сторонних плагинов.","frameworkUpgradeTitle":"Обновление платформы: резервная копия настроек → перезапуск службы DSH → npm upgrade платформы и пакетов (автооткат при ошибке)","frameworkUpgradeUpToDate":" (уже последняя версия)","frameworkUseUpgrade":"deepseek-harness является платформой DSH, а не плагином; обновление выполняется через карточку обновления платформы","fwFailedButUpgraded":"Сам фреймворк уже обновлён до {v} и активен — не удался только финальный шаг «перезапуск сервиса». Используйте перезапуск сервиса для подтверждения или выполните откат при необходимости.","fwPanelAvailable":"Доступно обновление: {v}","fwPanelBtn":"Фреймворк","fwPanelCheckFailed":"Не удалось проверить версию: {err}","fwPanelChecking":"проверка…","fwPanelConfirmBody":"Обновить до {v}? Скрипт сохранит резервную копию конфигурации, предварительно отключит несовместимые плагины, остановит сервис, установит новую версию и перезапустит её; при сбое запуска сначала изолирует проблему и повторит попытку, и только затем выполнит полный откат.","fwPanelCurrent":"Установлено","fwPanelNoRecord":"Записей об обновлениях пока нет (последние действия по обновлению/откату всегда отображаются здесь)","fwPanelRecheck":"Перепроверить версию","fwPanelRefreshStatus":"Обновить статус","fwPanelTitle":"Обновление фреймворка DSH","fwPanelUpToDate":"Актуальная версия (последняя {latest} · следующая {next})","fwRollbackDone":"Уже выполнен откат до {v} (это версия из снимка; более ранней версии для восстановления нет)","fwStepBackup":"Резервное копирование настроек","fwStepDone":"Обновление завершено","fwStepInstall":"Обновление платформы","fwStepPkg":"Обновить official packages","fwStepRelaunch":"Перезапуск службы DSH","fwStepRollback":"Откат при сбое","fwStepStop":"Остановка службы (страница временно отключится)","gateBtn":"Гейт совместимости","gateModalTitle":"Гейт совместимости плагинов","gatePendingInfo":"Ожидают адаптации: {n} плагин(ов) — зафиксировано проверкой обновления или карантином запуска; разблокируйте после обновления плагина","gatePendingNone":"Нет плагинов, ожидающих проверки","gateTitle":"Совместимость плагинов","gitAuthHint":"Укажите имя секрета DSH с токеном доступа (не вставляйте сам токен)","gitAuthToken":"Токен доступа Git","gitBranch":"Ветка Git","gitCloneDepth":"Глубина клонирования (shallow clone)","gitSourceBtn":"Git-источники","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. Основной первый, при сбое переход к следующим","gitSourcesTitle":"Источники Git-репозиториев","gitStatus":"Статус источника Git","gitSubmodules":"Клонировать подмодули","gitUrlPlaceholder":"напр. https://gitee.com/{owner}/{repo}.git","giteeClear":"Очистить вход","giteeClientId":"Client ID","giteeClientSecret":"Client Secret","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","giteeEmpty":"Официальный API поиска Gitee устарел: введите имя репозитория (владелец/репо, напр. oschina/git-osc) и нажмите Enter","giteeLoggedIn":"Выполнен вход в Gitee: ","giteeLoginBtn":"Авторize Gitee","giteeLoginPrompt":"Вход в Gitee не обязателен: введите имя репозитория для поиска и установки","giteeRepoPlaceholder":"Введите репозиторий Gitee (владелец/репо, напр. oschina/git-osc)","giteeSave":"Сохранить","giteeSetupHint":"Вход не выполнен (необязательно) — прямой режим работает без входа; вход снимает ограничения лимитов","giteeTitle":"Вход в Gitee (необязательно)","githubCornerOut":"Вход в GitHub не выполнен","githubLoggedIn":"Выполнен вход в GitHub: ","headersPlaceholder":"Headers (optional): one per line, format Name: Value, e.g. Авторization: Bearer token","homepageLabel":"Домашняя страница","hubUpdateAvailable":"Скачать update","indexMergeDesc":"Объединение поисковых индексов из нескольких внешних каталогов плагинов","indexMergeLabel":"Объединять все источники индекса","indexMergeTitle":"Слияние индексов","indexSourcesDesc":"URL-адреса для скачивания статического индекса витрины плагинов (основной опрашивается первым, остальные по порядку при сбое). Укажите сервис интранета — СОДЕРЖИМОЕ индекса берётся из этого JSON, поэтому размещайте там объединённый публичный и приватный индекс. Чтобы видеть обе стороны сразу, включите опцию «Объединять все источники индекса» ниже","indexSourcesTitle":"Источники индекса","indexSync":"Синхронизировать индексы","indexSyncDone":"Индексы успешно обновлены","indexSyncing":"Синхронизация индексов…","indexUrlPlaceholder":"URL JSON-индекса (https:// или локальный/интранет http://)","install":"Добавить и включить","installNote":"Применяется HMR; обновите страницу, если плагин содержит интерфейс","installSkill":"Установить skill","installed":"Установитьed and enabled","installedAt":"Установитьed","installedSkillsTitle":"Установитьed skills","installedTitle":"Установитьed plugins","installing":"Установитьing…","installingLocal":"Установитьing…","invalidSearchUrl":"Поиск URL template must contain the {q} placeholder","invalidSourceUrl":"Источник URL must start with https:// (or a private http:// address)","loadMore":"Загрузить ещё","loading":"Чтение плагинов…","loadingDetails":"Чтение сведений…","loadingMore":"Загрузка…","loadingPhase":"Загрузка","marketEmpty":"Нет подходящих проектов.","marketError":"Поиск failed","marketIndexFailed":"Не удалось загрузить индекс витрины","marketIndexFrom":"Источник индекса: {source}","marketIndexOffline":"Офлайн-данные · кэш от {time} (источники индекса недоступны, показан последний удачный результат)","marketLoading":"Поискing GitHub…","marketLoadingOther":"Поискing {source}…","marketTitle":"Плагин market (GitHub)","marketTitleOther":"Плагин market ({source})","migrateBtn":"Миграция и адаптация","migrateTip":"Проект перенесён (адаптирован к текущей платформе)","modeBtn":"Переключить режим маркета: маркет плагинов / маркет навыков (навыки устанавливаются из репозиториев SKILL.md в ~/.dsh/skills)","multiEmpty":"Подходящих плагинов не найдено ни в одном источнике поиска.","multiSourceTitle":"Мультиисточник: параллельный поиск по GitHub и всем источникам","multiSourceToggle":"Переключатель мультиисточникового поиска","needPackage":"В этом репозитории нет package.json, прямое добавление невозможно","noComponents":"Серверных компонентов пока нет (они появятся после ИИ-развёртывания)","noDetail":"Описание для этого плагина не предоставлено.","noMatch":"Нет подходящих плагинов.","noPackage":"В этом репозитории нет package.json, установка невозможна","off":"Выключить","officialBadge":"Официальный","officialChecking":"Определение типов плагинов…","officialInstallLabel":"Официальная установка","officialOnlyToggle":"Только официальные","officialTitle":"Установитьable via official dsh plugin add (dsh.bundle manifest)","on":"Включить","packageName":"npm-пакет","pending":"Ожидание зависимостей","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","pendingCompatTag":"Ожидает адаптации","pluginSkillTag":"Плагин","pluginSkillsHint":"Предоставляются установленными плагинами, только для чтения; вызываются по имени навыка","pluginSkillsTitle":"Плагин-provided skills","pluginsMode":"Плагины","pluginsTab":"Плагины","privateRootHint":"Корневой пакет не опубликован в npm (приватный); прямая установка невозможна","protectedTag":"Защищённый","pure-plugin":"Обычный плагин","readmeLabel":"Сводка Readme","recentFailures":"Недавние ошибки установки","refreshList":"Обновить plugin list","registryScan":"Сканировать источники","registryScanBest":"Свежая {version} получена из: {name}","registryScanFail":"недоступен","registryScanHint":"Опрос реестров npm: доступность, пинг и последняя версия dsh-plugin-console для выбора основного источника","registryScanNoVersion":"Пакет отсутствует в этом реестре","registryScanSummary":"Сканирование завершено: {ok} из {total} доступны","registryScanning":"Сканирование…","relaunchBtn":"Перезапустить службу","relaunchDone":"Запрошен ручной перезапуск (запуск службы, если порт не прослушивается)","relaunchTitle":"Во время обновления платформы служба может отключиться — нажмите для ручного перезапуска DSH","reloadPage":"Обновить страницу","removeSource":"Удалить","removeSourceHint":"Удалить: убрать этот источник из списка (установленные плагины не пострадают)","repoError":"Сбой to read repository","repoLabel":"Репозиторий","repoLandBusy":"Клонирование… (крупные репозитории могут занять время)","repoLandDirLabel":"Сохранить path","repoLandDone":"Размещено в: ","repoLandEntry":"Клонирование репозиториев","repoLandExists":"Уже существует — клонирование не требуется","repoLandLabel":"Клонирование репозиториев","repoLandLanded":"Размещено","repoLandList":"Клонированные репозитории","repoLandOpenFolder":"Открыть папку","repoLandPlaceholder":"владелец/репо или URL GitHub, напр. deepseek-ai/deepseek-harness","repoLandRemoveConfirm":"Удалить landed repo {repo} (local folder will be removed)?","repoLandSaveDir":"Сохранить path","repoLandSourceUnknown":"настроенный источник git","repoLandTitle":"Клонирование репозиториев: клонирование любого проекта {source} в ~/.dsh/repos/ (не только плагинов DSH)","repoLoading":"Чтение репозитория…","resetSources":"Сбросить по умолчанию","restartService":"Перезапустить service","restarting":"Служба перезапускается, страница скоро восстановится…","retry":"Повторить","riskyEnableBody":"Этот плагин признан несовместимым с текущим фреймворком (автоматически отключён во время обновления). Принудительное включение может привести к сбою следующего запуска DSH и потребовать ручного восстановления. Принудительно включить?","riskyEnableCancel":"Отмена","riskyEnableConfirm":"Принудительно включить","riskyEnableTitle":"Принудительно включить несовместимый плагин?","saveSource":"Сохранить","search":"Поиск","searchInstalledPlaceholder":"Поиск installed plugins (name or id)","searchPlaceholder":"Поиск dsh-plugin projects on GitHub (empty = default query)","searchPlaceholderOther":"Поиск {source} for plugins (empty = default query)","searchSourceTitle":"Нажмите для переключения источника поиска (GitHub / Gitee / свой)","searchSourcesDesc":"Поиск platforms (switch via the pill). Пользовательские sources use a URL template: {q}=keyword, {page}=page number","searchSourcesTitle":"Поиск sources","searchUrlPlaceholder":"Шаблон URL (должен содержать {q})","service":"Серверный компонент","setPrimary":"Сделать основным","setPrimaryHint":"Сделать основным: опрашивается первым, при сбое используются остальные","skillBadge":"Навык","skillDelete":"Удалить skill","skillDeleteConfirm":"Удалить skill「{name}」?","skillDeletedMsg":"Навык удалён","skillDetailDisabled":"Отключён","skillDetailInstalled":"Установитьed","skillDetailPath":"Путь","skillDisable":"Отключить","skillDisabledTag":"Отключён","skillDisabledTitle":"Отключён: neither model nor user commands can invoke it (disable-model-invocation: true, re-enable anytime)","skillEnable":"Включить","skillEnabledMsg":"Навык включён","skillInstallNote":"Навык скопирован в ~/.dsh/skills; если в профиле не включён плагин dsh-skill-filesystem, навык не обнаружится","skillInstalledMsg":"Навык установлен","skillInstalledTag":"Установлен","skillMarketEmpty":"Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)","skillMetaLabel":"Описание навыка","skillNameLabel":"Имя навыка","skillRepoNote":"Репозиторий навыка (SKILL.md), не npm-пакет","skillSystemTag":"Системный","skillSystemTitle":"Системный навык (~/.dsh/skills/.system и т.д.), удаление невозможно","skillTab":"Навыки","skillTitle":"Репозиторий содержит SKILL.md — можно установить как навык в ~/.dsh/skills","skillToggledMsg":"Навык отключён","skillTopicsLabel":"Темы","skillUninstallHint":"Чтобы удалить навык: удалите каталог ~/.dsh/skills/<name>","skillWhenToUseLabel":"Когда использовать","skillsEmpty":"Каталог навыков пуст (автосбор из репозиториев с тегами agent-skills / claude-skills / dsh-skill)","skillsEmptyHint":"Здесь учитываются только пользовательские навыки (~/.dsh/skills); навыки из плагинов отображаются в Центре навыков","skillsGithubOnly":"Поиск навыков поддерживается только через источник GitHub","skillsMarketTitle":"Маркет навыков (GitHub)","skillsMarketTitleOther":"Маркет навыков ({source})","skillsMode":"Навыки","skillsNote":"Режим навыков поддерживает только GitHub; установка навыка = клонирование репозитория в ~/.dsh/skills/<name>/ без патчей и перезапуска","skillsSearchPlaceholder":"Поиск по навыкам (имя, автор, описание)…","sourceName":"Имя","sourceOf":"Источник:","sourcePrimary":"Основной","sourceUrl":"URL (https://…)","sourcesBtn":"Источники","sourcesDesc":"Настройка внешних источников и репозиториев для поиска и установки плагинов","sourcesTitle":"Источники ПО","sourcesUpdated":"Источники обновлены","stageConfiguring":"Запись конфигурации активации","stageInstalling":"Установка","stageLabel":"Этап","stagePreparing":"Подготовка","stageRepairing":"Восстановление","subpackagesEmpty":"Устанавливаемых подпакетов не найдено.","subpackagesError":"Ошибка загрузки подпакетов","subpackagesLoading":"Чтение списка подпакетов…","subpackagesTitle":"Подпакеты репозитория (устанавливаются по отдельности)","suiteBadge":"Набор","suiteComponentFail":"Сбой","suiteComponentOk":"OK","suiteComponentType":"Компонент","suiteInstall":"Установить набор","suiteInstalledMsg":"Набор установлен","suiteRepoNote":"Репозиторий набора (агрегатор подмодулей), не npm-пакет — см. официальную команду установки ниже","suiteTitle":"Агрегатор подмодулей: автосборка компонентов (бандл-плагины / плагины / навыки / пресеты агентов) по логике install.ps1","tab":"Консоль плагинов","toggledOff":"Запрошено отключение","toggledOn":"Запрошено включение","toolbarCloseTitle":"Свернуть панель функций","toolbarLabel":"Панель функций","toolbarOpenTitle":"Развернуть панель функций","unknown":"неизвестно","unloading":"Выгрузка","unobserved":"Не подключён","upToDate":"Актуальная версия","update":"Обновить","updateAndAdapt":"Обновить и адаптировать","updateAvailable":"Доступна новая версия","updateCheckFailed":"Сбой проверки","updateNow":"Обновить сейчас","userDisabledTag":"Отключено пользователем","userForcedTag":"Принудительно включён патчем","versionLabel":"Версия","view":"Осмотреть"}}
@@ -0,0 +1 @@
1
+ {"better-input":{"aboutChangelogLabel":"История изменений","aboutLicenseLabel":"Лицензия","aboutRepositoryLabel":"Репозиторий","aboutTitle":"О плагине и обновлениях","aboutVersionLabel":"Установленная версия","checkUpdateButton":"Проверить обновления","checkingUpdate":"Проверка…","contextTurnsHint":"Включать последние N реплик как контекст для оптимизации. 0 = выключено. По умолчанию 3.","contextTurnsLabel":"Глубина контекста","convertAddFile":"Добавить файл","convertAttach":"Прикрепить файл","convertBusy":"Преобразование…","convertCancel":"Отмена","convertEdit":"Редактировать","convertEmptyFile":"Файл пуст","convertFailed":"Сбой преобразования, повторите попытку","convertFileTooLarge":"Файл превышает лимит размера для преобразования","convertNoFile":"Сначала добавьте файл","convertOverwriteLabel":"Перезаписать поле ввода","convertPlainReady":"DSH изначально поддерживает этот файл — отправьте его напрямую без конвертации","convertPreviewFileLabel":"Файл","convertPreviewFormatLabel":"Формат","convertPreviewTitle":"Результат преобразования файла","convertPreviewWarning":"Примечание","convertRemove":"Удалить","convertSave":"Сохранить","convertStart":"Начать преобразование","convertToggle":"Добавить файл","convertTooLarge":"Файл слишком велик, превышен лимит","convertUnsupported":"Неподдерживаемый тип файла","defaultPromptLabel":"Встроенный системный промпт","effortDefaultLabel":"По умолчанию (thinking off)","effortLoadingLabel":"Загрузка параметров усилий рассуждения…","hideDefaultPrompt":"Скрыть встроенный промпт","languageHint":"Пустое значение соответствует языку браузера.","languageLabel":"Язык распознавания","languagePlaceholder":"напр. ru-RU или en-US","listening":"Прослушивание…","loading":"Загрузка…","ocrConfirmBody":"Этот файл может содержать сканы или изображения. Обычная конвертация извлекает только текстовый слой; OCR распознаёт пиксели.","ocrConfirmCancel":"Отмена","ocrConfirmOcr":"Использовать OCR","ocrConfirmRegular":"Обычная конвертация","ocrConfirmTitle":"Использовать OCR?","ocrModelHint":"Зрительная модель для чтения сканов и изображений. Выбирается отдельно; без неё OCR недоступен.","ocrModelLabel":"Модель OCR (зрение)","ocrNotConfiguredInfo":"Please select an OCR vision model in Настройки before using OCR conversion.","off":"Выкл.","on":"Вкл.","optimizeAdopt":"Применить","optimizeBusy":"Оптимизация…","optimizeButton":"Оптимизировать промпт","optimizeCancel":"Отмена","optimizeEffortHint":"Controls the model inference depth. По умолчанию uses the adapter baseline (lightest tier).","optimizeEffortLabel":"Усилия рассуждения при оптимизации","optimizeEmpty":"Поле ввода пусто, нечего оптимизировать","optimizeFailed":"Сбой оптимизации, повторите попытку","optimizeModelHint":"Выберите маршрут модели, настроенный в DSH.","optimizeModelLabel":"Модель оптимизации","optimizeNotConfigured":"No optimize model configured, enable it in Настройки","optimizeOptimizedLabel":"Оптимизированный","optimizeOriginalLabel":"Исходный","optimizePanelTitle":"Результат оптимизации промпта","optimizePromptHint":"Пустое значение использует встроенный промпт. Пользовательский промпт сохраняет контракт вывода.","optimizePromptLabel":"Пользовательский промпт оптимизации","optimizePromptPlaceholder":"Необязательно: вставьте свой промпт…","optimizeSectionLabel":"Оптимизация промптов","polishEffortHint":"Controls the model inference depth. По умолчанию uses the adapter baseline (lightest tier).","polishEffortLabel":"Усилия рассуждения при улучшении","polishFailedKeepOriginal":"Сбой улучшения текста, оставлен исходный вариант","polishHint":"Очистка расшифровки с помощью LLM (слова-паразиты, опечатки, пунктуация).","polishLabel":"ИИ-улучшение текста","polishModelHint":"Выберите маршрут модели, настроенный в DSH.","polishModelLabel":"Модель улучшения текста","polishModelNone":"(не выбрано)","polishNotConfigured":"No polish model configured, please choose one in Настройки","polishPromptHint":"Пустое значение использует встроенный промпт. Пользовательский промпт сохраняет контракт вывода.","polishPromptLabel":"Пользовательский промпт улучшения","polishPromptPlaceholder":"Необязательно: вставьте свой промпт…","polishSectionLabel":"Улучшение промптов","polishing":"Улучшение…","recordingLimitHint":"От 1 до 600 секунд.","recordingLimitLabel":"Лимит записи (секунды)","routesStatus":"Доступные маршруты моделей","routesUnavailable":"недоступно","saveFailed":"Не удалось сохранить, повторите попытку","settingsDescription":"Настройка голосового ввода и улучшения текста через ИИ. Используются модели, уже настроенные в DSH.","settingsTitle":"BetterInput Настройки","showDefaultPrompt":"Показать встроенный промпт","templatesActionFailed":"Операция не удалась, повторите попытку","templatesCancel":"Отмена","templatesContentLabel":"Содержимое","templatesContentPlaceholder":"Текст промпта для вставки в поле ввода…","templatesDelete":"Удалить","templatesDeleteConfirm":"Нажмите ещё раз для подтверждения","templatesDescription":"Сохранить frequently used prompts as templates, then type / in the input box to search and insert.","templatesDescriptionLabel":"Описание","templatesDescriptionPlaceholder":"Необязательно: назначение этого шаблона","templatesEdit":"Редактировать","templatesEmpty":"Шаблонов пока нет. Создайте первый через «Новый шаблон».","templatesLoadFailed":"Не удалось загрузить шаблоны","templatesNameLabel":"Название","templatesNamePlaceholder":"напр. Ассистент код-ревью","templatesNew":"Новый шаблон","templatesRetry":"Повторить","templatesSave":"Сохранить","templatesTagsHint":"Разделяйте запятыми, до 8 тегов, используются для поиска в меню.","templatesTagsLabel":"Теги","templatesTitle":"Шаблоны промптов","transcribing":"Расшифровка…","updateAvailable":"Доступна новая версия","updateCheckFailed":"Сбой проверки обновлений","updateCommandLabel":"При глобальной установке dsh выполните","updateCommandNpxLabel":"Без глобальной установки dsh запустите через npx","updateCommandPick":"Выберите вариант в зависимости от способа установки DSH","updateUnpublished":"Эта версия не опубликована в npm.","updateUpToDate":"У вас установлена последняя версия.","voiceBusy":"Обработка…","voiceFailed":"Сбой голосового ввода","voiceSectionLabel":"Распознавание речи","voiceStart":"Голосовой ввод","voiceStop":"Остановить голосовой ввод","voiceUnavailable":"Распознавание речи не поддерживается в этом браузере"}}
@@ -0,0 +1 @@
1
+ {"settings.autoReview":{"active":"Ревьюер активен","advanced":"Расширенные параметры","advancedHint":"Ограничивают доказательства, вывод, повторы и восстановление после сбоев. Рекомендуются значения по умолчанию.","approved":"Одобрено","autoReviewed":"Проверено автоматически","badgeCompatibility":"Совместимость: official Harness has no per-tool badge or settings-navigation icon slots. Settings and review work; the command reviewing/denied glyph and settings-tab SVG require the accompanying tool.call.badges and settings.section.icon patches. Without them, native display is retained.","behavior":"Текущее поведение разрешений","behaviorDefault":"Только чтение / Запись в рабочей области: обычные изолированные действия пропускаются; выходящие за границы, конфиденциальные и сетевые действия передаются на ревью.","behaviorDisabled":"Авторевью действий (Auto Review) is off: every permission tier uses the native Harness approval chain only.","behaviorStrict":"Только чтение / Запись в рабочей области: изолированные действия также проверяются ревьюером при сохранении ограничений песочницы.","breakerCooldownMs":"Период охлаждения предохранителя (мс)","breakerCooldownMsHint":"Время ожидания предохранителя перед повторным зондированием ревьюера.","denied":"Авторевью действий (Auto Review) denied this tool call","deniedCount":"Отклонено","enabled":"Enable Авторевью действий (Auto Review)","enabledHint":"При отключении расширение оставляет маршрутизацию, одобрение и отказ полностью нативной цепочке Harness.","escalateUncertain":"Эскалировать неточные или рискованные выводы сильному ревьюеру","escalateUncertainHint":"Эскалация использует общий таймаут с повторами и никогда не обходит запреты, песочницу или ручное одобрение.","failed":"Не удалось сохранить настройки. Проверьте параметры или подключение.","failureThreshold":"Порог срабатывания предохранителя","failureThresholdHint":"Число последовательных сбоев ревьюера до срабатывания аварийного предохранителя.","flash":"Flash (по умолчанию)","flashHint":"Низкая задержка на критическом пути действий.","fullAccessNative":"Полный доступ: нативное исполнение","fullAccessReview":"Полный доступ: проверка всех действий","funnel":"Воронка действий в реальном времени","inactive":"Ревьюер отключён","inherited":"Унаследовано","insideBoundary":"Внутри песочницы","invalidSettings":"Некорректная конфигурация ревьюера — проверьте выбранные модели","loading":"Загрузка…","manual":"Вручную","maxAttempts":"Максимум попыток","maxAttemptsHint":"Запуск новой сессии ревьюера только после сбоя вызова или протокола; максимум 3.","maxInputBytes":"Максимальный объём доказательств (байт)","maxInputBytesHint":"Максимальный объём очищенных доказательств действия, передаваемых ревьюеру.","maxOutputTokens":"Максимум токенов вывода","maxOutputTokensHint":"Ограничивает только структурированное решение ревьюера.","model":"Модель ревьюера","modelId":"Идентификатор модели","modelStrategy":"Стратегия модели","modelStrategyHint":"Одиночная всегда использует основного ревьюера. Многоуровневая направляет рискованные действия сильному ревьюеру.","nav":"Авторевью действий (Auto Review)","overridden":"Переопределено пользователем","pending":"Ожидание решения ревьюера…","policyBytes":"Байты результатов политик","policyLookups":"Вызовы поиска политик","primaryProfile":"Основной ревьюер","primaryProfileHint":"Обрабатывает стандартные ревью. Маршрут провайдера и модель должны существовать в конфигурации Harness; учётные данные не попадают в браузер.","pro":"Pro","proHint":"Повышенное качество ревью с большей задержкой и стоимостью.","provider":"Маршрут провайдера","readOnly":"Режим только для чтения","reasoningEffort":"Усилия рассуждения (пусто = по умолчанию)","reasoningEffortHint":"Необязательный параметр провайдера. Пустое значение наиболее совместимо.","reset":"Сбросить к значениям развёртывания","reviewFullAccess":"Проверять действия с полным доступом","reviewFullAccessHint":"Включено по умолчанию. Без песочницы проверяются все действия, кроме прямых запретов.","reviewing":"Авторевью действий (Auto Review) is checking this tool call","riskTiered":"По уровням риска","sandboxDefaultAllow":"Разрешать действия внутри песочницы по умолчанию","sandboxDefaultAllowHint":"Применяется только к режимам «только чтение» и «запись в рабочей области».","save":"Сохранить","saved":"Настройки сохранены и применены в реальном времени.","saving":"Сохранение параметров ревьюера…","single":"Одиночная модель","strongKinds":"Действие kinds routed directly to the strong reviewer","strongKindsHint":"Выбранные типы действий пропускают основного ревьюера и направляются сразу сильному ревьюеру.","strongProfile":"Ревьюер высокого риска","strongProfileHint":"Используется только для настроенных типов высокого риска или эскалации неточных результатов.","subtitle":"Маршрутизация действий в изолированный ревьюер согласно режиму разрешений, границам песочницы и политикам.","timeoutMs":"Таймаут (мс)","timeoutMsHint":"Предельное время ревью для одного действия, включая повторы и эскалацию риска.","title":"Авторевью действий (Auto Review)","totalActions":"Всего действий","transcriptMaxBytes":"Лимит байтов журнала","transcriptMaxBytesHint":"Общий лимит байтов истории доказательств; не расширяет основной контекст агента.","transcriptMaxEntries":"Лимит записей журнала","transcriptMaxEntriesHint":"Максимум очищенных записей истории, относящихся к текущему действию."}}
@@ -0,0 +1 @@
1
+ {"dsh-session-control":{"age.day":"{n} дн. назад","age.hour":"{n} ч назад","age.min":"{n} мин назад","age.now":"только что","bulk.archive":"В архив","bulk.clear":"Очистить","bulk.count":"выбрано: {n}","bulk.export":"Экспорт Markdown","bulk.hide":"Скрыть","bulk.label":"Метка…","bulk.pin":"Закрепить","bulk.select":"Выбрать сессию","bulk.unhide":"Показать","card.hiddenCount":"Скрытых сессий: {n}","card.hideBlank":"Скрывать сессии без сообщений","card.labelsCount":"меток: {n}","card.loading":"Загрузка сессий…","card.pinnedCount":"Закреплено: {n}","card.subtitle":"Закрепление, скрытие и группировка активных сессий","card.title":"Управление сессиями (Session Control)","card.totalCount":"Всего сессий: {n}","card.unhideAll":"Показать все","confirm.archive":"Архивация необратима: ядро не поддерживает восстановление сессии. Продолжить?","confirm.archiveBulk":"Архивировать {n} сессий навсегда? Восстановление невозможно.","empty.noWorkspaces":"Рабочих областей пока нет. Добавьте область, чтобы начать диалог.","empty.search":"Ничего не найдено.","empty.workspace":"В этой рабочей области пока нет диалогов.","error.addWorkspace":"Не удалось добавить рабочую область: {message}","error.archive":"Не удалось архивировать: {message}","error.rename":"Не удалось переименовать: {message}","error.save":"Не удалось сохранить: {message}","error.search":"Сбой поиска: {message}","error.settings":"Настройки недоступны, закрепление и скрытие отключены. Список продолжает работать.","filter.all":"Все сессии","filter.archived":"В архиве","filter.hidden":"Скрытые","filter.pinned":"Закреплённые","filter.search":"Поиск по сессиям…","head.add":"Добавить рабочую область…","head.search":"Поиск","head.searchPlaceholder":"Заголовок или текст сообщения","head.title":"Диалоги","jump.archived":"в архиве","jump.empty":"Ничего не найдено.","jump.filterAll":"Все","jump.filterArchived":"Архив","jump.filterPinned":"Закреплённые","jump.filterTags":"Метки","jump.hint":"Alt+K для открытия · стрелки для перемещения · Enter для перехода · Esc для закрытия","jump.placeholder":"Заголовок или текст сообщения","jump.title":"Перейти к диалогу","label.add":"Добавить в «{name}»","label.new":"Новая метка…","label.prompt":"Имя метки","label.remove":"Удалить из «{name}»","menu.archive":"Архивировать сессию","menu.delete":"Удалить сессию","menu.fork":"Создать ветку сессии","menu.forkClean":"Новый диалог с этими настройками","menu.hide":"Скрыть сессию","menu.pin":"Закрепить сессию","menu.rename":"Переименовать сессию","menu.unarchive":"Разархивировать","menu.unhide":"Показать сессию","menu.unpin":"Открепить","modal.confirmDelete":"Удалить сессию «{name}»? Это действие необратимо.","modal.deleteTitle":"Удаление сессии","modal.renamePlaceholder":"Новое название сессии","modal.renameTitle":"Переименование сессии","period.month":"В этом месяце","period.older":"Ранее","period.today":"Сегодня","period.week":"На этой неделе","pin.badge":"Закреплено","pin.limit":"Достигнут лимит закреплённых сессий ({max})","row.blank":"Новая сессия","row.menu":"Действия с сессией","row.running":"Выполняется","row.turns":"{n} сообщений","row.untitled":"Без названия","section.archive":"В архиве","section.archiveNote":"Архивировано ядром: доступно для чтения, восстановление пока невозможно.","section.hidden":"Скрытые","section.pinned":"Закреплённые диалоги","section.recent":"Недавние сессии","settings.autoArchiveDays":"Автоархивация неактивных сессий (дней)","settings.autoArchiveDaysHint":"0 — отключено","settings.grouping":"Группировка по датам","settings.groupingDesc":"Разделять сессии на «Сегодня», «Вчера», «На этой неделе»","settings.loading":"Загрузка настроек сессий…","settings.maxPinned":"Максимум закреплённых сессий","settings.save":"Сохранить","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","status.empty":"Сессий не найдено","status.noMatches":"Нет сессий, подходящих под фильтр","tag.active":"Активна","tag.archived":"Архив","tag.hidden":"Скрыта","tag.pinned":"Закреплена","tooltip.hide":"Скрыть из бокового меню","tooltip.pin":"Закрепить вверху списка","tooltip.unpin":"Открепить","viewer.agent":"Агент","viewer.close":"Закрыть","viewer.copied":"Скопировано в буфер обмена.","viewer.copy":"Копировать как Markdown","viewer.empty":"В этой сессии нет сообщений.","viewer.exportFailed":"Не удалось экспортировать: {message}","viewer.failed":"Не удалось прочитать сессию: {message}","viewer.loading":"Загрузка журнала сессии…","viewer.noClipboard":"буфер обмена недоступен в этом контексте браузера","viewer.readonly":"только чтение","viewer.save":"Сохранить .md","viewer.tool":"инструмент: {name}","viewer.truncated":"Отображаются последние {shown} из {total} сообщений.","viewer.unreadable":"Устаревший формат журнала, который ядро не может прочитать. Диалог сохранён на диске, но не может быть отображён.","viewer.you":"Вы"}}
@@ -0,0 +1 @@
1
+ {"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматическое внедрение воспоминаний","field.base":"Базовый URL хранилища памяти","field.includeNeighbors":"Включать смежные контекстные узлы","field.minRecallChars":"Минимальная длина запроса для поиска","field.neighborK":"Количество смежных воспоминаний (K)","field.predictionLoop":"Предсказательный цикл контекста","field.recallBudget":"Бюджет токенов на воспоминания","field.timeoutMs":"Таймаут поиска памяти (мс)","field.token":"Имя учётных данных / переменной токена","hint.autoInject":"Автоматически подмешивать релевантные факты из долгосрочной памяти в системный контекст","hint.base":"URL gRPC/HTTP сервиса векторной памяти Memory Brain","hint.includeNeighbors":"Извлекать связанные факты из графа знаний для обогащения ответа","hint.minRecallChars":"Минимум символов в сообщении пользователя для запуска семантического поиска","hint.neighborK":"Сколько ближайших соседей по векторному сходству добавлять в выборку","hint.predictionLoop":"Использовать фоновое прогнозирование необходимых фактов для будущих шагов","hint.recallBudget":"Максимальное число токенов, выделяемое под блок воспоминаний в промпте","hint.timeoutMs":"Максимальное время ожидания ответа от сервиса памяти","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Сбой сохранения: ","settings.saved":"Сохранено","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочное запоминание и поиск через HTTP API memory-brain","title":"Долгосрочная память (Memory Brain)"}}
@@ -0,0 +1 @@
1
+ {"dsh-llm-wiki":{"field.couchDb":"Имя базы CouchDB","field.couchUrl":"URL сервера CouchDB","field.couchUser":"Пользователь CouchDB","field.rawImportDir":"Каталог сырых документов для импорта","field.searchTop":"Максимум результатов поиска (Top-K)","field.timeoutMs":"Таймаут запросов к Wiki (мс)","field.wikiAgent":"Имя агента управления базой знаний","field.wikiEnvFile":"Путь к файлу переменных окружения (.env)","field.wikiFindScript":"Скрипт wiki-find","field.wwScript":"Скрипт ww","hint.couchDb":"Имя базы данных для хранения статей и графа знаний","hint.couchUrl":"Адрес экземпляра Apache CouchDB","hint.rawImportDir":"Папка с markdown-файлами и документами для фоновой индексации","hint.searchTop":"Количество возвращаемых статей при поиске по вики","hint.wikiAgent":"Системный агент, отвечающий за автоструктурирование знаний","loading":"Загрузка настроек LLM Wiki…","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","subtitle":"Инструменты CouchDB / LiveSync и пути подготовки","title":"База знаний LLM Wiki","unavailable":"Область настроек недоступна"}}
@@ -0,0 +1 @@
1
+ {"dsh-task-tracker":{"field.base":"URL сервера Task Tracker","field.pass":"Пароль / Токен","field.passFile":"Путь к файлу пароля","field.user":"Пользователь","loading":"Загрузка настроек трекера…","passHint":"Токен доступа к API Task Tracker","passPlaceholder":"Секретный токен","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","sub":"Интеграция с внутренним трекером задач и тикетов","subtitle":"API входящих задач (базовый URL и Basic-аутентификация)","title":"Трекер задач (Task Tracker)","unavailable":"Область настроек недоступна","userHint":"Логин сервисного аккаунта"}}
@@ -0,0 +1 @@
1
+ {"dsh-usage-guard":{"active":"Контроль использования активен","badge_active":"Активный контроль","badge_report_only":"Только отчёты","header_desc":"Защищает историю сессий от повреждённых или отсутствующих счётчиков расхода токенов для всех LLM-провайдеров.","loading":"Загрузка правил Usage Guard…","maxStepTokens":"Лимит сглаживания всплесков токенов","maxStepTokensDesc":"Ограничивает аномально огромные единичные счётчики токенов шага (напр., > 1 000 000) перед вычислением проекций, исключая переполнение целых чисел и поломку истории сессий. 0 — отключить.","repair":"Автопочинка конфигураций","repairDesc":"Автоматически восстанавливать повреждённые квоты и сбрасывать зависшие сессии","report":"Отправлять отчёты об утечках","reportDesc":"Логировать подозрительные скачки расхода токенов","reportOnly":"Режим аудита (только отчёты)","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","settings.loading":"Загрузка настроек Usage Guard…","settings.retry":"Повторить","settings.unavailable":"Настройки недоступны (хостовый сервис не готов).","stats_mode":"Текущий режим","stats_mode_repair":"Активное восстановление (Safe)","stats_mode_report":"Только аудит (Unsafe)","stats_scope":"Целевая область","stats_scope_val":"sessionProjections","stats_title":"Статус защиты","status":"Статус защиты","sub":"Мониторинг аномального расхода токенов и защита от зацикливаний","subtitle":"Очистка расхода токенов и защита от аварийного завершения сессий","telemetry_clamped":"Сглажено всплесков","telemetry_last_incident":"Последний инцидент","telemetry_no_incidents":"Инцидентов не зафиксировано (система в норме)","telemetry_refresh":"Обновить телеметрию","telemetry_refreshing":"Обновление…","telemetry_rescued":"Спасённых событий","telemetry_title":"Живая телеметрия","telemetry_tokens":"Исправлено токенов","title":"Контроль ресурсов (Usage Guard)","unavailable":"Область настроек недоступна","updater_check":"Проверить обновления","updater_checking":"Проверка…","updater_current":"Текущая версия","updater_failed":"Не удалось проверить обновления","updater_latest":"Последняя версия","updater_success":"Обновление успешно завершено. Перезагрузите страницу.","updater_title":"Версия плагина и обновления","updater_up_to_date":"Установлена последняя версия","updater_update_now":"Обновить до {version}","updater_updating":"Обновление…"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-agent-loop-guard":{"assistantOutputGuard":"Защита вывода ассистента","blockExactDuplicates":"Блокировать точные дубликаты вызовов инструментов","checkUpdateFailed":"Ошибка проверки","dryRunMode":"Режим аудита / Dry-run (только логирование, без отклонения)","lastViolation":"Последний инцидент","maxAssistantBlockChars":"Макс. символов в блоке ассистента","maxCallsPerRepeatGroup":"Макс. вызовов в группе повторений","maxProgressToolCallsPerTurn":"Макс. вызовов инструментов прогресса за ход","maxRepeatedAssistantBlocks":"Макс. повторяющихся блоков ассистента","maxRepeatedAssistantLines":"Макс. повторяющихся строк ассистента","maxToolAttemptsPerTurn":"Макс. попыток вызова инструментов за ход","noViolations":"В текущем сеансе зацикливаний не обнаружено.","progressToolNames":"Имена инструментов прогресса (через запятую)","ready":"Сохранить","resetStats":"Сбросить статистику","saved":"Сохранено","saving":"Сохранение…","statsResetDone":"Статистика сброшена","strictToolLimit":"Лимит строгих инструментов","strictTools":"Строгие инструменты (через запятую, сниженный лимит)","sub":"Защитные лимиты циклов вызова инструментов и ответов ассистента (fail-closed)","telemetryTitle":"Телеметрия защиты","title":"Agent Loop Guard","totalBlocked":"Предотвращено циклов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Успешно обновлено до v{v}!","updating":"Обновление…","version":"Версия"},"dsh-auto-mode.permission":{"dialog.acknowledge":"Понятно","dialog.cancel":"Отмена","dialog.close":"Закрыть","dialog.confirm":"Подтвердить запуск","dialog.description":"Автономный режим позволяет агенту непрерывно выполнять многошаговые сценарии без необходимости подтверждать каждый шаг.","dialog.title":"Разрешение автономного режима","preset.description":"Шаблон прав и политик безопасности для автоматического цикла","preset.label":"Пресет автономного режима"}}
@@ -0,0 +1 @@
1
+ {"dsh-plugin-guard":{"checkDelayMs":"Задержка перед первой проверкой (мс)","checkIntervalMs":"Интервал проверки целостности (мс)","confPath":"Путь к файлу конфигурации правил","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","sub":"Защита целостности активных плагинов и профилей DSH","title":"Страж плагинов (Plugin Guard)"}}
@@ -0,0 +1 @@
1
+ {"pin":{"action.pin":"Закрепить","action.unpin":"Открепить"}}
@@ -0,0 +1 @@
1
+ {"dsh-remote-workspace":{"actionsCol":"Действия","activeBadge":"Активен","addBtn":"+ Добавить хост","alertLabel":"Оповещения ({count})","autoSyncDesc":"Автоматически отправлять изменённые файлы в удалённое рабочее пространство при локальном сохранении.","autoSyncTitle":"Автосинхронизация при сохранении","badgeKey":"🔑 Вход по ключу","badgeOffline":"Хост не выбран","badgeOnline":"Активный хост: {name} ({latency} мс)","badgePassword":"🔒 Вход по паролю","badgeTunnels":"Туннелей: {count}","btnBrowse":"📁 Выбрать на сервере…","btnCancel":"Отмена","btnDelete":"Удалить","btnImportSsh":"Импорт из ~/.ssh/config","btnLogs":"Логи","btnRestart":"Перезапустить","btnSave":"Сохранить профиль","btnSaveFile":"Сохранить изменения","btnSelectThis":"Выбрать эту папку","btnStop":"Остановить","btnTest":"⚡ Проверить связь (Ping)","btnTransfer":"Передать на хост…","containerImage":"Образ","containerName":"Контейнер","containerPorts":"Порты","containerStatus":"Статус","containersTitle":"Удалённый Docker / Podman Engine","delBtn":"Удалить","delConfirm":"Удалить профиль хоста «{name}»?","diagDesc":"Проверка доступности и измерение задержки активного сервера.","diagProbeBtn":"⚡ Быстрая диагностика","diagTitle":"📊 Диагностика активного подключения","diagnoseDisk":"Использование диска","diagnoseOom":"Проверка OOM Killer","diagnosePorts":"Открытые порты","diagnoseTitle":"Экспресс-диагностика","editBtn":"Изменить","envHideVal":"Скрыть","envKey":"Ключ","envSaveVar":"Сохранить","envShowVal":"Показать","envTitle":"Удалённые переменные окружения (.env)","envVal":"Значение","explorerTitle":"Удалённый файловый менеджер","fAuthKey":"SSH-ключ","fAuthPass":"Пароль","fAuthType":"Способ авторизации","fHost":"Хост / IP-адрес","fJumpHost":"Jump-хост (бастион)","fJumpHostNone":"Прямое подключение (без jump-хоста)","fKeyPath":"Путь к ключу","fKeyPathHint":"Путь к ~/.ssh/id_rsa или /home/user/.ssh/id_ed25519","fLocalMirror":"Локальная папка зеркала","fLocalMirrorHint":"Локальная директория для зеркалирования файлов при быстрой трёхсторонней синхронизации","fName":"Название подключения","fPassphrase":"Кодовая фраза ключа (если есть)","fPassword":"Пароль учетной записи","fPort":"Порт","fRemotePath":"Удалённая папка проекта","fRemotePathHint":"(Не обязательно сейчас — можно выбрать позже при работе)","fUser":"Имя пользователя","filePreviewTitle":"Просмотр файла: {path}","fileSaved":"Файл успешно сохранён.","fileSize":"{size} КБ","formTitleEdit":"Редактирование профиля хоста","formTitleNew":"Добавление нового SSH хоста","healthCpu":"ЦП: {val}%","healthDisk":"Диск: {val}%","healthMem":"ОЗУ: {val}% ({used}/{total} МБ)","healthUptime":"Аптайм: {val}","hostCol":"Хост / Пользователь","nameCol":"Имя","noContainers":"Активных контейнеров не найдено или демон Docker не запущен.","noHosts":"Удалённые хосты ещё не настроены. Нажмите «+ Добавить хост».","openLocalLink":"🌐 Открыть локальный порт","pathCol":"Удалённый путь","pinBtn":"Закрепить активный","pinned":"Активный хост","portCol":"Порт","profilesDesc":"Настройка удалённых хостов для выполнения команд, SFTP доступа и синхронизации.","profilesTitle":"🖥️ Профили SSH серверов","pullBtn":"⬇️ Скачать с сервера (Pull)","pulling":"Получение файлов…","pushBtn":"⬆️ Загрузить на сервер (Push)","pushing":"Отправка файлов…","saving":"Сохранение…","setActiveBtn":"Сделать активным","status":"Готово","subtitle":"Управление подключениями по SSH, синхронизацией SFTP и туннелями","syncConflict":"Предупреждение о конфликте: изменено с обеих сторон файлов — {count}.","syncDesc":"Ручная синхронизация файлов с удалённым сервером и статус проброса портов.","syncErr":"Ошибка синхронизации: {err}","syncFailed":"Ошибка синхронизации: ","syncOk":"Синхронизация завершена! Обновлено файлов: {count}.","syncSuccess":"Синхронизация успешно выполнена","syncTitle":"🔄 Синхронизация зеркала и туннели","tLocalPort":"Локальный порт","tNoTunnels":"Нет активных туннелей проброса портов.","tOpenBtn":"+ Открыть туннель","tOpenErr":"Не удалось открыть туннель: {err}","tOpenOk":"Туннель открыт: 127.0.0.1:{localPort} -> Удалённый:{remotePort}","tOpening":"Открытие…","tRemotePort":"Удалённый порт","tStopBtn":"Остановить","tabContainers":"🐳 Контейнеры","tabEnv":"🗃️ Менеджер .env","tabExplorer":"📂 Проводник файлов","tabProfiles":"🖥️ Профили хостов","tabSync":"🔄 Станция синхронизации","tabTerminal":"⚡ Веб-терминал","tabTunnels":"🔗 Порт-туннели","tarSyncFast":"🚀 Быстрый поток архива (Tarball Stream)","termClear":"Очистить","termConnected":"Подключено к PTY-сессии {id} на {host}","termDisconnected":"Терминал отключён.","termPlaceholder":"Введите команду и нажмите Enter (напр. htop, ls, docker ps)…","termStart":"Подключить терминал","termStop":"Отключить","testFail":"❌ Ошибка подключения: {err}","testOk":"✅ Соединение установлено! Задержка: {latency} мс | ОС: {os}","testing":"Проверка соединения…","title":"Удалённое рабочее пространство","transferBtnExec":"Передать напрямую","transferDestHost":"Целевой сервер","transferDestPath":"Целевой путь к файлу","transferSuccess":"Успешно передано {bytes} байт на {host}:{path}","transferTitle":"Прямая передача сервер-сервер","tunnelTraffic":"Вход: {rx} | Выход: {tx}","tunnelUptime":"Работает: {sec} с","tunnelsColActions":"Действия","tunnelsColId":"ID туннеля","tunnelsColRoute":"Маршрут проброса","tunnelsDesc":"Проброс удалённых портов (базы данных, веб-серверы, API) на локальный компьютер через зашифрованные SSH-туннели.","tunnelsTitle":"🔀 Проброс портов SSH (туннели)","vaultProtectedBadge":"🛡️ Защищено .env Vault"}}
@@ -0,0 +1 @@
1
+ {"dsh-web-ui-market":{"badge.market":"dsh-market.com","cancel":"Отмена","command.title":"Скопируйте эту команду в терминал хоста DSH","conflict.text":"Каталог {dest} уже существует. Продолжение перезапишет файлы старой версией (действие необратимо).","conflict.title":"Каталог с таким именем уже существует","copied":"Скопировано","copyCommand":"Скопировать команду установки","empty":"Список витрины пуст (нет подключения к сети? нажмите «Повторить»)","install":"Установить","install.path":"Каталог установки: {path}","installFailed":"Ошибка установки: {reason}","installNow":"Установить сейчас","installSpecInvalid":"Неверный источник установки; поддерживаются только имена npm-пакетов и git-ссылки https://","installed":"Установлено","installedAt":"Установлено в {path}","installing":"Установка…","like":"Нравится","likeFailed":"Не удалось поставить лайк","liked":"Понравилось","loading":"Загрузка…","noMatch":"Ничего не найдено","offline":"Данные витрины недоступны","online":null,"openSite":"Открыть сайт витрины","preview":"Предпросмотр","remote.note":"В удалённых браузерах доступен только просмотр и копирование команд; установка в один клик требует локального браузера (loopback).","replace":"Заменить и установить","repository":"Исходный репозиторий","result.count":"Показано {shown} из {total}","retry":"Повторить","search.label":"Поиск по названию, автору или описанию…","settings.collapse":"Свернуть","settings.description":"Просматривайте скины, питомцев и плагины сообщества с dsh-market.com и устанавливайте их локально в один клик.","settings.discard":"Отменить изменения","settings.enable":"Включить карточку витрины","settings.enableHint":"Скрывает содержимое витрины, оставляя только переключатель.","settings.expand":"Развернуть","settings.inherit":"Наследовать","settings.invalidNumber":"Недопустимое значение","settings.notExposed":"Раздел недоступен (отсутствует пространство имён хоста)","settings.off":"Выкл","settings.on":"Вкл","settings.overridden":"Переопределяет умолчание","settings.readOnly":"Только чтение","settings.reset":"Сбросить","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить","settings.saving":"Сохранение…","settings.title":"Витрина (Workshop)","settings.unsaved":"Несохранённые изменения","tab.pet":"Питомцы","tab.plugin":"Плагины","tab.skin":"Скины","votes":"{count} голосов"}}
@@ -0,0 +1 @@
1
+ {"skinCenter":{"active":"Активен","advanced":"Расширенные настройки","advancedHint":"Затемнение фона, размытие и пользовательская тема расположены ниже.","appliedNeedRestart":"Применено и подтверждено, но хост не выполнил горячую перезагрузку — перезапустите DSH для применения изменений","appliedUnconfirmed":"Применено, но изменение не подтверждено — обновите страницу в dev-режиме; готовым сборкам (DSH Desktop) требуется перезапуск","apply":"Применить","applyFailed":"Не удалось применить","applying":"Применение…","backgroundBlurContent":"Размытие при наличии сообщений","backgroundBlurEmpty":"Размытие на пустом экране","backgroundBlurHint":"Применяет раздельное гауссово размытие фона для пустого диалога и диалога с сообщениями; 0 отключает размытие.","backgroundBlurInert":"Видимо только у скинов с фоновым артом; в официальном скине по умолчанию фон отсутствует.","backgroundHint":"Мгновенно накладывает вуаль на фон под панелями — высокие значения скрывают арт, помогая сосредоточиться.","backgroundHintInert":"Применяется только к скинам с фоновым рисунком (Голубая фантазия / Песнь кита). Автоматически применяется к стандартному скину при активации такого скина.","backgroundOpacity":"Затемнение фона","bubbleOpacity":"Прозрачность сообщений","bubbleOpacityHint":"Регулирует полупрозрачность блоков сообщений для скинов с поддержкой альфа-канала.","cardDescription":"Переключайте стандартный вид и скин «Песнь кита», а также светлую и тёмную темы.","customThemeAccent":"Акцент","customThemeBackground":"Фон","customThemeCloseEdit":"Свернуть","customThemeContrast":"Контраст","customThemeDark":"Тёмная","customThemeEdit":"Настроить","customThemeForeground":"Текст","customThemeLight":"Светлая","customThemeMode":"Режим редактирования","customThemeReset":"Восстановить умолчания текущего режима","customThemeResetHint":"Сбрасывает только выбранный светлый или тёмный профиль.","customThemeSaveFailed":"Не удалось сохранить изменения пользовательской темы.","customThemeTagline":"Отдельно сохраняемая палитра, основанная на официальной теме по умолчанию.","customThemeTitle":"Пользовательская тема","enabled":"Включить центр оформления","enabledHint":"При выключении примерка, применение и настройки фона будут отключены; включите обратно для возобновления.","exitTryOn":"Завершить примерку","inputCardBlur":"Размытие карточки ввода","inputCardBlurHint":"Размывает только область под карточкой ввода при видимом фоне; не размывает обои целиком.","intro":"Примеряйте любые скины вживую — они вступают в силу мгновенно, выход возвращает текущий вид. Применение сохраняет скин между перезапусками.","loading":"Загрузка…","offNote":"Центр оформления выключен.","official":"Официальный по умолчанию","officialTagline":"Стандартный внешний вид DSH без применения скинов.","restore":"Восстановить","theme":"Предпросмотр темы","themeDark":"Тёмная","themeLight":"Светлая","title":"Центр оформления","tryOn":"Примерить","tryOnError":"Ошибка примерки — см. консоль","tryingOn":"Примерка…","wallpaperBlur":"Размытие обоев","wallpaperClear":"Отключить обои","wallpaperDim":"Затемнение обоев","wallpaperDirAdd":"Добавить","wallpaperDirBrowse":"Обзор…","wallpaperDirBrowseFailed":"Не удалось открыть системный диалог выбора папки — введите путь вручную","wallpaperDirBrowseHint":"Выберите папку через системный проводник (Finder / Проводник)","wallpaperDirPlaceholder":"/path/to/wallpapers или ~/Movies/wallpapers","wallpaperDirs":"Пользовательские папки","wallpaperDirsEmpty":"Пока нет добавленных папок.","wallpaperDirsHint":"Нет Wallpaper Engine (например, на macOS)? Укажите папку с файлами .mp4/.webm или проектами обоев — они станут вашей библиотекой обоев.","wallpaperEmpty":"Обои не найдены. Подпишитесь на них в мастерской Wallpaper Engine или добавьте папки в настройках.","wallpaperEnable":"Включить живые обои","wallpaperFit":"Масштабирование","wallpaperFitContain":"Вписать (целиком)","wallpaperFitCover":"Заполнение (с обрезкой)","wallpaperFitFill":"Растянуть","wallpaperHint":"Используйте локальную библиотеку Wallpaper Engine в качестве фона интерфейса: видео, веб-страницы и сцены рендерятся вживую (для сцен требуется WebGL).","wallpaperImport":"Импортировать","wallpaperImportHint":"Скопировать эти обои в локальное хранилище, чтобы они продолжали работать даже при перемещении библиотеки Steam","wallpaperLibraryFound":"Обнаружена библиотека Wallpaper Engine","wallpaperLibraryManual":"Только пользовательские папки (Wallpaper Engine не найден; укажите папки в настройках обоев)","wallpaperLibrarySystem":"Обнаружены системные обои macOS (аэропанорамы и обои рабочего стола)","wallpaperLoadError":"Не удалось загрузить библиотеку обоев","wallpaperLoadMore":"Загрузить ещё","wallpaperMode":"Режим рендеринга","wallpaperModeFrame":"Статичный кадр","wallpaperModeLive":"Живой","wallpaperOpacity":"Непрозрачность обоев","wallpaperPauseHidden":"Ставить на паузу при скрытии окна","wallpaperRefresh":"Обновить","wallpaperReimport":"Обновить","wallpaperRemove":"Удалить","wallpaperSound":"Звук обоев","wallpaperSoundHint":"Воспроизведение аудиодорожки видео-обоев. Браузер может держать звук на паузе до первого клика или нажатия клавиши.","wallpaperTitle":"Wallpaper Engine","wallpaperTypeApp":"Не поддерживается","wallpaperTypeImage":"Изображение","wallpaperTypeScene":"Сцена (статичная)","wallpaperTypeVideo":"Видео","wallpaperTypeWeb":"Веб","wallpaperUpdateAvailable":"Оригинал в Workshop изменился после импорта — обновите локальную копию","wallpaperVolume":"Громкость обоев"}}
@@ -0,0 +1 @@
1
+ {"dsh-cron":{"actions.archive":"Архив","actions.archiveTitle":"Архив выполнений и журнал","actions.create":"Создать","actions.createWithDsh":"💬 Создать через DSH","actions.delete":"Удалить задачу","actions.dryRun":"Имитация","actions.dryRunTitle":"Имитация запуска (проверка выполнения без побочных эффектов и уведомлений)","actions.duplicate":"Дублировать задачу","actions.edit":"Изменить / Детали","actions.pause":"Пауза","actions.resume":"Возобновить","actions.runNow":"Запустить сейчас","actions.runNowShort":"Запуск","actions.settings":"Уведомления и каналы","actions.setupManually":"✏️ Настроить вручную","actions.tuneWithDsh":"Настроить через DSH","archive.close":"Закрыть","archive.empty":"Для этой задачи пока нет архивных записей.","archive.loadMore":"Загрузить ещё ({shown} из {total})","archive.title":"📜 Архив выполнения","archive.totalRuns":"Всего записей: {total}","banner.loadError":"Не удалось загрузить задачи: {error}","banner.retry":"Повторить","chip.title":"Задачи по расписанию (Cron)","confirm.delete":"Удалить эту задачу?","details.channel":"Канал доставки","details.created":"Создана","details.duration":"Длительность","details.error":"Ошибка","details.historyTitle":"История недавних запусков","details.model":"Модель","details.noHistory":"Запусков пока не было.","details.output":"Вывод","details.prompt":"Промпт / Команда","details.schedule":"Расписание","details.statusFailed":"Сбой","details.statusSuccess":"Успешно","details.title":"Детали задачи","details.updated":"Обновлена","dryRun.close":"Закрыть","dryRun.duration":"Длительность","dryRun.output":"Результат вывода","dryRun.preflight":"Предварительная проверка","dryRun.status":"Статус имитации","dryRun.task":"Задача","dryRun.title":"🧪 Результат имитации запуска","dsh.descLabel":"Опишите задачу и желаемую периодичность:","dsh.launchError":"Сбой запуска: {error}","dsh.modalTitle":"Планирование задачи с агентом DSH","dsh.placeholder":"Например: проверяй свободное место на диске и упавшие службы systemd каждые 2 часа и присылай алерт, только если что-то сломалось…","dsh.sendHint":"Ctrl+Enter для отправки","dsh.sendTitle":"Отправить агенту","dsh.startFailed":"Не удалось начать диалог с агентом: {error}","duplicate.done":"Копия создана и поставлена на паузу: проверьте расписание перед запуском.","duplicate.failed":"Не удалось дублировать задачу: {error}","duplicate.oneShotHint":"Копия является разовой и на паузе — исходное время уже могло пройти, задайте новое время перед возобновлением.","filters.any":"Любой","filters.channel":"Канал","filters.empty":"Нет задач, соответствующих выбранным фильтрам.","filters.model":"Модель","filters.reset":"Сбросить фильтры","filters.showing":"Показано {shown} из {total}","filters.title":"Фильтры","filters.type":"Тип","form.agentPresetHint":"Пресет агента из dsh-agent-presets (например: standard, minimal, cordis, ptc). Монтирует рабочее пространство и инструменты написания кода.","form.agentPresetLabel":"Пресет агента","form.agentPresetPlaceholder":"standard (оставьте пустым для значения по умолчанию)","form.autoDiagnoseLabel":"Автоматическая AI-диагностика сбоев","form.channelBark":"Bark","form.channelDiscord":"Discord","form.channelGitea":"Задача в Gitea","form.channelKanban":"Карточка dsh-kanban","form.channelNtfy":"ntfy","form.channelPushplus":"PushPlus","form.channelSlack":"Slack","form.channelTelegram":"Telegram","form.channelTts":"Голос (dsh-tts)","form.channelsHint":"Выберите каналы для этой задачи. Явный выбор переопределяет переключатель Telegram выше; оставьте всё неотмеченным для отката к нему.","form.channelsTitle":"Каналы доставки","form.concurrencyGroupLabel":"Группа параллелизма (Concurrency Group)","form.cronExprHint":"Синтаксис: минута (0-59) час (0-23) день месяца (1-31) месяц (1-12) день недели (0-6)","form.cronExprLabel":"Cron-выражение","form.cronExprPlaceholder":"0 9 * * 1-5 (по будням в 09:00)","form.cwdLabel":"Рабочий каталог (необязательно)","form.dockerImageLabel":"Образ контейнера","form.envHint":"Применяется только для сред без LLM. Не храните здесь секреты.","form.envLabel":"Переменные окружения (КЛЮЧ=ЗНАЧЕНИЕ в строке)","form.envPlaceholder":"NODE_ENV=production\nTZ=Europe/Moscow","form.fallbackModelHint":"Если запуск на основной модели выше завершится ошибкой, задача будет повторена один раз на резервной модели. Обе попытки учитываются в стоимости.","form.fallbackModelLabel":"Резервная модель (Fallback)","form.fallbackModelPlaceholder":"например deepseek-reasoner","form.gracePeriodLabel":"Льготный период heartbeat (секунды)","form.heartbeatIntervalLabel":"Интервал heartbeat (секунды, 0 = выкл)","form.httpBodyLabel":"Тело запроса (необязательно)","form.httpHeadersLabel":"Заголовки (JSON, необязательно)","form.httpMethodLabel":"HTTP-метод","form.httpUrlLabel":"URL","form.inspectOnFailureHint":"После сбоя модель анализирует промпт, ошибку и вывод, сохраняя диагноз и предлагаемые правки промпта вместе с запуском. Изменения не применяются автоматически.","form.inspectOnFailureLabel":"Диагностировать сбои с помощью модели","form.intervalUnitDays":"дней","form.intervalUnitHours":"часов","form.intervalUnitMinutes":"минут","form.intervalValueLabel":"Интервал выполнения","form.kanbanAlways":"Создавать карточку при каждом завершении (Done / Backlog)","form.kanbanLabel":"Создание карточек в Kanban (dsh-kanban)","form.kanbanNone":"Не создавать карточки (отключено)","form.kanbanOnFailure":"Создавать карточку при сбое (в Backlog)","form.keepWorktreeLabel":"Сохранять worktree после завершения запуска","form.misfireCatchUp":"Выполнить разово и зафиксировать пропуск (catchUpAll)","form.misfireLabel":"При пропущенном запуске (после простоя)","form.misfireRunOnce":"Выполнить один раз с опозданием (runOnce)","form.misfireSkip":"Пропустить невыполненный запуск (skip)","form.modelDefault":"Модель по умолчанию из профиля DSH","form.modelLabel":"Модель агента (для типа LLM)","form.nameLabel":"Название задачи","form.namePlaceholder":"Например: Ежедневный отчёт по коммитам","form.nextRunLabel":"Следующий запуск: ","form.notScheduled":"не запланировано","form.notifyOnlyFailure":"Только при сбоях (onlyOnFailure / молчать при успехе)","form.notifyTelegram":"Отправлять отчёт о выполнении в Telegram","form.notifyTitle":"Уведомления в Telegram","form.oneShotDateLabel":"Дата и время разового запуска","form.overlapLabel":"Политика наложения запусков","form.overlapQueue":"Поставить следующий запуск в очередь (queue)","form.overlapReplace":"Отменить текущий запуск и перезапустить (replace)","form.overlapSkip":"Пропустить новый запуск (skip)","form.permissionDefault":"По умолчанию (как настроено в DSH)","form.permissionFull":"Полный доступ","form.permissionLabel":"Разрешения сессии","form.permissionReadonly":"Только чтение","form.permissionWrite":"Запись в рабочее пространство","form.preflightDisk":"Свободное место на диске (путь:мин%)","form.preflightHttp":"HTTP (проверка кода 2xx)","form.preflightLabel":"Предварительная проверка (Pre-flight)","form.preflightNone":"Отключена","form.preflightShell":"Shell-команда (код возврата 0)","form.preflightTargetLabel":"Цель предварительной проверки","form.preflightTargetPlaceholder":"https://example.com/healthz или ls /data или /:10%","form.previewSchedule":"Рассчитать следующие запуски","form.previewScheduleTitle":"Следующие 5 запусков по расписанию:","form.priorityLabel":"Приоритет в очереди (1-10, выше = раньше)","form.promptLabelLlm":"Инструкция / Промпт для агента","form.promptLabelScript":"Shell-команда или скрипт","form.promptPlaceholderLlm":"Опишите подробно, что именно должен сделать агент…","form.promptPlaceholderScript":"curl -fsSL https://... || exit 1","form.providerDefault":"По умолчанию (DSH)","form.providerLabel":"Провайдер LLM","form.reliabilityTitle":"🛡️ Надёжность, Heartbeat и самоисцеление","form.retriesLabel":"Автоматических повторов при сбое (0 = выкл)","form.scheduleLabel":"Расписание (cron или интервал)","form.schedulePlaceholder":"0 */6 * * * или every 2h или in 30m или at: 2026-09-05T15:00:00Z","form.scheduleTypeCron":"Стандартный Cron (выражение из 5 полей)","form.scheduleTypeInterval":"Повторяющийся интервал (каждые N минут/часов)","form.scheduleTypeLabel":"Режим расписания","form.scheduleTypeOneShot":"Разовый отложенный запуск (в заданное время)","form.selfHealingLabel":"Команда самоисцеления (Shell)","form.selfHealingPlaceholder":"systemctl restart app || true","form.silentRuleHint":"Для задач с выводом: легковесная модель оценивает результат по этому правилу и пропускает отчёт, если предписано молчать. При сбое модели отчёт доставляется.","form.silentRuleLabel":"Правило подавления уведомлений (Silent rule, необязательно)","form.silentRulePlaceholder":"Молчать, если ни одна файловая система не заполнена более чем на 80%","form.skillNameLabel":"Имя навыка","form.sshKeyLabel":"Путь к закрытому ключу (резервный, необязательно)","form.sshProfileHint":"Рекомендуется: хост и реквизиты доступа берутся из плагина remote-workspace.","form.sshProfileLabel":"Профиль dsh-remote-workspace","form.sshTargetLabel":"Резервный адрес хоста (user@host, необязательно)","form.targetSessionIdHint":"Если указан, запланированные запуски возобновляют эту сессию для непрерывности контекста диалога вместо создания новой изолированной сессии.","form.targetSessionIdLabel":"ID постоянной сессии (Target Session ID)","form.targetSessionIdPlaceholder":"например: audit-chat или dev-summary (пусто = изолированный запуск)","form.targetSessionResetDaily":"Ежедневная ротация (новая сессия каждый день)","form.targetSessionResetHint":"Автоматически меняет идентификатор сессии, предотвращая разрастание контекстного окна при долгосрочной работе.","form.targetSessionResetLabel":"Ротация контекста сессии","form.targetSessionResetNever":"Непрерывно (без ротации)","form.targetSessionResetWeekly":"Еженедельная ротация (новая сессия каждую неделю)","form.templateHint":"Переменные: {title} {id} {status} {output} {error} {duration} {schedule} {time} {tokens} {cost} {model}. Пусто = встроенный текст.","form.templateLabel":"Шаблон сообщения (необязательно)","form.templatePlaceholder":"⏰ {title} — {status} за {duration}","form.timeoutLabel":"Таймаут выполнения (секунды)","form.timezoneLabel":"Часовой пояс (IANA, необязательно)","form.timezonePlaceholder":"например Europe/Moscow (пусто = локальное время сервера)","form.titleCreate":"Создание задачи по расписанию","form.titleEdit":"Редактирование задачи по расписанию","form.typeDocker":"Контейнер Docker","form.typeHttp":"HTTP-запрос (Webhook)","form.typeLabel":"Тип исполнителя","form.typeLlm":"Инструкция для AI-агента (LLM)","form.typeNode":"Node.js","form.typePython":"Python","form.typeScript":"Shell-команда / скрипт","form.typeShell":"Shell-скрипт / Команда ОС","form.typeSkill":"Навык DSH (Skill)","form.typeSsh":"Удалённый SSH","form.typeWorkflow":"Рабочий процесс (Workflow)","form.workflowNameLabel":"Имя рабочего процесса","form.workspaceLabel":"ID или путь рабочего пространства (необязательно)","form.worktreeLabel":"Запускать в изолированном git worktree","history.applySuggestion":"Открыть форму редактирования с этой рекомендацией","history.diagnosis":"Диагностика","history.empty":"Запусков пока не зафиксировано","history.loading":"Загрузка истории…","history.openSession":"Открыть сессию","history.refresh":"Обновить историю","history.silentSkip":"подавлено по правилу:","history.statusFailed":"Ошибка","history.statusMissed":"Пропущено (простой)","history.statusSkipped":"Пропущено","history.statusSuccess":"Успешно","history.statusTimeout":"Таймаут","list.cancelBtn":"Отмена","list.configManaged":"Конфиг","list.configManagedHint":"Задача создана автоматически из файла конфигурации DSH","list.cost":"Стоимость: {cost}","list.deleteBtn":"Удалить","list.deleteConfirm":"Удалить задачу «{name}»? Это действие нельзя отменить.","list.empty":"Задач по расписанию пока нет","list.failed":"Сбой","list.lastRun":"Последний запуск: {time}","list.loadErrorPrefix":"Не удалось загрузить задачи","list.loading":"Загрузка задач по расписанию…","list.next":" · след: {time}","list.nextRun":"Следующий запуск: {time}","list.oneShot":"Разовая","list.paused":"Пауза","list.running":"Выполняется","list.runningNow":"Выполняется прямо сейчас","list.runsCount":"Запусков: {count}","list.tokens":"Токены: {tokens}","list.typeLlm":"LLM","list.typeShell":"Shell","modal.cancel":"Отмена","modal.close":"Закрыть","modal.create":"Создать задачу","modal.editTitle":"Редактирование задачи","modal.history":"История запусков ({count})","modal.newTitle":"Новая задача по расписанию","modal.params":"Параметры","modal.save":"Сохранить изменения","modal.statusActive":"● Активна","modal.statusPaused":"○ На паузе","panel.back":"Назад к чату","panel.subtitle":"Попросите DSH спланировать задачи, установить напоминания или отслеживать обновления","panel.title":"Задачи по расписанию","recs.hint":"Готовые шаблоны задач. Нажатие открывает форму с заполненными полями — ничего не создаётся до сохранения.","recs.title":"Рекомендуемые задачи","search.placeholder":"Поиск задач по расписанию","settings.apiTokenLabel":"Внешний API-токен","settings.apiTokenPlaceholder":"Bearer-токен для /dsh-cron/api/* (пусто = отключено)","settings.automationHint":"Модели для вспомогательных вызовов (оценка правил, экспресс-анализ сбоев). Оставьте пустым для использования модели задачи.","settings.automationSection":"Модели автоматизации","settings.barkKeyLabel":"Ключ устройства Bark","settings.barkServerLabel":"URL сервера Bark","settings.botTokenRefLabel":"Имя секрета для Telegram Bot Token","settings.botTokenRefPlaceholder":"например TELEGRAM_BOT_TOKEN","settings.cardDesc":"Запуск задач по расписанию (cron/интервалы), фоновые сценарии агента и доставка отчётов в Telegram, Discord, Slack, ntfy, Bark, PushPlus, голос и Gitea.","settings.cardTitle":"⏰ Планировщик задач (Cron)","settings.channelTemplateLabel":"Шаблон для канала {channel}","settings.chatIdLabel":"ID чата в Telegram","settings.chatIdPlaceholder":"Например: 345678901","settings.checkingKanban":"Проверка Kanban…","settings.defaultHint":"✓ Настроенный бот обнаружен в профиле DSH","settings.deliverySection":"Каналы доставки","settings.deliveryTimeoutMsLabel":"Таймаут доставки по каналу (мс)","settings.discordLabel":"URL вебхука Discord","settings.giteaBaseUrlLabel":"Базовый URL Gitea","settings.giteaRepoLabel":"Репозиторий Gitea (владелец/репозиторий)","settings.giteaTokenRefLabel":"Имя секрета для токена Gitea","settings.globalNotify":"Глобально доставлять отчёты обо всех задачах в Telegram","settings.globalOnlyFailure":"Глобальный режим: только при ошибках (молчать при успехе)","settings.inspectorModelLabel":"Модель для диагностики сбоев","settings.kanbanFail":"❌ {error}","settings.kanbanOk":"✅ Карточка Kanban создана","settings.kanbanUrlLabel":"Базовый URL Kanban","settings.loading":"Загрузка настроек…","settings.modalTitle":"Уведомления и каналы доставки","settings.ntfyTokenRefLabel":"Имя секрета для токена ntfy","settings.ntfyTopicLabel":"Тема (topic) в ntfy","settings.ntfyUrlLabel":"URL сервера ntfy","settings.openPanel":"Открыть панель задач","settings.pushplusTokenRefLabel":"Имя секрета для токена PushPlus","settings.pushplusUrlLabel":"Конечная точка PushPlus","settings.retry":"Повторить","settings.save":"Сохранить настройки","settings.saveError":"Ошибка сохранения: {error}","settings.saveErrorUnknown":"неизвестная ошибка","settings.saved":"✓ Сохранено","settings.secretsHint":"Введите ИМЯ учётных данных DSH, а не сам секрет. Секреты остаются в защищённом хранилище credentials.","settings.secretsOnCard":"Учётные данные, на которые ссылается панель настроек, отображаются скрытыми и сохраняются по имени ссылки.","settings.secretsSection":"Учётные данные (ссылки по имени)","settings.sending":"Отправка…","settings.silentRuleModelLabel":"Модель для фоновых правил","settings.slackLabel":"URL вебхука Slack","settings.telegramSection":"Telegram","settings.templateHint":"Применяется ко всем каналам без индивидуального шаблона. Пусто = стандартный встроенный текст.","settings.templateLabel":"Шаблон сообщения по умолчанию","settings.templatesSection":"Шаблоны сообщений","settings.testFail":"❌ {error}","settings.testKanban":"📋 Проверить Kanban","settings.testOk":"✅ Тестовое сообщение доставлено в Telegram!","settings.testTelegram":"🔔 Проверить доставку в Telegram","settings.tokenLabel":"Токен бота Telegram","settings.tokenPlaceholder":"123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ","settings.tokenPlaceholderDefault":"Используется бот, настроенный в профиле DSH (или введите свой)","settings.ttsBaseUrlLabel":"Базовый URL службы dsh-tts","settings.unavailable":"Настройки сейчас недоступны.","sidebar.jobsTitle":"Активные задачи","sidebar.label":"Задачи по расписанию","sidebar.moreJobs":"и ещё {count}","sidebar.noActiveJobs":"Нет активных задач","stats.activeTasks":"Активных задач","stats.totalCost":"Расчётная стоимость","stats.totalRuns":"Всего запусков","stats.totalTokens":"Потрачено токенов","tabs.active":"Активные","tabs.all":"Все","tabs.completed":"Завершённые","tabs.paused":"На паузе","transfer.badFile":"Выбранный файл не является корректным JSON-экспортом: {error}","transfer.confirm":"Импортировать","transfer.exportFailed":"Сбой экспорта: {error}","transfer.exportTitle":"Экспорт задач","transfer.exported":"Экспортировано задач: {count}.","transfer.importFailed":"Сбой импорта: {error}","transfer.importHint":"Экспортируются только настройки задач: без истории запусков и счетчиков. Секреты не включаются — каналы ссылаются на учетные данные по имени, поэтому убедитесь, что эти имена существуют на целевом сервере.","transfer.importTitle":"Импорт задач","transfer.importTitleModal":"Импорт задач","transfer.imported":"Импортировано задач: {count}.","transfer.strategyAdd":"Добавить как новые задачи (новые ID, существующие не изменятся)","transfer.strategyReplace":"Заменить задачи с совпадающим ID","transfer.strategySkip":"Пропустить задачи, чей ID уже существует","transfer.summary":"В файле содержится задач: {total} (новых: {add}, совпадает по ID: {replace}, пропущено: {skip}).","tune.startFailed":"Не удалось начать диалог настройки: {error}"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-live-canvas":{"aiPromptBtn":"✨ AI Доработка","aiPromptDesc":"Опишите, что нужно изменить в компоненте, или выберите готовый пресет:","aiPromptModalTitle":"Доработка элемента с помощью ИИ","aiPromptPlaceholder":"Например: Сделай эту карточку в стиле glassmorphism, добавь светящуюся рамку и настрой отступы для мобильных…","aiSentSuccess":"Задача отправлена! Холст обновится автоматически по завершении.","aiSubmitBtn":"Отправить задачу агенту","annotateBtn":"Аннотации","annotationResolvedToast":"Аннотация помечена как решённая","artifactsBtn":"📋 Артефакты","artifactsModalTitle":"📋 Генератор интерактивных HTML-артефактов","autoOpen":"Автооткрытие холста","autoOpenDesc":"Автоматически открывать холст предпросмотра при создании агентом HTML или React компонентов","blockInsertedToast":"Блок успешно вставлен","blocksBtn":"✨ Блоки","blocksModalTitle":"✨ Каталог современных дизайн-блоков","blueprintBtn":"📐 Скетч / Wireframe","browseFilesBtn":"Обзор","cancelBtn":"Отмена","choosePlaceholder":"⚡ Выберите файл или сессию…","codeBtn":"💻 Код","codeDrawerLive":"● Живая синхронизация","codeDrawerSync":"Правки синхронизируются в реальном времени","codeDrawerTitle":"Исходный код","codeSyncedToast":"Код синхронизирован","compareBtn":"Сравнить","consoleBtn":"Консоль","consoleClearBtn":"Очистить","consoleDrawerTitle":"Мини-консоль и журнал выполнения","consoleFilterAll":"Все","consoleFilterErrors":"Ошибки","consoleFilterLogs":"Логи","consoleFilterWarnings":"Предупреждения","controlsBtn":"Параметры","copyShareLink":"Скопировать ссылку","crudArtifact":"🗄️ Дашборд Retool / CRUD","customPathPlaceholder":"Или введите путь…","defaultViewport":"Область просмотра по умолчанию","defaultViewportDesc":"Начальный размер экрана фрейма для живого предпросмотра","deployBtn":"🌍 Деплой","deployModalTitle":"🌍 Мгновенная публикация в Web","description":"Интерактивный холст в браузере для предпросмотра HTML (с Tailwind CSS и иконками Lucide), React-компонентов, SVG и диаграмм в реальном времени: обнаружение файлов воркспейса, переключение сессий, контролы параметров props, визуальный diff, матрица устройств, AI-мок-данные, экспорт проекта Vite в 1 клик и интеграция с Better Sidebar.","desktop":"Десктоп (1280px)","diagramArtifact":"📊 Интерактивная диаграмма архитектуры","drawingBtn":"Рисование…","enableHotReload":"Включить горячую перезагрузку (SSE Hot-Reload)","enableHotReloadDesc":"Мгновенное обновление предпросмотра при изменении компонентов","errCount":"ошибок","exportBtn":"Экспорт","insertBlockBtn":"Вставить блок","inspectBtn":"Инспектор","inspectingBtn":"Инспекция…","loading":"Загрузка…","matrix":"Матрица устройств","matrixBtn":"Матрица","maxSessions":"Макс. кэшированных сессий","maxSessionsDesc":"Количество активных сессий предпросмотра, удерживаемых в памяти","mobile":"Смартфон (375px)","mockBadge":"Mock API","mockBtn":"⚡ Мок-данные","mockPopulatedToast":"Набор мок-данных загружен в песочницу","noConsoleLogs":"Вывод консоли пока не зафиксирован.","noControls":"Для этого компонента не объявлены интерактивные параметры props.","noFilesFound":"Фронтенд-файлы (.html, .jsx, .tsx, .svg, .md) не найдены.","noLogs":"Журнал телеметрии пока пуст.","notesCount":"заметок","openActionBtn":"Открыть","openFileBtn":"Файлы","openTabBtn":"В новой вкладке","packBtn":"Собрать Vite-проект","planArtifact":"📋 Интерактивная дорожная карта","presetBadge":"🔥 Бейдж скидки и анимированная кнопка действия","presetGlass":"💎 Глассморфизм и неоновое свечение","presetMobile":"📱 Оптимизация адаптивности под смартфоны","presetModern":"⚡ Минималистичная типографика и аккуратные отступы","prototypeArtifact":"🧪 Многошаговый прототип","refreshBtn":"Обновить","reorderBtn":"↕️ Перестановка","reorderOffToast":"Режим Drag & Drop отключён","reorderOnToast":"Режим Drag & Drop включён: перетаскивайте секции для изменения порядка","resolveAnnotationBtn":"✓ Решено","responsive":"Адаптивный","save":"Сохранить изменения","saveError":"Не удалось сохранить настройки","saved":"Настройки успешно сохранены","searchPlaceholder":"🔍 Поиск файлов проекта (напр. preview.html)…","selectedLabel":"Выбрано","sessionsGroup":"⚡ Активные сессии","shareBtn":"📱 QR-предпросмотр","shareModalDesc":"Отсканируйте камерой смартфона в локальной Wi-Fi сети:","shareModalTitle":"📱 Мобильный предпросмотр по QR-коду","sidebarTab":"Live Canvas","snapshotBtn":"Снимок экрана","snapshotCapturedToast":"Снимок интерфейса сохранён и готов к анализу моделью.","soundBtn":"🔊 Звук","standaloneExportBtn":"Один HTML-файл","stateDefault":"Обычное","stateEmpty":"Пусто","stateError":"Ошибка","stateLoading":"Загрузка","stateOverflow":"Переполнение","storybookBtn":"🧩 UI Kit","syncScroll":"Синхронная прокрутка","tablet":"Планшет (768px)","themeAppliedToast":"Тема дизайн-системы применена","themeDark":"Тёмная","themeLight":"Светлая","themesLabel":"🎨 Тема оформления","timetravelBtn":"⏳ Таймлайн","title":"Интерактивный холст (Live Canvas)","tweakEdit":"Инлайн-правка","tweakPadding":"Отступы","tweakRadius":"Скругление","tweakText":"Текст","tweakerBarTitle":"Редактор стилей","unavailable":"Служба настроек недоступна","wireframeArtifact":"📐 Low-Fi скетч / вайрфрейм","workspaceFilesGroup":"📂 Файлы рабочего пространства"}}
@@ -0,0 +1 @@
1
+ {"dsh-grok-xsearch":{"advanced_settings":"Расширенные настройки","api_key":"Ключ API xAI","api_key_hint":"Ключ API xAI. Если поле пустое, используется переменная окружения XAI_API_KEY.","api_key_placeholder":"xai-...","author":"Автор","auto_fallback":"Автопереключение на Grok 4.5 при лимитах (429)","base_url":"Базовый URL API","base_url_hint":"Конечная точка xAI API (по умолчанию: https://api.x.ai/v1).","browser_no_return":"Браузер не вернулся автоматически? Вставьте URL перенаправления","cache_cleared":"Кэш очищен","cache_hit_rate":"Эффективность кэша","cache_hits":"Попаданий","cache_misses":"Промахов","cache_stats":"Запросов в кэше","cache_ttl_hint":"Длительность хранения результатов в кэше запросов (по умолчанию: 300 с).","cache_ttl_seconds":"Время жизни кэша (сек)","cancel":"Отмена","clear_cache":"Очистить кэш","client_id_hint":"OAuth Client ID из портала разработчиков SuperGrok / xAI.","connect":"Подключить","connected":"Подключено","disconnect":"Отключить","enable_cache":"Кэширование повторных запросов в памяти (5 мин)","enable_deep_search":"Режим углублённого поиска (Deep Search)","enable_deep_search_hint":"Выполняет многошаговые поисковые проходы для всестороннего анализа темы.","enable_news":"Включить агрегацию новостей X","enable_news_hint":"Позволяет модели обобщать актуальные тренды новостей и медиа-повестки.","enabled_plugin":"Включить плагин Grok X Search","grok_client_id":"ID клиента Grok (OAuth Client ID)","likes":"Лайков","loading":"Загрузка…","max_results":"Макс. результатов поиска","max_results_hint":"Максимальное количество твитов или постов, возвращаемых за один поисковый запрос (1–50).","model":"Модель","model_hint":"Модель xAI для обобщения и синтеза поисковой выдачи.","no_results":"По вашему запросу ничего не найдено в X.","not_connected":"Не подключено","not_connected_msg":"Подключите учётную запись SuperGrok для активации инструментов аналитики X.","paste_hint":"Вставьте полный URL из адресной строки браузера после авторизации.","plugin_subtitle":"Поиск в реальном времени и аналитика X (Twitter) на базе xAI Grok","plugin_title":"Grok X Search","posted_at":"Опубликовано {time}","ready_msg":"Инструменты x_search, x_author_profile, x_trending_topics, x_fact_check_notes, x_thread_reader и x_find_experts готовы к работе в чате.","reconnect":"Переподключить","redirect_uri":"URL перенаправления OAuth","redirect_uri_hint":"Локальный URL обратного вызова OAuth (по умолчанию: http://127.0.0.1:56121/callback).","reposts":"Репостов","results_count":"Найдено результатов: {count}","retries":"Макс. попыток","retries_hint":"Количество повторных попыток при сетевых сбоях (по умолчанию: 2).","save_error":"Ошибка при сохранении настроек","save_settings":"Сохранить настройки","saving":"Сохранение…","search_btn":"Найти","search_placeholder":"Поиск трендов, аккаунтов или тем в X...","search_tab":"Поиск в X","searching":"Поиск в X…","sec_auth_desc":"Токен подключения OAuth безопасно хранится в службе Credentials DSH и обновляется автоматически.","sec_auth_title":"🔑 Авторизация и доступ к SuperGrok","sec_cache_desc":"Кэш запросов LRU в оперативной памяти исключает дублирующие вызовы API и ускоряет повторные поиски.","sec_cache_title":"⚡ Производительность и кэш запросов","sec_model_desc":"Выбор модели xAI для синтеза поисковой выдачи и автоматический переход на резервную при лимитах.","sec_model_title":"🧠 Настройка модели и отказоустойчивости","sentiment_negative":"Негативная тональность","sentiment_neutral":"Нейтральная тональность","sentiment_positive":"Позитивная тональность","settings_saved":"Настройки успешно сохранены","status_active":"Активен","status_error":"Ошибка подключения","status_no_key":"API-ключ не задан","submit":"Отправить","subtitle":"Поиск в реальном времени, профили авторов, тренды и фактчекинг в X (Twitter) через SuperGrok OAuth.","supergrok_account":"Учётная запись SuperGrok","timeout_hint":"Максимальное время ожидания ответа перед отменой (по умолчанию: 180 с).","timeout_seconds":"Таймаут поиска (сек)","title":"Grok X Search & Intelligence Suite"}}
@@ -0,0 +1 @@
1
+ {"dsh-goal":{"autoDriveLabel":"Автопилот: непрерывное автономное выполнение цикла","clearGoal":"Очистить цель","close":"Закрыть","closeBanner":"Закрыть баннер цели","copyGitDiff":"Нажмите, чтобы скопировать команду git diff","copyPRComment":"🐙 Скопировать для GitHub PR","copyReport":"📋 Скопировать отчёт в Markdown","details":"Развернуть детали цели","discard":"Сбросить изменения","done":"Выполнено","eta":"Оценка времени (ETA)","goalCompleted":"Цель достигнута","goalLabel":"Текущая цель","iterations":"Итерации","loading":"Загрузка настроек…","localeCode":"ru","maxIterLabel":"Макс. итераций (лимит безопасности):","milestones":"План работы:","modalTitle":"План и статус цели","modalTitleCompleted":"Цель выполнена: план и результаты","noMilestones":"Агент формирует план работы…","notifLabel":"Нативные уведомления на рабочем столе браузера при завершении","nudgePlaceholder":"💡 Уточнить задачу или скорректировать агента…","nudgeSent":"✅ Уточнение отправлено!","overridden":"переопределено","pause":"Пауза","paused":"Приостановлено","pluginDesc":"Баннер цели над полем ввода, декомпозиция задач и автопилот","pluginTitle":"Автономный режим целей (Goal Mode)","prCommentCopied":"✅ Отчёт для PR скопирован!","progress":"Прогресс","quickLaunch":"Начать цель","quickLaunchDesc":"Сформулируйте задачу для автономной работы агента:","quickLaunchLabel":"Кнопка быстрого запуска цели над полем ввода","quickLaunchPlaceholder":"Например: Реализовать экспорт отчёта и покрыть юнит-тестами…","quickLaunchTitle":"Быстрый запуск цели","reportCopied":"✅ Скопировано!","resetField":"По умолчанию","resume":"Возобновить","save":"Сохранить","saveFailed":"Не удалось сохранить — исправьте значения и повторите","saving":"Сохранение…","sendNudge":"Подрулить","soundLabel":"Звуковой сигнал при завершении цели","startGoal":"Запустить цель","time":"Время выполнения","tokens":"Токены","toolFailHint":"Приостанавливать цель, если N ходов подряд завершаются ошибками инструментов (0 — выкл)","toolFailLabel":"Лимит автопаузы при сбоях инструментов:","unavailable":"Настройки недоступны"}}
@@ -0,0 +1 @@
1
+ {"dsh-model-sync":{"acknowledge":"Подтвердить","addAlias":"Сохранить алиас","aliasPlaceholder":"Алиас (например, gpt-4o-latest)","all":"Все провайдеры с API-ключами","allModels":"Все модели","apply":"Применить изменения","autoApplySchedule":"Автоматически применять изменения","batchTry":"Проверить выбранные модели","batchTryDeselectUnreachable":"Снять выбор с недоступных","batchTryResults":"Пакетная проверка: доступно %d из %d","batchTryRunning":"Проверка…","cacheHoursAgo":"кэш %d ч назад","cancel":"Отмена","capabilityCount":"показано","capabilityFilter":"Фильтр по возможностям","checkCredentials":"Проверить ключи","credentialReady":"настроен","credentials":"Диагностика ключей","deprecated":"deprecated","deprecatesIn":"Устареет через %d дн.","desc":"Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.","deselectAllFiltered":"Снять выбор с показанных","diffAdded":"добавлено","diffChanged":"изменена метаинформация","diffRemoved":"удалено","diffRenamed":"переименовано","dormant":"не настроен","dryRun":"Только предпросмотр (dry-run)","empty":"нет настроенных провайдеров","enableContextFilter":"Фильтровать по минимальному контексту","enableCostFilter":"Фильтровать по максимальной цене","exportConfig":"Экспорт настроек","exportImportTitle":"Резервное копирование и восстановление настроек","failure":"ошибка","filterCheap":"Экономные ≤ $1/1M","filterContext100k":"Контекст ≥ 100k","filterCostContext":"Ограничения по цене и контексту","health":"Проверить доступность","healthDormant":"не настроен","healthError":"недоступна","healthOk":"доступна","history":"История синхронизаций","historyRun":"Запуск","importConfig":"Импорт настроек","importError":"Ошибка импорта: %s","importPlaceholder":"Вставьте JSON-конфигурацию сюда…","importSuccess":"Конфигурация успешно импортирована","intervalMinutes":"Интервал (в минутах)","invalidPattern":"Некорректный regex-шаблон: %s","invertFiltered":"Инвертировать выбор","lastRun":"Последний запуск","loading":"Загрузка…","markRead":"Прочитано","maxPricePerMillion":"Макс. цена ($ / 1 млн токенов)","minContextTokens":"Мин. размер контекста (токенов)","missingCredential":"не настроен","modelAliases":"Алиасы моделей","nextRun":"следующий запуск","noAliases":"Алиасы моделей не заданы.","noCapabilities":"В этом каталоге нет метаданных о возможностях.","noHistory":"Истории синхронизаций нет.","noModels":"В текущем каталоге нет моделей.","noNotifications":"Новых уведомлений нет.","noProviders":"Провайдеры с API-ключами не найдены.","notifications":"Уведомления","ok":"готов","partial":"частичный успех","pickerNote":"Выбранные модели сразу станут доступны в переключателе моделей DSH.","policy":"Ручной отбор моделей","policyDeny":"Запрещённые возможности (через запятую)","policyExclude":"Правила исключения (по одному regex в строке)","policyInclude":"Правила включения (по одному regex в строке)","policyNote":"Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.","policyRequire":"Обязательные возможности (через запятую)","previewAdded":"Добавлено","previewApply":"Применить изменения","previewChanged":"Изменено","previewDismiss":"Закрыть предпросмотр","previewNone":"Изменений не обнаружено.","previewRemoved":"Удалено","previewTitle":"Предпросмотр изменений","refresh":"Обновить статус","refreshAll":"Обновить всё","removeAlias":"Удалить алиас","removeMissing":"Подтвердить удаление устаревших","report":"Итог запуска","rollback":"Откатить каталог","rollbackConfirm":"Откатить каталог этого провайдера к выбранному снимку?","run":"Найти модели","running":"синхронизация…","savePolicy":"Сохранить политику","saveScheduler":"Сохранить расписание","saveSelection":"Сохранить и применить выбор","scheduleEnabled":"Включить фоновое расписание","scheduler":"Планировщик","schedulerOff":"выключен","schedulerOn":"включён","schedulerSaved":"Сохранено","schedulerSettings":"Настройка планировщика","scopeUnavailable":"Служба настроек недоступна.","searchPlaceholder":"Поиск по ID / имени / тегу","selectAllFiltered":"Выбрать все показанные","selectAtLeastOne":"Выберите хотя бы одну модель или используйте вариант «Все модели».","selectModels":"Выбор моделей","selected":"выбрано","showMore":"Показать ещё (%d)","showSettings":"Показать настройки","showingCount":"Показано %d из %d моделей","sortContext":"Контекст ↓","sortDate":"Новые ↓","sortName":"Имя А→Я","sortPrice":"Цена ↑","stale":"устарела","success":"успех","targetModel":"Целевая модель","targetProvider":"Провайдер","title":"Синхронизация моделей"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","labels":"Метки (Labels)","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"},"dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","labels":"Метки (Labels)","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-model-search":{"clear":"Очистить поиск","dms.clear":"Очистить поиск","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние"},"dsh-model-search":{"clear":"Очистить поиск","dms.clear":"Очистить поиск","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-agent-orchestrator":{"subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","title":"Мульти-агентный оркестратор"},"dsh-agent-orchestrator":{"description":"Декомпозиция и выполнение задач специализированными автономными агентами с оптимизацией кэширования промптов.","subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","title":"Мульти-агентный оркестратор"}}
@@ -0,0 +1 @@
1
+ {"dsh-key-limits":{"accountOrder":"Порядок аккаунтов","activeNoSession":"сессия","activeNone":"—","activeOnTop":"Активный всегда сверху","add":"Добавить","addKey":"Добавить ключ","allSub":"Все ключи","allTitle":"Лимиты подписки","balance":"Баланс","cancel":"Отмена","checkForUpdates":"Проверить обновления","checkUpdateFailed":"Не удалось проверить обновления","checkingUpdates":"Проверка…","close":"Закрыть","composerBar":"Кнопка в строке ввода","dataPath":"Данные: ~/.dsh/storages/dsh-key-limits/","delete":"Удалить","deleteConfirm":"Удалить ключ «","errTitle":"Key Limits: ошибка UI","extra":"Дополнительно","fillFields":"Заполните:","floatChip":"Плавающий чип","floatTitle":"Лимиты клавиш — клик: все, перетаскивание: перемещение","labelOptional":"Метка (необязательно)","loading":"Загрузка…","moveDown":"Вниз","moveUp":"Вверх","noQuota":"Нет данных о квоте","noSubs":"Ключей пока нет","oneTitle":"Лимиты активных ключей","pctLeft":"слева","pickDash":"— выбрать —","pickProvider":"Выберите провайдера","refresh":"Обновить","refreshAll":"Обновить все","refreshHours":"Интервал обновления (ч)","refreshing":"Обновление…","remaining":"остаток","restartRequired":" (требуется перезапуск)","retry":"Повторить","save":"Сохранить","saveError":"ошибка сохранения","saved":"Сохранено","secret":"Секрет / ключ","stale":"устаревший","storageDir":"Каталог данных","subtitle":"API-ключи и квоты подписки","title":"Лимиты ключей","totalAccounts":"Всего аккаунтов","uiHint":"Float chip и кнопка в строке ввода — cordis ui.*","upToDate":"Установлена последняя версия","updateAvailable":"Доступно обновление: ","updateFailed":"Ошибка обновления: ","updateNow":"Обновить сейчас","updateSuccess":"Успешно обновлено до ","updated":"Обновлено","updaterCurrent":"Текущая версия: v{version}","updaterLatest":"Новая версия: v{version}","updaterUpToDate":"Установлена актуальная версия","updating":"Обновление…"}}