@goodandready/dsh-russian-lang 0.2.26 → 0.3.1

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 (52) hide show
  1. package/README.md +1 -1
  2. package/bin/dsh-i18n.mjs +247 -0
  3. package/lib/client.js +785 -410
  4. package/lib/index.js +69 -13
  5. package/lib/locales/plugins/01-token-dashboard.json +1 -1
  6. package/lib/locales/plugins/10-kanban.json +1 -1
  7. package/lib/locales/plugins/13-agent-teams.json +1 -1
  8. package/lib/locales/plugins/16-usage-stats.json +1 -1
  9. package/lib/locales/plugins/23-moa.json +1 -1
  10. package/lib/locales/plugins/24-personal-directive.json +1 -1
  11. package/lib/locales/plugins/33-messenger-gateway.json +1 -1
  12. package/lib/locales/plugins/35-gitea.json +1 -1
  13. package/lib/locales/plugins/36-cost-meter.json +1 -1
  14. package/lib/locales/plugins/37-time-machine.json +1 -1
  15. package/lib/locales/plugins/38-context-lens.json +1 -1
  16. package/lib/locales/plugins/39-shadow-auditor.json +1 -1
  17. package/lib/locales/plugins/40-clinebot.json +1 -1
  18. package/lib/locales/plugins/41-lanmode.json +1 -1
  19. package/lib/locales/plugins/42-plugin-console.json +1 -1
  20. package/lib/locales/plugins/46-memory-brain.json +1 -1
  21. package/lib/locales/plugins/48-task-tracker.json +1 -1
  22. package/lib/locales/plugins/49-dsml-guard.json +1 -1
  23. package/lib/locales/plugins/49-usage-guard.json +1 -1
  24. package/lib/locales/plugins/50-automode.json +1 -1
  25. package/lib/locales/plugins/54-workshop-market.json +1 -1
  26. package/lib/locales/plugins/56-cron.json +1 -1
  27. package/lib/locales/plugins/57-live-canvas.json +1 -1
  28. package/lib/locales/plugins/58-grok-xsearch.json +1 -1
  29. package/lib/locales/plugins/59-goal.json +1 -1
  30. package/lib/locales/plugins/60-model-sync.json +1 -1
  31. package/lib/locales/plugins/61-issue-reporter.json +1 -1
  32. package/lib/locales/plugins/62-model-search.json +1 -1
  33. package/lib/locales/plugins/63-agent-orchestrator.json +1 -1
  34. package/lib/locales/plugins/64-key-limits.json +1 -1
  35. package/lib/locales/plugins/65-subscriptions.json +1 -1
  36. package/lib/locales/plugins/66-tts.json +1 -1
  37. package/lib/locales/plugins/67-voice.json +1 -1
  38. package/lib/locales/plugins/68-image-gen.json +1 -1
  39. package/lib/locales/plugins/69-plugin-notify.json +1 -1
  40. package/lib/locales/plugins/70-hypotheses.json +1 -1
  41. package/lib/locales/plugins/71-memory-meter.json +1 -1
  42. package/lib/locales/plugins/72-server-monitor.json +1 -70
  43. package/lib/locales/plugins/73-agentrouter.json +1 -1
  44. package/lib/locales/plugins/75-test-pilot.json +1 -0
  45. package/lib/locales/plugins/76-visualize.json +1 -0
  46. package/lib/locales/plugins/77-github-ops.json +1 -0
  47. package/lib/locales/plugins/78-web-gateway.json +1 -0
  48. package/lib/locales/plugins/79-approval-gate.json +1 -0
  49. package/lib/locales.js +50 -12
  50. package/lib/pure.js +251 -13
  51. package/package.json +7 -3
  52. package/lib/locales/plugins/44-goal.json +0 -1
