@goodandready/dsh-russian-lang 0.3.12 → 0.3.14

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.
@@ -1 +1 @@
1
- {"@goodandready/dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","providerId":"Идентификатор провайдера","ready":"Сохранить настройки","saveError":"Ошибка сохранения: {msg}","saved":"Настройки сохранены","saving":"Сохранение…","statusUnavailable":"Служба настроек недоступна.","sub":"Удаляет утекшие закрывающие теги протокола DSML из текстовых потоков модели","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"},"dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","providerId":"Идентификатор провайдера","ready":"Сохранить настройки","saveError":"Ошибка сохранения: {msg}","saved":"Настройки сохранены","saving":"Сохранение…","statusUnavailable":"Служба настроек недоступна.","sub":"Удаляет утекшие закрывающие теги протокола DSML из текстовых потоков модели","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"}}
1
+ {"@goodandready/dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","legacyClear":"Очистить устаревшие поля","legacyDetected":"Обнаружены устаревшие поля providerId / modelId: действуют как дополнительное правило.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","modelPattern":"Регулярное выражение модели (RegExp)","modelPatternHint":"Регистронезависимое регулярное выражение для сопоставления с ID моделей (например, deepseek, deepseek-v4.*). По умолчанию: deepseek.","providerId":"Идентификатор провайдера","providers":"Целевые провайдеры (опционально)","providersHint":"Список ID провайдеров через запятую. Оставьте пустым для защиты всех провайдеров.","providersPlaceholder":"все провайдеры (через запятую, например commandcode, deepseek-official)","ready":"Сохранить настройки","saveError":"Ошибка сохранения: {msg}","saved":"Настройки сохранены","saving":"Сохранение…","statusUnavailable":"Служба настроек недоступна.","sub":"Удаляет утекшие закрывающие теги протокола DSML из текстовых потоков модели","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"},"dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","legacyClear":"Очистить устаревшие поля","legacyDetected":"Обнаружены устаревшие поля providerId / modelId: действуют как дополнительное правило.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","modelPattern":"Регулярное выражение модели (RegExp)","modelPatternHint":"Регистронезависимое регулярное выражение для сопоставления с ID моделей (например, deepseek, deepseek-v4.*). По умолчанию: deepseek.","providerId":"Идентификатор провайдера","providers":"Целевые провайдеры (опционально)","providersHint":"Список ID провайдеров через запятую. Оставьте пустым для защиты всех провайдеров.","providersPlaceholder":"все провайдеры (через запятую, например commandcode, deepseek-official)","ready":"Сохранить настройки","saveError":"Ошибка сохранения: {msg}","saved":"Настройки сохранены","saving":"Сохранение…","statusUnavailable":"Служба настроек недоступна.","sub":"Удаляет утекшие закрывающие теги протокола DSML из текстовых потоков модели","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"}}
@@ -1 +1 @@
1
- {"dsh-remote-workspace":{"actionsCol":"Действия","activeBadge":"Активен","addBtn":"+ Добавить хост","alertLabel":"Оповещения ({count})","autoSyncDesc":"Автоматически отправлять изменённые файлы в удалённое рабочее пространство при локальном сохранении.","autoSyncTitle":"Автосинхронизация при сохранении","badgeKey":"🔑 Вход по ключу","badgeOffline":"Хост не выбран","badgeOnline":"Активный хост: {name} ({latency} мс)","badgePassword":"🔒 Вход по паролю","badgeTunnels":"Туннелей: {count}","btnBrowse":"📁 Выбрать на сервере…","btnCancel":"Отмена","btnDelete":"Удалить","btnImportSsh":"Импорт из ~/.ssh/config","btnLogs":"Логи","btnRestart":"Перезапустить","btnSave":"Сохранить профиль","btnSaveFile":"Сохранить изменения","btnSelectThis":"Выбрать эту папку","btnStop":"Остановить","btnTest":"⚡ Проверить связь (Ping)","btnTransfer":"Передать на хост…","clusterCommand":"Команда","clusterCount":"Настроено серверов: {count}","clusterFail":"ошибка","clusterOk":"успешно","clusterRun":"Выполнить","clusterRunning":"Выполняется...","containerImage":"Образ","containerName":"Контейнер","containerPorts":"Порты","containerStatus":"Статус","containersTitle":"Удалённый Docker / Podman Engine","delBtn":"Удалить","delConfirm":"Удалить профиль хоста «{name}»?","diagDesc":"Проверка доступности и измерение задержки активного сервера.","diagProbeBtn":"⚡ Быстрая диагностика","diagTitle":"📊 Диагностика активного подключения","diagnoseDisk":"Использование диска","diagnoseOom":"Проверка OOM Killer","diagnosePorts":"Открытые порты","diagnoseTitle":"Экспресс-диагностика","editBtn":"Изменить","envHideVal":"Скрыть","envKey":"Ключ","envSaveVar":"Сохранить","envShowVal":"Показать","envTitle":"Удалённые переменные окружения (.env)","envVal":"Значение","explorerTitle":"Удалённый файловый менеджер","fAgentPath":"Сокет агента","fAgentPathHint":"Оставьте пустым для использования SSH_AUTH_SOCK. В Windows используйте pageant.","fAuthAgent":"SSH Agent","fAuthAgentShort":"агент","fAuthKey":"SSH-ключ","fAuthKeyShort":"ключ","fAuthPass":"Пароль","fAuthPassShort":"пароль","fAuthType":"Способ авторизации","fDescription":"Описание","fEnvironment":"Окружение","fHost":"Хост / IP-адрес","fJumpHost":"Jump-хост (бастион)","fJumpHostNone":"Прямое подключение (без jump-хоста)","fJumpHosts":"Jump-хосты","fJumpHostsHint":"ID профилей по порядку через запятую. Первый хост — входной бастион.","fKeyPath":"Путь к ключу","fKeyPathHint":"Путь к ~/.ssh/id_rsa или /home/user/.ssh/id_ed25519","fLocalMirror":"Локальная папка зеркала","fLocalMirrorHint":"Локальная директория для зеркалирования файлов при быстрой трёхсторонней синхронизации","fLocation":"Локация","fName":"Название подключения","fPassphrase":"Кодовая фраза ключа (если есть)","fPassword":"Пароль учетной записи","fPort":"Порт","fProxyCommand":"Proxy-команда","fProxyCommandHint":"OpenSSH ProxyCommand. Заполнители: %h хост, %p порт, %r пользователь, %n имя профиля.","fRemotePath":"Удалённая папка проекта","fRemotePathHint":"(Не обязательно сейчас — можно выбрать позже при работе)","fTags":"Теги","fTerminalFont":"Шрифт терминала","fTerminalFontHint":"Семейство шрифтов для терминала. Оставьте пустым для моноширинного стека по умолчанию.","fUser":"Имя пользователя","filePreviewTitle":"Просмотр файла: {path}","fileSaved":"Файл успешно сохранён.","fileSize":"{size} КБ","formTitleEdit":"Редактирование профиля хоста","formTitleNew":"Добавление нового SSH хоста","groupEnvironment":"По окружению","groupFlat":"Сплошной список","groupOffline":"не в сети: {err}","groupOnline":"в сети, {latency} мс","groupTag":"По тегам","groupUngrouped":"Без группы","healthCpu":"ЦП: {val}%","healthDisk":"Диск: {val}%","healthMem":"ОЗУ: {val}% ({used}/{total} МБ)","healthUptime":"Аптайм: {val}","hostCol":"Хост / Пользователь","importAdded":"Импортировано серверов: {count}.","nameCol":"Имя","navLabel":"Удаленные серверы","noContainers":"Активных контейнеров не найдено или демон Docker не запущен.","noHosts":"Удалённые хосты ещё не настроены. Нажмите «+ Добавить хост».","openLocalLink":"🌐 Открыть локальный порт","pathCol":"Удалённый путь","pinBtn":"Закрепить активный","pinned":"Активный хост","portCol":"Порт","profilesDesc":"Настройка удалённых хостов для выполнения команд, SFTP доступа и синхронизации.","profilesTitle":"🖥️ Профили SSH серверов","pullBtn":"⬇️ Скачать с сервера (Pull)","pulling":"Получение файлов…","pushBtn":"⬆️ Загрузить на сервер (Push)","pushing":"Отправка файлов…","saving":"Сохранение…","setActiveBtn":"Сделать активным","status":"Готово","subtitle":"Управление подключениями по SSH, синхронизацией SFTP и туннелями","syncConflict":"Предупреждение о конфликте: изменено с обеих сторон файлов — {count}.","syncDesc":"Ручная синхронизация файлов с удалённым сервером и статус проброса портов.","syncErr":"Ошибка синхронизации: {err}","syncFailed":"Ошибка синхронизации: ","syncOk":"Синхронизация завершена! Обновлено файлов: {count}.","syncSuccess":"Синхронизация успешно выполнена","syncTitle":"🔄 Синхронизация зеркала и туннели","tLocalPort":"Локальный порт","tNoTunnels":"Нет активных туннелей проброса портов.","tOpenBtn":"+ Открыть туннель","tOpenErr":"Не удалось открыть туннель: {err}","tOpenOk":"Туннель открыт: 127.0.0.1:{localPort} -> Удалённый:{remotePort}","tOpening":"Открытие…","tRemotePort":"Удалённый порт","tStopBtn":"Остановить","tabContainers":"🐳 Контейнеры","tabEnv":"🗃️ Менеджер .env","tabExplorer":"📂 Проводник файлов","tabProfiles":"🖥️ Профили хостов","tabSync":"🔄 Станция синхронизации","tabTerminal":"⚡ Веб-терминал","tabTunnels":"🔗 Порт-туннели","tarSyncFast":"🚀 Быстрый поток архива (Tarball Stream)","termClear":"Очистить","termConnected":"Подключено к PTY-сессии {id} на {host}","termDisconnected":"Терминал отключён.","termPlaceholder":"Введите команду и нажмите Enter (напр. htop, ls, docker ps)…","termStart":"Подключить терминал","termStop":"Отключить","testFail":"❌ Ошибка подключения: {err}","testOk":"✅ Соединение установлено! Задержка: {latency} мс | ОС: {os}","testing":"Проверка соединения…","title":"Удалённое рабочее пространство","transferBtnExec":"Передать напрямую","transferDestHost":"Целевой сервер","transferDestPath":"Целевой путь к файлу","transferSuccess":"Успешно передано {bytes} байт на {host}:{path}","transferTitle":"Прямая передача сервер-сервер","tunnelTraffic":"Вход: {rx} | Выход: {tx}","tunnelUptime":"Работает: {sec} с","tunnelsColActions":"Действия","tunnelsColId":"ID туннеля","tunnelsColRoute":"Маршрут проброса","tunnelsDesc":"Проброс удалённых портов (базы данных, веб-серверы, API) на локальный компьютер через зашифрованные SSH-туннели.","tunnelsTitle":"🔀 Проброс портов SSH (туннели)","vaultProtectedBadge":"🛡️ Защищено .env Vault"}}
1
+ {"@goodandready/dsh-remote-workspace":{"actionFailed":"Запрос не выполнен.","actionsCol":"Действия","activeBadge":"Активен","addBtn":"+ Добавить хост","alertLabel":"Оповещения ({count})","authPromptCode":"Одноразовый код","authPromptSubmit":"Продолжить","authPromptTitle":"Код авторизации","autoSyncDesc":"Автоматически отправлять изменённые файлы в удалённое рабочее пространство при локальном сохранении.","autoSyncTitle":"Автосинхронизация при сохранении","badgeKey":"🔑 Вход по ключу","badgeOffline":"Хост не выбран","badgeOnline":"Активный хост: {name} ({latency} мс)","badgePassword":"🔒 Вход по паролю","badgeTunnels":"Туннелей: {count}","btnBrowse":"📁 Выбрать на сервере…","btnCancel":"Отмена","btnDelete":"Удалить","btnDownload":"Скачать","btnImportSsh":"Импорт из ~/.ssh/config","btnLogs":"Логи","btnRestart":"Перезапустить","btnSave":"Сохранить профиль","btnSaveFile":"Сохранить изменения","btnSelectThis":"Выбрать эту папку","btnStop":"Остановить","btnTest":"⚡ Проверить связь (Ping)","btnTransfer":"Передать на хост…","btnUpload":"Загрузить","checkUpdate":"Проверить обновления","checking":"Проверка…","clusterCommand":"Команда","clusterCount":"Настроено серверов: {count}","clusterFail":"ошибка","clusterOk":"успешно","clusterRun":"Выполнить","clusterRunning":"Выполняется...","clusterTitle":"Запуск на группе","containerImage":"Образ","containerName":"Контейнер","containerPorts":"Порты","containerStatus":"Статус","containersTitle":"Удалённый Docker / Podman Engine","currentVersion":"Установленная версия","delBtn":"Удалить","delConfirm":"Удалить профиль хоста «{name}»?","diagDesc":"Проверка доступности и измерение задержки активного сервера.","diagProbeBtn":"⚡ Быстрая диагностика","diagTitle":"📊 Диагностика активного подключения","diagnoseDisk":"Использование диска","diagnoseOom":"Проверка OOM Killer","diagnosePorts":"Открытые порты","diagnoseTitle":"Экспресс-диагностика","editBtn":"Изменить","envHideVal":"Скрыть","envKey":"Ключ","envSaveVar":"Сохранить","envShowVal":"Показать","envTitle":"Удалённые переменные окружения (.env)","envVal":"Значение","explorerTitle":"Удалённый файловый менеджер","fAgentPath":"Сокет агента","fAgentPathHint":"Оставьте пустым для использования SSH_AUTH_SOCK. В Windows используйте pageant.","fAuthAgent":"SSH Agent","fAuthAgentShort":"агент","fAuthKey":"SSH-ключ","fAuthKeyShort":"ключ","fAuthPass":"Пароль","fAuthPassShort":"пароль","fAuthType":"Способ авторизации","fDescription":"Описание","fEnvironment":"Окружение","fHost":"Хост / IP-адрес","fJumpHost":"Jump-хост (бастион)","fJumpHostNone":"Прямое подключение (без jump-хоста)","fJumpHosts":"Jump-хосты","fJumpHostsHint":"ID профилей по порядку через запятую. Первый хост — входной бастион.","fKeyPath":"Путь к ключу","fKeyPathHint":"Путь к ~/.ssh/id_rsa или /home/user/.ssh/id_ed25519","fLocalMirror":"Локальная папка зеркала","fLocalMirrorHint":"Локальная директория для зеркалирования файлов при быстрой трёхсторонней синхронизации","fLocation":"Локация","fName":"Название подключения","fPassphrase":"Кодовая фраза ключа (если есть)","fPassword":"Пароль учетной записи","fPort":"Порт","fProxyCommand":"Proxy-команда","fProxyCommandHint":"OpenSSH ProxyCommand. Заполнители: %h хост, %p порт, %r пользователь, %n имя профиля.","fRemotePath":"Удалённая папка проекта","fRemotePathHint":"(Не обязательно сейчас — можно выбрать позже при работе)","fTags":"Теги","fTerminalFont":"Шрифт терминала","fTerminalFontHint":"Семейство шрифтов для терминала. Оставьте пустым для моноширинного стека по умолчанию.","fUser":"Имя пользователя","filePreviewTitle":"Просмотр файла: {path}","fileSaved":"Файл успешно сохранён.","fileSize":"{size} КБ","formTitleEdit":"Редактирование профиля хоста","formTitleNew":"Добавление нового SSH хоста","groupEnvironment":"По окружению","groupFlat":"Сплошной список","groupOffline":"не в сети: {err}","groupOnline":"в сети, {latency} мс","groupTag":"По тегам","groupUngrouped":"Без группы","healthCpu":"ЦП: {val}%","healthDisk":"Диск: {val}%","healthMem":"ОЗУ: {val}% ({used}/{total} МБ)","healthUptime":"Аптайм: {val}","hostCol":"Хост / Пользователь","importAdded":"Импортировано серверов: {count}.","latestVersion":"Последняя на npm","nameCol":"Имя","navLabel":"Удаленные серверы","noContainers":"Активных контейнеров не найдено или демон Docker не запущен.","noHosts":"Удалённые хосты ещё не настроены. Нажмите «+ Добавить хост».","openLocalLink":"🌐 Открыть локальный порт","pathCol":"Удалённый путь","pinBtn":"Закрепить активный","pinned":"Активный хост","portCol":"Порт","profilesDesc":"Настройка удалённых хостов для выполнения команд, SFTP доступа и синхронизации.","profilesTitle":"🖥️ Профили SSH серверов","pullBtn":"⬇️ Скачать с сервера (Pull)","pulling":"Получение файлов…","pushBtn":"⬆️ Загрузить на сервер (Push)","pushing":"Отправка файлов…","restartRequired":"Обновление установлено. Перезапустите DSH для применения.","saving":"Сохранение…","setActiveBtn":"Сделать активным","skipDuplicate":"уже импортировано","skipMatch":"Блоки Match не импортируются","skipMissing":"включённый файл не найден","skipWildcard":"шаблон не является отдельным хостом","status":"Готово","statusEmpty":"Нет активного хоста","statusError":"Статус недоступен","statusLoading":"Проверка соединения","statusReady":"Хост готов","subtitle":"Управление подключениями по SSH, синхронизацией SFTP и туннелями","syncConflict":"Предупреждение о конфликте: изменено с обеих сторон файлов — {count}.","syncDesc":"Ручная синхронизация файлов с удалённым сервером и статус проброса портов.","syncErr":"Ошибка синхронизации: {err}","syncFailed":"Ошибка синхронизации: ","syncOk":"Синхронизация завершена! Обновлено файлов: {count}.","syncSuccess":"Синхронизация успешно выполнена","syncTitle":"🔄 Синхронизация зеркала и туннели","tLocalPort":"Локальный порт","tNoTunnels":"Нет активных туннелей проброса портов.","tOpenBtn":"+ Открыть туннель","tOpenErr":"Не удалось открыть туннель: {err}","tOpenOk":"Туннель открыт: 127.0.0.1:{localPort} -> Удалённый:{remotePort}","tOpening":"Открытие…","tRemotePort":"Удалённый порт","tStopBtn":"Остановить","tabCluster":"Кластер","tabContainers":"🐳 Контейнеры","tabEnv":"🗃️ Менеджер .env","tabExplorer":"📂 Проводник файлов","tabFiles":"Файлы","tabProfiles":"🖥️ Профили хостов","tabSync":"🔄 Станция синхронизации","tabTerminal":"⚡ Веб-терминал","tabTunnels":"🔗 Порт-туннели","tarSyncFast":"🚀 Быстрый поток архива (Tarball Stream)","termClear":"Очистить","termConnected":"Подключено к PTY-сессии {id} на {host}","termDisconnected":"Терминал отключён.","termPlaceholder":"Введите команду и нажмите Enter (напр. htop, ls, docker ps)…","termStart":"Подключить терминал","termStop":"Отключить","testFail":"❌ Ошибка подключения: {err}","testGroup":"Тестовая группа","testOk":"✅ Соединение установлено! Задержка: {latency} мс | ОС: {os}","testing":"Проверка соединения…","title":"Удалённое рабочее пространство","transferBtnExec":"Передать напрямую","transferCancel":"Отмена","transferDestHost":"Целевой сервер","transferDestPath":"Целевой путь к файлу","transferFailed":"Сбой передачи: {name}","transferProgress":"{name}: {percent}%","transferSuccess":"Успешно передано {bytes} байт на {host}:{path}","transferTitle":"Прямая передача сервер-сервер","tunnelTraffic":"Вход: {rx} | Выход: {tx}","tunnelUptime":"Работает: {sec} с","tunnelsColActions":"Действия","tunnelsColId":"ID туннеля","tunnelsColRoute":"Маршрут проброса","tunnelsDesc":"Проброс удалённых портов (базы данных, веб-серверы, API) на локальный компьютер через зашифрованные SSH-туннели.","tunnelsTitle":"🔀 Проброс портов SSH (туннели)","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления","updateNow":"Обновить сейчас","updaterTitle":"Обновление плагина","updating":"Обновление…","vaultProtectedBadge":"🛡️ Защищено .env Vault","versionUnknown":"Версия неизвестна","wsBack":"Назад","wsCluster":"Кластер","wsDocker":"Контейнеры","wsFiles":"Файлы","wsHosts":"Хосты","wsTerminal":"Терминал","wsTunnels":"Туннели"},"dsh-remote-workspace":{"actionFailed":"Запрос не выполнен.","actionsCol":"Действия","activeBadge":"Активен","addBtn":"+ Добавить хост","alertLabel":"Оповещения ({count})","authPromptCode":"Одноразовый код","authPromptSubmit":"Продолжить","authPromptTitle":"Код авторизации","autoSyncDesc":"Автоматически отправлять изменённые файлы в удалённое рабочее пространство при локальном сохранении.","autoSyncTitle":"Автосинхронизация при сохранении","badgeKey":"🔑 Вход по ключу","badgeOffline":"Хост не выбран","badgeOnline":"Активный хост: {name} ({latency} мс)","badgePassword":"🔒 Вход по паролю","badgeTunnels":"Туннелей: {count}","btnBrowse":"📁 Выбрать на сервере…","btnCancel":"Отмена","btnDelete":"Удалить","btnDownload":"Скачать","btnImportSsh":"Импорт из ~/.ssh/config","btnLogs":"Логи","btnRestart":"Перезапустить","btnSave":"Сохранить профиль","btnSaveFile":"Сохранить изменения","btnSelectThis":"Выбрать эту папку","btnStop":"Остановить","btnTest":"⚡ Проверить связь (Ping)","btnTransfer":"Передать на хост…","btnUpload":"Загрузить","checkUpdate":"Проверить обновления","checking":"Проверка…","clusterCommand":"Команда","clusterCount":"Настроено серверов: {count}","clusterFail":"ошибка","clusterOk":"успешно","clusterRun":"Выполнить","clusterRunning":"Выполняется...","clusterTitle":"Запуск на группе","containerImage":"Образ","containerName":"Контейнер","containerPorts":"Порты","containerStatus":"Статус","containersTitle":"Удалённый Docker / Podman Engine","currentVersion":"Установленная версия","delBtn":"Удалить","delConfirm":"Удалить профиль хоста «{name}»?","diagDesc":"Проверка доступности и измерение задержки активного сервера.","diagProbeBtn":"⚡ Быстрая диагностика","diagTitle":"📊 Диагностика активного подключения","diagnoseDisk":"Использование диска","diagnoseOom":"Проверка OOM Killer","diagnosePorts":"Открытые порты","diagnoseTitle":"Экспресс-диагностика","editBtn":"Изменить","envHideVal":"Скрыть","envKey":"Ключ","envSaveVar":"Сохранить","envShowVal":"Показать","envTitle":"Удалённые переменные окружения (.env)","envVal":"Значение","explorerTitle":"Удалённый файловый менеджер","fAgentPath":"Сокет агента","fAgentPathHint":"Оставьте пустым для использования SSH_AUTH_SOCK. В Windows используйте pageant.","fAuthAgent":"SSH Agent","fAuthAgentShort":"агент","fAuthKey":"SSH-ключ","fAuthKeyShort":"ключ","fAuthPass":"Пароль","fAuthPassShort":"пароль","fAuthType":"Способ авторизации","fDescription":"Описание","fEnvironment":"Окружение","fHost":"Хост / IP-адрес","fJumpHost":"Jump-хост (бастион)","fJumpHostNone":"Прямое подключение (без jump-хоста)","fJumpHosts":"Jump-хосты","fJumpHostsHint":"ID профилей по порядку через запятую. Первый хост — входной бастион.","fKeyPath":"Путь к ключу","fKeyPathHint":"Путь к ~/.ssh/id_rsa или /home/user/.ssh/id_ed25519","fLocalMirror":"Локальная папка зеркала","fLocalMirrorHint":"Локальная директория для зеркалирования файлов при быстрой трёхсторонней синхронизации","fLocation":"Локация","fName":"Название подключения","fPassphrase":"Кодовая фраза ключа (если есть)","fPassword":"Пароль учетной записи","fPort":"Порт","fProxyCommand":"Proxy-команда","fProxyCommandHint":"OpenSSH ProxyCommand. Заполнители: %h хост, %p порт, %r пользователь, %n имя профиля.","fRemotePath":"Удалённая папка проекта","fRemotePathHint":"(Не обязательно сейчас — можно выбрать позже при работе)","fTags":"Теги","fTerminalFont":"Шрифт терминала","fTerminalFontHint":"Семейство шрифтов для терминала. Оставьте пустым для моноширинного стека по умолчанию.","fUser":"Имя пользователя","filePreviewTitle":"Просмотр файла: {path}","fileSaved":"Файл успешно сохранён.","fileSize":"{size} КБ","formTitleEdit":"Редактирование профиля хоста","formTitleNew":"Добавление нового SSH хоста","groupEnvironment":"По окружению","groupFlat":"Сплошной список","groupOffline":"не в сети: {err}","groupOnline":"в сети, {latency} мс","groupTag":"По тегам","groupUngrouped":"Без группы","healthCpu":"ЦП: {val}%","healthDisk":"Диск: {val}%","healthMem":"ОЗУ: {val}% ({used}/{total} МБ)","healthUptime":"Аптайм: {val}","hostCol":"Хост / Пользователь","importAdded":"Импортировано серверов: {count}.","latestVersion":"Последняя на npm","nameCol":"Имя","navLabel":"Удаленные серверы","noContainers":"Активных контейнеров не найдено или демон Docker не запущен.","noHosts":"Удалённые хосты ещё не настроены. Нажмите «+ Добавить хост».","openLocalLink":"🌐 Открыть локальный порт","pathCol":"Удалённый путь","pinBtn":"Закрепить активный","pinned":"Активный хост","portCol":"Порт","profilesDesc":"Настройка удалённых хостов для выполнения команд, SFTP доступа и синхронизации.","profilesTitle":"🖥️ Профили SSH серверов","pullBtn":"⬇️ Скачать с сервера (Pull)","pulling":"Получение файлов…","pushBtn":"⬆️ Загрузить на сервер (Push)","pushing":"Отправка файлов…","restartRequired":"Обновление установлено. Перезапустите DSH для применения.","saving":"Сохранение…","setActiveBtn":"Сделать активным","skipDuplicate":"уже импортировано","skipMatch":"Блоки Match не импортируются","skipMissing":"включённый файл не найден","skipWildcard":"шаблон не является отдельным хостом","status":"Готово","statusEmpty":"Нет активного хоста","statusError":"Статус недоступен","statusLoading":"Проверка соединения","statusReady":"Хост готов","subtitle":"Управление подключениями по SSH, синхронизацией SFTP и туннелями","syncConflict":"Предупреждение о конфликте: изменено с обеих сторон файлов — {count}.","syncDesc":"Ручная синхронизация файлов с удалённым сервером и статус проброса портов.","syncErr":"Ошибка синхронизации: {err}","syncFailed":"Ошибка синхронизации: ","syncOk":"Синхронизация завершена! Обновлено файлов: {count}.","syncSuccess":"Синхронизация успешно выполнена","syncTitle":"🔄 Синхронизация зеркала и туннели","tLocalPort":"Локальный порт","tNoTunnels":"Нет активных туннелей проброса портов.","tOpenBtn":"+ Открыть туннель","tOpenErr":"Не удалось открыть туннель: {err}","tOpenOk":"Туннель открыт: 127.0.0.1:{localPort} -> Удалённый:{remotePort}","tOpening":"Открытие…","tRemotePort":"Удалённый порт","tStopBtn":"Остановить","tabCluster":"Кластер","tabContainers":"🐳 Контейнеры","tabEnv":"🗃️ Менеджер .env","tabExplorer":"📂 Проводник файлов","tabFiles":"Файлы","tabProfiles":"🖥️ Профили хостов","tabSync":"🔄 Станция синхронизации","tabTerminal":"⚡ Веб-терминал","tabTunnels":"🔗 Порт-туннели","tarSyncFast":"🚀 Быстрый поток архива (Tarball Stream)","termClear":"Очистить","termConnected":"Подключено к PTY-сессии {id} на {host}","termDisconnected":"Терминал отключён.","termPlaceholder":"Введите команду и нажмите Enter (напр. htop, ls, docker ps)…","termStart":"Подключить терминал","termStop":"Отключить","testFail":"❌ Ошибка подключения: {err}","testGroup":"Тестовая группа","testOk":"✅ Соединение установлено! Задержка: {latency} мс | ОС: {os}","testing":"Проверка соединения…","title":"Удалённое рабочее пространство","transferBtnExec":"Передать напрямую","transferCancel":"Отмена","transferDestHost":"Целевой сервер","transferDestPath":"Целевой путь к файлу","transferFailed":"Сбой передачи: {name}","transferProgress":"{name}: {percent}%","transferSuccess":"Успешно передано {bytes} байт на {host}:{path}","transferTitle":"Прямая передача сервер-сервер","tunnelTraffic":"Вход: {rx} | Выход: {tx}","tunnelUptime":"Работает: {sec} с","tunnelsColActions":"Действия","tunnelsColId":"ID туннеля","tunnelsColRoute":"Маршрут проброса","tunnelsDesc":"Проброс удалённых портов (базы данных, веб-серверы, API) на локальный компьютер через зашифрованные SSH-туннели.","tunnelsTitle":"🔀 Проброс портов SSH (туннели)","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления","updateNow":"Обновить сейчас","updaterTitle":"Обновление плагина","updating":"Обновление…","vaultProtectedBadge":"🛡️ Защищено .env Vault","versionUnknown":"Версия неизвестна","wsBack":"Назад","wsCluster":"Кластер","wsDocker":"Контейнеры","wsFiles":"Файлы","wsHosts":"Хосты","wsTerminal":"Терминал","wsTunnels":"Туннели"}}
@@ -1 +1 @@
1
- {"dsh-model-sync":{"acknowledge":"Подтвердить","addAlias":"Сохранить алиас","aliasPlaceholder":"Алиас (например, gpt-4o-latest)","all":"Все провайдеры с API-ключами","allModels":"Все модели","apply":"Применить изменения","autoApplySchedule":"Автоматически применять изменения","batchTry":"Проверить выбранные модели","batchTryDeselectUnreachable":"Снять выбор с недоступных","batchTryResults":"Пакетная проверка: доступно %d из %d","batchTryRunning":"Проверка…","cacheHoursAgo":"кэш %d ч назад","cancel":"Отмена","capabilityCount":"показано","capabilityFilter":"Фильтр по возможностям","checkCredentials":"Проверить ключи","checkForUpdates":"Проверить обновления","checkUpdateFailed":"Не удалось проверить обновления","checkingUpdates":"Проверка…","credentialReady":"настроен","credentials":"Диагностика ключей","deprecated":"deprecated","deprecatesIn":"Устареет через %d дн.","desc":"Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.","deselectAllFiltered":"Снять выбор с показанных","diffAdded":"добавлено","diffChanged":"изменена метаинформация","diffRemoved":"удалено","diffRenamed":"переименовано","dormant":"не настроен","dryRun":"Только предпросмотр (dry-run)","empty":"нет настроенных провайдеров","enableContextFilter":"Фильтровать по минимальному контексту","enableCostFilter":"Фильтровать по максимальной цене","exportConfig":"Экспорт настроек","exportImportTitle":"Резервное копирование и восстановление настроек","failure":"ошибка","filterCheap":"Экономные ≤ $1/1M","filterContext100k":"Контекст ≥ 100k","filterCostContext":"Ограничения по цене и контексту","health":"Проверить доступность","healthDormant":"не настроен","healthError":"недоступна","healthOk":"доступна","hideSettings":"Скрыть настройки","history":"История синхронизаций","historyRun":"Запуск","importConfig":"Импорт настроек","importError":"Ошибка импорта: %s","importPlaceholder":"Вставьте JSON-конфигурацию сюда…","importSuccess":"Конфигурация успешно импортирована","intervalMinutes":"Интервал (в минутах)","invalidPattern":"Некорректный regex-шаблон: %s","invertFiltered":"Инвертировать выбор","lastRun":"Последний запуск","loading":"Загрузка…","markRead":"Прочитано","maxPricePerMillion":"Макс. цена ($ / 1 млн токенов)","minContextTokens":"Мин. размер контекста (токенов)","missingCredential":"не настроен","modelAliases":"Алиасы моделей","nextRun":"следующий запуск","noAliases":"Алиасы моделей не заданы.","noCapabilities":"В этом каталоге нет метаданных о возможностях.","noHistory":"Истории синхронизаций нет.","noModels":"В текущем каталоге нет моделей.","noNotifications":"Новых уведомлений нет.","noProviders":"Провайдеры с API-ключами не найдены.","notifications":"Уведомления","ok":"готов","partial":"частичный успех","pickerNote":"Выбранные модели сразу станут доступны в переключателе моделей DSH.","policy":"Ручной отбор моделей","policyDeny":"Запрещённые возможности (через запятую)","policyExclude":"Правила исключения (по одному regex в строке)","policyInclude":"Правила включения (по одному regex в строке)","policyNote":"Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.","policyRequire":"Обязательные возможности (через запятую)","previewAdded":"Добавлено","previewApply":"Применить изменения","previewChanged":"Изменено","previewDismiss":"Закрыть предпросмотр","previewNone":"Изменений не обнаружено.","previewRemoved":"Удалено","previewTitle":"Предпросмотр изменений","refresh":"Обновить статус","refreshAll":"Обновить всё","removeAlias":"Удалить алиас","removeMissing":"Подтвердить удаление устаревших","report":"Итог запуска","restartRequired":" (требуется перезапуск)","rollback":"Откатить каталог","rollbackConfirm":"Откатить каталог этого провайдера к выбранному снимку?","run":"Найти модели","running":"синхронизация…","savePolicy":"Сохранить политику","saveScheduler":"Сохранить расписание","saveSelection":"Сохранить и применить выбор","scheduleEnabled":"Включить фоновое расписание","scheduler":"Планировщик","schedulerOff":"выключен","schedulerOn":"включён","schedulerSaved":"Сохранено","schedulerSettings":"Настройка планировщика","scopeUnavailable":"Служба настроек недоступна.","searchPlaceholder":"Поиск по ID / имени / тегу","selectAllFiltered":"Выбрать все показанные","selectAtLeastOne":"Выберите хотя бы одну модель или используйте вариант «Все модели».","selectModels":"Выбор моделей","selected":"выбрано","showMore":"Показать ещё (%d)","showSettings":"Показать настройки","showingCount":"Показано %d из %d моделей","sortContext":"Контекст ↓","sortDate":"Новые ↓","sortName":"Имя А→Я","sortPrice":"Цена ↑","stale":"устарела","success":"успех","targetModel":"Целевая модель","targetProvider":"Провайдер","title":"Синхронизация моделей","updateSuccess":"Обновлено до "}}
1
+ {"@goodandready/dsh-model-sync":{"aliasBestCodeDesc":"Высокая производительность для кодинга и рассуждений","aliasCheapDesc":"Минимальная стоимость токенов","aliasFastDesc":"Минимальное время ответа среди доступных моделей","diffWebhookSecret":"Секрет вебхука (опционально)","diffWebhookUrl":"URL вебхука","diffWebhooks":"Внешние вебхуки изменений","notifyOnModelAdded":"Уведомлять о новых моделях","notifyOnModelDeprecated":"Уведомлять об устаревших / удалённых","notifyOnPriceChanged":"Уведомлять об изменении цен","resolveAlias":"Проверить","resolvingAlias":"Вычисление…","saveWebhook":"Сохранить настройки вебхука","testWebhook":"Проверить вебхук","upToDate":"Установлена актуальная версия","updateAvailable":"Доступна новая версия: ","updateFailed":"Ошибка обновления: ","updateNow":"Обновить сейчас","updaterCheck":"Проверить обновления","updaterChecking":"Проверка…","updaterTitle":"Обновление плагина","updating":"Обновление…","virtualAliasDesc":"Динамические псевдонимы направляют запросы к оптимальным моделям по задержке, цене и проверкам доступности.","virtualAliases":"Виртуальные смарт-псевдонимы","webhookFailed":"Ошибка проверки вебхука: %s","webhookSaved":"Настройки вебхука сохранены","webhookSuccess":"Вебхук успешно протестирован","webhookTesting":"Проверка…"},"dsh-model-sync":{"acknowledge":"Подтвердить","addAlias":"Сохранить алиас","aliasBestCodeDesc":"Высокая производительность для кодинга и рассуждений","aliasCheapDesc":"Минимальная стоимость токенов","aliasFastDesc":"Минимальное время ответа среди доступных моделей","aliasPlaceholder":"Алиас (например, gpt-4o-latest)","all":"Все провайдеры с API-ключами","allModels":"Все модели","apply":"Применить изменения","autoApplySchedule":"Автоматически применять изменения","batchTry":"Проверить выбранные модели","batchTryDeselectUnreachable":"Снять выбор с недоступных","batchTryResults":"Пакетная проверка: доступно %d из %d","batchTryRunning":"Проверка…","cacheHoursAgo":"кэш %d ч назад","cancel":"Отмена","capabilityCount":"показано","capabilityFilter":"Фильтр по возможностям","checkCredentials":"Проверить ключи","checkForUpdates":"Проверить обновления","checkUpdateFailed":"Не удалось проверить обновления","checkingUpdates":"Проверка…","credentialReady":"настроен","credentials":"Диагностика ключей","deprecated":"deprecated","deprecatesIn":"Устареет через %d дн.","desc":"Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.","deselectAllFiltered":"Снять выбор с показанных","diffAdded":"добавлено","diffChanged":"изменена метаинформация","diffRemoved":"удалено","diffRenamed":"переименовано","diffWebhookSecret":"Секрет вебхука (опционально)","diffWebhookUrl":"URL вебхука","diffWebhooks":"Внешние вебхуки изменений","dormant":"не настроен","dryRun":"Только предпросмотр (dry-run)","empty":"нет настроенных провайдеров","enableContextFilter":"Фильтровать по минимальному контексту","enableCostFilter":"Фильтровать по максимальной цене","exportConfig":"Экспорт настроек","exportImportTitle":"Резервное копирование и восстановление настроек","failure":"ошибка","filterCheap":"Экономные ≤ $1/1M","filterContext100k":"Контекст ≥ 100k","filterCostContext":"Ограничения по цене и контексту","health":"Проверить доступность","healthDormant":"не настроен","healthError":"недоступна","healthOk":"доступна","hideSettings":"Скрыть настройки","history":"История синхронизаций","historyRun":"Запуск","importConfig":"Импорт настроек","importError":"Ошибка импорта: %s","importPlaceholder":"Вставьте JSON-конфигурацию сюда…","importSuccess":"Конфигурация успешно импортирована","intervalMinutes":"Интервал (в минутах)","invalidPattern":"Некорректный regex-шаблон: %s","invertFiltered":"Инвертировать выбор","lastRun":"Последний запуск","loading":"Загрузка…","markRead":"Прочитано","maxPricePerMillion":"Макс. цена ($ / 1 млн токенов)","minContextTokens":"Мин. размер контекста (токенов)","missingCredential":"не настроен","modelAliases":"Алиасы моделей","nextRun":"следующий запуск","noAliases":"Алиасы моделей не заданы.","noCapabilities":"В этом каталоге нет метаданных о возможностях.","noHistory":"Истории синхронизаций нет.","noModels":"В текущем каталоге нет моделей.","noNotifications":"Новых уведомлений нет.","noProviders":"Провайдеры с API-ключами не найдены.","notifications":"Уведомления","notifyOnModelAdded":"Уведомлять о новых моделях","notifyOnModelDeprecated":"Уведомлять об устаревших / удалённых","notifyOnPriceChanged":"Уведомлять об изменении цен","ok":"готов","partial":"частичный успех","pickerNote":"Выбранные модели сразу станут доступны в переключателе моделей DSH.","policy":"Ручной отбор моделей","policyDeny":"Запрещённые возможности (через запятую)","policyExclude":"Правила исключения (по одному regex в строке)","policyInclude":"Правила включения (по одному regex в строке)","policyNote":"Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.","policyRequire":"Обязательные возможности (через запятую)","previewAdded":"Добавлено","previewApply":"Применить изменения","previewChanged":"Изменено","previewDismiss":"Закрыть предпросмотр","previewNone":"Изменений не обнаружено.","previewRemoved":"Удалено","previewTitle":"Предпросмотр изменений","refresh":"Обновить статус","refreshAll":"Обновить всё","removeAlias":"Удалить алиас","removeMissing":"Подтвердить удаление устаревших","report":"Итог запуска","resolveAlias":"Проверить","resolvingAlias":"Вычисление…","restartRequired":" (требуется перезапуск)","rollback":"Откатить каталог","rollbackConfirm":"Откатить каталог этого провайдера к выбранному снимку?","run":"Найти модели","running":"синхронизация…","savePolicy":"Сохранить политику","saveScheduler":"Сохранить расписание","saveSelection":"Сохранить и применить выбор","saveWebhook":"Сохранить настройки вебхука","scheduleEnabled":"Включить фоновое расписание","scheduler":"Планировщик","schedulerOff":"выключен","schedulerOn":"включён","schedulerSaved":"Сохранено","schedulerSettings":"Настройка планировщика","scopeUnavailable":"Служба настроек недоступна.","searchPlaceholder":"Поиск по ID / имени / тегу","selectAllFiltered":"Выбрать все показанные","selectAtLeastOne":"Выберите хотя бы одну модель или используйте вариант «Все модели».","selectModels":"Выбор моделей","selected":"выбрано","showMore":"Показать ещё (%d)","showSettings":"Показать настройки","showingCount":"Показано %d из %d моделей","sortContext":"Контекст ↓","sortDate":"Новые ↓","sortName":"Имя А→Я","sortPrice":"Цена ↑","stale":"устарела","success":"успех","targetModel":"Целевая модель","targetProvider":"Провайдер","testWebhook":"Проверить вебхук","title":"Синхронизация моделей","upToDate":"Установлена актуальная версия","updateAvailable":"Доступна новая версия: ","updateFailed":"Ошибка обновления: ","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до ","updaterCheck":"Проверить обновления","updaterChecking":"Проверка…","updaterTitle":"Обновление плагина","updating":"Обновление…","virtualAliasDesc":"Динамические псевдонимы направляют запросы к оптимальным моделям по задержке, цене и проверкам доступности.","virtualAliases":"Виртуальные смарт-псевдонимы","webhookFailed":"Ошибка проверки вебхука: %s","webhookSaved":"Настройки вебхука сохранены","webhookSuccess":"Вебхук успешно протестирован","webhookTesting":"Проверка…"}}
@@ -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":"Остывание (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
+ {"dsh-subscriptions":{"accountLabel":"Аккаунт","accountStatusActive":"Активен","accountStatusExpired":"Истёк срок действия","accountStatusQuarantined":"На карантине (ошибки авторизации)","accountStatusRateLimited":"Лимит запросов исчерпан","activeSubscriptions":"Активные подписки","addAccount":"Добавить аккаунт","advancedSettings":"Расширенные настройки и мониторинг","autoLoopback":"Автоматический перехват токена (Loopback)","autoLoopbackHint":"Слушать локальный порт обратного вызова для автоматического получения токенов OAuth без ручного копирования.","cacheAnalyze":"Анализ кэша сессии","cacheHitRate":"Коэффициент попадания в кэш","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":"Управление подписками","healthAccount":"Аккаунт","healthActive":"Активен","healthIdle":"В ожидании","healthLatency":"Задержка","healthMatrix":"Матрица здоровья и прогноз квоты","healthQuarantine":"Карантин","healthQuota":"Квота / Запас","healthScore":"Здоровье","healthStatus":"Статус","healthWarmup":"Прогрев","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":"Токен истёк. Требуется повторная авторизация.","tokensSaved":"Сэкономлено токенов","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":"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
+ {"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":"Вверх","updaterCheck":"Проверить обновления","updaterChecking":"Проверка…","updaterCurrent":"Текущая версия","updaterFailed":"Ошибка проверки обновления: ","updaterLatest":"Последняя версия","updaterSuccess":"Плагин успешно обновлён! Перезапустите службу DSH для применения.","updaterTitle":"Обновление плагина","updaterUpToDate":"Установлена актуальная версия","updaterUpdateNow":"Обновить до v{version}","updaterUpdating":"Обновление…","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":"Добавить провайдера","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
+ {"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":"Разговорный сленг","jargonPlaceholder":"k8s -> kubernetes\npr -> pull request","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-smart-restart":{"delayMs":"Задержка перед перезапуском (мс)","delayMsHint":"Достаточно времени, чтобы ответ успел дойти до вызывающей стороны.","enabled":"Включено","enabledHint":"Регистрировать инструменты и проверять каждый запуск.","expectTools":"Требуемые инструменты (через запятую)","expectToolsHint":"Отсутствие инструмента делает вердикт запуска деградировавшим.","invalid":"Введите число, а не текст.","maxRestarts":"Лимит перезапусков","maxRestartsHint":"Отклонять перезапуск при превышении этого количества внутри окна.","restartMode":"Режим перезапуска","restartModeHint":"«kill» завершает процесс и доверяет перезапуск systemd (без привилегий); «systemctl» выполняет systemctl restart <unit>.","save":"Сохранить","saved":"Сохранено","stateDir":"Директория состояния","stateDirHint":"Внутри $DSH_HOME: маркер загрузки, намерение, последний отчёт, история.","summary":"Проверенный перезапуск: загрузка проверяется, вердикт возвращается в запросившую сессию, работа возобновляется.","target":"Куда отправлять отчёт","targetHint":"requester, primary или идентификатор сессии.","title":"Защита перезапуска","toolEnabled":"Предоставлять инструменты","toolEnabledHint":"dsh_restart и dsh_restart_status.","unavailable":"Служба настроек недоступна, форма не может быть сохранена прямо сейчас.","unit":"Юнит systemd","unitHint":"Если пусто — юнит определяется автоматически из cgroup процесса.","windowMs":"Окно мониторинга (мс)","windowMsHint":"Временное окно для защиты от циклических перезапусков."}}
1
+ {"dsh-smart-restart":{"delayMs":"Задержка перед перезапуском (мс)","delayMsHint":"Достаточно времени, чтобы ответ успел дойти до вызывающей стороны.","enabled":"Включено","enabledHint":"Регистрировать инструменты и проверять каждый запуск.","expectTools":"Требуемые инструменты (через запятую)","expectToolsHint":"Отсутствие инструмента делает вердикт запуска деградировавшим.","invalid":"Введите число, а не текст.","loading":"Загрузка настроек…","maxRestarts":"Лимит перезапусков","maxRestartsHint":"Отклонять перезапуск при превышении этого количества внутри окна.","restartMode":"Режим перезапуска","restartModeHint":"«kill» завершает процесс и доверяет перезапуск systemd (без привилегий); «systemctl» выполняет systemctl restart <unit>.","save":"Сохранить","saved":"Сохранено","stateDir":"Директория состояния","stateDirHint":"Внутри $DSH_HOME: маркер загрузки, намерение, последний отчёт, история.","summary":"Проверенный перезапуск: загрузка проверяется, вердикт возвращается в запросившую сессию, работа возобновляется.","target":"Куда отправлять отчёт","targetHint":"requester, primary или идентификатор сессии.","title":"Защита перезапуска","toolEnabled":"Предоставлять инструменты","toolEnabledHint":"dsh_restart и dsh_restart_status.","unavailable":"Служба настроек недоступна, форма не может быть сохранена прямо сейчас.","unit":"Юнит systemd","unitHint":"Если пусто — юнит определяется автоматически из cgroup процесса.","windowMs":"Окно мониторинга (мс)","windowMsHint":"Временное окно для защиты от циклических перезапусков."}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-session-search":{"badge.concurrency":"Параллелизм: Безопасно","badge.engine":"Движок: SQLite FTS5 (ядро)","badge.tool":"Инструмент: session_search","badge.version":"Версия: v0.1.7","btn.save":"Сохранить настройки","btn.saving":"Сохранение…","desc.header":"Настройка лимитов результатов, длины сниппетов и таймаутов инструмента автономного поиска session_search.","error.maxResults":"Число результатов должно быть целым числом от 1 до 100.","error.snippetLength":"Длина сниппета должна быть целым числом от 50 до 1000.","error.timeoutMs":"Таймаут должен быть целым числом от 1000 до 120000 мс.","field.maxResults":"Максимум результатов по умолчанию","field.maxResults.desc":"Максимальное число найденных сессий на запрос (1–100, по умолчанию: 20).","field.snippetLength":"Длина контекстного фрагмента","field.snippetLength.desc":"Количество символов фрагмента вокруг совпадения (50–1000, по умолчанию: 200).","field.timeoutMs":"Таймаут выполнения (мс)","field.timeoutMs.desc":"Предельное время совместного поиска в миллисекундах (1000–120000, по умолчанию: 30000).","status.error":"Ошибка валидации параметров: ","status.saved":"Настройки успешно сохранены.","subtitle":"Инструмент семантического поиска в памяти агента на базе SQLite FTS5 ядра","title":"Полнотекстовый поиск по сессиям","updater.desc":"Плагин использует движок sessionQuery ядра DSH. Обновление выполняется через CLI: dsh plugin --profile web add @goodandready/dsh-session-search@latest","updater.title":"Обновление и обслуживание"},"dsh-session-search":{"badge.concurrency":"Параллелизм: Безопасно","badge.engine":"Движок: SQLite FTS5 (ядро)","badge.tool":"Инструмент: session_search","badge.version":"Версия: v0.1.7","btn.save":"Сохранить настройки","btn.saving":"Сохранение…","desc.header":"Настройка лимитов результатов, длины сниппетов и таймаутов инструмента автономного поиска session_search.","error.maxResults":"Число результатов должно быть целым числом от 1 до 100.","error.snippetLength":"Длина сниппета должна быть целым числом от 50 до 1000.","error.timeoutMs":"Таймаут должен быть целым числом от 1000 до 120000 мс.","field.maxResults":"Максимум результатов по умолчанию","field.maxResults.desc":"Максимальное число найденных сессий на запрос (1–100, по умолчанию: 20).","field.snippetLength":"Длина контекстного фрагмента","field.snippetLength.desc":"Количество символов фрагмента вокруг совпадения (50–1000, по умолчанию: 200).","field.timeoutMs":"Таймаут выполнения (мс)","field.timeoutMs.desc":"Предельное время совместного поиска в миллисекундах (1000–120000, по умолчанию: 30000).","status.error":"Ошибка валидации параметров: ","status.saved":"Настройки успешно сохранены.","subtitle":"Инструмент семантического поиска в памяти агента на базе SQLite FTS5 ядра","title":"Полнотекстовый поиск по сессиям","updater.desc":"Плагин использует движок sessionQuery ядра DSH. Обновление выполняется через CLI: dsh plugin --profile web add @goodandready/dsh-session-search@latest","updater.title":"Обновление и обслуживание"}}
@@ -0,0 +1 @@
1
+ {"@michengai/dsh-agency-agents":{"btn.refresh":"Обновить","button.title":"Вызов эксперта","custom.avatar":"Аватар","custom.base":"Встроенный","custom.cancel":"Отмена","custom.conflict":"Параметры были изменены в другом окне. Ваш черновик сохранён в этой форме. Загрузите актуальное содержимое и сравните перед сохранением.","custom.continueAsNew":"Продолжить как нового эксперта","custom.copy":"Создать пользовательскую копию","custom.delete":"Удалить эксперта","custom.deleteHint":"Данные эксперта будут безвозвратно удалены. История сообщений сохранится.","custom.deleteTitle":"Удалить эксперта","custom.deleted":"Эксперт безвозвратно удалён.","custom.description":"Краткое описание","custom.descriptionPlaceholder":"В чём специализируется этот эксперт?","custom.discard":"Отменить изменения","custom.discardTitle":"Сбросить несохранённые изменения?","custom.division":"Категория","custom.edit":"Редактировать эксперта","custom.emptyHint":"Превратите свой опыт и методики в эксперта, которого можно вызывать по имени.","custom.emptyTitle":"Создайте первого эксперта","custom.enableHint":"После включения эксперт доступен через @. Перезагрузка не требуется.","custom.intro":"Определите обязанности и подход к работе, чтобы эксперт действовал по вашим правилам.","custom.invalid":"Проверьте обязательные поля и их длину.","custom.keep":"Продолжить редактирование","custom.keepDraft":"Оставить мой черновик","custom.latestContent":"Текущее сохранённое содержимое","custom.name":"Имя эксперта","custom.nameConflict":"Конфликт имён","custom.nameConflictHint":"Эксперты с конфликтующими именами не могут быть вызваны. Переименуйте или удалите эксперта.","custom.namePlaceholder":"Например: Консультант по аренде недвижимости","custom.new":"Новый эксперт","custom.prompt":"Промпт эксперта","custom.promptPlaceholder":"Опишите обязанности, методы анализа и формат ответа…","custom.required":"Обязательно","custom.reviewDeleted":"Этот эксперт был удалён. Оставьте черновик и сохраните как нового эксперта.","custom.reviewHint":"Продолжите редактирование после выбора, затем нажмите Сохранить.","custom.reviewLatest":"Загрузить актуальные данные","custom.reviewNew":"Каталог обновлён. Черновик нового эксперта сохранён без изменений.","custom.save":"Сохранить","custom.saveChanges":"Сохранить изменения","custom.saveEnable":"Сохранить и включить","custom.saved":"Сохранено. Активные эксперты доступны через @ и кнопку экспертов.","custom.saving":"Сохранение…","custom.source":"Пользовательский","custom.template":"Использовать шаблон","custom.templateText":"Вы — профильный эксперт-консультант.\n\nОбязанности\nОпределите вашу область и решаемые задачи.\n\nПодход\nСначала вникните в контекст и цели. Задавайте вопросы при нехватке данных.\n\nРезультат\nПредоставляйте выводы, факты и конкретные шаги. Не выдумывайте факты.","custom.unavailable":"Эксперт в черновике отключён, удалён или конфликтует по имени.","custom.useLatest":"Использовать актуальное содержимое","discovery.conflict":"Конфликт имён","discovery.empty":"Нет активных экспертов. Введите ключевое слово для поиска.","discovery.enableSelect":"Включить и выбрать","discovery.enabledInsertFailed":"Эксперт включён, но не удалось вставить ссылку. Попробуйте выбрать снова.","discovery.exampleFailed":"Эксперт выбран, но пример задачи не вставился. Введите задачу вручную.","discovery.noResults":"Нет подходящих экспертов. Попробуйте другие ключевые слова.","discovery.refine":"Показано 8 наиболее подходящих экспертов. Уточните запрос ключевыми словами.","discovery.search":"Поиск по имени, сфере или ключевым словам","discovery.working":"Обработка…","division.academic":"Академические","division.company":"Руководство компанией","division.design":"Дизайн","division.engineering":"Инженерия и разработка","division.finance":"Финансы","division.game-development":"Разработка игр","division.gis":"Геоинформационные системы","division.healthcare":"Здравоохранение","division.hr":"Управление персоналом","division.legal":"Юриспруденция","division.marketing":"Маркетинг","division.paid-media":"Платный трафик и реклама","division.product":"Продуктовый менеджмент","division.project-management":"Управление проектами","division.research":"Исследования","division.sales":"Продажи","division.security":"Информационная безопасность","division.spatial-computing":"Пространственные вычисления","division.specialized":"Специализированные","division.supply-chain":"Цепочки поставок","division.support":"Клиентская поддержка","division.testing":"Тестирование","error.conflict":"Параметры были изменены в другом окне.","error.conflict.refreshFailed":"Параметры были изменены в другом окне, но обновление не удалось.","error.conflict.refreshed":"Параметры были обновлены из актуального состояния.","error.insertFailed":"Не удалось вставить ссылку на эксперта. Попробуйте снова.","error.personaSourceUnavailable":"Сервис подсказок экспертов ещё не готов, повторите попытку позже.","error.promptCopy":"Не удалось скопировать промпт. Проверьте права на буфер обмена.","settings.copyPrompt":"Копировать","settings.copyPromptTitle":"Скопировать промпт","settings.copySuccess":"Скопировано","settings.disabled":"Отключено","settings.empty":"Нет подходящих экспертов. Попробуйте другое слово или переключитесь на {all}.","settings.empty.reset":"Сбросить фильтры","settings.enabled":"Включено","settings.feedback":"Обратная связь","settings.filter.allCategories":"Все категории","settings.filter.allSources":"Все источники","settings.filter.allStatuses":"Все статусы","settings.filter.category":"Категория","settings.filter.source":"Источник","settings.filter.status":"Статус","settings.loading":"Загрузка экспертов…","settings.nav":"Эксперты","settings.promptClose":"Закрыть","settings.promptTitle":"Промпт для {name}","settings.search":"Поиск","settings.search.clear":"Очистить поиск","settings.search.placeholder":"Поиск экспертов, обязанностей или сфер","settings.title":"Эксперты","settings.viewProject":"GitHub","settings.viewPrompt":"Просмотр","settings.viewPromptTitle":"Просмотреть промпт","summary.enabledPrefix":"Активно","summary.total.one":"эксперт","summary.total.other":"экспертов"},"agency":{"btn.refresh":"Обновить","button.title":"Вызов эксперта","custom.avatar":"Аватар","custom.base":"Встроенный","custom.cancel":"Отмена","custom.conflict":"Параметры были изменены в другом окне. Ваш черновик сохранён в этой форме. Загрузите актуальное содержимое и сравните перед сохранением.","custom.continueAsNew":"Продолжить как нового эксперта","custom.copy":"Создать пользовательскую копию","custom.delete":"Удалить эксперта","custom.deleteHint":"Данные эксперта будут безвозвратно удалены. История сообщений сохранится.","custom.deleteTitle":"Удалить эксперта","custom.deleted":"Эксперт безвозвратно удалён.","custom.description":"Краткое описание","custom.descriptionPlaceholder":"В чём специализируется этот эксперт?","custom.discard":"Отменить изменения","custom.discardTitle":"Сбросить несохранённые изменения?","custom.division":"Категория","custom.edit":"Редактировать эксперта","custom.emptyHint":"Превратите свой опыт и методики в эксперта, которого можно вызывать по имени.","custom.emptyTitle":"Создайте первого эксперта","custom.enableHint":"После включения эксперт доступен через @. Перезагрузка не требуется.","custom.intro":"Определите обязанности и подход к работе, чтобы эксперт действовал по вашим правилам.","custom.invalid":"Проверьте обязательные поля и их длину.","custom.keep":"Продолжить редактирование","custom.keepDraft":"Оставить мой черновик","custom.latestContent":"Текущее сохранённое содержимое","custom.name":"Имя эксперта","custom.nameConflict":"Конфликт имён","custom.nameConflictHint":"Эксперты с конфликтующими именами не могут быть вызваны. Переименуйте или удалите эксперта.","custom.namePlaceholder":"Например: Консультант по аренде недвижимости","custom.new":"Новый эксперт","custom.prompt":"Промпт эксперта","custom.promptPlaceholder":"Опишите обязанности, методы анализа и формат ответа…","custom.required":"Обязательно","custom.reviewDeleted":"Этот эксперт был удалён. Оставьте черновик и сохраните как нового эксперта.","custom.reviewHint":"Продолжите редактирование после выбора, затем нажмите Сохранить.","custom.reviewLatest":"Загрузить актуальные данные","custom.reviewNew":"Каталог обновлён. Черновик нового эксперта сохранён без изменений.","custom.save":"Сохранить","custom.saveChanges":"Сохранить изменения","custom.saveEnable":"Сохранить и включить","custom.saved":"Сохранено. Активные эксперты доступны через @ и кнопку экспертов.","custom.saving":"Сохранение…","custom.source":"Пользовательский","custom.template":"Использовать шаблон","custom.templateText":"Вы — профильный эксперт-консультант.\n\nОбязанности\nОпределите вашу область и решаемые задачи.\n\nПодход\nСначала вникните в контекст и цели. Задавайте вопросы при нехватке данных.\n\nРезультат\nПредоставляйте выводы, факты и конкретные шаги. Не выдумывайте факты.","custom.unavailable":"Эксперт в черновике отключён, удалён или конфликтует по имени.","custom.useLatest":"Использовать актуальное содержимое","discovery.conflict":"Конфликт имён","discovery.empty":"Нет активных экспертов. Введите ключевое слово для поиска.","discovery.enableSelect":"Включить и выбрать","discovery.enabledInsertFailed":"Эксперт включён, но не удалось вставить ссылку. Попробуйте выбрать снова.","discovery.exampleFailed":"Эксперт выбран, но пример задачи не вставился. Введите задачу вручную.","discovery.noResults":"Нет подходящих экспертов. Попробуйте другие ключевые слова.","discovery.refine":"Показано 8 наиболее подходящих экспертов. Уточните запрос ключевыми словами.","discovery.search":"Поиск по имени, сфере или ключевым словам","discovery.working":"Обработка…","division.academic":"Академические","division.company":"Руководство компанией","division.design":"Дизайн","division.engineering":"Инженерия и разработка","division.finance":"Финансы","division.game-development":"Разработка игр","division.gis":"Геоинформационные системы","division.healthcare":"Здравоохранение","division.hr":"Управление персоналом","division.legal":"Юриспруденция","division.marketing":"Маркетинг","division.paid-media":"Платный трафик и реклама","division.product":"Продуктовый менеджмент","division.project-management":"Управление проектами","division.research":"Исследования","division.sales":"Продажи","division.security":"Информационная безопасность","division.spatial-computing":"Пространственные вычисления","division.specialized":"Специализированные","division.supply-chain":"Цепочки поставок","division.support":"Клиентская поддержка","division.testing":"Тестирование","error.conflict":"Параметры были изменены в другом окне.","error.conflict.refreshFailed":"Параметры были изменены в другом окне, но обновление не удалось.","error.conflict.refreshed":"Параметры были обновлены из актуального состояния.","error.insertFailed":"Не удалось вставить ссылку на эксперта. Попробуйте снова.","error.personaSourceUnavailable":"Сервис подсказок экспертов ещё не готов, повторите попытку позже.","error.promptCopy":"Не удалось скопировать промпт. Проверьте права на буфер обмена.","settings.copyPrompt":"Копировать","settings.copyPromptTitle":"Скопировать промпт","settings.copySuccess":"Скопировано","settings.disabled":"Отключено","settings.empty":"Нет подходящих экспертов. Попробуйте другое слово или переключитесь на {all}.","settings.empty.reset":"Сбросить фильтры","settings.enabled":"Включено","settings.feedback":"Обратная связь","settings.filter.allCategories":"Все категории","settings.filter.allSources":"Все источники","settings.filter.allStatuses":"Все статусы","settings.filter.category":"Категория","settings.filter.source":"Источник","settings.filter.status":"Статус","settings.loading":"Загрузка экспертов…","settings.nav":"Эксперты","settings.promptClose":"Закрыть","settings.promptTitle":"Промпт для {name}","settings.search":"Поиск","settings.search.clear":"Очистить поиск","settings.search.placeholder":"Поиск экспертов, обязанностей или сфер","settings.title":"Эксперты","settings.viewProject":"GitHub","settings.viewPrompt":"Просмотр","settings.viewPromptTitle":"Просмотреть промпт","summary.enabledPrefix":"Активно","summary.total.one":"эксперт","summary.total.other":"экспертов"}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-russian-lang",
3
- "version": "0.3.12",
3
+ "version": "0.3.14",
4
4
  "description": "Russian localization for DeepSeek Harness (DSH v0.1.7-rc.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.7-rc.1 core support (terminal, archive, command palette, Auto review, trajectory, PTC/Creator presets) and complete GoodAndReady plugin catalog (subscriptions, tts, image-gen, voice, key-limits, notify, commandcode, plugin-console).",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",