@@ -1 +1 @@
1
- {"dsh-subscriptions":{"accountLabel":"Аккаунт","accountStatusActive":"Активен","accountStatusExpired":"Истёк срок действия","accountStatusQuarantined":"На карантине (ошибки авторизации)","accountStatusRateLimited":"Лимит запросов исчерпан","activeSubscriptions":"Активные подписки","addAccount":"Добавить аккаунт","advancedSettings":"Расширенные настройки и мониторинг","autoLoopback":"Автоматический перехват токена (Loopback)","autoLoopbackHint":"Слушать локальный порт обратного вызова для автоматического получения токенов OAuth без ручного копирования.","callbackPort":"Порт обратного вызова OAuth","cardIntro":"Подписки, ротация и ограничения аккаунтов.","check":"Проверить","checking":"Проверка…","chipActive":"Подписки","close":"Закрыть","closeModal":"Закрыть","codexFastMode":"Быстрый режим Codex (1.5x)","codexFastModeHint":"Включить режим повышенной пропускной способности для моделей OpenAI Codex, если поддерживается подпиской.","codexVerbosity":"Codex streaming verbosity","codexVerbosityDefault":"Default","codexVerbosityHigh":"High","codexVerbosityHint":"Control streaming chunking detail level from the Codex provider.","codexVerbosityLow":"Low","codexVerbosityMedium":"Medium","composerQuota":"Composer quota indicator","composerQuotaBar":"Progress Bar","composerQuotaForecast":"Remaining Forecast","composerQuotaHint":"Display subscription usage indicator directly in the composer toolbar.","composerQuotaOff":"Disabled","composerQuotaPercent":"Percentage","connect":"Подключить","connected":"Подключено","cooldownMin":"Время паузы при ошибках (мин)","cooldownMs":"Failure cooldown (minutes)","cooldownMsHint":"How long to pause a failing or rate-limited account before retrying.","coolingDown":"Охлаждение","deleteAccount":"Удалить аккаунт","deleteConfirm":"Вы уверены, что хотите удалить подписку «{name}»?","deviceAuthorized":"Signed in","deviceCopy":"Copy code","deviceExpired":"Expired - start again","deviceHint":"Headless: open the link, enter the code, keep this tab open.","deviceLogin":"Device login","devicePending":"Waiting for confirmation","diagCopy":"Copy report","diagGenerate":"Generate diagnostics report","diagHint":"The report has no tokens, emails, proxy addresses or personal data.","diagIssues":"Open issue tracker","disableAccount":"Отключить","disconnect":"Отключить","enableAccount":"Включить","expiryLabel":"expires","expiryNotifyDays":"Expiry warning threshold (days)","expiryNotifyDaysHint":"Notify when subscription renewal or token expiration is within this many days (0 to disable).","fcCalibrating":"calibrating…","fcHours":"h","fcIdle":"no usage","fcMinutes":"m","forecast":"≈","groupAuth":"Авторизация и перенаправление","groupFallback":"Локальный фолбэк","groupPrivacy":"Приватность и список моделей","groupProvider":"Поведение провайдеров","groupRotation":"Ротация и лимиты","headerDesc":"Использование подписок ChatGPT, Claude, Grok, Kimi, Cursor и др. в качестве LLM-провайдеров через OAuth.","headerTitle":"Управление подписками","hide":"Скрыть","hideDeprecated":"Hide deprecated models","hideDeprecatedHint":"Hide older or superseded model variants from model dropdowns.","hostOffline":"Host unreachable","hostOnline":"Host online","howToGetToken":"❓ Instructions","howToGetTokenTitle":"How to get token / API key for this provider","hudHint":"drag · edge docks · click refresh","hudTitle":"Subscription balance","importLocalCli":"📥 From CLI","importLocalCliTitle":"Auto-import token from locally installed CLI on server","importLocalSuccess":"Successfully imported token from local CLI!","importToken":"Save token","importTokenPlace":"Paste token or API key","importTokens":"Импортировать токены","importTokensHint":"Вставьте JSON с сохранёнными токенами для быстрого восстановления доступа.","instructionsTitle":"How to obtain token","intro":"Войдите с помощью потребительской подписки. Токены остаются в хранилище учетных данных хоста. Браузер никогда не читает их обратно. После подключения, если провайдер перенаправляет на localhost или страницу провайдера, вставьте перенаправленный URL или код сюда.","loading":"Загрузка…","localFallbackEnabled":"Переключаться на локальные модели при отказе","localFallbackHint":"Автоматически направлять запросы на локальный Ollama или vLLM при недоступности всех подписок.","localFallbackProvider":"Локальный провайдер","login":"Войти через браузер","loginFailed":"Не удалось авторизоваться: {error}","loginSuccess":"Авторизация прошла успешно!","manualTitle":"If the browser did not come back","maskEmails":"Маскировать email в интерфейсе","modelsCatalogDesc":"Available model catalog across active subscriptions in DeepSeek Harness.","modelsCatalogTitle":"Curated Subscription Models","noAccounts":"Нет подключённых аккаунтов подписок.","none":"none","notConnected":"Не подключено","notifyLimits":"Notify on rate limits","notifyLimitsHint":"Show notification alerts when account usage reaches quota ceiling.","oauthRedirectUrl":"URL перенаправления OAuth","ollamaBaseUrl":"Ollama Base URL","ollamaFallback":"Ollama local fallback","ollamaFallbackHint":"Automatically route queries to a local Ollama instance when cloud quota is exhausted.","ollamaFallbackModel":"Ollama Fallback Model","pastePlaceholder":"Вставьте перенаправленный URL или код","plan":"План","privacyMask":"Маскировать email и идентификаторы аккаунтов","privacyMaskHint":"Для демонстраций и демонстрации экрана: скрывает адреса вида j***n@example.com.","probeIntervalMin":"Health probe interval (minutes)","probeIntervalMinHint":"Interval for background checks to refresh account status and quota balance.","providerClaude":"Claude Pro / Team","providerCodex":"ChatGPT Plus / Team (Codex)","providerCursor":"Cursor Pro","providerGrok":"xAI Grok Premium","providerKimi":"Kimi Moonshot","proxyCheck":"Check proxy","proxyFail":"proxy fail","proxyOk":"proxy ok","proxyPlaceholder":"Per-account proxy (http://, https://, socks5://) - optional","quarantineHours":"Период карантина (часов)","quarantineHoursHint":"Время ожидания перед повторной попыткой использовать аккаунт после критической ошибки 401/403.","reconnect":"Переподключиться","reconnectRequired":"Reconnect required","refreshQuota":"Обновить квоту","refreshing":"Обновление квоты…","remainingQuota":"Остаток квоты: {percent}%","removeSlot":"Удалить слот","resetAck":"I understand one attempt will be consumed","resetAvailable":"Reset attempts available","resetBusy":"resetting…","resetCooldowns":"Сбросить паузы ожидания","resetCredits":"Reset credits","resetCreditsAction":"Reset ChatGPT Limit","resetCreditsHint":"ChatGPT reset cards: emergency reset for the 5-hour window. Requires a 5s confirmation.","resetDone":"quota reset","resetExpires":"earliest expires","resetGo":"Reset now","resetLabel":"reset","resetNoCredit":"no usable credit (not consumed)","resetNothing":"server says nothing needs a reset (no attempt consumed)","resetReady":"ready","resetRedeemed":"already redeemed earlier","resetWait":"confirm enabled in","rotationStrategy":"Стратегия ротации аккаунтов","rotationStrategyHint":"Round-robin (по очереди), Least-used (наименее используемый) или Priority (по приоритету).","runSmoke":"⚡ Run Smoke Test (Ping)","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","settingsLoading":"Loading settings…","settingsRetry":"Retry","settingsUnavailable":"Settings are unavailable","show":"Показать","slashLogin":"Login to a subscription provider","slashLogout":"Log out a subscription provider","slashStatus":"Subscription status","slotDetailsTitle":"Slot Details","smokeDesc":"Test live upstream connectivity and measure round-trip latency to the subscription provider.","smokeFail":"Smoke test failed","smokeOk":"Smoke test passed","smokeTesting":"Pinging…","smokeTitle":"Connection Smoke Test (Ping)","statsLastActivity":"Last Activity","statsLatency":"Avg Response Latency","statsRequests":"Successful / Total Requests","statsSuccessRate":"Session Success Rate","statsTitle":"Session Telemetry","storedAs":"Хранится как","submitCode":"Отправить код","subsActiveHero":"Active Subscription","subsCooldown":"cooldown","subsFastMode":"Fast Mode 1.5x","subsFree":"free","subsHealthy":"Healthy","subsLogged":"connected","subsModalClose":"Close","subsModalTitle":"Subscription Hub","subsNotLogged":"not connected","subsOpenSettings":"All Settings →","subsPill":"SUBS","subsPoolTitle":"Provider Accounts","subsRefresh":"Refresh","subsUsed":"used","switchAccount":"Сменить аккаунт","switchLabel":"Provider","title":"Подписки","tokenExpired":"Токен истёк. Требуется повторная авторизация.","updateAvailable":"Доступно обновление","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления","updateNow":"Обновить","updateSuccessRestart":"Обновление завершено. Перезапуск службы…","updateUpToDate":"Актуальная версия","updating":"Обновление…","usageFull":"Использование 100%","usageLimitsTitle":"Usage Limits","useOrigin":"Используйте этот источник Web UI как redirect_uri для OAuth","useOriginHint":"Не включайте, если вы не зарегистрировали собственный OAuth-клиент для этого источника. CLI-клиенты провайдеров обычно требуют опубликованный URI перенаправления и шаг вставки.","verifyAccount":"Подтвердить аккаунт","verifyLink":"Откройте ссылку для подтверждения","verifyPrefix":"Google требует одноразовой проверки аккаунта.","verifySuffix":"затем переподключитесь.","viewQuotaDetails":"Подробности квоты","windowPrimary":"Primary window","windowSecondary":"Secondary window"}}
1
+ {"dsh-subscriptions":{"accountLabel":"Аккаунт","accountStatusActive":"Активен","accountStatusExpired":"Истёк срок действия","accountStatusQuarantined":"На карантине (ошибки авторизации)","accountStatusRateLimited":"Лимит запросов исчерпан","activeSubscriptions":"Активные подписки","addAccount":"Добавить аккаунт","advancedSettings":"Расширенные настройки и мониторинг","autoLoopback":"Автоматический перехват токена (Loopback)","autoLoopbackHint":"Слушать локальный порт обратного вызова для автоматического получения токенов OAuth без ручного копирования.","callbackPort":"Порт обратного вызова OAuth","cardIntro":"Аккаунты подписок, ротация и лимиты.","check":"Проверить","checking":"Проверка…","chipActive":"Подписки","close":"Закрыть","closeModal":"Закрыть","codexFastMode":"Быстрый режим Codex (1.5x)","codexFastModeHint":"Включить режим повышенной пропускной способности для моделей OpenAI Codex, если поддерживается подпиской.","codexVerbosity":"Codex streaming verbosity","codexVerbosityDefault":"Default","codexVerbosityHigh":"High","codexVerbosityHint":"Control streaming chunking detail level from the Codex provider.","codexVerbosityLow":"Low","codexVerbosityMedium":"Medium","composerQuota":"Composer quota indicator","composerQuotaBar":"Progress Bar","composerQuotaForecast":"Remaining Forecast","composerQuotaHint":"Display subscription usage indicator directly in the composer toolbar.","composerQuotaOff":"Disabled","composerQuotaPercent":"Percentage","connect":"Подключить","connected":"Подключено","cooldownMin":"Время паузы при ошибках (мин)","cooldownMs":"Failure cooldown (minutes)","cooldownMsHint":"How long to pause a failing or rate-limited account before retrying.","coolingDown":"Остывание (cooldown)","deleteAccount":"Удалить аккаунт","deleteConfirm":"Вы уверены, что хотите удалить подписку «{name}»?","deviceAuthorized":"Signed in","deviceCopy":"Copy code","deviceExpired":"Expired - start again","deviceHint":"Headless: open the link, enter the code, keep this tab open.","deviceLogin":"Device login","devicePending":"Waiting for confirmation","diagCopy":"Copy report","diagGenerate":"Generate diagnostics report","diagHint":"The report has no tokens, emails, proxy addresses or personal data.","diagIssues":"Open issue tracker","disableAccount":"Отключить","disconnect":"Отключить","enableAccount":"Включить","expiryLabel":"expires","expiryNotifyDays":"Expiry warning threshold (days)","expiryNotifyDaysHint":"Notify when subscription renewal or token expiration is within this many days (0 to disable).","fcCalibrating":"calibrating…","fcHours":"h","fcIdle":"no usage","fcMinutes":"m","forecast":"≈","groupAuth":"Авторизация и перенаправление","groupFallback":"Локальный фолбэк","groupPrivacy":"Приватность и список моделей","groupProvider":"Поведение провайдеров","groupRotation":"Ротация и лимиты","headerDesc":"Использование подписок ChatGPT, Claude, Grok, Kimi, Cursor и др. в качестве LLM-провайдеров через OAuth.","headerTitle":"Управление подписками","hide":"Скрыть","hideDeprecated":"Hide deprecated models","hideDeprecatedHint":"Hide older or superseded model variants from model dropdowns.","hostOffline":"Host unreachable","hostOnline":"Host online","howToGetToken":"❓ Instructions","howToGetTokenTitle":"How to get token / API key for this provider","hudHint":"drag · edge docks · click refresh","hudTitle":"Subscription balance","importLocalCli":"📥 From CLI","importLocalCliTitle":"Auto-import token from locally installed CLI on server","importLocalSuccess":"Successfully imported token from local CLI!","importToken":"Save token","importTokenPlace":"Paste token or API key","importTokens":"Импортировать токены","importTokensHint":"Вставьте JSON с сохранёнными токенами для быстрого восстановления доступа.","instructionsTitle":"How to obtain token","intro":"Войдите через пользовательскую подписку. Токены хранятся в защищённом хранилище хоста и не передаются в браузер. После нажатия «Подключить», если провайдер перенаправляет на localhost или страницу сервиса, вставьте перенаправленный URL или полученный код сюда.","loading":"Загрузка…","localFallbackEnabled":"Переключаться на локальные модели при отказе","localFallbackHint":"Автоматически направлять запросы на локальный Ollama или vLLM при недоступности всех подписок.","localFallbackProvider":"Локальный провайдер","login":"Войти через браузер","loginFailed":"Не удалось авторизоваться: {error}","loginSuccess":"Авторизация прошла успешно!","manualTitle":"If the browser did not come back","maskEmails":"Маскировать email в интерфейсе","missingClientIdAntigravity":"Для Google OAuth требуется собственный Client ID. Укажите antigravityClientId в настройках плагина ниже или нажмите «📥 Из CLI» для импорта активных учётных данных.","modelsCatalogDesc":"Available model catalog across active subscriptions in DeepSeek Harness.","modelsCatalogTitle":"Curated Subscription Models","noAccounts":"Нет подключённых аккаунтов подписок.","none":"none","notConnected":"Не подключено","notifyLimits":"Notify on rate limits","notifyLimitsHint":"Show notification alerts when account usage reaches quota ceiling.","oauthRedirectUrl":"URL перенаправления OAuth","ollamaBaseUrl":"Ollama Base URL","ollamaFallback":"Ollama local fallback","ollamaFallbackHint":"Automatically route queries to a local Ollama instance when cloud quota is exhausted.","ollamaFallbackModel":"Ollama Fallback Model","pastePlaceholder":"Вставьте URL перенаправления или код авторизации","plan":"Тариф / План","privacyMask":"Маскировать email и идентификаторы аккаунтов","privacyMaskHint":"Для демонстраций и демонстрации экрана: скрывает адреса вида j***n@example.com.","probeIntervalMin":"Health probe interval (minutes)","probeIntervalMinHint":"Interval for background checks to refresh account status and quota balance.","providerClaude":"Claude Pro / Team","providerCodex":"ChatGPT Plus / Team (Codex)","providerCursor":"Cursor Pro","providerGrok":"xAI Grok Premium","providerKimi":"Kimi Moonshot","proxyCheck":"Check proxy","proxyFail":"proxy fail","proxyOk":"proxy ok","proxyPlaceholder":"Per-account proxy (http://, https://, socks5://) - optional","quarantineHours":"Период карантина (часов)","quarantineHoursHint":"Время ожидания перед повторной попыткой использовать аккаунт после критической ошибки 401/403.","reconnect":"Переподключить","reconnectRequired":"Reconnect required","refreshQuota":"Обновить квоту","refreshing":"Обновление квоты…","remainingQuota":"Остаток квоты: {percent}%","removeSlot":"Удалить слот","resetAck":"I understand one attempt will be consumed","resetAvailable":"Reset attempts available","resetBusy":"resetting…","resetCooldowns":"Сбросить паузы ожидания","resetCredits":"Reset credits","resetCreditsAction":"Reset ChatGPT Limit","resetCreditsHint":"ChatGPT reset cards: emergency reset for the 5-hour window. Requires a 5s confirmation.","resetDone":"quota reset","resetExpires":"earliest expires","resetGo":"Reset now","resetLabel":"reset","resetNoCredit":"no usable credit (not consumed)","resetNothing":"server says nothing needs a reset (no attempt consumed)","resetReady":"ready","resetRedeemed":"already redeemed earlier","resetWait":"confirm enabled in","rotationStrategy":"Стратегия ротации аккаунтов","rotationStrategyHint":"Round-robin (по очереди), Least-used (наименее используемый) или Priority (по приоритету).","runSmoke":"⚡ Run Smoke Test (Ping)","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","settingsLoading":"Loading settings…","settingsRetry":"Retry","settingsUnavailable":"Settings are unavailable","show":"Показать","slashLogin":"Login to a subscription provider","slashLogout":"Log out a subscription provider","slashStatus":"Subscription status","slotDetailsTitle":"Slot Details","smokeDesc":"Test live upstream connectivity and measure round-trip latency to the subscription provider.","smokeFail":"Smoke test failed","smokeOk":"Smoke test passed","smokeTesting":"Pinging…","smokeTitle":"Connection Smoke Test (Ping)","statsLastActivity":"Last Activity","statsLatency":"Avg Response Latency","statsRequests":"Successful / Total Requests","statsSuccessRate":"Session Success Rate","statsTitle":"Session Telemetry","storedAs":"Сохранено как","submitCode":"Отправить код","subsActiveHero":"Active Subscription","subsCooldown":"cooldown","subsFastMode":"Fast Mode 1.5x","subsFree":"free","subsHealthy":"Healthy","subsLogged":"connected","subsModalClose":"Close","subsModalTitle":"Subscription Hub","subsNotLogged":"not connected","subsOpenSettings":"All Settings →","subsPill":"SUBS","subsPoolTitle":"Provider Accounts","subsRefresh":"Refresh","subsUsed":"used","switchAccount":"Сменить аккаунт","switchLabel":"Provider","title":"Подписки","tokenExpired":"Токен истёк. Требуется повторная авторизация.","updateAvailable":"Доступно обновление","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления","updateNow":"Обновить","updateSuccessRestart":"Обновление завершено. Перезапуск службы…","updateUpToDate":"Актуальная версия","updating":"Обновление…","usageFull":"Лимит исчерпан (100%)","usageLimitsTitle":"Usage Limits","useOrigin":"Использовать адрес этого Web UI как OAuth redirect_uri","useOriginHint":"Оставьте выключенным, если вы не регистрировали отдельный OAuth-клиент для этого адреса. Официальным CLI-клиентам обычно требуется стандартный redirect URI с последующей вставкой кода.","verifyAccount":"Подтвердить аккаунт","verifyLink":"Открыть ссылку для подтверждения","verifyPrefix":"Google требует однократного подтверждения аккаунта. ","verifySuffix":" затем выполните повторное подключение.","viewQuotaDetails":"Подробности квоты","windowPrimary":"Primary window","windowSecondary":"Secondary window"}}
@@ -1 +1 @@
1
- {"dsh-tts":{"activeProvider":"Активный провайдер","addProvider":"Добавить провайдера","addRule":"Добавить правило","addSubagentRole":"Добавить субагента","advancedCollapsed":"Расширенные настройки","advancedHint":"Лимиты и переопределение эндпоинтов. API-ключи провайдеров настраиваются в редакторе цепочки; имена слотов учётных данных (*KeyEnv) доступны только в конфигурации.","advancedTitle":"Расширенные","announce":"Объявлять одобрения","announceHint":"Произнесите вслух и воспроизведите мелодию, когда агент остановится для подтверждения или задаст вопрос.","approvalHint":"Сказано, когда запрашивается одобрение; добавляется название инструмента.","approvalText":"Формулировка одобрения","autoDetect":"Автоопределение языка фрагментов","autoDetectHint":"Определять язык каждого озвучиваемого фрагмента вместо глобальной настройки языка.","autoDetectSubagent":"Автоопределение ролей субагентов","autoplayBlocked":"Звук заблокирован браузером — нажмите на страницу для включения","azureEndpoint":"Azure Speech: базовый URL","azureHint":"Необходимо для провайдера Azure, например, eastus.","azureRegion":"Регион Azure","bargeIn":"Замолкать, когда вы говорите","bargeInHint":"Перестаньте читать, как только микрофон откроется.","binHint":"Ищется в PATH, если не указан абсолютный путь.","breakerOpen":"Защитный размыкатель активен (сбои провайдера)","breakerThreshold":"Порог ошибок до размыкания","breakerTimeout":"Время восстановления размыкателя (с)","cache":"Кэш синтеза речи","cacheClear":"Очистить кэш","cacheCleared":"Кэш озвучивания очищен","cacheHint":"Повторное использование синтезированного аудио для одинаковых фраз.","cacheMaxMb":"Максимальный объём кэша (МБ)","cacheMaxMbHint":"При заполнении кэша старые записи вытесняются по алгоритму LRU.","cacheStats":"Кэш","cardHint":"Озвучивание ответов ассистента в Web UI: выбор провайдеров, фолбэк-цепочки, кэш","chain":"Цепочка провайдеров озвучивания","chainHint":"Провайдеры опрашиваются по порядку до первого успешного ответа.","chainHintCard":"Выберите провайдера, вставьте его API-ключ и сохраните (или оставьте поле ключа пустым). Ключ сразу записывается в хранилище учетных данных хоста. Браузер никогда не читает его обратно.","chainTitle":"Цепочка провайдеров","chime":"Звонок","chimeHint":"динь, бип или ничего.","clear":"Очистить","clearCache":"Clear cache","clearQueue":"Очистить очередь","collapse":"Свернуть","configured":"Настроено","confirmClearCache":"Clear the synthesis cache? This cannot be undone.","confirmDeleteModel":"Delete downloaded weights for this engine?","currentVoice":"Voice","customBaseUrl":"Custom TTS endpoint","customBaseUrlHint":"OpenAI-compatible origin, e.g. http://localhost:8880/v1; empty = off.","customKeyEnv":"Custom key env","customKeyEnvHint":"Credential name for the custom endpoint bearer key.","deepgramEndpoint":"Deepgram: базовый URL","deleteModel":"Delete","deleteRule":"Удалить правило","dockClearQueue":"Очистить очередь","dockCurrent":"Сейчас звучит","dockFavorite":"Избранное","dockFavorites":"Favorite clips","dockHide":"Скрыть плеер","dockLabel":"Синтез речи","dockNone":"Ожидание текста","dockPause":"Пауза","dockQueue":"Очередь","dockReplay":"Повторить","dockResume":"Продолжить речь","dockSpeed":"Скорость","dockStop":"Остановить речь","dockUnfavorite":"Unfavorite","down":"Вниз","downloading":"Downloading","edgeBin":"бинарный файл edge-tts","edgeEndpoint":"Edge TTS: базовый URL","edgeHint":"Python CLI из пакета edge-tts.","elevenlabsEndpoint":"ElevenLabs: базовый URL","elevenlabsModel":"Модель ElevenLabs","enableItDictionary":"Built-in IT dictionary","enableItDictionaryHint":"Auto-correct pronunciation for SQL, Nginx, K8s, Docker, API, JSON, YAML, etc.","enableLocalEngines":"Enable local engines","enableLocalEnginesHint":"Use Kokoro or F5-TTS when installed.","enableSound":"Enable sound","espeakBin":"Бинарный файл eSpeak","espeakEndpoint":"eSpeak: базовый URL","espeakHint":"Обычно espeak-ng.","expand":"Развернуть","exportAudio":"Export audio clip","exportJson":"📥 Экспорт JSON","exportSuccess":"Audio exported","filterCode":"Пропускать блоки кода при чтении","filterCodeHint":"Не озвучивать программный код, чтение продолжается со следующего абзаца.","filterMarkdown":"Очищать Markdown-разметку","filterMarkdownHint":"Удалять спецсимволы разметки перед отправкой в движок TTS.","fromEnv":"Задано в окружении","general":"Общие","googleEndpoint":"Google TTS: базовый URL","groqEndpoint":"Groq: базовый URL","groqModel":"Модель Groq","importJson":"📤 Импорт JSON","installF5":"Install (2.1 GB)","installKokoro":"Install (350 MB)","installed":"Installed","invalidJsonFormat":"Неверный формат JSON словаря","language":"Язык","languageHint":"Подсказка для голосов, которым требуется локаль (eSpeak, Azure SSML).","lastError":"Last error","loadItDictionary":"Populate IT terms","loading":"Загрузка…","localEnginesHint":"Run speech synthesis 100% offline without API keys.","localEnginesTitle":"Local Engines (Offline)","localProvider":"Локальный / CLI провайдер — без API-ключа","longReply":"Long replies","longReplyHint":"truncate: cut at the limit; summarize: short retelling; full: read everything.","maxChars":"Max characters","maxCharsHint":"Hard cap before long-reply handling; 0 disables.","maxCharsPerChunk":"Максимум символов во фрагменте","maxCharsPerChunkHint":"Длинные сообщения разбиваются на части указанного размера.","maxQueue":"Max queue length","maxQueueHint":"Drop oldest pending pieces beyond this count.","messengerInstallHint":"To enable voice replies in messengers, install the plugin with","messengerIntegrationHint":"Voice replies and notes sent through @goodandready/dsh-messenger-gateway.","messengerIntegrationTitle":"Messenger Integration (Telegram, Discord)","messengerNotInstalledTitle":"Required plugin @goodandready/dsh-messenger-gateway is not installed","messengerTtsEnabled":"Voice replies in messengers","messengerTtsEnabledHint":"Allow the messenger gateway to deliver replies as voice notes.","mimoBaseUrl":"MiMo base URL","mimoBaseUrlHint":"MiMo API root; synthesis uses its chat endpoint.","mimoFormat":"MiMo format","mimoFormatHint":"mp3 or wav.","minimaxBin":"MiniMax CLI","minimaxBinHint":"Looked up in PATH unless absolute; install and log in separately.","narrateQuotesHint":"Read only «quoted» fragments of a reply.","narrateQuotesOnly":"Only quotes","newSubagentRole":"Subagent name (e.g. coder, reviewer)","notInstalled":"Not installed","notSet":"Не задано","openaiBaseUrl":"OpenAI base URL","openaiBaseUrlHint":"OpenAI-compatible origin for the openai provider.","openaiEndpoint":"OpenAI: базовый URL","openaiModel":"Модель OpenAI TTS","openrouterEndpoint":"OpenRouter: базовый URL","pause":"Пауза","piperBin":"Бинарный файл Piper","piperEndpoint":"Piper: базовый URL","piperModel":"Модель Piper","piperModelHint":"Абсолютный путь к модели ONNX. Оставьте пустым, чтобы пропустить Piper.","pitch":"Высота тона голоса","play":"Воспроизвести","playbackRate":"Скорость чтения","preloadNext":"Предзагрузка следующей фразы","preloadNextHint":"Синтезировать следующий фрагмент во время воспроизведения текущего.","preview":"Preview","previewRule":"Listen","pronFrom":"Replace","pronHint":"Rules run top-down. Wrap left side in /…/ for a regex; Lang filters the rule.","pronLang":"Lang","pronTitle":"Pronunciation","pronTo":"With","pronWhole":"Whole word","providerError":"Ошибка провайдера {provider}: {error}","questionHint":"Используется, когда агент задаёт вопрос. Если оставить пустым, функция будет отключена.","questionText":"Формулировка вопроса","queueEmpty":"Очередь воспроизведения пуста","queueLen":"Queue","rate":"Скорость","rateHint":"От 0.5 до 2. Синтез не изменяется; браузер воспроизводит быстрее или медленнее.","recent":"Recent","recentEmpty":"No recent speech yet","remove":"Удалить","removeRegex":"Remove regex","removeRegexHint":"Global regex; matches are removed before synthesis.","resume":"Продолжить","retry":"Retry","roleApproval":"Approval","roleError":"Error","roleReply":"Reply","role_coder":"Coder","role_planner":"Planner","role_reviewer":"Reviewer","rolesHint":"Empty fields inherit the main chain.","rolesTitle":"Voice roles","ruleCondition":"Условие","ruleRole":"Роль субагента","ruleVoice":"Назначенный голос","runtimeNotBundled":"Neural inference runtime is not bundled","runtimeNotBundledHint":"Install weights does not enable speech. Use Edge, Piper, or eSpeak for offline TTS.","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","secAdvanced":"Расширенные параметры","secCache":"Кэширование аудио","secDock":"Плеер речи","secGeneral":"Общие настройки","secProviders":"Провайдеры синтеза","secRules":"Правила распределения голосов","sentenceChars":"Sentence chunk size","sentenceCharsHint":"Max characters per streaming sentence piece.","skipActions":"Skip *actions*","skipActionsHint":"Drop asterisk action blocks.","skipCode":"Skip code blocks","skipCodeHint":"Say a short notice instead of reading code aloud.","speakAsItGoes":"Говорите по мере проигрывания","speakAsItGoesHint":"Читайте каждый ответ сразу, как только он появляется, предложение за предложением, вместо ожидания всей очереди.","speakReplies":"Озвучивать ответы агента","speakRepliesHint":"Когда включено, каждый завершённый ответ синтезируется на хосте и воспроизводится в этом браузере. Аудио не отправляется обратно в модель.","speakToolCalls":"Озвучивать действия инструментов","speaking":"Воспроизведение…","sseState":"SSE","ssmlStyle":"SSML tone style","ssmlStyleHint":"Expressive tone (e.g. cheerful, serious, empathetic).","statErrors":"Errors","statHits":"Cache hits","statReset":"Reset stats","statTotal":"Total","statsTitle":"Statistics","statusIdle":"Готов к синтезу","statusOffline":"Host unreachable","statusOnline":"Host online","statusPlaying":"Воспроизводится","statusSynthesizing":"Синтез аудио…","stop":"Остановить","streamingEnabled":"Instant streaming (< 300 ms)","streamingEnabledHint":"Play audio via AudioWorklet and SSE in real-time.","subagentVoiceRules":"Голоса субагентов","subagentVoiceRulesHint":"Назначение индивидуальных тембров и моделей разным ролям субагентов.","summaryModel":"Summary model","summaryModelHint":"provider/model, empty = conversation default.","summarySentences":"Retelling length","summarySentencesHint":"Sentences in the spoken retelling.","synthesizeFailed":"Не удалось синтезировать речь: {error}","testProvider":"Test provider","testVoice":"Прослушать образец","timeoutMs":"Таймаут запроса к TTS (мс)","timeoutMsHint":"Abort a provider attempt after this many milliseconds.","title":"Речь","up":"Вверх","useF5":"Enable F5-TTS (GPU)","useF5Hint":"High-fidelity zero-shot synthesis on NVIDIA GPU.","useKokoro":"Enable Kokoro-82M (CPU)","useKokoroHint":"Fast neural synthesis on CPU.","vadBargeIn":"VAD Barge-in","vadBargeInHint":"Mute speech synthesis immediately when user voice is detected.","voice":"Основной голос","voiceDuplex":"Voice-to-Voice mode","voiceDuplexHint":"Interactive voice conversation integrated with dsh-voice.","voiceDuplexHintToggle":"Automatically synthesize agent reply when finished talking.","voiceDuplexTitle":"Voice Duplex (Voice-to-Voice)","voiceInstallHint":"To enable voice duplex, install the plugin with","voiceNotInstalledTitle":"Required plugin @goodandready/dsh-voice is not installed","voicePitch":"Высота голоса","voiceSpeed":"Скорость речи","volume":"Громкость","volumeMuted":"Без звука"}}
1
+ {"dsh-tts":{"activeProvider":"Активный провайдер","addProvider":"Добавить провайдера","addRule":"Добавить правило","addSubagentRole":"Добавить субагента","advancedCollapsed":"Расширенные настройки","advancedHint":"Лимиты и переопределение эндпоинтов. API-ключи провайдеров настраиваются в редакторе цепочки; имена слотов учётных данных (*KeyEnv) доступны только в конфигурации.","advancedTitle":"Расширенные","announce":"Озвучивать запросы подтверждения","announceHint":"Произносить вслух и проигрывать колокольчик, когда агент останавливается для подтверждения действия или задает вопрос.","approvalHint":"Произносится при запросе подтверждения; добавляется имя инструмента.","approvalText":"Формулировка подтверждения","autoDetect":"Автоопределение языка фрагментов","autoDetectHint":"Определять язык каждого озвучиваемого фрагмента вместо глобальной настройки языка.","autoDetectSubagent":"Автоопределение ролей субагентов","autoplayBlocked":"Звук заблокирован браузером — нажмите на страницу для включения","azureEndpoint":"Azure Speech: базовый URL","azureHint":"Требуется для провайдера Azure, например eastus.","azureRegion":"Регион Azure","bargeIn":"Умолкать при вашей речи","bargeInHint":"Прекращать чтение в момент включения микрофона.","binHint":"Ищется в PATH, если не указан абсолютный путь.","breakerOpen":"Защитный размыкатель активен (сбои провайдера)","breakerThreshold":"Порог ошибок до размыкания","breakerTimeout":"Время восстановления размыкателя (с)","cache":"Кэш синтеза речи","cacheClear":"Очистить кэш","cacheCleared":"Кэш озвучивания очищен","cacheHint":"Повторное использование синтезированного аудио для одинаковых фраз.","cacheMaxMb":"Максимальный объём кэша (МБ)","cacheMaxMbHint":"При заполнении кэша старые записи вытесняются по алгоритму LRU.","cacheStats":"Кэш","cardHint":"Озвучивание ответов ассистента в Web UI: выбор провайдеров, фолбэк-цепочки, кэш","chain":"Цепочка провайдеров озвучивания","chainHint":"Провайдеры опрашиваются по порядку до первого успешного ответа.","chainHintCard":"Выберите провайдера, вставьте его API-ключ и сохраните (или покиньте поле ключа). Ключ немедленно сохраняется в хранилище учетных данных хоста. Браузер никогда не считывает его обратно.","chainTitle":"Цепочка провайдеров","chime":"Звуковой сигнал","chimeHint":"ding, beep или none (без звука).","clear":"Очистить","clearCache":"Очистить кэш","clearQueue":"Очистить очередь","codeBlock":"блок кода, {n} строк","collapse":"Свернуть","configured":"Настроено","confirmClearCache":"Очистить кэш синтеза? Это действие необратимо.","confirmDeleteModel":"Удалить загруженные веса для этой модели?","currentVoice":"Голос","customBaseUrl":"Пользовательский endpoint TTS","customBaseUrlHint":"OpenAI-совместимый origin, например http://localhost:8880/v1; пусто = выключено.","customKeyEnv":"Переменная окружения ключа","customKeyEnvHint":"Имя переменной с токеном авторизации для пользовательского endpoint.","deepgramEndpoint":"Deepgram: базовый URL","deleteModel":"Удалить","deleteRule":"Удалить правило","dockClearQueue":"Очистить очередь","dockCurrent":"Сейчас звучит","dockFavorite":"Избранное","dockFavorites":"Избранные фрагменты","dockHide":"Скрыть плеер","dockLabel":"Синтез речи","dockNone":"Ожидание текста","dockPause":"Пауза","dockQueue":"Очередь","dockReplay":"Повторить","dockResume":"Продолжить речь","dockSpeed":"Скорость","dockStop":"Остановить речь","dockUnfavorite":"Убрать из избранного","down":"Вниз","downloading":"Загрузка…","edgeBin":"Бинарный файл edge-tts","edgeEndpoint":"Edge TTS: базовый URL","edgeHint":"CLI Python из пакета edge-tts.","elevenlabsEndpoint":"ElevenLabs: базовый URL","elevenlabsModel":"Модель ElevenLabs","enableItDictionary":"Встроенный IT-словарь","enableItDictionaryHint":"Автокоррекция произношения для SQL, Nginx, K8s, Docker, API, JSON, YAML и др.","enableLocalEngines":"Включить локальные движки","enableLocalEnginesHint":"Использовать Kokoro или F5-TTS при наличии.","enableSound":"Включить звук","espeakBin":"Бинарный файл eSpeak","espeakEndpoint":"eSpeak: базовый URL","espeakHint":"Обычно espeak-ng.","expand":"Развернуть","exportAudio":"Экспорт аудиозаписи","exportJson":"📥 Экспорт JSON","exportSuccess":"Аудиофайл экспортирован","filterCode":"Пропускать блоки кода при чтении","filterCodeHint":"Не озвучивать программный код, чтение продолжается со следующего абзаца.","filterMarkdown":"Очищать Markdown-разметку","filterMarkdownHint":"Удалять спецсимволы разметки перед отправкой в движок TTS.","fromEnv":"Задано в окружении","general":"Общие","googleEndpoint":"Google TTS: базовый URL","groqEndpoint":"Groq: базовый URL","groqModel":"Модель Groq","importJson":"📤 Импорт JSON","installF5":"Установить (2.1 ГБ)","installKokoro":"Установить (350 МБ)","installed":"Установлено","invalidJsonFormat":"Неверный формат JSON словаря","language":"Язык","languageHint":"Подсказка для голосов, которым требуется локаль (eSpeak, Azure SSML).","lastError":"Последняя ошибка","loadItDictionary":"Заполнить терминами IT","loading":"Загрузка…","localEnginesHint":"Синтез речи полностью автономно без API-ключей.","localEnginesTitle":"Локальные движки (офлайн)","localProvider":"Локальный / CLI провайдер — API-ключ не требуется","longReply":"Длинные ответы","longReplyHint":"truncate: обрезать по лимиту; summarize: краткий пересказ; full: читать полностью.","maxChars":"Максимум символов","maxCharsHint":"Жёсткий лимит перед обработкой длинного ответа; 0 отключает ограничение.","maxCharsPerChunk":"Максимум символов во фрагменте","maxCharsPerChunkHint":"Длинные сообщения разбиваются на части указанного размера.","maxQueue":"Макс. длина очереди","maxQueueHint":"Отбрасывать старые ожидающие фрагменты сверх этого количества.","messengerInstallHint":"Для отправки голосовых заметок в мессенджеры установите плагин командой","messengerIntegrationHint":"Голосовые ответы и заметки, отправляемые через @goodandready/dsh-messenger-gateway.","messengerIntegrationTitle":"Интеграция с мессенджерами (Telegram, Discord)","messengerNotInstalledTitle":"Требуемый плагин @goodandready/dsh-messenger-gateway не установлен","messengerTtsEnabled":"Голосовые ответы в мессенджерах","messengerTtsEnabledHint":"Разрешить шлюзу мессенджеров доставлять ответы голосовыми сообщениями.","mimoBaseUrl":"Базовый URL MiMo","mimoBaseUrlHint":"Корень API MiMo; синтез использует chat endpoint.","mimoFormat":"Формат MiMo","mimoFormatHint":"mp3 или wav.","minimaxBin":"Исполняемый файл MiniMax CLI","minimaxBinHint":"Ищется в PATH, если не абсолютный путь; установите и авторизуйтесь отдельно.","narrateQuotesHint":"Читать только «фрагменты в кавычках» из ответа.","narrateQuotesOnly":"Только цитаты","newSubagentRole":"Имя субагента (например, coder, reviewer)","notInstalled":"Не установлено","notSet":"Не задано","openaiBaseUrl":"Базовый URL OpenAI","openaiBaseUrlHint":"OpenAI-совместимый origin для провайдера openai.","openaiEndpoint":"OpenAI: базовый URL","openaiModel":"Модель OpenAI TTS","openrouterEndpoint":"OpenRouter: базовый URL","pause":"Пауза","piperBin":"Бинарный файл Piper","piperEndpoint":"Piper: базовый URL","piperModel":"Модель Piper","piperModelHint":"Абсолютный путь к модели ONNX. Оставьте пустым, чтобы пропустить Piper.","pitch":"Высота тона голоса","play":"Воспроизвести","playbackRate":"Скорость чтения","preloadNext":"Предзагрузка следующей фразы","preloadNextHint":"Синтезировать следующий фрагмент во время воспроизведения текущего.","preview":"Предпросмотр","previewPhrase":"Проверка голоса.","previewRule":"Прослушать","pronFrom":"Заменять","pronHint":"Правила выполняются сверху вниз. Оберните шаблон в /…/ для регулярного выражения; Lang фильтрует язык.","pronLang":"Язык","pronTitle":"Произношение","pronTo":"На","pronWhole":"Слово целиком","providerError":"Ошибка провайдера {provider}: {error}","questionHint":"Произносится, когда агент задает вопрос. Пустое значение отключает.","questionText":"Формулировка вопроса","queueEmpty":"Очередь воспроизведения пуста","queueLen":"Очередь","rate":"Скорость","rateHint":"От 0.5 до 2. Скорость синтеза не меняется; браузер воспроизводит быстрее или медленнее.","recent":"Недавние","recentEmpty":"Записей пока нет","remove":"Удалить","removeRegex":"Удалять по regex","removeRegexHint":"Глобальное регулярное выражение; совпадения вырезаются перед синтезом.","resume":"Продолжить","retry":"Повторить","roleApproval":"Подтверждение","roleError":"Ошибка","roleReply":"Ответ","role_coder":"Разработчик","role_planner":"Планировщик","role_reviewer":"Ревьюер","rolesHint":"Пустые поля наследуют основную цепочку.","rolesTitle":"Роли голосов","ruleCondition":"Условие","ruleRole":"Роль субагента","ruleVoice":"Назначенный голос","runtimeNotBundled":"Среда нейросетевого инференса не встроена","runtimeNotBundledHint":"Загрузка весов не активирует синтез. Для офлайн-TTS используйте Edge, Piper или eSpeak.","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","secAdvanced":"Расширенные параметры","secCache":"Кэширование аудио","secDock":"Плеер речи","secGeneral":"Общие настройки","secProviders":"Провайдеры синтеза","secRules":"Правила распределения голосов","sentenceChars":"Размер фрагмента предложения","sentenceCharsHint":"Максимум символов на один фрагмент потокового предложения.","skipActions":"Пропускать *действия*","skipActionsHint":"Пропускать блоки действий, выделенные звёздочками.","skipCode":"Пропускать блоки кода","skipCodeHint":"Произносить краткое уведомление вместо чтения кода вслух.","speakAsItGoes":"Озвучивать по мере поступления","speakAsItGoesHint":"Читать каждый ответ сразу по предложениям, не дожидаясь завершения всей реплики.","speakReplies":"Озвучивать ответы агента","speakRepliesHint":"Если включено, каждый готовый ответ синтезируется на хосте и воспроизводится в браузере. Аудио не отправляется обратно в модель.","speakToolCalls":"Озвучивать действия инструментов","speaking":"Воспроизведение…","sseState":"SSE","ssmlStyle":"Стиль интонации SSML","ssmlStyleHint":"Выразительный тон (например, cheerful, serious, empathetic).","statErrors":"Ошибок","statHits":"Попаданий в кэш","statReset":"Сбросить статистику","statTotal":"Всего","statsTitle":"Статистика","statusIdle":"Готов к синтезу","statusOffline":"Хост недоступен","statusOnline":"Хост доступен","statusPlaying":"Воспроизводится","statusSynthesizing":"Синтез аудио…","stop":"Остановить","streamingEnabled":"Мгновенный стриминг (< 300 мс)","streamingEnabledHint":"Воспроизведение аудио через AudioWorklet и SSE в реальном времени.","subagentVoiceRules":"Голоса субагентов","subagentVoiceRulesHint":"Назначение индивидуальных тембров и моделей разным ролям субагентов.","subtitle":"Синтез речи и звуковое сопровождение реплик агента","summaryIntro":"Пересказ ответа…","summaryModel":"Модель суммаризации","summaryModelHint":"провайдер/модель, пусто = модель диалога по умолчанию.","summarySentences":"Длина пересказа","summarySentencesHint":"Количество предложений в голосовом пересказе.","synthesizeFailed":"Не удалось синтезировать речь: {error}","table":"таблица, {n} строк","testProvider":"Проверить провайдера","testVoice":"Прослушать образец","timeoutMs":"Таймаут запроса к TTS (мс)","timeoutMsHint":"Прерывать попытку провайдера после указанного числа миллисекунд.","title":"Синтез речи","up":"Вверх","useF5":"Включить F5-TTS (GPU)","useF5Hint":"Высокоточный zero-shot синтез на NVIDIA GPU.","useKokoro":"Включить Kokoro-82M (CPU)","useKokoroHint":"Быстрый нейросетевой синтез на процессоре.","vadBargeIn":"Прерывание по голосу (VAD Barge-in)","vadBargeInHint":"Мгновенно глушить воспроизведение синтеза речи при обнаружении голоса пользователя.","voice":"Основной голос","voiceDuplex":"Режим Voice-to-Voice","voiceDuplexHint":"Интерактивный голосовой диалог, интегрированный с dsh-voice.","voiceDuplexHintToggle":"Автоматически озвучивать ответ ассистента по окончании речи пользователя.","voiceDuplexTitle":"Голосовой дуплекс (Voice-to-Voice)","voiceInstallHint":"Для включения голосового дуплекса установите плагин командой","voiceNotInstalledTitle":"Требуемый плагин @goodandready/dsh-voice не установлен","voicePitch":"Высота голоса","voiceSpeed":"Скорость речи","volume":"Громкость","volumeMuted":"Без звука"}}
@@ -1 +1 @@
1
- {"dsh-voice":{"addCustom":"Добавить своего провайдера","addProvider":"Добавить провайдера","avgLatency":"Средняя задержка","badgeHostOffline":"Хост недоступен","badgeHostOnline":"Хост в сети ({ms} мс)","badgeProviders":"Провайдеров готово: {count}","badgeSenseVoiceActive":"SenseVoice активен","badgeSenseVoiceInactive":"SenseVoice не в сети","badgeWhisperActive":"Whisper активен","badgeWhisperInactive":"Whisper не в сети","bargeIn":"Перебивание (Barge-in)","beep":"Звуковой сигнал старта/остановки","browserFailed":"Браузер не распознал:","browserHint":"браузер выполняет распознавание, ключ не требуется","cancel":"Отмена","cardHint":"Диктовка и голосовые сообщения: провайдеры, цепочки, локальный Whisper","chainHint":"Сверху вниз — порядок, в котором они проверяются","clearKey":"Очистить ключ","collapse":"Свернуть","composerUnavailable":"Композитор недоступен","contextGlossary":"Инъекция глоссария контекста","contextGlossaryHint":"Автоматически извлекает идентификаторы кода и термины из поля ввода для повышения точности распознавания речи (STT)","customHint":"Любой OpenAI-совместимый API. Название становится доступным в цепочках выше.","customKeyName":"название ключа","customModel":"модель","customModelHint":"модель для запроса (пустое значение означает встроенную)","customName":"имя, используемое в цепочке","customTitle":"Ваши собственные провайдеры","deepgramEndpoint":"Deepgram: базовый URL","deepgramEndpointHint":"Base URL for Deepgram or self-hosted deployment (default https://api.deepgram.com)","deepinfraHint":"openai/whisper-large-v3-turbo · ключ DEEPINFRA_API_KEY","deleteAudio":"Удалить аудиозапись","dictationBtn":"Голосовой ввод","dictationChain":"Цепочка диктовки","dictationChunkSec":"Размер фрагмента диктовки (с)","dictationChunkSecHint":"Длительность непрерывной записи перед промежуточной отправкой на распознавание.","dictationEnabled":"Включить диктовку","dictationHint":"Речь обрезается на паузах, а текст добавляется к вводу.","dictationHotkey":"Горячая клавиша диктовки","dictationHotkeyHint":"Сочетание клавиш для быстрого запуска и остановки записи.","dictationLanguage":"Язык диктовки","dictationLanguageHint":"Язык по умолчанию (ru, en, auto).","dictationPill":"Диктовка — текст добавляется к вводу","dictationProvider":"Основной провайдер диктовки","dictationProviderHint":"Провайдер STT для голосового набора текста.","dictationSilenceSec":"Пауза тишины для отправки (с)","dictationSilenceSecHint":"Длительность тишины, после которой фрагмент считается завершённым.","down":"Вниз","downloadAudio":"Скачать аудио","emptyHistory":"История голосовых сообщений пуста.","error":"Error","expand":"Развернуть","fast":"Fast","fireworksHint":"whisper-v3-turbo · ключ FIREWORKS_API_KEY","general":"Общие","groqEndpoint":"Groq: базовый URL","groqModel":"Модель Groq","hardwareDesc":"Microphone device, local whisper.cpp and SenseVoice runtime settings.","hardwareTitle":"Hardware & Local Engines","hide":"Скрыть","holdHint":"Удерживайте — отпустите, чтобы отправить","hotkey":"Клавиша голосового сообщения","hotkeyHint1":"Держите для записи, отпустите, чтобы отправить агенту, Esc отменяет.","hotkeyHint2":"Подойдёт любая клавиша: буква, F-клавиша или модификатор.","huggingfaceEndpoint":"HuggingFace: базовый URL","huggingfaceModel":"Модель HuggingFace","idle":"No calls","inputGain":"Усиление микрофона (dB)","inputGainHint":"Программное усиление входящего аудиосигнала.","keepPending":"Не отправлять","keySpace":"Пространство","keyUnset":"не задано","language":"Язык","lastLatency":"Последняя задержка: {ms} мс","lastRecording":"Last voice note","listen":"Слушать","listenBack":"Listen back","listening":"Слушаю в браузере…","livePreview":"Предпросмотр на лету","livePreviewHint":"Отображать промежуточный текст в поле ввода во время речи.","loadingSettings":"Загрузка настроек…","localEndpoint":"Локальный STT: базовый URL","localHint":"устанавливается при запуске сервера","localModel":"Локальная модель","localOnly":"Local whisper only","localOnlyHint":"Restrict both chains to the local whisper.cpp server: fully offline.","maxDurationSec":"Макс. длительность записи (с)","maxDurationSecHint":"Автоматическая остановка записи при превышении лимита времени.","messageBtn":"Голосовое сообщение — нажмите или удерживайте","messageHint":"Одна целая запись, отправленная агенту после расшифровки.","messagePill":"Запись голосового сообщения","messageTitle":"Голосовое сообщение","mic":"Microphone","micAccessDenied":"Доступ к микрофону заблокирован в браузере.","micActive":"Микрофон активен","micDefault":"System default","micLevel":"Mic level","micMuted":"Микрофон отключён","micUnavailable":"Микрофон недоступен: требуется HTTPS или localhost","mistralHint":"voxtral-mini-latest · ключ MISTRAL_API_KEY","noRecorder":"Этот браузер не поддерживает MediaRecorder","noiseGate":"Noise Gate (dB)","noiseGateHint":"Mute background fan hum and keyboard clicks below threshold. Off = disabled","noiseGateOff":"Off","noiseSuppression":"Шумоподавление","noiseSuppressionHint":"Аппаратное или программное подавление фонового шума.","normal":"Normal","normalizeTranscript":"Нормализовать расшифровку файлов","normalizeTranscriptHint":"transcribe_audio: spoken numbers to digits, tidy punctuation","notReady1":"Харнесс ещё не объявил настройки этого плагина. Если он только что перезапустился,","notReady2":"раздел появится сам через несколько секунд.","nothingHeard":"Ничего не было распознано","nothingToUndo":"Нечего отменять","openaiEndpoint":"OpenAI: базовый URL","openaiHint":"whisper-1 · ключ OPENAI_API_KEY","openaiModel":"Модель OpenAI Whisper","openrouterHint":"google/gemini-2.5-flash · ключ OPENROUTER_API_KEY","openrouterWarning":"У OpenRouter нет /audio/transcriptions — используйте там шаблон openai-chat-audio","pause":"Пауза","pauseHint":"Меньшее значение означает более частые фрагменты и быстрый текст, но выше риск разрыва слова","pauseMs":"Пауза, завершающая фразу, мс","play":"Воспроизвести","playbackSpeed":"Скорость воспроизведения","polish":"Polish transcript with model","polishBaseUrl":"Offline polish endpoint","polishBaseUrlHint":"OpenAI-compatible /chat/completions base URL, e.g. a local Ollama. Empty = harness model","polishHint":"Fix punctuation and fillers via the harness model before inserting","polishKeyEnv":"Offline polish key credential","polishModel":"Offline polish model","polishSend":"Polish whole draft before sending","polishSendHint":"Run the composed draft through the model right before sending","pressKey":"Нажмите клавишу…","providerChain":"Резервная цепочка провайдеров","providerChainHint":"Список провайдеров через запятую на случай сбоя основного сервиса.","providerDashboard":"Provider Latency & Health","recognitionError":"распознавание не удалось","record":"Запись","recordSlot":"Запись голоса","recording":"Идёт запись…","refreshStats":"Refresh Stats","remove":"Удалить","resume":"Продолжить","retry":"Retry","sampleRate":"Частота дискретизации (Гц)","save":"Сохранить","saveAudio":"Сохранять аудиозаписи сессии","saveAudioHint":"Сохранять записанные аудиофайлы в директории данных плагина.","saveFailed":"Некоторые поля не были сохранены —","saved":"Настройки сохранены","saving":"Сохранение…","secAudio":"Параметры звука","secDictation":"Режим диктовки","secProviders":"Настройки провайдеров","secVoiceMessage":"Голосовые сообщения","secondsShort":"с","sendDelay":"Dictation send delay (ms)","sendDelayHint":"Wait before appending a dictated phrase, with a cancel window. 0 = off","sendingIn":"Отправка агенту через","sensevoiceAutostart":"Autostart the SenseVoice server","sensevoiceBin":"SenseVoice: binary","sensevoiceBinHint":"used when autostart is on","sensevoiceEndpoint":"SenseVoice: endpoint","sensevoiceEndpointHint":"POST endpoint of sherpa-onnx or compatible server","sensevoiceHint":"SenseVoice-ONNX / Sherpa-ONNX · ultra-fast local STT (~50ms)","sensevoiceModel":"SenseVoice: model path","sensevoiceModelHint":"Absolute path or identifier of the SenseVoice / sherpa-onnx model","sessionCommands":"Voice session commands","sessionCommandsHint":"\"send\", \"cancel\", \"stop\", \"continue\" act on the session instead of becoming text","silence":"Пауза…","siliconflowHint":"FunAudioLLM/SenseVoiceSmall · ключ SILICONFLOW_API_KEY","slow":"Slow","speaking":"Вы говорите…","statusDesc":"Current runtime connectivity to voice backends and recognition services.","statusIdle":"Ожидание ввода","statusListening":"Прослушивание…","statusProcessing":"Распознавание речи…","statusTitle":"Connection & Engine Status","stop":"Стоп","stopRecording":"Остановить запись","stopTest":"Stop Test","stream":"Continuous dictation","streamChunkMs":"Stream chunk (ms)","streamHint":"Cut phrases by a timer while you speak instead of waiting for a long pause","successRate":"Success","testMic":"Проверить микрофон","testSuccess":"Аудио успешно записано и воспроизведено!","title":"Голос","transcribeFailed":"Ошибка распознавания: {error}","transcribing":"Идёт транскрипция…","transcript":"Текст расшифровки","uiError":"Voice UI Error:","undo":"Отменить последнюю вставку","undoHint":"Как долго ещё можно отменить автоматическую отправку","undoMs":"Окно отмены, мс","undone":"Вставка отменена","up":"Вверх","vadAdapt":"Adaptive silence","vadAdaptHint":"Auto-tune the silence threshold to the pace of your speech. 0 = fixed","vadSensitivity":"Чувствительность детектора голоса (VAD)","vadSensitivityHint":"Порог обнаружения речевой активности.","visBars":"Classic Bars","visDynamicOrb":"Dynamic Orb","visLiquidWave":"Liquid Wave","visOff":"Off","visualizerStyle":"Audio visualizer style","visualizerStyleHint":"Waveform animation inside the recording pill","vocabulary":"Custom vocabulary (one word per line)","voiceCommandsLabel":"Voice edit commands (\"new line\", \"paragraph\")","voiceMessageChain":"Цепочка голосовых сообщений","voiceMessageEnabled":"Разрешить отправку голосовых сообщений","voiceMessageProvider":"Провайдер голосовых сообщений","wakeWord":"Wake word","wakeWordHint":"Browser recognition starts recording when speech begins with this phrase. Empty = off","waveform":"Аудиоволна","whisperAutostart":"Автозапуск локального whisper","whisperBin":"Локальный шепот: бинарный","whisperBinHint":"используется при включённом автозапуске","whisperEndpoint":"Локальный whisper: адрес","whisperEndpointHint":"POST /inference сервера whisper.cpp","whisperModel":"Локальная модель Whisper","whisperModelHint":"Absolute path to the ggml model file"}}
1
+ {"dsh-voice":{"addCustom":"Добавить собственного провайдера","addProvider":"Добавить провайдера","autoSendVisualRing":"Анимация таймера отправки (Silence Ring)","avgLatency":"Средняя задержка","badgeHostOffline":"Хост недоступен","badgeHostOnline":"Хост в сети ({ms} мс)","badgeProviders":"Провайдеров готово: {count}","badgeSenseVoiceActive":"SenseVoice активен","badgeSenseVoiceInactive":"SenseVoice не в сети","badgeWhisperActive":"Whisper активен","badgeWhisperInactive":"Whisper не в сети","bargeIn":"Перебивание (Barge-in)","bargeInDesc":"Реальный перехват (Barge-In: голос прерывает речь ассистента)","beep":"Звуковой сигнал старта/остановки","browserFailed":"Браузер не распознал: ","browserHint":"распознавание выполняет браузер, ключ не требуется","cancel":"Отмена","cardHint":"Диктовка и голосовые сообщения: провайдеры, цепочки, локальный Whisper","chainHint":"Сверху вниз — порядок попыток обращения к провайдерам","clearKey":"Стереть ключ","collapse":"Свернуть","composerUnavailable":"Поле ввода недоступно","contextGlossary":"Инъекция глоссария контекста","contextGlossaryHint":"Автоматически извлекает идентификаторы кода и термины из поля ввода для повышения точности распознавания речи (STT)","customHint":"Любое OpenAI-совместимое API. Имя появится в списке цепочек выше.","customKeyName":"имя ключа","customModel":"модель","customModelHint":"модель для запроса (пусто — использовать встроенную)","customName":"имя в цепочке","customTitle":"Собственные провайдеры","deepgramEndpoint":"Deepgram: базовый URL","deepgramEndpointHint":"Base URL for Deepgram or self-hosted deployment (default https://api.deepgram.com)","deepinfraHint":"openai/whisper-large-v3-turbo · ключ DEEPINFRA_API_KEY","deleteAudio":"Удалить аудиозапись","dictationBtn":"Голосовой ввод","dictationChain":"Цепочка диктовки","dictationChunkSec":"Размер фрагмента диктовки (с)","dictationChunkSecHint":"Длительность непрерывной записи перед промежуточной отправкой на распознавание.","dictationEnabled":"Включить диктовку","dictationHint":"Речь разбивается по паузам, и текст вставляется в поле ввода.","dictationHotkey":"Горячая клавиша диктовки","dictationHotkeyHint":"Сочетание клавиш для быстрого запуска и остановки записи.","dictationLanguage":"Язык диктовки","dictationLanguageHint":"Язык по умолчанию (ru, en, auto).","dictationPill":"Диктовка — текст добавляется в поле ввода","dictationProvider":"Основной провайдер диктовки","dictationProviderHint":"Провайдер STT для голосового набора текста.","dictationSilenceSec":"Пауза тишины для отправки (с)","dictationSilenceSecHint":"Длительность тишины, после которой фрагмент считается завершённым.","down":"Вниз","downloadAudio":"Скачать аудио","emptyHistory":"История голосовых сообщений пуста.","error":"Error","expand":"Развернуть","fast":"Fast","fireworksHint":"whisper-v3-turbo · ключ FIREWORKS_API_KEY","gatedTurnTaking":"Режим шлюза (микрофон отключается во время речи ассистента)","general":"Общие","groqEndpoint":"Groq: базовый URL","groqModel":"Модель Groq","hardwareDesc":"Microphone device, local whisper.cpp and SenseVoice runtime settings.","hardwareTitle":"Hardware & Local Engines","hide":"Скрыть","holdHint":"Удерживайте — отпустите для отправки","hotkey":"Клавиша голосового сообщения","hotkeyHint1":"Удерживайте для записи, отпустите для отправки агенту, Esc отменяет. ","hotkeyHint2":"Подойдет любая клавиша: буква, F-клавиша или модификатор.","huggingfaceEndpoint":"HuggingFace: базовый URL","huggingfaceModel":"Модель HuggingFace","idle":"No calls","inputGain":"Усиление микрофона (dB)","inputGainHint":"Программное усиление входящего аудиосигнала.","installSensevoice":"Установить SenseVoice-Small (в 1 клик)","installingSensevoice":"Установка SenseVoice…","jargonAdd":"Добавить замену","jargonFrom":"Разговорный сленг","jargonTitle":"Словарь разработчика и IT-терминов","jargonTo":"Корректное написание","keepPending":"Не отправлять","keySpace":"Пробел","keyUnset":"не задана","language":"Язык","lastLatency":"Последняя задержка: {ms} мс","lastRecording":"Last voice note","listen":"Слушать","listenBack":"Listen back","listening":"Слушаю в браузере…","liveInterimPreview":"Живой предпросмотр речи (промежуточный текст)","livePreview":"Предпросмотр на лету","livePreviewHint":"Отображать промежуточный текст в поле ввода во время речи.","loadingSettings":"Загрузка настроек…","localEndpoint":"Локальный STT: базовый URL","localHint":"задаётся при запуске сервера","localModel":"Локальная модель","localOnly":"Local whisper only","localOnlyHint":"Restrict both chains to the local whisper.cpp server: fully offline.","maxDurationSec":"Макс. длительность записи (с)","maxDurationSecHint":"Автоматическая остановка записи при превышении лимита времени.","messageBtn":"Голосовое сообщение — нажмите или удерживайте","messageHint":"Единая запись, отправляемая агенту после распознавания.","messagePill":"Запись голосового сообщения","messageTitle":"Голосовое сообщение","mic":"Microphone","micAccessDenied":"Доступ к микрофону заблокирован в браузере.","micActive":"Микрофон активен","micDefault":"System default","micLevel":"Mic level","micMuted":"Микрофон отключён","micUnavailable":"Микрофон недоступен: требуется HTTPS или localhost","mistralHint":"voxtral-mini-latest · ключ MISTRAL_API_KEY","noRecorder":"MediaRecorder не поддерживается этим браузером","noiseGate":"Noise Gate (dB)","noiseGateHint":"Mute background fan hum and keyboard clicks below threshold. Off = disabled","noiseGateOff":"Off","noiseSuppression":"Шумоподавление","noiseSuppressionHint":"Аппаратное или программное подавление фонового шума.","normal":"Normal","normalizeTranscript":"Нормализовать расшифровку файлов","normalizeTranscriptHint":"transcribe_audio: spoken numbers to digits, tidy punctuation","notReady1":"Харнесс еще не передал настройки плагина. Если он только что перезапустился, ","notReady2":"раздел появится сам через несколько секунд.","nothingHeard":"Ничего не распознано","nothingToUndo":"Нечего отменять","openaiEndpoint":"OpenAI: базовый URL","openaiHint":"whisper-1 · ключ OPENAI_API_KEY","openaiModel":"Модель OpenAI Whisper","openrouterHint":"google/gemini-2.5-flash · ключ OPENROUTER_API_KEY","openrouterWarning":"В OpenRouter нет эндпоинта /audio/transcriptions — используйте шаблон openai-chat-audio","pause":"Пауза","pauseHint":"Меньше — чаще фрагменты и быстрее появление, но выше риск обрыва слова","pauseMs":"Пауза завершения фразы, мс","play":"Воспроизвести","playbackSpeed":"Скорость воспроизведения","polish":"Polish transcript with model","polishBaseUrl":"Offline polish endpoint","polishBaseUrlHint":"OpenAI-compatible /chat/completions base URL, e.g. a local Ollama. Empty = harness model","polishHint":"Fix punctuation and fillers via the harness model before inserting","polishKeyEnv":"Offline polish key credential","polishModel":"Offline polish model","polishSend":"Polish whole draft before sending","polishSendHint":"Run the composed draft through the model right before sending","pressKey":"Нажмите клавишу…","providerChain":"Резервная цепочка провайдеров","providerChainHint":"Список провайдеров через запятую на случай сбоя основного сервиса.","providerDashboard":"Provider Latency & Health","recognitionError":"сбой распознавания","record":"Запись","recordSlot":"Запись голоса","recording":"Идёт запись…","refreshStats":"Refresh Stats","remove":"Удалить","resume":"Продолжить","retry":"Retry","sampleRate":"Частота дискретизации (Гц)","save":"Сохранить","saveAudio":"Сохранять аудиозаписи сессии","saveAudioHint":"Сохранять записанные аудиофайлы в директории данных плагина.","saveFailed":"Некоторые поля не сохранились —","saved":"Настройки сохранены","saving":"Сохранение…","secAudio":"Параметры звука","secDictation":"Режим диктовки","secProviders":"Настройки провайдеров","secVoiceMessage":"Голосовые сообщения","secondsShort":" с","sendDelay":"Dictation send delay (ms)","sendDelayHint":"Wait before appending a dictated phrase, with a cancel window. 0 = off","sendingIn":"Отправка агенту через","sensevoiceAutostart":"Autostart the SenseVoice server","sensevoiceBin":"SenseVoice: binary","sensevoiceBinHint":"used when autostart is on","sensevoiceDesc":"Сверхбыстрое офлайн-распознавание речи на CPU (задержка 50–100 мс, русский/английский).","sensevoiceDownloading":"Загрузка модели…","sensevoiceEndpoint":"SenseVoice: endpoint","sensevoiceEndpointHint":"POST endpoint of sherpa-onnx or compatible server","sensevoiceHint":"SenseVoice-ONNX / Sherpa-ONNX · ultra-fast local STT (~50ms)","sensevoiceModel":"SenseVoice: model path","sensevoiceModelHint":"Absolute path or identifier of the SenseVoice / sherpa-onnx model","sensevoiceNotInstalled":"Не установлено","sensevoiceReady":"Готово","sensevoiceTitle":"Локальный ASR SenseVoice (установка в 1 клик)","sessionCommands":"Voice session commands","sessionCommandsHint":"\"send\", \"cancel\", \"stop\", \"continue\" act on the session instead of becoming text","silence":"Пауза…","siliconflowHint":"FunAudioLLM/SenseVoiceSmall · ключ SILICONFLOW_API_KEY","slow":"Slow","smartActionsTitle":"Голосовые команды и автоматизация (Hands-free)","speaking":"Вы говорите…","statusDesc":"Current runtime connectivity to voice backends and recognition services.","statusIdle":"Ожидание ввода","statusListening":"Прослушивание…","statusProcessing":"Распознавание речи…","statusTitle":"Connection & Engine Status","stop":"Стоп","stopRecording":"Остановить запись","stopTest":"Stop Test","stream":"Continuous dictation","streamChunkMs":"Stream chunk (ms)","streamHint":"Cut phrases by a timer while you speak instead of waiting for a long pause","structuredPromptVoice":"Голосовые ответы на интерактивные запросы выбора","successRate":"Success","techJargonCorrection":"Автокоррекция технического жаргона (GitHub, Docker, pnpm, Kubernetes и др.)","testMic":"Проверить микрофон","testSuccess":"Аудио успешно записано и воспроизведено!","title":"Голос","transcribeFailed":"Ошибка распознавания: {error}","transcribing":"Идёт транскрипция…","transcript":"Текст расшифровки","turnTakingDesc":"Координация говорения и прослушивания, чтобы звук ассистента не попадал в микрофон.","turnTakingTitle":"Очередность реплик и координация аудио","uiError":"Voice UI Error:","undo":"Отменить последнюю вставку","undoHint":"Время, в течение которого автоотправку еще можно отменить","undoMs":"Окно отмены, мс","undone":"Вставка отменена","up":"Вверх","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Ошибка обновления. Проверьте логи.","updateNow":"Обновить сейчас","updatePrompt":"Доступна новая версия в npm. Нажмите «Обновить» для установки.","updateSuccess":"Успешно обновлено! Перезапустите DSH для применения.","updating":"Обновление…","vadAdapt":"Adaptive silence","vadAdaptHint":"Auto-tune the silence threshold to the pace of your speech. 0 = fixed","vadSensitivity":"Чувствительность детектора голоса (VAD)","vadSensitivityHint":"Порог обнаружения речевой активности.","versionHint":"Проверка новых версий и обновление напрямую из npm.","versionTitle":"Версия плагина и обновления","visBars":"Classic Bars","visDynamicOrb":"Dynamic Orb","visLiquidWave":"Liquid Wave","visOff":"Off","visualizerStyle":"Audio visualizer style","visualizerStyleHint":"Waveform animation inside the recording pill","vocabulary":"Custom vocabulary (one word per line)","voiceActionsLabel":"Команды голосовых действий (","voiceCommandsLabel":"Voice edit commands (\"new line\", \"paragraph\")","voiceMessageChain":"Цепочка голосовых сообщений","voiceMessageEnabled":"Разрешить отправку голосовых сообщений","voiceMessageProvider":"Провайдер голосовых сообщений","wakeWord":"Wake word","wakeWordHint":"Browser recognition starts recording when speech begins with this phrase. Empty = off","waveform":"Аудиоволна","whisperAutostart":"Автозапуск локального whisper","whisperBin":"Локальный whisper: бинарный файл","whisperBinHint":"используется при включенном автозапуске","whisperEndpoint":"Локальный whisper: эндпоинт","whisperEndpointHint":"POST /inference сервера whisper.cpp","whisperModel":"Локальный whisper: модель","whisperModelHint":"Absolute path to the ggml model file"}}
@@ -1 +1 @@
1
- {"dsh-image-gen":{"card.actionRemoveBg":"Удалить фон","card.actionReroll":"Перегенерировать","card.actionUpscale":"Увеличить разрешение","card.copyPrompt":"Скопировать промпт","card.failed":"Ошибка генерации","card.generating":"Генерация изображения…","card.image":"Результат Image Studio","card.origPrompt":"Исходный промпт","card.remix":"Ремикс","card.removeBg":"Удалить фон","card.reroll":"Перегенерировать","card.seedPrefix":"Seed","card.sizePrefix":"Size","card.toolCall":"Вызов генерации изображения","card.unknownError":"An unknown error occurred during generation.","card.upscale":"Увеличить","card.vary":"Вариация","f.apiKeyEnv":"Справка по API-ключу","f.apiKeyEnvHint":"Ссылка на учетные данные / переменная окружения, содержащая ключ API FAL. Префикс авторизации \"Key \" добавляется автоматически.","f.autoEnhancePrompt":"Auto Enhance Prompt","f.autoEnhancePromptHint":"Enrich prompts with photography, lighting, and composition quality tokens.","f.baseURL":"Базовый URL очереди","f.baseURLHint":"Базовый URL очереди FAL (queue.fal.run).","f.cacheByPrompt":"Cache by Prompt Only","f.cacheByPromptHint":"Reuse existing result if the prompt has already been generated.","f.cacheBySeed":"Cache by Seed + Prompt","f.cacheBySeedHint":"Reuse existing result if the exact same seed and prompt are requested.","f.cacheTtlDays":"Cache Retention (Legacy)","f.cacheTtlDaysHint":"Legacy name for retention period in days.","f.customBaseURL":"Пользовательский API: базовый URL","f.customBaseURLHint":"Корень API без завершающего слеша. Запрос отправляется на {base}/images/generations.","f.customKeyEnv":"Пользовательский API: ссылка на ключ","f.customKeyEnvHint":"Ссылка на учётные данные / переменная окружения с API-ключом. Пустое значение означает отсутствие заголовка авторизации для шлюзов, которым он не требуется.","f.customModel":"Пользовательский API: модель","f.customModelHint":"Идентификатор модели, отправленный в этот API, например, gpt-image-1.","f.customSize":"Пользовательский API: фиксированный размер","f.customSizeHint":"Оставьте пустым, и именованный размер будет переведён автоматически (square_hd → 1024x1024). Указывайте размер только для API, требующих конкретных размеров.","f.dailyBudgetUsd":"Дневной бюджет ($ USD)","f.dailyBudgetUsdHint":"Дневной бюджет ($ USD)","f.defaultFormat":"Формат по умолчанию","f.defaultFormatHint":"Используется, если вызов инструмента не содержит output_format.","f.defaultSize":"Размер изображения по умолчанию","f.defaultSizeHint":"Используется, когда вызов инструмента пропускает параметр image_size.","f.defaultStylePreset":"Default Style Preset","f.defaultStylePresetHint":"Default style preset applied to generations (e.g. cinematic, anime, photorealistic).","f.deliverAs":"Как изображение попадает в чат","f.deliverAsHint":"ссылка — результат представляет собой текст со ссылкой, и карта отображает изображение из неё; работает с любой моделью чата. изображение — результат содержит само изображение, которое текстовые модели чата не могут прочитать, поэтому для этого требуется dsh-vision-bridge или модель с поддержкой зрения.","f.diskCache":"Дисковый кэш по хэшу","f.diskCacheHint":"Дисковый кэш по хэшу","f.enableLlmEnhancer":"Включить","f.enableLlmEnhancerHint":"Включить","f.enabled":"Включить","f.enabledHint":"Включить","f.enhanceBelowChars":"Улучшение промптов","f.enhanceBelowCharsHint":"Улучшение промптов","f.enhanceModel":"Улучшение промптов","f.enhanceModelHint":"Улучшение промптов","f.enhancePrompt":"Улучшение промптов","f.enhancePromptHint":"Улучшение промптов","f.geminiKeyEnv":"Gemini Key Reference","f.geminiKeyEnvHint":"Credential reference holding Google Gemini API key.","f.geminiModel":"Gemini Model ID","f.geminiModelHint":"Google Gemini image generation model identifier.","f.historyLimit":"History Limit","f.historyLimitHint":"Maximum number of recent generation records kept in memory.","f.inherit":"Наследовать (по умолчанию)","f.localA1111Url":"Local A1111 URL (Legacy)","f.localA1111UrlHint":"Direct Automatic1111 endpoint URL.","f.localBaseURL":"Local Server URL","f.localBaseURLHint":"Server address (e.g. http://127.0.0.1:8188 for ComfyUI, http://127.0.0.1:7860 for A1111).","f.localCfg":"CFG Scale","f.localCfgHint":"Classifier-free guidance scale.","f.localComfyUrl":"Local ComfyUI URL (Legacy)","f.localComfyUrlHint":"Direct ComfyUI endpoint URL.","f.localKind":"Local Engine Architecture","f.localKindHint":"Select between ComfyUI API or Automatic1111 WebUI backend.","f.localModel":"Local Model / Checkpoint","f.localModelHint":"Checkpoint name or ComfyUI workflow name.","f.localSteps":"Sampling Steps","f.localStepsHint":"Number of denoising sampling steps.","f.loopGuardLimit":"Лимит защитного цикла (Loop Guard)","f.loopGuardLimitHint":"Лимит защитного цикла (Loop Guard)","f.model":"Модель (FAL)","f.modelHint":"Идентификатор модели FAL, вызывается как {baseURL}/{model}. Используется, когда провайдер — fal.","f.needCodex":"Built-in Codex subscription","f.needCustom":"Requires OpenAI-compatible endpoint","f.needFal":"Requires FAL API key","f.needGemini":"Requires Google Gemini API key","f.needGrok":"Built-in Grok subscription","f.needLocal":"Local ComfyUI or A1111","f.needReplicate":"Requires Replicate API token","f.needSeedream":"Requires SeaDream API key","f.outputDir":"Выходной каталог","f.outputDirHint":"Относительно рабочего каталога сессии; абсолютный путь используется как есть.","f.pollIntervalMs":"Интервал опроса (мс)","f.pollIntervalMsHint":"Интервал опроса статуса во время выполнения задачи.","f.provider":"Провайдер","f.providerHint":"fal — очередь FAL, настроенная ниже. custom — любой API, совместимый с OpenAI, настраивается далее.","f.pruneDays":"Срок хранения файлов (дней)","f.pruneDaysHint":"Срок хранения файлов (дней)","f.qualityGate":"Качество изображения","f.qualityGateHint":"Качество изображения","f.replicateKeyEnv":"Replicate Key Reference","f.replicateKeyEnvHint":"Credential reference holding the Replicate API token.","f.replicateModel":"Replicate Model ID","f.replicateModelHint":"Target model identifier on Replicate.","f.seedreamBaseURL":"SeaDream Base URL","f.seedreamBaseURLHint":"SeaDream API endpoint URL (ByteDance/Volcengine Ark).","f.seedreamKeyEnv":"SeaDream Key Reference","f.seedreamKeyEnvHint":"Credential reference holding the SeaDream API key.","f.seedreamModel":"SeaDream Model ID","f.seedreamModelHint":"ByteDance SeaDream model identifier.","f.stylePreset":"Суффикс художественного стиля","f.stylePresetHint":"Суффикс художественного стиля","f.subscriptionQuality":"Subscription Quality","f.subscriptionQualityHint":"Target quality profile when using Codex or Grok subscriptions.","f.timeoutMs":"Таймаут (мс)","f.timeoutMsHint":"Общее время ожидания генерации: отправка + опрос + загрузка.","gallery.empty":"Галерея пуста. Сгенерируйте первое изображение в чате!","gallery.loading":"Загрузка галереи…","gallery.title":"Галерея Image Studio","p.apiKeyEnv":"Пример: FAL_API_KEY","p.baseURL":"Пример: https://queue.fal.run","p.cacheTtlDays":"0","p.customBaseURL":"Пример: https://api.openai.com/v1","p.customKeyEnv":"Пример: OPENAI_API_KEY","p.customModel":"Пример: gpt-image-1","p.customSize":"Пример: 1024x1024","p.dailyBudgetUsd":"0.00","p.defaultStylePreset":"none","p.enhanceBelowChars":"200","p.enhanceModel":"Leave empty for default chat model","p.geminiKeyEnv":"GEMINI_API_KEY","p.geminiModel":"gemini-2.0-flash-exp-image-generation","p.historyLimit":"50","p.localA1111Url":"http://127.0.0.1:7860","p.localBaseURL":"http://127.0.0.1:8188","p.localCfg":"7","p.localComfyUrl":"http://127.0.0.1:8188","p.localModel":"v1-5-pruned-emaonly.safetensors","p.localSteps":"20","p.loopGuardLimit":"3","p.model":"Пример: fal-ai/flux-2/klein/9b","p.outputDir":"Пример: сгенерированные/изображения","p.pollIntervalMs":"Пример: 2000","p.pruneDays":"0","p.replicateKeyEnv":"REPLICATE_API_TOKEN","p.replicateModel":"black-forest-labs/flux-schnell","p.seedreamBaseURL":"https://api.bytedanceapi.com/v1","p.seedreamKeyEnv":"SEEDREAM_API_KEY","p.seedreamModel":"seedream-4.0","p.timeoutMs":"Пример: 180000","remix.copied":"✓ Copied!","remix.copy_instruction":"Copy Instruction","remix.creative_btn":"Creative (0.65)","remix.creativity_label":"Creativity / Denoising Strength","remix.drawer_title":"Variations & Style Remix Workbench","remix.prompt_placeholder":"Describe stylistic adjustments, new background, or variations...","remix.subtle_btn":"Subtle (0.25)","settings.collapse":"Свернуть","settings.credentialHint":"API-ключи находятся в разделе Учетные данные в указанном наборе ссылок (Настройки → Учетные данные).","settings.description":"Инструмент generate_image. Провайдер: очередь FAL или любой API изображений, совместимый с OpenAI.","settings.discard":"Отменить","settings.expand":"Развернуть","settings.invalidNumber":"Введите корректное число","settings.navLabel":"Генерация изображений","settings.overridden":"Переопределить","settings.readOnly":"Это развертывание доступно только для чтения: настройки нельзя изменить через графический интерфейс.","settings.reset":"Сбросить","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить","settings.saving":"Сохранение…","settings.title":"Генерация изображений","settings.unavailable":"Обвязка еще не опубликовала настройки этого плагина. Если она только что перезапустилась, раздел появится сам через несколько секунд.","settings.unsaved":"Несохранённые изменения","stat.active_provider":"Активный провайдер","stat.budget_cache":"Бюджет и кэш","stat.format_size":"Стандартные параметры","stat.safety_status":"Безопасность и Loop Guard","tab.cache":"Кэш и хранилище","tab.enhancer":"Промпт и стили","tab.general":"Общие","tab.provider":"Провайдер","tab.safety":"Безопасность и бюджет","updater.check":"Check updates","updater.checking":"Checking…","updater.current":"Current version","updater.failed":"Update check failed: ","updater.latest":"Latest version","updater.success":"Plugin updated successfully! Please restart DSH service.","updater.title":"Plugin Updates","updater.upToDate":"Up to date","updater.updateNow":"Update to v{version}","updater.updating":"Updating…"}}
1
+ {"dsh-image-gen":{"card.actionRemoveBg":"Удалить фон","card.actionReroll":"Перегенерировать","card.actionUpscale":"Увеличить разрешение","card.copyPrompt":"Скопировать промпт","card.failed":"Ошибка генерации","card.generating":"Генерация изображения…","card.image":"Результат Image Studio","card.origPrompt":"Исходный промпт","card.remix":"Ремикс","card.removeBg":"Удалить фон","card.reroll":"Перегенерировать","card.responsiveTabs":"Адаптивные экраны","card.seedPrefix":"Seed","card.sizePrefix":"Size","card.toolCall":"Вызов генерации изображения","card.unknownError":"An unknown error occurred during generation.","card.upscale":"Увеличить","card.vary":"Вариация","diagnostics.desc":"Быстрая проверка статуса подключения и задержки выбранного API сервиса генерации.","diagnostics.ready":"В норме","diagnostics.test":"Проверить подключение","diagnostics.testing":"Проверка...","diagnostics.title":"Диагностика подключения провайдера","f.apiKeyEnv":"Ссылка на ключ FAL","f.apiKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ FAL.","f.autoEnhancePrompt":"Auto Enhance Prompt","f.autoEnhancePromptHint":"Enrich prompts with photography, lighting, and composition quality tokens.","f.baseURL":"Базовый URL FAL","f.baseURLHint":"Эндпоинт сервиса очередей FAL.","f.cacheByPrompt":"Cache by Prompt Only","f.cacheByPromptHint":"Reuse existing result if the prompt has already been generated.","f.cacheBySeed":"Cache by Seed + Prompt","f.cacheBySeedHint":"Reuse existing result if the exact same seed and prompt are requested.","f.cacheTtlDays":"Cache Retention (Legacy)","f.cacheTtlDaysHint":"Legacy name for retention period in days.","f.customBaseURL":"Пользовательский базовый URL API","f.customBaseURLHint":"Корень OpenAI-совместимого эндпоинта изображений (например https://api.openai.com/v1).","f.customKeyEnv":"Ссылка на пользовательский ключ","f.customKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ для пользовательского эндпоинта.","f.customModel":"Пользовательский ID модели","f.customModelHint":"Имя модели, отправляемое на пользовательский эндпоинт изображений.","f.customSize":"Пользовательский размер изображения","f.customSizeHint":"Фиксированный размер, отправляемый на пользовательский эндпоинт (например 1024x1024).","f.dailyBudgetUsd":"Дневной бюджет ($ USD)","f.dailyBudgetUsdHint":"Дневной бюджет ($ USD)","f.defaultFormat":"Формат вывода","f.defaultFormatHint":"Целевой формат файла (PNG, JPEG или WEBP).","f.defaultSize":"Соотношение сторон по умолчанию","f.defaultSizeHint":"Соотношение сторон и разрешение, применяемые если image_size не указан.","f.defaultStylePreset":"Default Style Preset","f.defaultStylePresetHint":"Default style preset applied to generations (e.g. cinematic, anime, photorealistic).","f.deliverAs":"Режим доставки","f.deliverAsHint":"Как изображения передаются в диалог: \"link\" (безопасно для текстовых LLM) или \"image\" (мультимодальное зрение).","f.diskCache":"Дисковый кэш по хэшу","f.diskCacheHint":"Дисковый кэш по хэшу","f.enableLlmEnhancer":"Включить","f.enableLlmEnhancerHint":"Включить","f.enabled":"Включить","f.enabledHint":"Включить","f.enhanceBelowChars":"Улучшение промптов","f.enhanceBelowCharsHint":"Улучшение промптов","f.enhanceModel":"Улучшение промптов","f.enhanceModelHint":"Улучшение промптов","f.enhancePrompt":"Улучшение промптов","f.enhancePromptHint":"Улучшение промптов","f.geminiKeyEnv":"Gemini Key Reference","f.geminiKeyEnvHint":"Credential reference holding Google Gemini API key.","f.geminiModel":"Gemini Model ID","f.geminiModelHint":"Google Gemini image generation model identifier.","f.historyLimit":"History Limit","f.historyLimitHint":"Maximum number of recent generation records kept in memory.","f.inherit":"По умолчанию / Наследовать","f.localA1111Url":"Local A1111 URL (Legacy)","f.localA1111UrlHint":"Direct Automatic1111 endpoint URL.","f.localBaseURL":"Local Server URL","f.localBaseURLHint":"Server address (e.g. http://127.0.0.1:8188 for ComfyUI, http://127.0.0.1:7860 for A1111).","f.localCfg":"CFG Scale","f.localCfgHint":"Classifier-free guidance scale.","f.localComfyUrl":"Local ComfyUI URL (Legacy)","f.localComfyUrlHint":"Direct ComfyUI endpoint URL.","f.localKind":"Local Engine Architecture","f.localKindHint":"Select between ComfyUI API or Automatic1111 WebUI backend.","f.localModel":"Local Model / Checkpoint","f.localModelHint":"Checkpoint name or ComfyUI workflow name.","f.localSteps":"Sampling Steps","f.localStepsHint":"Number of denoising sampling steps.","f.loopGuardLimit":"Лимит защитного цикла (Loop Guard)","f.loopGuardLimitHint":"Лимит защитного цикла (Loop Guard)","f.model":"ID модели FAL","f.modelHint":"Целевая модель на эндпоинте FAL (например fal-ai/flux-2/klein/9b).","f.needCodex":"Built-in Codex subscription","f.needCustom":"Requires OpenAI-compatible endpoint","f.needFal":"Requires FAL API key","f.needGemini":"Requires Google Gemini API key","f.needGrok":"Built-in Grok subscription","f.needLocal":"Local ComfyUI or A1111","f.needReplicate":"Requires Replicate API token","f.needSeedream":"Requires SeaDream API key","f.outputDir":"Каталог сохранения","f.outputDirHint":"Путь к каталогу на диске, куда сохраняются сгенерированные изображения.","f.pollIntervalMs":"Интервал опроса (мс)","f.pollIntervalMsHint":"Частота проверки статуса задачи в асинхронной очереди.","f.provider":"Провайдер изображений","f.providerHint":"Бэкенд-сервис для генерации изображений.","f.pruneDays":"Срок хранения файлов (дней)","f.pruneDaysHint":"Срок хранения файлов (дней)","f.qualityGate":"Качество изображения","f.qualityGateHint":"Качество изображения","f.replicateKeyEnv":"Replicate Key Reference","f.replicateKeyEnvHint":"Credential reference holding the Replicate API token.","f.replicateModel":"Replicate Model ID","f.replicateModelHint":"Target model identifier on Replicate.","f.seedreamBaseURL":"SeaDream Base URL","f.seedreamBaseURLHint":"SeaDream API endpoint URL (ByteDance/Volcengine Ark).","f.seedreamKeyEnv":"SeaDream Key Reference","f.seedreamKeyEnvHint":"Credential reference holding the SeaDream API key.","f.seedreamModel":"SeaDream Model ID","f.seedreamModelHint":"ByteDance SeaDream model identifier.","f.stylePreset":"Суффикс художественного стиля","f.stylePresetHint":"Суффикс художественного стиля","f.subscriptionQuality":"Subscription Quality","f.subscriptionQualityHint":"Target quality profile when using Codex or Grok subscriptions.","f.timeoutMs":"Таймаут (мс)","f.timeoutMsHint":"Максимальный общий таймаут до прерывания запроса генерации.","gallery.copy_link":"Копировать Markdown-ссылку","gallery.copy_prompt":"Копировать промпт","gallery.empty":"Галерея пуста. Сгенерируйте первое изображение в чате!","gallery.inspector":"Детали записи генерации","gallery.loading":"Загрузка галереи…","gallery.title":"Галерея Image Studio","p.apiKeyEnv":"FAL_API_KEY","p.baseURL":"https://queue.fal.run","p.cacheTtlDays":"0","p.customBaseURL":"https://api.openai.com/v1","p.customKeyEnv":"OPENAI_API_KEY","p.customModel":"dall-e-3","p.customSize":"1024x1024","p.dailyBudgetUsd":"0.00","p.defaultStylePreset":"none","p.enhanceBelowChars":"200","p.enhanceModel":"Leave empty for default chat model","p.geminiKeyEnv":"GEMINI_API_KEY","p.geminiModel":"gemini-2.0-flash-exp-image-generation","p.historyLimit":"50","p.localA1111Url":"http://127.0.0.1:7860","p.localBaseURL":"http://127.0.0.1:8188","p.localCfg":"7","p.localComfyUrl":"http://127.0.0.1:8188","p.localModel":"v1-5-pruned-emaonly.safetensors","p.localSteps":"20","p.loopGuardLimit":"3","p.model":"fal-ai/flux-2/klein/9b","p.outputDir":"generated/images","p.pollIntervalMs":"2000","p.pruneDays":"0","p.replicateKeyEnv":"REPLICATE_API_TOKEN","p.replicateModel":"black-forest-labs/flux-schnell","p.seedreamBaseURL":"https://api.bytedanceapi.com/v1","p.seedreamKeyEnv":"SEEDREAM_API_KEY","p.seedreamModel":"seedream-4.0","p.timeoutMs":"180000","remix.copied":"✓ Copied!","remix.copy_instruction":"Copy Instruction","remix.creative_btn":"Creative (0.65)","remix.creativity_label":"Creativity / Denoising Strength","remix.drawer_title":"Variations & Style Remix Workbench","remix.prompt_placeholder":"Describe stylistic adjustments, new background, or variations...","remix.subtle_btn":"Subtle (0.25)","settings.collapse":"Свернуть","settings.credentialHint":"Ключи API хранятся в учётных данных DSH (~/.dsh/.credentials.yaml) и не попадают в файлы конфигурации.","settings.description":"Генерация изображений с помощью ИИ, дорисовка, вариации, апскейл и векторизация.","settings.discard":"Сбросить изменения","settings.expand":"Развернуть","settings.invalidNumber":"Пожалуйста, введите корректное число","settings.navLabel":"Студия изображений","settings.overridden":"переопределено","settings.readOnly":"Настройки доступны только для чтения в этом контексте.","settings.reset":"Сбросить по умолчанию","settings.save":"Сохранить настройки","settings.saveFailed":"Не удалось сохранить настройки. Пожалуйста, проверьте учетные данные и попробуйте снова.","settings.saving":"Сохранение…","settings.title":"Студия изображений","settings.unavailable":"Настройки плагина инициализируются. Они появятся автоматически через несколько секунд.","settings.unsaved":"Несохраненные изменения","stat.active_provider":"Активный провайдер","stat.budget_cache":"Бюджет и кэш","stat.format_size":"Стандартные параметры","stat.safety_status":"Безопасность и Loop Guard","tab.cache":"Кэш и хранилище","tab.enhancer":"Промпт и стили","tab.gallery":"Галерея","tab.general":"Общие","tab.provider":"Провайдер","tab.safety":"Безопасность и бюджет","updater.check":"Check updates","updater.checking":"Checking…","updater.current":"Current version","updater.failed":"Update check failed: ","updater.latest":"Latest version","updater.success":"Plugin updated successfully! Please restart DSH service.","updater.title":"Plugin Updates","updater.upToDate":"Up to date","updater.updateNow":"Update to v{version}","updater.updating":"Updating…"}}
@@ -1 +1 @@
1
- {"@goodandready-private/dsh-plugin-notify":{"field.custom":"Учётные данные вебхука Custom","field.dingtalk":"Учётные данные DingTalk","field.discord":"Учётные данные Discord","field.dndEnd":"Окончание DND (ЧЧ:ММ)","field.dndStart":"Начало DND (ЧЧ:ММ)","field.events":"События (через запятую)","field.excludePrefixes":"Исключать префиксы сессий (через запятую)","field.feishu":"Учётные данные Feishu","field.includeDuration":"Включать длительность","field.includeSession":"Включать ID сессии","field.local":"Локальные уведомления macOS","field.slack":"Учётные данные Slack","field.timeoutMs":"Таймаут вебхука (мс)","field.wecom":"Учётные данные WeCom","hint.cred":"Только имя учётных данных — значение должно быть полным URL вебхука.","hint.events":"Список событий для отправки уведомлений (turn_done, error, approval).","intro":"Сохраняйте каждый URL вебхука в меню Настройки → Учётные данные, затем указывайте здесь только имя. Не вставляйте прямые URL в эту форму.","settings.loading":"Чтение настроек…","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить настройки","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Настройки недоступны","subtitle":"Вебхук-уведомления в мессенджеры при завершении хода, ошибках или запросах подтверждения","title":"Уведомления"}}
1
+ {"@goodandready-private/dsh-plugin-notify":{"btn.reqPermission":"Разрешить системные уведомления","btn.testSound":"Проверить звук","btn.testToast":"Проверить тост","field.custom":"Учётные данные пользовательского вебхука","field.dingtalk":"Учётные данные DingTalk","field.discord":"Учётные данные Discord","field.dndEnd":"Конец режима «Не беспокоить» (ЧЧ:ММ)","field.dndStart":"Начало режима «Не беспокоить» (ЧЧ:ММ)","field.enableDesktop":"Системные уведомления ОС (Win/Mac/Linux)","field.enableSound":"Звуковые сигналы (Web Audio)","field.enableToasts":"Всплывающие уведомления (тосты)","field.events":"События (через запятую)","field.excludePrefixes":"Исключать префиксы сессий (через запятую)","field.feishu":"Учётные данные Feishu","field.includeDuration":"Включать длительность","field.includeSession":"Включать ID сессии","field.local":"Локальные уведомления macOS (хост)","field.notifyBackgroundOnly":"Уведомлять только для фоновых сессий","field.slack":"Учётные данные Slack","field.timeoutMs":"Таймаут вебхука (мс)","field.wecom":"Учётные данные WeCom","hint.cred":"Только имя учётных данных — значение должно быть полным URL вебхука.","hint.events":"task_done, error, approval_requested","intro":"Сохраняйте каждый URL вебхука в Настройки → Учётные данные, затем указывайте здесь только имя. Не вставляйте URL напрямую в эту форму.","perm.default":"Разрешение ещё не запрошено","perm.denied":"Уведомления заблокированы в настройках браузера","perm.granted":"Системные уведомления включены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Вебхуки в мессенджеры, звуковые сигналы, тосты и системные уведомления","title":"Уведомления","toast.approval":"Требуется подтверждение","toast.error":"Ошибка выполнения задачи","toast.switchToSession":"Перейти к сессии","toast.taskDone":"Задача выполнена"},"@goodandready/dsh-plugin-notify":{"btn.reqPermission":"Разрешить системные уведомления","btn.testSound":"Проверить звук","btn.testToast":"Проверить тост","field.custom":"Учётные данные пользовательского вебхука","field.dingtalk":"Учётные данные DingTalk","field.discord":"Учётные данные Discord","field.dndEnd":"Конец режима «Не беспокоить» (ЧЧ:ММ)","field.dndStart":"Начало режима «Не беспокоить» (ЧЧ:ММ)","field.enableDesktop":"Системные уведомления ОС (Win/Mac/Linux)","field.enableSound":"Звуковые сигналы (Web Audio)","field.enableToasts":"Всплывающие уведомления (тосты)","field.events":"События (через запятую)","field.excludePrefixes":"Исключать префиксы сессий (через запятую)","field.feishu":"Учётные данные Feishu","field.includeDuration":"Включать длительность","field.includeSession":"Включать ID сессии","field.local":"Локальные уведомления macOS (хост)","field.notifyBackgroundOnly":"Уведомлять только для фоновых сессий","field.slack":"Учётные данные Slack","field.timeoutMs":"Таймаут вебхука (мс)","field.wecom":"Учётные данные WeCom","hint.cred":"Только имя учётных данных — значение должно быть полным URL вебхука.","hint.events":"task_done, error, approval_requested","intro":"Сохраняйте каждый URL вебхука в Настройки → Учётные данные, затем указывайте здесь только имя. Не вставляйте URL напрямую в эту форму.","perm.default":"Разрешение ещё не запрошено","perm.denied":"Уведомления заблокированы в настройках браузера","perm.granted":"Системные уведомления включены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Вебхуки в мессенджеры, звуковые сигналы, тосты и системные уведомления","title":"Уведомления","toast.approval":"Требуется подтверждение","toast.error":"Ошибка выполнения задачи","toast.switchToSession":"Перейти к сессии","toast.taskDone":"Задача выполнена"},"dsh-plugin-notify":{"btn.reqPermission":"Разрешить системные уведомления","btn.testSound":"Проверить звук","btn.testToast":"Проверить тост","field.custom":"Учётные данные пользовательского вебхука","field.dingtalk":"Учётные данные DingTalk","field.discord":"Учётные данные Discord","field.dndEnd":"Конец режима «Не беспокоить» (ЧЧ:ММ)","field.dndStart":"Начало режима «Не беспокоить» (ЧЧ:ММ)","field.enableDesktop":"Системные уведомления ОС (Win/Mac/Linux)","field.enableSound":"Звуковые сигналы (Web Audio)","field.enableToasts":"Всплывающие уведомления (тосты)","field.events":"События (через запятую)","field.excludePrefixes":"Исключать префиксы сессий (через запятую)","field.feishu":"Учётные данные Feishu","field.includeDuration":"Включать длительность","field.includeSession":"Включать ID сессии","field.local":"Локальные уведомления macOS (хост)","field.notifyBackgroundOnly":"Уведомлять только для фоновых сессий","field.slack":"Учётные данные Slack","field.timeoutMs":"Таймаут вебхука (мс)","field.wecom":"Учётные данные WeCom","hint.cred":"Только имя учётных данных — значение должно быть полным URL вебхука.","hint.events":"task_done, error, approval_requested","intro":"Сохраняйте каждый URL вебхука в Настройки → Учётные данные, затем указывайте здесь только имя. Не вставляйте URL напрямую в эту форму.","perm.default":"Разрешение ещё не запрошено","perm.denied":"Уведомления заблокированы в настройках браузера","perm.granted":"Системные уведомления включены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Вебхуки в мессенджеры, звуковые сигналы, тосты и системные уведомления","title":"Уведомления","toast.approval":"Требуется подтверждение","toast.error":"Ошибка выполнения задачи","toast.switchToSession":"Перейти к сессии","toast.taskDone":"Задача выполнена"}}
@@ -1 +1 @@
1
- {"dsh-hypotheses":{"notificationHome":"Home мессенджера","notificationHomeHint":"Использует существующий Telegram home мессенджера; credentials остаются в gateway.","notificationHomePlaceholder":"Например: default","notifications":"Уведомления о завершении расследования","notificationsHint":"Отправлять один отчёт после явного завершения гипотезы.","save":"Сохранить","saved":"Сохранено","saving":"Сохранение…","settingsLoading":"Загрузка настроек уведомлений…","settingsUnavailable":"Настройки уведомлений недоступны."}}
1
+ {"@goodandready/dsh-hypotheses":{"active":"Активные","archived":"В архиве","clusters":"Кластеры","confidence":"Уверенность","confidenceHistory":"История уверенности","empty":"Гипотезы пока не зафиксированы.","evidence":"Факты","loading":"Загрузка аналитики…","noEvidence":"Факты не зафиксированы.","noHistory":"История пересчёта отсутствует.","notificationHome":"Home мессенджера","notificationHomeHint":"Использует существующий Telegram home мессенджера; credentials остаются в gateway.","notificationHomePlaceholder":"Например: default","notifications":"Уведомления о завершении расследования","notificationsHint":"Отправлять один отчёт после явного завершения гипотезы.","recentEvidence":"Последние факты","refresh":"Обновить","resolved":"Подтверждённые","save":"Сохранить","saved":"Сохранено","saving":"Сохранение…","settingsLoading":"Загрузка настроек уведомлений…","settingsUnavailable":"Настройки уведомлений недоступны.","stale":"Устаревшие","subtitle":"Анализ и проверка гипотез расследования (только чтение)","title":"Гипотезы","truncated":"Часть записей скрыта из-за ограничений отображения.","unavailable":"Аналитика в данный момент недоступна."},"dsh-hypotheses":{"active":"Активные","archived":"В архиве","clusters":"Кластеры","confidence":"Уверенность","confidenceHistory":"История уверенности","empty":"Гипотезы пока не зафиксированы.","evidence":"Факты","loading":"Загрузка аналитики…","noEvidence":"Факты не зафиксированы.","noHistory":"История пересчёта отсутствует.","notificationHome":"Home мессенджера","notificationHomeHint":"Использует существующий Telegram home мессенджера; credentials остаются в gateway.","notificationHomePlaceholder":"Например: default","notifications":"Уведомления о завершении расследования","notificationsHint":"Отправлять один отчёт после явного завершения гипотезы.","recentEvidence":"Последние факты","refresh":"Обновить","resolved":"Подтверждённые","save":"Сохранить","saved":"Сохранено","saving":"Сохранение…","settingsLoading":"Загрузка настроек уведомлений…","settingsUnavailable":"Настройки уведомлений недоступны.","stale":"Устаревшие","subtitle":"Анализ и проверка гипотез расследования (только чтение)","title":"Гипотезы","truncated":"Часть записей скрыта из-за ограничений отображения.","unavailable":"Аналитика в данный момент недоступна."}}
@@ -1 +1 @@
1
- {"memoryMeter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"}}
1
+ {"@goodandready-private/dsh-memory-meter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"},"@goodandready/dsh-memory-meter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"},"dsh-memory-meter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"},"memoryMeter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"}}
@@ -1,70 +1 @@
1
- {
2
- "dsh-server-monitor": {
3
- "active": "Активен",
4
- "add": "Добавить сервер",
5
- "addServer": "Добавить сервер",
6
- "address": "Адрес",
7
- "architecture": "Архитектура",
8
- "auth": "Способ аутентификации",
9
- "available": "Доступно",
10
- "cancel": "Отмена",
11
- "command": "Команда",
12
- "confirmDelete": "Удалить этот профиль сервера?",
13
- "connected": "В сети",
14
- "containers": "Контейнеры",
15
- "cpu": "Процессор",
16
- "delete": "Удалить",
17
- "deleteServer": "Удалить профиль",
18
- "disks": "Диски",
19
- "editServer": "Редактировать сервер",
20
- "error": "Ошибка",
21
- "filesystem": "Файловая система",
22
- "guideDescription": "Только для чтения",
23
- "host": "Хост",
24
- "hostname": "Имя узла",
25
- "image": "Образ",
26
- "interface": "Сетевой интерфейс",
27
- "keepSecret": "Оставьте поле пустым, чтобы сохранить текущее значение.",
28
- "kernel": "Ядро",
29
- "key": "Закрытый ключ",
30
- "keyHint": "Ключ хранится только в хранилище этого плагина.",
31
- "keyPath": "Путь к ключу",
32
- "load": "Средняя нагрузка",
33
- "loading": "Загрузка…",
34
- "memory": "Память",
35
- "mount": "Точка монтирования",
36
- "name": "Название",
37
- "network": "Сеть",
38
- "noServers": "Серверы ещё не настроены.",
39
- "noSnapshot": "Снимок состояния недоступен.",
40
- "offline": "Не в сети",
41
- "os": "Операционная система",
42
- "partial": "Частично",
43
- "passphrase": "Парольная фраза ключа",
44
- "password": "Пароль",
45
- "port": "Порт",
46
- "ports": "Прослушиваемые порты",
47
- "processes": "Наиболее ресурсоёмкие процессы",
48
- "protocol": "Протокол",
49
- "refresh": "Обновить",
50
- "resources": "Ресурсы",
51
- "rx": "Получено (RX)",
52
- "save": "Сохранить",
53
- "saved": "Сохранено",
54
- "saving": "Сохранение…",
55
- "select": "Выберите сервер",
56
- "servers": "Серверы",
57
- "state": "Состояние",
58
- "subtitle": "Только для чтения",
59
- "swap": "Область подкачки",
60
- "system": "Система",
61
- "test": "Тест подключения",
62
- "testing": "Проверка подключения…",
63
- "title": "Монитор серверов",
64
- "tx": "Передано (TX)",
65
- "unavailable": "Недоступно",
66
- "uptime": "Время работы",
67
- "used": "Использовано",
68
- "username": "Имя пользователя"
69
- }
70
- }
1
+ {"dsh-server-monitor":{"active":"Активен","add":"Добавить сервер","addServer":"Добавить сервер","address":"Адрес","architecture":"Архитектура","auth":"Способ аутентификации","available":"Доступно","cancel":"Отмена","checkUpdateFailed":"Сбой проверки","command":"Команда","confirmDelete":"Удалить этот профиль сервера?","connected":"В сети","containers":"Контейнеры","copied":"Скопировано!","copyInstallCmd":"Скопировать команду настройки сервера","cpu":"Процессор","delete":"Удалить","deleteServer":"Удалить профиль","disks":"Диски","editServer":"Редактировать сервер","error":"Ошибка","filesystem":"Файловая система","generateKey":"Сгенерировать SSH-ключ","generating":"Генерация…","guideDescription":"Мониторинг статуса Linux-серверов (только чтение)","host":"Хост","hostname":"Имя узла","image":"Образ","interface":"Сетевой интерфейс","keepSecret":"Оставьте поле пустым, чтобы сохранить текущее значение.","kernel":"Ядро","key":"Закрытый ключ","keyHint":"Ключ хранится только в хранилище этого плагина.","keyPath":"Путь к ключу","keygenSection":"Настройка SSH-ключа","load":"Средняя нагрузка","loading":"Загрузка…","memory":"Память","mount":"Точка монтирования","name":"Название","network":"Сеть","noServers":"Серверы не настроены.","noSnapshot":"Снимок состояния недоступен.","offline":"Не в сети","os":"Операционная система","partial":"Частично","passphrase":"Парольная фраза ключа","password":"Пароль","port":"Порт","ports":"Прослушиваемые порты","processes":"Наиболее ресурсоёмкие процессы","protocol":"Протокол","refresh":"Обновить","resources":"Ресурсы","rx":"Получено (RX)","save":"Сохранить сервер","saved":"Сохранено","saving":"Сохранение…","select":"Выберите сервер","servers":"Серверы","shareWorkspaceHint":"Сохранено в ~/.dsh/keys/id_ed25519_dsh (совместимо с Remote Workspace)","state":"Состояние","subtitle":"Состояние Linux-серверов — только для просмотра","swap":"Область подкачки","system":"Система","test":"Проверить подключение","testAfterInstall":"Команда выполнена — проверить подключение","testing":"Проверка подключения…","title":"Монитор серверов","tx":"Передано (TX)","unavailable":"Недоступно","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Сбой обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите сервис DSH для применения изменений.","updating":"Обновление…","uptime":"Время работы","used":"Использовано","username":"Имя пользователя","version":"Версия"}}
@@ -1 +1 @@
1
- {"agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."},"dsh-agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."}}
1
+ {"@goodandready-private/dsh-agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."},"agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."},"dsh-agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-test-pilot":{"add":"Добавить правило рабочей области","auto":"Связанные тесты (когда безопасно)","autoHelp":"Запускает только связанные тесты, если каждый изменённый файл безопасно сопоставляется; иначе запускает полный набор.","command":"Команда по умолчанию","conflict":"Настройки изменены в другом месте. Отмените черновик и перезагрузите страницу перед сохранением.","correlation":"ID запуска","cwd":"Директория рабочей области по умолчанию","discard":"Отменить","duration":"Длительность","enabled":"Запускать тесты автоматически","enabledHelp":"Запускается после успешных изменений файлов и не блокирует агента.","errorCount":"ошибок","failedCount":"не прошло","full":"Полный набор после каждого изменения","fullHelp":"Запускает настроенную полную команду тестирования после каждого обнаруженного изменения файлов.","hideReport":"Скрыть результат тестов","invalidLimits":"Таймаут и лимит вывода должны быть положительными целыми числами.","invalidPath":"Каждому правилу рабочей области требуется путь.","loading":"Загрузка настроек…","noReport":"Завершённого прогона тестов пока нет.","outputLimit":"Лимит вывода на поток (в байтах)","passedCount":"пройдено","path":"Путь рабочей области","readOnly":"Настройки доступны только для чтения в этом подключении.","remove":"Удалить правило","reportTitle":"Последний прогон","ruleEnabled":"Включено для этой рабочей области","rules":"Правила рабочей области","rulesHelp":"Приоритет имеет наиболее точный путь. Оставьте команду пустой для использования раннера по умолчанию или автоопределения.","runScope":"Область автозапуска","runner":"Раннер по умолчанию","save":"Сохранить изменения","saveFailed":"Не удалось сохранить настройки. Проверьте права на запись в хранилище настроек.","saved":"Настройки сохранены.","saving":"Сохранение…","showReport":"Показать результат тестов","skippedCount":"пропущено","statusDisabled":"Автотесты отключены","statusFailed":"Тесты не прошли","statusLoading":"Загрузка статуса тестов…","statusPassed":"Тесты пройдены","statusQueued":"Тесты в очереди","statusRunning":"Тесты выполняются…","statusStale":"Результат устарел","statusUnknown":"Нет результата","subtitle":"Автоматический запуск тестов для активной рабочей области.","testCounts":"Статистика тестов","tests":"тестов","timeout":"Таймаут (в миллисекундах)","title":"Test Pilot","unavailable":"Настройки недоступны. Проверьте, зарегистрировано ли пространство имён Test Pilot.","updated":"Обновлено","xfailCount":"ожидаемые сбои","xpassCount":"неожиданные успехи"},"dsh-test-pilot":{"add":"Добавить правило рабочей области","auto":"Связанные тесты (когда безопасно)","autoHelp":"Запускает только связанные тесты, если каждый изменённый файл безопасно сопоставляется; иначе запускает полный набор.","command":"Команда по умолчанию","conflict":"Настройки изменены в другом месте. Отмените черновик и перезагрузите страницу перед сохранением.","correlation":"ID запуска","cwd":"Директория рабочей области по умолчанию","discard":"Отменить","duration":"Длительность","enabled":"Запускать тесты автоматически","enabledHelp":"Запускается после успешных изменений файлов и не блокирует агента.","errorCount":"ошибок","failedCount":"не прошло","full":"Полный набор после каждого изменения","fullHelp":"Запускает настроенную полную команду тестирования после каждого обнаруженного изменения файлов.","hideReport":"Скрыть результат тестов","invalidLimits":"Таймаут и лимит вывода должны быть положительными целыми числами.","invalidPath":"Каждому правилу рабочей области требуется путь.","loading":"Загрузка настроек…","noReport":"Завершённого прогона тестов пока нет.","outputLimit":"Лимит вывода на поток (в байтах)","passedCount":"пройдено","path":"Путь рабочей области","readOnly":"Настройки доступны только для чтения в этом подключении.","remove":"Удалить правило","reportTitle":"Последний прогон","ruleEnabled":"Включено для этой рабочей области","rules":"Правила рабочей области","rulesHelp":"Приоритет имеет наиболее точный путь. Оставьте команду пустой для использования раннера по умолчанию или автоопределения.","runScope":"Область автозапуска","runner":"Раннер по умолчанию","save":"Сохранить изменения","saveFailed":"Не удалось сохранить настройки. Проверьте права на запись в хранилище настроек.","saved":"Настройки сохранены.","saving":"Сохранение…","showReport":"Показать результат тестов","skippedCount":"пропущено","statusDisabled":"Автотесты отключены","statusFailed":"Тесты не прошли","statusLoading":"Загрузка статуса тестов…","statusPassed":"Тесты пройдены","statusQueued":"Тесты в очереди","statusRunning":"Тесты выполняются…","statusStale":"Результат устарел","statusUnknown":"Нет результата","subtitle":"Автоматический запуск тестов для активной рабочей области.","testCounts":"Статистика тестов","tests":"тестов","timeout":"Таймаут (в миллисекундах)","title":"Test Pilot","unavailable":"Настройки недоступны. Проверьте, зарегистрировано ли пространство имён Test Pilot.","updated":"Обновлено","xfailCount":"ожидаемые сбои","xpassCount":"неожиданные успехи"}}
@@ -0,0 +1 @@
1
+ {"@dsh-external/dsh-visualize":{"streamingPreview":"Потоковый предпросмотр","subtitle":"Интерактивный рендеринг диаграмм, HTML и симуляций в реальном времени","title":"Визуализация (Visualize)","visualizationStreaming":"Потоковый предпросмотр визуализации"},"dsh-visualize":{"streamingPreview":"Потоковый предпросмотр","subtitle":"Интерактивный рендеринг диаграмм, HTML и симуляций в реальном времени","title":"Визуализация (Visualize)","visualizationStreaming":"Потоковый предпросмотр визуализации"},"visualize":{"streamingPreview":"Потоковый предпросмотр","subtitle":"Интерактивный рендеринг диаграмм, HTML и симуляций в реальном времени","title":"Визуализация (Visualize)","visualizationStreaming":"Потоковый предпросмотр визуализации"}}
@@ -0,0 +1 @@
1
+ {"dsh-github-ops":{"approvalMode":"Подтверждение записи","approvalModeHint":"\"auto\" разрешает согласованные неразрушающие операции записи без запроса; удаление релиза, тега, секрета, переменной, набора правил, защиты ветки или отмена запуска всегда запрашивают подтверждение. \"ask\" запрашивает каждое действие записи; \"off\" передаёт контроль хосту.","baseUrl":"Базовый URL API","baseUrlHint":"Измените для GitHub Enterprise; по умолчанию используется публичный API.","cardHint":"Токен берётся из учётных данных DSH; в настройках хранится только его имя.","defaultRepository":"Репозиторий по умолчанию","defaultRepositoryHint":"owner/repo, используемый если вызов инструмента опускает репозиторий. Оставьте пустым, чтобы всегда указывать явно.","invalidNumber":"Введите положительное число.","maxRetries":"Повторы при ошибке чтения","maxRetriesHint":"Повтор чтения (GET/HEAD) при сетевом сбое, таймауте или 5xx. Запись никогда не повторяется автоматически.","noChanges":"Нет изменений для сохранения.","reviewRules":"Переопределение правил ревью (JSON)","reviewRulesHint":"Необязательно. sensitivePaths, sensitiveSeverity, attentionPaths, migrationPaths, testsRequired, sourcePatterns, testPatterns, largeDiffLines. Пример: {\"largeDiffLines\": 400, \"sensitivePaths\": [\".env\", \"private/**\"]}","save":"Сохранить","saved":"Сохранено","savedPartial":"Сохранено, за исключением: ","saving":"Сохранение…","statusLoading":"Чтение настроек…","statusReadOnly":"Настройки доступны только для чтения в этой сессии.","statusUnavailable":"Сервис настроек недоступен в этой сборке: значения здесь редактировать нельзя.","sub":"Релизы, теги, защищённый шлюз API, публикация зеркал и настройки репозитория.","timeoutMs":"Таймаут запроса, мс","timeoutMsHint":"Предельное время выполнения одного запроса к GitHub до его прерывания.","title":"Операции с GitHub","tokenEnv":"Имя учётных данных","tokenEnvHint":"Имя записи в хранилище учётных данных DSH, содержащей токен GitHub. Сам токен здесь никогда не сохраняется.","tokenSource":"Источник доступа","tokenSourceHint":"\"auto\" проверяет учётные данные DSH, затем переменную окружения, затем сессию gh CLI. Зафиксируйте значение, чтобы использовать только один источник."}}