@goodandready/dsh-russian-lang 0.2.20 → 0.2.22

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
- {"betterSidebar":{"addPluginsBrowseMore":"Ещё плагины на GitHub (тема: dsh-better-sidebar)","addPluginsEmpty":"Подборки пока нет — опубликуйте свой плагин под темой на GitHub","addPluginsNoMatch":"Нет подходящих плагинов","addPluginsRecommended":"Рекомендуемые плагины","addPluginsSearch":"Поиск по названию или описанию плагина…","addPluginsTabCard":"Добавить плагины вкладок","addPluginsTabCardDesc":"Зарегистрировать новую страницу панели","addPluginsTabDesc":"Страницы панели (вкладки) расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addPluginsViewerCard":"Добавить плагины предпросмотра","addPluginsViewerCardDesc":"Зарегистрировать просмотр нового типа файлов","addPluginsViewerDesc":"Просмотрщики файлов расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addToConversation":"Добавить в диалог","binary":"Двоичный файл, предпросмотр недоступен","binaryNoPreview":"Этот тип файлов нельзя показать","branch":"Ветка","brokenSymlink":"Битая ссылка","browser":"Браузер","browserBack":"Назад","browserBlockedLoopback":"Заблокировано: локальные и внутренние адреса здесь открывать нельзя","browserBlockedScheme":"Заблокировано: разрешены только адреса http и https","browserEmbedAnyway":"Всё равно загрузить","browserEmbedBlocked":"{host} запрещает встраивание","browserEmbedBlockedDesc":"Сайт запрещает показывать себя внутри других страниц (X-Frame-Options / frame-ancestors), поэтому в панели он не откроется. Откройте его в обычном браузере.","browserForward":"Вперёд","browserGo":"Перейти","browserInvalid":"Неверный адрес","browserNoSandboxWarning":"Песочница выключена: страница работает с полными правами интерфейса (включить обратно можно в настройках)","browserOpenExternal":"Открыть в браузере","browserPlaceholder":"Введите адрес, например example.com","browserStart":"Введите адрес, чтобы начать (режим песочницы)","cancel":"Отмена","changes":"Изменения","changesAdditions":"+{n} добавлено","changesClosePreview":"Закрыть просмотр","changesCollapseAll":"Свернуть все файлы","changesContext":"контекст","changesCopied":"Diff скопирован в буфер обмена","changesDeletions":"-{n} удалено","changesDiff":"Различия (Diff)","changesDiffOpenDesc":"Где открывать diff при разворачивании во вкладку","changesDiffOpenFloat":"Свободное окно","changesDiffOpenFloatDesc":"Плавающее окно по центру экрана — перемещайте, меняйте размер, держите поверх","changesDiffOpenPane":"Панель","changesDiffOpenPaneDesc":"Закреплено под исходной панелью (в стиле сплита VS Code)","changesDiffOpenTitle":"Открывать diff как","changesDiscard":"Отменить изменения","changesDiscardConfirm":"Отменить изменения в файле «{file}»? Действие необратимо.","changesEdit":"Правка","changesEmpty":"Нет изменённых файлов в текущей сессии.","changesError":"ошибка","changesExpandAll":"Развернуть все файлы","changesExportPatch":"Экспорт патча (.patch)","changesFilesCount":"Изменено файлов: {n}","changesFilter":"Фильтр изменений…","changesFilterAll":"Все","changesFilterEmpty":"Нет операций этого типа","changesFold":"Строк: {count}… нажмите, чтобы развернуть","changesFoldLoading":"Загрузка сворачивания изменений…","changesFoldUnavailable":"Сворачивание изменений недоступно","changesFontSize":"Размер шрифта diff","changesGitLens":"Git","changesHtmlRaw":"Исходный HTML","changesHtmlRender":"Рендеринг HTML","changesInlineDiff":"Строчный diff","changesJumpToLine":"Перейти к строке","changesLineNumbers":"Номера строк","changesLoadError":"Записи файлов сессии сейчас недоступны","changesLoading":"Анализ изменений файлов…","changesMdRaw":"Исходный Markdown","changesMdReading":"Чтение Markdown…","changesOpenDiffTab":"Открыть во вкладке diff","changesOpenFile":"Открыть изменённый файл","changesPdfRaw":"Исходный PDF","changesPdfRender":"Просмотр PDF","changesPriorUnknown":"Предыдущее содержимое вне окна загрузки; показано как полностью добавленное","changesRead":"Чтение","changesRedactBanner":"Скрыто","changesRedactOff":"Маскирование выключено: содержимое файла отображается без купюр; нажмите для включения","changesRedactOffLabel":"Маскирование выкл","changesRedactOn":"Маскирование включено: секреты скрыты как [REDACTED]; нажмите для выключения (на свой риск)","changesRedactOnLabel":"Маскирование","changesResizePreview":"Изменить размер","changesRevertAll":"Откатить все изменения","changesRunning":"выполняется","changesSaved":"Настройки инспектора сохранены","changesSessionEmpty":"В этой сессии пока не было операций с файлами","changesSessionLens":"Сессия","changesSideBySide":"Параллельный diff","changesSplit":"Раздельный diff","changesStageAll":"Подготовить все","changesSubtitle":"Просмотр и анализ модификаций файлов рабочей области","changesSyntaxHighlight":"Подсветка синтаксиса","changesTitle":"Инспектор изменений","changesUnified":"Единый diff","changesUnstageAll":"Снять подготовку","changesViewMode":"Режим отображения изменений","changesWhitespace":"Игнорировать пробелы","changesWordDiff":"Пословный diff","changesWrite":"Запись","checkoutError":"Переключить ветку не удалось","cherryPickCommit":"Перенести коммит","cherryPickDesc":"Применить изменения «{subject}» к текущей ветке.","cherryPickTitle":"Перенос коммита","close":"Закрыть","closeLeftTabs":"Закрыть вкладки слева","closeOtherTabs":"Закрыть остальные вкладки","closePinnedTerminal":"Закрыть терминал","closeRightTabs":"Закрыть вкладки справа","collapse":"Свернуть панель","collapseBottomPanel":"Свернуть нижнюю панель","commit":"Закоммитить","commitError":"Коммит не удался","commitPlaceholder":"Сообщение коммита (Ctrl+Enter)","copied":"Скопировано","copy":"Копировать","copyAbsolute":"Копировать абсолютный путь","copyFullHash":"Копировать полный хеш","copyInstall":"Копировать команду установки","copyRelative":"Копировать относительный путь","copyShortHash":"Копировать короткий хеш","copySubject":"Копировать заголовок","delete":"Удалить","deleteDescDir":"Каталог и всё его содержимое будут безвозвратно удалены. Это действие нельзя отменить.","deleteDescFile":"Файл будет безвозвратно удалён. Это действие нельзя отменить.","deleteTitle":"Удалить «{name}»?","diffAdded":"Добавлено","diffBinary":"Двоичный","diffCollapse":"Свернуть","diffDeleted":"Удалено","diffEmpty":"Текстовых изменений нет","diffExpand":"Показать ещё строк: {count}","diffLoadError":"Не удалось загрузить различия","diffRenamed":"Переименовано","discard":"Отменить изменения","discardDesc":"Изменения «{path}» в рабочем дереве будут отброшены без возможности вернуть.","discardTitle":"Отмена изменений","disconnected":"Терминал отключился, переподключаемся…","dismiss":"Отклонить","dockToSidebar":"Вернуть в боковую панель","download":"Скачать","downloadToView":"Скачать, чтобы посмотреть","edit":"Изменить","editor":"Редактор","editorEmptyHint":"Выберите файл в дереве или введите путь выше, чтобы открыть предпросмотр","editorExplorer":"Как открывать файлы","editorExplorerDesc":"Управляет поведением при открытии файлов","editorExplorerMerged":"В одном окне","editorExplorerMergedDesc":"Файлы сменяются в том же окне; новые окна открываются с деревом","editorExplorerSplit":"Раздельно","editorExplorerSplitDesc":"Окно без пути — это отдельный проводник (только дерево); каждый файл открывается своим окном (дерево пристыковано и по умолчанию закрыто)","editorPathPlaceholder":"Путь к файлу (от папки сессии или абсолютный), Enter — открыть","editorSearchNoResults":"Подходящих файлов нет","editorSearchPlaceholder":"Поиск файлов по имени…","editorSearchTruncated":"Слишком много совпадений — показана часть","editorTreeToggle":"Дерево файлов","error":"Не удалось загрузить","exited":"Процесс терминала завершился","expand":"Развернуть панель","expandBottomPanel":"Развернуть нижнюю панель","explorer":"Проводник","fenceDisableAction":"Отключить ограничение рабочей области","fenceErrorReason":"Этот путь находится за пределами рабочей области сессии и заблокирован защитным экраном","files":"Файлы","floatDropHint":"Отпустите, чтобы открыть в свободном окне","git":"Контроль версий","gitDetail":"Посмотреть изменения","guideDescBrowser":"Встроенный браузер для открытия ссылок непосредственно из чата","guideDescFiles":"Просмотр дерева рабочей области; клик по файлу открывает предпросмотр или редактор","guideDescGit":"Изменения Git и правки файлов текущей сессии на одной вкладке","guideDescSidechat":"Независимая ветка диалога, наследующая контекст текущей сессии","guideDescSubagent":"Топология субагентов и фоновые задачи в реальном времени","guideDescTerminal":"Полноценный терминал (xterm + pty) с автоматическим переподключением","hiddenFiles":"Скрытые файлы","history":"История","historyLoadError":"Не удалось догрузить историю","htmlNoSandboxWarning":"Песочница выключена: этот HTML работает с полными правами интерфейса (включить обратно можно в настройках)","jobDurationHours":"{hours} ч {minutes} мин","jobDurationMinutes":"{minutes} мин {seconds} с","jobDurationSeconds":"{seconds} с","jobHideOutput":"Скрыть вывод","jobKill":"Прервать","jobKillConfirm":"Нажмите ещё раз для подтверждения","jobKillError":"Прервать не удалось","jobNoOutput":"Вывода пока нет","jobNotReadYet":"Ждём, пока модель прочитает эту задачу; вывод появится здесь после вызова job_output","jobOutputError":"Не удалось прочитать вывод","jobOutputTruncated":"Вывод обрезан","jobStatusCompleted":"Завершена","jobStatusFailed":"Ошибка","jobStatusKilled":"Прервана","jobStatusRunning":"Выполняется","jobStatusStopping":"Останавливается","jobViewOutput":"Посмотреть вывод","jobs":"Фоновые задачи","jobsCount":"фоновых задач: {count}","jobsCountRunning":"фоновых задач: {count} · выполняется: {running}","loadMore":"Показать ещё","loading":"Загрузка…","mermaidError":"Ошибка рендеринга Mermaid","mermaidZoomHint":"Прокрутка для масштабирования · перетаскивание для перемещения · Esc для закрытия","mermaidZoomIn":"Увеличить","mermaidZoomOut":"Уменьшить масштаб","mermaidZoomReset":"Сбросить","moveToFreeWindow":"Переместить в свободное окно","newFile":"Новый файл","newTab":"Новая вкладка","newTerminal":"Новый терминал","noChanges":"Изменений нет","noSession":"Выберите диалог, чтобы пользоваться панелью","notRepo":"Эта папка не является репозиторием git","openEditor":"Открыть редактор","openExplorer":"Проводник","openFileNewTab":"Открыть в новой вкладке","openFileSide":"Открыть сбоку","openGit":"Панель git","openPlugin":"Открыть","openSubagent":"Задачи","openWithCursor":"Cursor","openWithExplorer":"Файловый менеджер","openWithMenu":"Открыть с помощью","openWithSettingsAdd":"Добавить","openWithSettingsCustomDesc":"Имя + шаблон URL (заполнитель {path}) + флаг семейства VSCode; в удалённом режиме только редакторы семейства VSCode могут открыть удалённый путь","openWithSettingsCustomTitle":"Пользовательские редакторы","openWithSettingsFamily":"Семейство VSCode","openWithSettingsFamilyDesc":"Этот редактор понимает URL-адреса VSCode (поддерживает открытие через SSH-удалённое подключение)","openWithSettingsInvalidHint":"Редакторы без имени или шаблоны без {path} / scheme:// не отображаются в меню","openWithSettingsName":"Имя","openWithSettingsRemove":"Удалить","openWithSettingsSshDesc":"Пусто = локальная рабочая область; с user@host или SSH-алиасом открыватели семейства VSCode переключаются на протокол vscode-remote/ssh-remote, а Файловый менеджер / Zed / пользовательские редакторы вне семейства VSCode скрываются из меню","openWithSettingsSshPlaceholder":"пользователь@хост или алиас SSH","openWithSettingsSshTitle":"SSH удаленный хост","openWithSettingsTemplate":"напр. cursor://file/{path}","openWithSshSuffix":"(SSH)","openWithVscode":"VS Code","openWithZed":"Zed","parent":"Родительская папка","pinAgentTerminal":"Закрепить терминал агента","pinOpenWith":"Закрепить в меню","pinTerminal":"Закрепить терминал","pinToGlobal":"Закрепить для всех","pinToWorkspace":"Закрепить в рабочей области","pinnedRailLabel":"Закреплённые терминалы","pinnedTerminalKindAgent":"Терминал агента","pinnedTerminalKindUi":"Терминал интерфейса","pinnedTerminalScopeGlobal":"Закреплено глобально","pinnedTerminalScopeWorkspace":"Закреплено в рабочей области","pinnedTerminalTooltip":"{kind} · {scope} · {cwd}","pluginBetterOverleafDesc":"Вкладка Overleaf для better-sidebar: синхронизация проектов и предпросмотр файлов","pluginBetterOverleafName":"Вкладка Overleaf (dsh-better-overleaf)","pluginBilingualReaderDesc":"Чтение PDF-статей в боковой панели DSH с контекстным переводом через LLM","pluginBilingualReaderName":"Двуязычный ридер (dsh-bilingual-reader)","pluginCodeNavDesc":"Навигатор по коду: подсветка синтаксиса, дерево символов (классы, методы, переменные) и поиск по файлу","pluginCodeNavName":"Навигатор предпросмотра кода","pluginDocsPanelDesc":"Глобальные документы в боковой панели DSH: читайте свои заметки в формате Markdown из любого рабочего пространства — список файлов, структура, открытие в Chrome / VS Code и кнопки копирования; директория документов настраивается (по умолчанию ~/.dsh/docs)","pluginDocsPanelName":"Глобальная документация (dsh-docs-panel)","pluginEgoBrowserDesc":"Браузер агента для DeepSeek Harness: 32 инструмента ego_* управляют реальным Chromium, с нативной боковой панелью \"ego browser\", которая предоставляет живой просмотр каждой страницы, посещаемой агентом — вы можете кликать, перетаскивать и печатать, чтобы взять управление на себя. Регистрирует вкладку автоматически, если присутствует better-sidebar, в противном случае переходит на плавающий пузырь.","pluginEgoBrowserName":"Браузер агента (ego-browser)","pluginFlowglassDesc":"Граф потока живого сеанса с тремя полосами для пользователя, ассистента и вызовов инструментов, а также параллельными группами, ветвями под-агентов, детализацией и текущим статусом; регистрирует вкладку Flowglass в нативном режиме при установке better-sidebar и сохраняет отдельный выдвижной ящик в качестве резерва.","pluginFlowglassName":"Flowglass (dsh-flowglass)","pluginGitForgeDesc":"Вкладка Git Forge: библиотека аккаунтов GitHub/Gitea (и других форков) + права на проекты + политика жесткого пуша; токены остаются в локальных секретах (никогда в контексте модели); инструмент GitForge только для чтения и помощник для HTTPS-учетных данных агента","pluginGitForgeName":"Учётные данные Git (dsh-git-forge)","pluginGitRemotesDesc":"Вкладка Git Remotes: ветка, upstream, отставание и опережение, fetch (с необязательным prune), pull только ff-only и push после подтверждения во вкладке. Не заменяет встроенную вкладку git со стадированием и коммитами, не предлагает force-push и не даёт модели инструмент автопуша","pluginGitRemotesName":"Удалённые репозитории Git (dsh-git-remotes)","pluginGithubWorkbenchDesc":"Вкладка GitHub Workbench: дерево репозитория, Issues, PR и Actions с полной поддержкой управления","pluginGithubWorkbenchName":"GitHub Workbench (dsh-github-workbench)","pluginMdExportDesc":"Добавляет кнопку «Экспорт» на панель Markdown в better-sidebar: рендерит текущий .md в автономный HTML или экспортирует в PDF","pluginMdExportName":"Экспорт в Markdown","pluginNotLoaded":"Плагин не загружен, вкладка недоступна:","pluginOfficeDesc":"Предпросмотр офисных файлов (.docx / .xlsx / .pptx) в редакторе better-sidebar; тяжёлые библиотеки рендеринга держатся вне основного бандла","pluginOfficeName":"Предпросмотр Office","pluginSentinelDesc":"Пробуждение агента по условию: датчики файлов, процессов, портов, http, команд и вебхуков будят спящие сессии, когда условие сработало; добавляет вкладку Sentinel с общей таблицей наблюдений","pluginSentinelName":"Система пробуждения (dsh-sentinel)","pluginServerDeckDesc":"Панель серверов: карточки хостов с мониторингом CPU/памяти/диска и встроенным терминалом xterm.js","pluginServerDeckName":"Server Deck (dsh-server-deck)","pluginSidebarQaDesc":"Выделил и спросил: выделите текст в диалоге, задайте вопрос в правой панели — откроется отдельная сессия-уточнение в той же рабочей папке; быстрая модель без рассуждений сжимает основной контекст и подставляет его вместе с цитатой, не прерывая основной диалог. Уточнения вкладываются, продолжаются и уходят в архив","pluginSidebarQaName":"Выделить и спросить (dsh-sidebar-qa)","pluginSidenoteDesc":"Боковой чат в стиле Codex + аннотации к выделенному тексту","pluginSidenoteName":"Боковой чат (dsh-sidenote)","pluginSshTunnelDesc":"Вкладка SSH-туннеля: инвентарь нескольких хостов + гранты для каждого проекта + локальные секреты; инструмент SSHManager (стратегии выполнения/ SFTP/сеансов); центральный интерактивный терминал и двухпанельный SFTP","pluginSshTunnelName":"SSH-туннель (dsh-ssh-tunnel)","pluginSuhuangScrollDesc":"Интеграция Suhuang Scroll Runtime с настройками DSH и better-sidebar для конфигурации моделей и тестов","pluginSuhuangScrollName":"Свиток Сухуан (dsh-suhuang-scroll)","pluginTurnReviewDesc":"Человеческий шлюз на только что завершённом ходе: Одобрить / Запросить изменения по пути с необязательным комментарием; пути сгруппированы по основной сессии / суб-агенту / без атрибуции; встроенное сравнение снимка и текущего состояния перед принятием решения. Без форка, без /rewind.","pluginTurnReviewName":"Обзор реплики (dsh-turn-review)","pluginVideoPreviewDesc":"Просмотр видео (.mp4/.webm/.mov/.mkv/.avi и других) прямо в редакторе better-sidebar через отдельный маршрут /video с поддержкой HTTP Range (206) — перемотка работает, ограничение mediaLimit в 20 МБ не действует","pluginVideoPreviewName":"Предпросмотр видео","presetDshDesktopDesc":"Расширенный режим Electron (безрамочный): macOS резервирует верхнюю полосу 20px; Windows резервирует заголовок 32px, если WCO недоступен","preview":"Предпросмотр","produced":"Создано","producedOpen":"Открыть в панели","referenceFile":"@файл","refresh":"Обновить","refreshUnsavedConfirm":"Файл изменился на диске. Обновление приведёт к потере несохранённых изменений. Продолжить?","rename":"Переименовать","renameInvalid":"Имя не может быть пустым или содержать разделители пути.","retry":"Повторить","revertCommit":"Откатить коммит","revertDesc":"Создать в текущей ветке новый коммит, отменяющий «{subject}».","revertTitle":"Откат коммита","sandboxRestore":"Вернуть песочницу","sandboxStatusOn":"Песочница включена · страницы не видят данные интерфейса и локальные файлы; входы и сторонние куки могут не работать","sandboxUnlock":"Временно отключить (небезопасно)","save":"Сохранить","saveFailed":"Сохранить не удалось","saved":"Сохранено","settingsBottomTerminalDesc":"При первом разворачивании нижней панели в сессии открывать в ней новый терминал (ограничение на число терминалов сохраняется; по умолчанию включено)","settingsBottomTerminalTitle":"Открывать терминал при первом разворачивании нижней панели","settingsBrowserHttpDesc":"Если включено, клик по внешней http-ссылке в диалоге или интерфейсе открывает панель (страницы плагинов с urlTarget имеют приоритет); Ctrl/Cmd+клик всегда в обход","settingsBrowserHttpTitle":"Открывать http-страницы в панели","settingsBrowserHttpsDesc":"Если включено, клик по внешней https-ссылке открывает панель. По умолчанию выключено: большинство https-сайтов запрещают встраивание, поэтому системный браузер удобнее","settingsBrowserHttpsTitle":"Открывать https-страницы в панели","settingsBrowserLinksDesc":"Если включено, клик по внешней ссылке открывает панель, а не новое окно; http и https управляются отдельными переключателями ниже; Ctrl/Cmd+клик всегда в обход","settingsBrowserLinksTitle":"Открывать внешние ссылки из диалога в панели","settingsBrowserLoopbackDesc":"Разделённый запятыми список разрешённых адресов локальной петли (например, localhost:5174 или 127.0.0.1:8080), которые может посещать боковой браузер; пустое значение блокирует все локальные адреса по умолчанию. Песочница всё ещё применяется — страницы не могут читать данные GUI.","settingsBrowserLoopbackPlaceholder":"например, localhost:5174, 127.0.0.1:8080","settingsBrowserLoopbackTitle":"Разрешенные локальные адреса","settingsBrowserSandboxDesc":"С выключенной песочницей любой открытый сайт работает в том же origin, что и интерфейс: он может читать данные сессии и действовать от вашего имени. Включайте только для полностью доверенных сайтов","settingsBrowserSandboxTitle":"Отключить песочницу браузера (небезопасно)","settingsConflict":"Настройку изменили в другом окне — повторите","settingsCustomCssDesc":"Стили добавлены в конце страницы (поздние в каскаде выигрывают при равенстве; используйте !important для переопределения встроенных переменных, записанных через JS)","settingsCustomCssPlaceholder":"/* например, зарезервировать 36px для оболочки с нарисованной вручную строкой заголовка */\nhtml[data-dsh-title-bar-height=\"36\"] {\n --dsh-title-bar-strip: 36px !important;\n}","settingsCustomCssTitle":"Пользовательский CSS","settingsDone":"Готово","settingsFenceDesc":"Если включено, файловые функции боковой панели ограничены рабочей областью сессии (по умолчанию); если выключено — доступен любой файл на хосте","settingsFenceTitle":"Ограничение рабочей области (Fence)","settingsFontFamilyDesc":"Своя гарнитура терминала (CSS-стек вида \"JetBrains Mono\", monospace; пусто — моноширинный шрифт темы)","settingsFontFamilyPlaceholder":"\"JetBrains Mono\", monospace","settingsFontFamilyTitle":"Шрифт терминала","settingsFontSizeDesc":"Размер шрифта терминала в пикселях (9–32, по умолчанию 13)","settingsFontSizeSuffix":"px","settingsFontSizeTitle":"Размер шрифта терминала","settingsGeneralTitle":"Общие","settingsHtmlDefaultUnsafeDesc":"Если включено, каждый новый предпросмотр HTML открывается без песочницы (тот же origin, что и интерфейс — доступны файлы сессии и внутренние API); вернуть песочницу можно одним нажатием в строке состояния","settingsHtmlDefaultUnsafeTitle":"Открывать предпросмотр HTML без песочницы (небезопасно)","settingsHtmlSandboxDesc":"С выключенной песочницей просматриваемый HTML работает в том же origin, что и интерфейс: он может читать файлы сессии, локальное хранилище и вызывать внутренние API. Включайте только для полностью доверенных файлов","settingsHtmlSandboxTitle":"Отключить песочницу предпросмотра HTML (небезопасно)","settingsIntro":"Что показывает боковая панель и как она себя ведёт","settingsJobsDesc":"Разворачивать панель и открывать страницу задач при появлении новой фоновой задачи в текущем диалоге (срабатывает на каждую); выключите, чтобы открывать вручную","settingsJobsTitle":"Открывать страницу задач при новой фоновой задаче","settingsNav":"Боковая панель","settingsOpenDesc":"Разворачивать панель для совсем новых диалогов; у существующих сохраняется своя раскладка","settingsOpenPathDesc":"Открывать файловые ссылки из диалога (строки инструментов, созданные файлы, упоминания) в редакторе панели, а не в системном приложении","settingsOpenPathTitle":"Открывать файлы из диалога в панели","settingsOpenTitle":"Разворачивать для новых диалогов","settingsOpenToolsDesc":"Когда включено, модель может активно открывать файлы, папки и HTTP(S)-страницы в боковой панели через инструмент sidebar_open (по умолчанию отключено).","settingsOpenToolsTitle":"Внедрите инструмент sidebar-open для модели","settingsPopup":"Настройки функции","settingsPopupDesc":"Параметры для «{feature}»","settingsSaveFailed":"Не удалось сохранить","settingsSchemeAutoDesc":"Консервативный: учитывается только стандартный API Window Controls Overlay (реальная высота наложения заголовка); обычные веб-среды не изменяются","settingsSchemeAutoTitle":"Автоопределение","settingsSchemeCustomDesc":"Полный контроль: вставьте пользовательский CSS (может переопределять встроенные стили) и задайте расстояние смещения строки заголовка","settingsSchemeCustomTitle":"Настроить","settingsSchemeDetectedSuffix":"обнаружено","settingsSchemeWebDesc":"Явно указать официальный веб-интерфейс: без адаптации вообще (даже стандартной геометрии WCO)","settingsSchemeWebTitle":"Официальный сайт DSH","settingsShellArgsDesc":"Явные аргументы командной оболочки, разделённые пробелами; если не пусто, полностью заменяют значения по умолчанию (тот же принцип, что и у shellArgs в yaml)","settingsShellArgsPlaceholder":"напр. -l (пусто = по умолчанию)","settingsShellArgsTitle":"Аргументы командной оболочки","settingsShellDesc":"Оболочка, запускаемая для терминалов UI и моделей (абсолютный путь или имя исполняемого файла). Пустое значение сохраняет устаревший порядок: shell из конфига yaml → $SHELL / логин-шелл / Windows powershell.exe. Применяется к терминалам, открытым после этого.","settingsShellPlaceholder":"например, /bin/zsh (пусто = автоматически)","settingsShellTitle":"Путь к оболочке","settingsSubagentDesc":"Разворачивать панель и открывать страницу задач, когда в диалоге появляется субагент; выключите, чтобы открывать вручную","settingsSubagentTitle":"Открывать страницу задач при появлении субагента","settingsTabsTitle":"Содержимое панели","settingsTitleBarDesc":"Оставлять место под системный заголовок окна Windows справа сверху, чтобы кнопки и содержимое панели располагались ниже, а не под ним","settingsTitleBarStripDesc":"Высота полосы заголовка: на сколько пикселей опускаются кнопки и содержимое панели (0–120, по умолчанию 40)","settingsTitleBarStripTitle":"Смещение","settingsTitleBarTitle":"Режим совместимости с заголовком окна","settingsToolsDesc":"Если включено, модель может создавать терминалы в панели и работать в них через восемь инструментов terminal_* (по умолчанию выключено)","settingsToolsTitle":"Дать модели инструменты терминала","settingsViewerCatchAll":"На всё остальное: любой файл","settingsViewersTitle":"Просмотрщики файлов","settingsWidthDesc":"Какую долю ширины окна занимает панель в новых диалогах (20–60)","settingsWidthSuffix":"%","settingsWidthTitle":"Ширина по умолчанию","showInFolder":"Показать в папке","sideChat":"Боковой чат (бета)","sideChatBlockCollapse":"Свернуть","sideChatBlockCollapseAria":"Свернуть","sideChatBlockDone":"Готово","sideChatBlockExitCode":"Код завершения {code}","sideChatBlockExpand":"Развернуть {hidden} строк","sideChatBlockExpandAria":"Развернуть ещё {hidden} строк","sideChatBlockFailed":"Сбой","sideChatBlockFiles":"Файлов: {count}","sideChatBlockNoOutput":"(нет вывода)","sideChatBlockRunning":"Выполняется","sideChatBlockSignal":"Завершено по сигналу: {signal}","sideChatBlockWindow":"Показано {shown} из {total} строк","sideChatCancel":"Остановить","sideChatCancelTitle":"Прервать текущий ход (запланированные задачи сохраняются)","sideChatClose":"Закрыть тему","sideChatCloseTitle":"Освободить агента потока (история сохраняется)","sideChatComposerPlaceholder":"Задать уточняющий вопрос…","sideChatConnConnecting":"Подключение…","sideChatConnDisconnected":"Соединение разорвано","sideChatConnReconnect":"Переподключиться","sideChatConnReconnectAction":"Подключиться сейчас","sideChatConnRecovered":"Соединение восстановлено","sideChatConnRestartAction":"Перезапустить соединение","sideChatCreating":"Создание побочного диалога…","sideChatEmpty":"Без посторонних разговоров","sideChatEmptyDesc":"Каждый побочный диалог открывается в отдельной вкладке на панели — он наследует контекст текущей сессии и никогда не попадает в основной разговор","sideChatError":"Ошибка бокового чата: {message}","sideChatFirstPlaceholder":"Задайте первый вопрос — контекст сохранён…","sideChatInjection":"Контекст внедрен","sideChatNew":"Новая тема","sideChatNoTurn":"Сохранение доступно после первого завершённого хода","sideChatPendingDrop":"Последний неотвеченный вопрос не будет включен в сохраненную сессию","sideChatRetry":"Повторить","sideChatSave":"Сохранить как новую сессию","sideChatSaveTitle":"Повысьте этот тред до уровня отдельной сессии в основном списке сессий","sideChatSaved":"Сохранено как новая сессия","sideChatSend":"Отправить","sideChatThink":"Думаю","sideChatThinking":"Глубокое погружение…","sideChatThreads":"Переключить ветку / новая","sideChatTurnUsage":"Вход: {input} токенов · Выход: {output} токенов","sideChatUntitled":"Новая тема","splitDown":"Разделить вниз","splitLeft":"Разделить влево","splitRight":"Разделить вправо","splitUp":"Разделить вверх","stage":"В индекс","stageAll":"Всё в индекс","staged":"В индексе","statusTruncated":"Слишком много изменений; показаны первые 2,000 записей","subagent":"Задачи","subagentCount":"субагентов: {count}","subagentCountRunning":"субагентов: {count} · работает: {running}","subagentDiagCorrupt":"Повреждён","subagentDiagUnavailable":"Недоступен","subagentDiagUnsupported":"Не поддерживается","subagentEmpty":"Субагентов нет","subagentEmptyDesc":"Здесь появятся субагенты, запущенные основным агентом","subagentInactive":"Простаивает","subagentMainAgent":"Основной агент","subagentModeContinuable":"С продолжением","subagentModeOneShot":"Разовый","subagentRunning":"Работает","subagentThinking":"Думает…","terminal":"Терминал","terminalConnectFailed":"Терминал не смог подключиться несколько раз подряд","terminalDepsFailed":"Не удалось загрузить зависимость терминала node-pty","terminalDepsHint":"Выполните команду ниже в терминале на машине с DSH, чтобы починить, и повторите (версия node-pty должна совпадать с версией ядра DSH):","terminalDepsProfile":" (определён профиль: {profile})","terminalError":"Не удалось подключиться к терминалу","terminalLimit":"Достигнут предел терминалов (3)","terminalRetry":"Повторить","terminalShellNotFound":"Настроенный командный шелл не найден: {name} — проверьте путь к шеллу в Настройки → Боковая карточка → Терминал","terminalSkipWait":"Пропустить ожидание","terminalWaitBanner":"Агент ожидает {needle}","timeHoursAgo":"{n} ч назад","timeJustNow":"только что","timeMinutesAgo":"{n} мин назад","timeYesterday":"вчера","toc":"Содержание","truncation":"Файл слишком большой — показаны первые 512 КБ","unpinOpenWith":"Открепить","unpinTerminal":"Открепить","unsaved":"Не сохранено","unstage":"Из индекса","unstageAll":"Всё из индекса","unstaged":"Вне индекса","uploadCancelled":"Загрузка отменена","uploadDone":"Загружено {count} файл(ов)","uploadDropChat":"Перетащите в чат, чтобы добавить изображения","uploadDropHint":"Перетащите файлы/папки сюда для загрузки","uploadFailed":"Не удалось загрузить: {error}","uploadFailedUnknown":"Неизвестная ошибка","uploadFiles":"Загрузить файлы","uploadFolder":"Загрузить папку","uploadHere":"Загрузите сюда","uploadProgress":"Загружено {done}/{total}: {name}","uploadTo":"Загрузить в {dir}","uploadTooLarge":"Файл слишком большой (превышен лимит загрузки)","uploadingTo":"Загрузка в {dir}…","viewCommitDiff":"Посмотреть изменения коммита","viewerBinary":"Скачивание файла","viewerCode":"Код","viewerHtml":"HTML","viewerImage":"Изображение","viewerMarkdown":"Markdown","viewerPdf":"PDF","worktree":"Рабочее дерево"}}
1
+ {"betterSidebar":{"addPluginsBrowseMore":"Ещё плагины на GitHub (тема: dsh-better-sidebar)","addPluginsEmpty":"Подборки пока нет — опубликуйте свой плагин под темой на GitHub","addPluginsNoMatch":"Нет подходящих плагинов","addPluginsRecommended":"Рекомендуемые плагины","addPluginsSearch":"Поиск по названию или описанию плагина…","addPluginsTabCard":"Добавить плагины вкладок","addPluginsTabCardDesc":"Зарегистрировать новую страницу панели","addPluginsTabDesc":"Страницы панели (вкладки) расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addPluginsViewerCard":"Добавить плагины предпросмотра","addPluginsViewerCardDesc":"Зарегистрировать просмотр нового типа файлов","addPluginsViewerDesc":"Просмотрщики файлов расширяются плагинами. Плагины регистрируются через сервис ctx.betterSidebar; кнопка «Установить» копирует команду — вставьте её в терминал на машине с профилем DSH и выполните.","addToConversation":"Добавить в диалог","binary":"Двоичный файл, предпросмотр недоступен","binaryNoPreview":"Файлы этого типа нельзя просмотреть","branch":"Ветка","brokenSymlink":"Битая ссылка","browser":"Браузер","browserBack":"Назад","browserBlockedLoopback":"Заблокировано: локальные и внутренние адреса здесь открывать нельзя","browserBlockedScheme":"Заблокировано: разрешены только адреса http и https","browserEmbedAnyway":"Всё равно загрузить","browserEmbedBlocked":"{host} запрещает встраивание","browserEmbedBlockedDesc":"Сайт запрещает показывать себя внутри других страниц (X-Frame-Options / frame-ancestors), поэтому в панели он не откроется. Откройте его в обычном браузере.","browserForward":"Вперёд","browserGo":"Перейти","browserInvalid":"Неверный адрес","browserNoSandboxWarning":"Песочница выключена: страница работает с полными правами интерфейса (включить обратно можно в настройках)","browserOpenExternal":"Открыть в браузере","browserPlaceholder":"Введите адрес, например example.com","browserStart":"Введите адрес, чтобы начать (режим песочницы)","cancel":"Отмена","changes":"Изменения","changesAdditions":"+{n} добавлено","changesClosePreview":"Закрыть просмотр","changesCollapseAll":"Свернуть все файлы","changesContext":"контекст","changesCopied":"Diff скопирован в буфер обмена","changesDeletions":"-{n} удалено","changesDiff":"Различия (Diff)","changesDiffOpenDesc":"Где открывать diff при разворачивании во вкладку","changesDiffOpenFloat":"Свободное окно","changesDiffOpenFloatDesc":"Плавающее окно по центру экрана — перемещайте, меняйте размер, держите поверх","changesDiffOpenPane":"Панель","changesDiffOpenPaneDesc":"Закреплено под исходной панелью (в стиле сплита VS Code)","changesDiffOpenTitle":"Открывать diff как","changesDiscard":"Отменить изменения","changesDiscardConfirm":"Отменить изменения в файле «{file}»? Действие необратимо.","changesEdit":"Правка","changesEmpty":"Нет изменённых файлов в текущей сессии.","changesError":"ошибка","changesExpandAll":"Развернуть все файлы","changesExportPatch":"Экспорт патча (.patch)","changesFilesCount":"Изменено файлов: {n}","changesFilter":"Фильтр изменений…","changesFilterAll":"Все","changesFilterEmpty":"Нет операций этого типа","changesFold":"Строк: {count}… нажмите, чтобы развернуть","changesFoldLoading":"Загрузка сворачивания изменений…","changesFoldUnavailable":"Сворачивание изменений недоступно","changesFontSize":"Размер шрифта diff","changesGitLens":"Git","changesHtmlRaw":"Исходный HTML","changesHtmlRender":"Рендеринг HTML","changesInlineDiff":"Строчный diff","changesJumpToLine":"Перейти к строке","changesLineNumbers":"Номера строк","changesLoadError":"Записи файлов сессии сейчас недоступны","changesLoading":"Анализ изменений файлов…","changesMdRaw":"Исходный Markdown","changesMdReading":"Чтение Markdown…","changesOpenDiffTab":"Открыть во вкладке diff","changesOpenFile":"Открыть изменённый файл","changesPdfRaw":"Исходный PDF","changesPdfRender":"Просмотр PDF","changesPriorUnknown":"Предыдущее содержимое вне окна загрузки; показано как полностью добавленное","changesRead":"Чтение","changesRedactBanner":"Скрыто","changesRedactOff":"Маскирование выключено: содержимое файла отображается без купюр; нажмите для включения","changesRedactOffLabel":"Маскирование выкл","changesRedactOn":"Маскирование включено: секреты скрыты как [REDACTED]; нажмите для выключения (на свой риск)","changesRedactOnLabel":"Маскирование","changesResizePreview":"Изменить размер","changesRevertAll":"Откатить все изменения","changesRunning":"выполняется","changesSaved":"Настройки инспектора сохранены","changesSessionEmpty":"В этой сессии пока не было операций с файлами","changesSessionLens":"Сессия","changesSideBySide":"Параллельный diff","changesSplit":"Раздельный diff","changesStageAll":"Подготовить все","changesSubtitle":"Просмотр и анализ модификаций файлов рабочей области","changesSyntaxHighlight":"Подсветка синтаксиса","changesTitle":"Инспектор изменений","changesUnified":"Единый diff","changesUnstageAll":"Снять подготовку","changesViewMode":"Режим отображения изменений","changesWhitespace":"Игнорировать пробелы","changesWordDiff":"Пословный diff","changesWrite":"Запись","checkoutError":"Переключить ветку не удалось","cherryPickCommit":"Перенести коммит","cherryPickDesc":"Применить изменения «{subject}» к текущей ветке.","cherryPickTitle":"Перенос коммита","close":"Закрыть","closeLeftTabs":"Закрыть вкладки слева","closeOtherTabs":"Закрыть остальные вкладки","closePinnedTerminal":"Закрыть терминал","closeRightTabs":"Закрыть вкладки справа","collapse":"Свернуть панель","collapseBottomPanel":"Свернуть нижнюю панель","commit":"Закоммитить","commitError":"Коммит не удался","commitPlaceholder":"Сообщение коммита (Ctrl+Enter)","copied":"Скопировано","copy":"Копировать","copyAbsolute":"Копировать абсолютный путь","copyFullHash":"Копировать полный хеш","copyInstall":"Копировать команду установки","copyRelative":"Копировать относительный путь","copyShortHash":"Копировать короткий хеш","copySubject":"Копировать заголовок","delete":"Удалить","deleteDescDir":"Каталог и всё его содержимое будут безвозвратно удалены. Это действие нельзя отменить.","deleteDescFile":"Файл будет безвозвратно удалён. Это действие нельзя отменить.","deleteTitle":"Удалить «{name}»?","diffAdded":"Добавлено","diffBinary":"Двоичный","diffCollapse":"Свернуть","diffDeleted":"Удалено","diffEmpty":"Текстовых изменений нет","diffExpand":"Показать ещё строк: {count}","diffLoadError":"Не удалось загрузить различия","diffRenamed":"Переименовано","discard":"Отменить изменения","discardDesc":"Изменения «{path}» в рабочем дереве будут отброшены без возможности вернуть.","discardTitle":"Отмена изменений","disconnected":"Терминал отключился, переподключаемся…","dismiss":"Отклонить","dockToSidebar":"Вернуть в боковую панель","download":"Скачать","downloadToView":"Скачать для просмотра","edit":"Изменить","editor":"Редактор","editorEmptyHint":"Выберите файл в дереве или введите путь выше, чтобы открыть предпросмотр","editorExplorer":"Как открывать файлы","editorExplorerDesc":"Управляет поведением при открытии файлов","editorExplorerMerged":"В одном окне","editorExplorerMergedDesc":"Файлы сменяются в том же окне; новые окна открываются с деревом","editorExplorerSplit":"Раздельно","editorExplorerSplitDesc":"Окно без пути — это отдельный проводник (только дерево); каждый файл открывается своим окном (дерево пристыковано и по умолчанию закрыто)","editorPathPlaceholder":"Путь к файлу (от папки сессии или абсолютный), Enter — открыть","editorSearchNoResults":"Подходящих файлов нет","editorSearchPlaceholder":"Поиск файлов по имени…","editorSearchTruncated":"Слишком много совпадений — показана часть","editorTreeToggle":"Дерево файлов","error":"Не удалось загрузить","exited":"Процесс терминала завершился","expand":"Развернуть панель","expandBottomPanel":"Развернуть нижнюю панель","explorer":"Проводник","fenceDisableAction":"Отключить ограничение путей","fenceErrorReason":"Этот путь находится вне рабочей области сессии и заблокирован","files":"Файлы","floatDropHint":"Отпустите, чтобы открыть в свободном окне","git":"Контроль версий","gitDetail":"Посмотреть изменения","guideDescBrowser":"Встроенный браузер для открытия ссылок непосредственно из чата","guideDescFiles":"Просмотр дерева рабочей области; клик по файлу открывает предпросмотр или редактор","guideDescGit":"Изменения Git и правки файлов текущей сессии на одной вкладке","guideDescSidechat":"Независимая ветка диалога, наследующая контекст текущей сессии","guideDescSubagent":"Топология субагентов и фоновые задачи в реальном времени","guideDescTerminal":"Полноценный терминал (xterm + pty) с автоматическим переподключением","hiddenFiles":"Скрытые файлы","history":"История","historyLoadError":"Не удалось догрузить историю","htmlNoSandboxWarning":"Песочница выключена: этот HTML работает с полными правами интерфейса (включить обратно можно в настройках)","jobDurationHours":"{hours} ч {minutes} мин","jobDurationMinutes":"{minutes} мин {seconds} с","jobDurationSeconds":"{seconds} с","jobHideOutput":"Скрыть вывод","jobKill":"Прервать","jobKillConfirm":"Нажмите ещё раз для подтверждения","jobKillError":"Прервать не удалось","jobNoOutput":"Вывода пока нет","jobNotReadYet":"Ждём, пока модель прочитает эту задачу; вывод появится здесь после вызова job_output","jobOutputError":"Не удалось прочитать вывод","jobOutputTruncated":"Вывод обрезан","jobStatusCompleted":"Завершена","jobStatusFailed":"Ошибка","jobStatusKilled":"Прервана","jobStatusRunning":"Выполняется","jobStatusStopping":"Останавливается","jobViewOutput":"Посмотреть вывод","jobs":"Фоновые задачи","jobsCount":"фоновых задач: {count}","jobsCountRunning":"фоновых задач: {count} · выполняется: {running}","loadMore":"Показать ещё","loading":"Загрузка…","mermaidError":"Ошибка рендеринга Mermaid","mermaidZoomHint":"Прокрутка для масштабирования · перетаскивание для перемещения · Esc для закрытия","mermaidZoomIn":"Увеличить","mermaidZoomOut":"Уменьшить масштаб","mermaidZoomReset":"Сбросить","moveToFreeWindow":"Переместить в свободное окно","newFile":"Новый файл","newTab":"Новая вкладка","newTerminal":"Новый терминал","noChanges":"Изменений нет","noSession":"Выберите диалог, чтобы пользоваться панелью","notRepo":"Эта папка не является репозиторием git","openEditor":"Открыть редактор","openExplorer":"Проводник","openFileNewTab":"Открыть в новой вкладке","openFileSide":"Открыть сбоку","openGit":"Панель git","openPlugin":"Открыть","openSubagent":"Задачи","openWithCursor":"Cursor","openWithExplorer":"Файловый менеджер","openWithMenu":"Открыть с помощью","openWithSettingsAdd":"Добавить","openWithSettingsCustomDesc":"Имя + шаблон URL (заполнитель {path}) + флаг семейства VSCode; в удалённом режиме только редакторы семейства VSCode могут открыть удалённый путь","openWithSettingsCustomTitle":"Пользовательские редакторы","openWithSettingsFamily":"Семейство VSCode","openWithSettingsFamilyDesc":"Этот редактор понимает URL-адреса VSCode (поддерживает открытие через SSH-удалённое подключение)","openWithSettingsInvalidHint":"Редакторы без имени или шаблоны без {path} / scheme:// не отображаются в меню","openWithSettingsName":"Имя","openWithSettingsRemove":"Удалить","openWithSettingsSshDesc":"Пусто = локальная рабочая область; с user@host или SSH-алиасом открыватели семейства VSCode переключаются на протокол vscode-remote/ssh-remote, а Файловый менеджер / Zed / пользовательские редакторы вне семейства VSCode скрываются из меню","openWithSettingsSshPlaceholder":"пользователь@хост или алиас SSH","openWithSettingsSshTitle":"SSH удаленный хост","openWithSettingsTemplate":"напр. cursor://file/{path}","openWithSshSuffix":"(SSH)","openWithVscode":"VS Code","openWithZed":"Zed","parent":"Родительская папка","pinAgentTerminal":"Закрепить терминал агента","pinOpenWith":"Закрепить в меню","pinTerminal":"Закрепить терминал","pinToGlobal":"Закрепить для всех","pinToWorkspace":"Закрепить в рабочей области","pinnedRailLabel":"Закреплённые терминалы","pinnedTerminalKindAgent":"Терминал агента","pinnedTerminalKindUi":"Терминал интерфейса","pinnedTerminalScopeGlobal":"Закреплено глобально","pinnedTerminalScopeWorkspace":"Закреплено в рабочей области","pinnedTerminalTooltip":"{kind} · {scope} · {cwd}","pluginBetterOverleafDesc":"Вкладка Overleaf для better-sidebar: синхронизация проектов и предпросмотр файлов","pluginBetterOverleafName":"Вкладка Overleaf (dsh-better-overleaf)","pluginBilingualReaderDesc":"Чтение PDF-статей в боковой панели DSH с контекстным переводом через LLM","pluginBilingualReaderName":"Двуязычный ридер (dsh-bilingual-reader)","pluginCodeNavDesc":"Навигатор по коду: подсветка синтаксиса, дерево символов (классы, методы, переменные) и поиск по файлу","pluginCodeNavName":"Навигатор предпросмотра кода","pluginDocsPanelDesc":"Глобальные документы в боковой панели DSH: читайте свои заметки в формате Markdown из любого рабочего пространства — список файлов, структура, открытие в Chrome / VS Code и кнопки копирования; директория документов настраивается (по умолчанию ~/.dsh/docs)","pluginDocsPanelName":"Глобальная документация (dsh-docs-panel)","pluginEgoBrowserDesc":"Браузер агента для DeepSeek Harness: 32 инструмента ego_* управляют реальным Chromium, с нативной боковой панелью \"ego browser\", которая предоставляет живой просмотр каждой страницы, посещаемой агентом — вы можете кликать, перетаскивать и печатать, чтобы взять управление на себя. Регистрирует вкладку автоматически, если присутствует better-sidebar, в противном случае переходит на плавающий пузырь.","pluginEgoBrowserName":"Браузер агента (ego-browser)","pluginFlowglassDesc":"Граф потока живого сеанса с тремя полосами для пользователя, ассистента и вызовов инструментов, а также параллельными группами, ветвями под-агентов, детализацией и текущим статусом; регистрирует вкладку Flowglass в нативном режиме при установке better-sidebar и сохраняет отдельный выдвижной ящик в качестве резерва.","pluginFlowglassName":"Flowglass (dsh-flowglass)","pluginGitForgeDesc":"Вкладка Git Forge: библиотека аккаунтов GitHub/Gitea (и других форков) + права на проекты + политика жесткого пуша; токены остаются в локальных секретах (никогда в контексте модели); инструмент GitForge только для чтения и помощник для HTTPS-учетных данных агента","pluginGitForgeName":"Учётные данные Git (dsh-git-forge)","pluginGitRemotesDesc":"Вкладка Git Remotes: ветка, upstream, отставание и опережение, fetch (с необязательным prune), pull только ff-only и push после подтверждения во вкладке. Не заменяет встроенную вкладку git со стадированием и коммитами, не предлагает force-push и не даёт модели инструмент автопуша","pluginGitRemotesName":"Удалённые репозитории Git (dsh-git-remotes)","pluginGithubWorkbenchDesc":"Вкладка GitHub Workbench: дерево репозитория, Issues, PR и Actions с полной поддержкой управления","pluginGithubWorkbenchName":"GitHub Workbench (dsh-github-workbench)","pluginMdExportDesc":"Добавляет кнопку «Экспорт» на панель Markdown в better-sidebar: рендерит текущий .md в автономный HTML или экспортирует в PDF","pluginMdExportName":"Экспорт в Markdown","pluginNotLoaded":"Плагин не загружен, вкладка недоступна:","pluginOfficeDesc":"Предпросмотр офисных файлов (.docx / .xlsx / .pptx) в редакторе better-sidebar; тяжёлые библиотеки рендеринга держатся вне основного бандла","pluginOfficeName":"Предпросмотр Office","pluginSentinelDesc":"Пробуждение агента по условию: датчики файлов, процессов, портов, http, команд и вебхуков будят спящие сессии, когда условие сработало; добавляет вкладку Sentinel с общей таблицей наблюдений","pluginSentinelName":"Система пробуждения (dsh-sentinel)","pluginServerDeckDesc":"Панель серверов: карточки хостов с мониторингом CPU/памяти/диска и встроенным терминалом xterm.js","pluginServerDeckName":"Server Deck (dsh-server-deck)","pluginSidebarQaDesc":"Выделил и спросил: выделите текст в диалоге, задайте вопрос в правой панели — откроется отдельная сессия-уточнение в той же рабочей папке; быстрая модель без рассуждений сжимает основной контекст и подставляет его вместе с цитатой, не прерывая основной диалог. Уточнения вкладываются, продолжаются и уходят в архив","pluginSidebarQaName":"Выделить и спросить (dsh-sidebar-qa)","pluginSidenoteDesc":"Боковой чат в стиле Codex + аннотации к выделенному тексту","pluginSidenoteName":"Боковой чат (dsh-sidenote)","pluginSshTunnelDesc":"Вкладка SSH-туннеля: инвентарь нескольких хостов + гранты для каждого проекта + локальные секреты; инструмент SSHManager (стратегии выполнения/ SFTP/сеансов); центральный интерактивный терминал и двухпанельный SFTP","pluginSshTunnelName":"SSH-туннель (dsh-ssh-tunnel)","pluginSuhuangScrollDesc":"Интеграция Suhuang Scroll Runtime с настройками DSH и better-sidebar для конфигурации моделей и тестов","pluginSuhuangScrollName":"Свиток Сухуан (dsh-suhuang-scroll)","pluginTurnReviewDesc":"Человеческий шлюз на только что завершённом ходе: Одобрить / Запросить изменения по пути с необязательным комментарием; пути сгруппированы по основной сессии / суб-агенту / без атрибуции; встроенное сравнение снимка и текущего состояния перед принятием решения. Без форка, без /rewind.","pluginTurnReviewName":"Обзор реплики (dsh-turn-review)","pluginVideoPreviewDesc":"Просмотр видео (.mp4/.webm/.mov/.mkv/.avi и других) прямо в редакторе better-sidebar через отдельный маршрут /video с поддержкой HTTP Range (206) — перемотка работает, ограничение mediaLimit в 20 МБ не действует","pluginVideoPreviewName":"Предпросмотр видео","presetDshDesktopDesc":"Расширенный режим Electron (безрамочный): macOS резервирует верхнюю полосу 20px; Windows резервирует заголовок 32px, если WCO недоступен","preview":"Предпросмотр","produced":"Создано","producedOpen":"Открыть в панели","referenceFile":"@файл","refresh":"Обновить","refreshUnsavedConfirm":"Файл изменился на диске. Обновление приведёт к потере несохранённых изменений. Продолжить?","rename":"Переименовать","renameInvalid":"Имя не может быть пустым или содержать разделители пути.","retry":"Повторить","revertCommit":"Откатить коммит","revertDesc":"Создать в текущей ветке новый коммит, отменяющий «{subject}».","revertTitle":"Откат коммита","sandboxRestore":"Вернуть песочницу","sandboxStatusOn":"Песочница включена · страницы не видят данные интерфейса и локальные файлы; входы и сторонние куки могут не работать","sandboxUnlock":"Временно отключить (небезопасно)","save":"Сохранить","saveFailed":"Сохранить не удалось","saved":"Сохранено","settingsBottomTerminalDesc":"При первом разворачивании нижней панели в сессии пытаться открыть свежую вкладку терминала (по умолчанию включено)","settingsBottomTerminalTitle":"Автооткрытие терминала при первом разворачивании нижней панели","settingsBrowserHttpDesc":"Если включено, клик по внешней http-ссылке в диалоге или интерфейсе открывает панель (страницы плагинов с urlTarget имеют приоритет); Ctrl/Cmd+клик всегда в обход","settingsBrowserHttpTitle":"Открывать http-страницы в панели","settingsBrowserHttpsDesc":"Если включено, клик по внешней https-ссылке открывает панель. По умолчанию выключено: большинство https-сайтов запрещают встраивание, поэтому системный браузер удобнее","settingsBrowserHttpsTitle":"Открывать https-страницы в панели","settingsBrowserLinksDesc":"Если включено, клик по внешней ссылке открывает панель, а не новое окно; http и https управляются отдельными переключателями ниже; Ctrl/Cmd+клик всегда в обход","settingsBrowserLinksTitle":"Открывать внешние ссылки из диалога в панели","settingsBrowserLoopbackDesc":"Разделённый запятыми список разрешённых адресов локальной петли (например, localhost:5174 или 127.0.0.1:8080), которые может посещать боковой браузер; пустое значение блокирует все локальные адреса по умолчанию. Песочница всё ещё применяется — страницы не могут читать данные GUI.","settingsBrowserLoopbackPlaceholder":"например, localhost:5174, 127.0.0.1:8080","settingsBrowserLoopbackTitle":"Разрешенные локальные адреса","settingsBrowserSandboxDesc":"С выключенной песочницей любой открытый сайт работает в том же origin, что и интерфейс: он может читать данные сессии и действовать от вашего имени. Включайте только для полностью доверенных сайтов","settingsBrowserSandboxTitle":"Отключить песочницу браузера (небезопасно)","settingsConflict":"Настройка изменена в другом окне — повторите попытку","settingsCustomCssDesc":"Стили, добавляемые в конец страницы (для переопределения JS-переменных используйте !important)","settingsCustomCssPlaceholder":"/* например, зарезервировать 36px для оболочки с пользовательским заголовком */\nhtml[data-dsh-title-bar-height=\"36\"] {\n --dsh-title-bar-strip: 36px !important;\n}","settingsCustomCssTitle":"Пользовательский CSS","settingsDone":"Готово","settingsFenceDesc":"Если включено (по умолчанию), функции боковой панели работают только внутри рабочей области сессии","settingsFenceTitle":"Ограничение путей рабочей областью","settingsFontFamilyDesc":"Пользовательский шрифт терминала (CSS-стек, например \"JetBrains Mono\", monospace; пусто — системный моноширинный)","settingsFontFamilyPlaceholder":"\"JetBrains Mono\", monospace","settingsFontFamilyTitle":"Шрифт терминала","settingsFontSizeDesc":"Размер шрифта терминала в px (9–32, по умолчанию 13)","settingsFontSizeSuffix":"px","settingsFontSizeTitle":"Размер шрифта терминала","settingsGeneralTitle":"Общие","settingsHtmlDefaultUnsafeDesc":"Если включено, каждый новый предпросмотр HTML открывается без песочницы (тот же origin, что и интерфейс — доступны файлы сессии и внутренние API); вернуть песочницу можно одним нажатием в строке состояния","settingsHtmlDefaultUnsafeTitle":"Открывать предпросмотр HTML без песочницы (небезопасно)","settingsHtmlSandboxDesc":"С выключенной песочницей просматриваемый HTML работает в том же origin, что и интерфейс: он может читать файлы сессии, локальное хранилище и вызывать внутренние API. Включайте только для полностью доверенных файлов","settingsHtmlSandboxTitle":"Отключить песочницу предпросмотра HTML (небезопасно)","settingsIntro":"Что показывает боковая панель и как она себя ведёт","settingsJobsDesc":"Переключаться на вкладку «Задачи» при появлении новой фоновой задачи текущей сессии","settingsJobsTitle":"Автоматически открывать «Задачи» при появлении фоновой задачи","settingsNav":"Боковая панель","settingsOpenDesc":"Разворачивать панель для совсем новых диалогов; у существующих сохраняется своя раскладка","settingsOpenPathDesc":"Открывать файловые ссылки из диалога (строки инструментов, созданные файлы, упоминания) в редакторе панели, а не в системном приложении","settingsOpenPathTitle":"Открывать файлы из диалога в панели","settingsOpenTitle":"Разворачивать для новых диалогов","settingsOpenToolsDesc":"Если включено, модель может активно открывать файлы, папки и HTTP(S)-страницы в сайдбаре через инструмент sidebar_open (по умолчанию выключено)","settingsOpenToolsTitle":"Внедрять инструмент открытия сайдбара для модели","settingsPopup":"Настройки функции","settingsPopupDesc":"Параметры для «{feature}»","settingsSaveFailed":"Не удалось сохранить","settingsSchemeAutoDesc":"Консервативно: используется только стандартный Window Controls Overlay API (реальная высота наложения); в обычном веб-интерфейсе смещение не применяется","settingsSchemeAutoTitle":"Автоопределение","settingsSchemeCustomDesc":"Полный контроль: внедрение пользовательского CSS (переопределение встроенных стилей) и ручная настройка смещения","settingsSchemeCustomTitle":"Пользовательский","settingsSchemeDetectedSuffix":"обнаружено","settingsSchemeWebDesc":"Явный официальный веб-интерфейс: адаптация геометрии полностью отключена","settingsSchemeWebTitle":"Официальный веб DSH","settingsShellArgsDesc":"Явные аргументы командной оболочки через пробел (полностью заменяют стандартные)","settingsShellArgsPlaceholder":"например -l (пусто = стандартные)","settingsShellArgsTitle":"Аргументы командной оболочки","settingsShellDesc":"Оболочка для интерфейса и моделей (абсолютный путь или имя команды). Пусто — автоопределение","settingsShellPlaceholder":"например /bin/zsh (пусто = авто)","settingsShellTitle":"Командная оболочка (Shell)","settingsSubagentDesc":"Переключаться на вкладку «Задачи», когда в текущей сессии запускается субагент; широкие окна также разворачивают боковую панель","settingsSubagentTitle":"Автоматически открывать «Задачи» при появлении субагента","settingsTabsTitle":"Содержимое панели","settingsTitleBarDesc":"Выберите схему совместимости заголовка: автоопределение (по умолчанию) / официальный веб DSH / десктопные оболочки / пользовательская (смещение + CSS)","settingsTitleBarStripDesc":"Высота полосы заголовка: на сколько пикселей сдвигать кнопки и контент вниз (0–120, по умолчанию 40; действует при пользовательской схеме)","settingsTitleBarStripTitle":"Смещение сверху","settingsTitleBarTitle":"Режим совместимости расположения","settingsToolsDesc":"Если включено, модель может создавать терминалы и управлять ими через 8 инструментов terminal_* (по умолчанию выключено)","settingsToolsTitle":"Внедрять терминальные инструменты для модели","settingsViewerCatchAll":"На всё остальное: любой файл","settingsViewersTitle":"Просмотрщики файлов","settingsWidthDesc":"Какую долю ширины окна занимает панель в новых диалогах (20–60)","settingsWidthSuffix":"%","settingsWidthTitle":"Ширина по умолчанию","showInFolder":"Показать в папке","sideChat":"Боковой чат (бета)","sideChatBlockCollapse":"Свернуть","sideChatBlockCollapseAria":"Свернуть","sideChatBlockDone":"Готово","sideChatBlockExitCode":"Код завершения {code}","sideChatBlockExpand":"Развернуть {hidden} строк","sideChatBlockExpandAria":"Развернуть ещё {hidden} строк","sideChatBlockFailed":"Сбой","sideChatBlockFiles":"Файлов: {count}","sideChatBlockNoOutput":"(нет вывода)","sideChatBlockRunning":"Выполняется","sideChatBlockSignal":"Завершено по сигналу: {signal}","sideChatBlockWindow":"Показано {shown} из {total} строк","sideChatCancel":"Остановить","sideChatCancelTitle":"Прервать текущий ход (запланированные задачи сохраняются)","sideChatClose":"Закрыть тему","sideChatCloseTitle":"Освободить агента потока (история сохраняется)","sideChatComposerPlaceholder":"Задать уточняющий вопрос…","sideChatConnConnecting":"Подключение…","sideChatConnDisconnected":"Соединение разорвано","sideChatConnReconnect":"Переподключиться","sideChatConnReconnectAction":"Подключиться сейчас","sideChatConnRecovered":"Соединение восстановлено","sideChatConnRestartAction":"Перезапустить соединение","sideChatCreating":"Создание побочного диалога…","sideChatEmpty":"Без посторонних разговоров","sideChatEmptyDesc":"Каждый побочный диалог открывается в отдельной вкладке на панели — он наследует контекст текущей сессии и никогда не попадает в основной разговор","sideChatError":"Ошибка бокового чата: {message}","sideChatFirstPlaceholder":"Задайте первый вопрос — контекст сохранён…","sideChatInjection":"Контекст внедрен","sideChatNew":"Новая тема","sideChatNoTurn":"Сохранение доступно после первого завершённого хода","sideChatPendingDrop":"Последний неотвеченный вопрос не будет включен в сохраненную сессию","sideChatRetry":"Повторить","sideChatSave":"Сохранить как новую сессию","sideChatSaveTitle":"Повысьте этот тред до уровня отдельной сессии в основном списке сессий","sideChatSaved":"Сохранено как новая сессия","sideChatSend":"Отправить","sideChatThink":"Думаю","sideChatThinking":"Глубокое погружение…","sideChatThreads":"Переключить ветку / новая","sideChatTurnUsage":"Вход: {input} токенов · Выход: {output} токенов","sideChatUntitled":"Новая тема","splitDown":"Разделить вниз","splitLeft":"Разделить влево","splitRight":"Разделить вправо","splitUp":"Разделить вверх","stage":"В индекс","stageAll":"Всё в индекс","staged":"В индексе","statusTruncated":"Слишком много изменений; показаны первые 2,000 записей","subagent":"Задачи","subagentCount":"субагентов: {count}","subagentCountRunning":"субагентов: {count} · работает: {running}","subagentDiagCorrupt":"Повреждён","subagentDiagUnavailable":"Недоступен","subagentDiagUnsupported":"Не поддерживается","subagentEmpty":"Субагентов нет","subagentEmptyDesc":"Здесь появятся субагенты, запущенные основным агентом","subagentInactive":"Простаивает","subagentMainAgent":"Основной агент","subagentModeContinuable":"С продолжением","subagentModeOneShot":"Разовый","subagentRunning":"Работает","subagentThinking":"Думает…","terminal":"Терминал","terminalConnectFailed":"Терминал не смог подключиться несколько раз подряд","terminalDepsFailed":"Не удалось загрузить зависимость терминала node-pty","terminalDepsHint":"Выполните команду ниже в терминале на машине с DSH, чтобы починить, и повторите (версия node-pty должна совпадать с версией ядра DSH):","terminalDepsProfile":" (определён профиль: {profile})","terminalError":"Не удалось подключиться к терминалу","terminalLimit":"Достигнут предел терминалов (3)","terminalRetry":"Повторить","terminalShellNotFound":"Настроенный командный шелл не найден: {name} — проверьте путь к шеллу в Настройки → Боковая карточка → Терминал","terminalSkipWait":"Пропустить ожидание","terminalWaitBanner":"Агент ожидает {needle}","timeHoursAgo":"{n} ч назад","timeJustNow":"только что","timeMinutesAgo":"{n} мин назад","timeYesterday":"вчера","toc":"Содержание","truncation":"Файл слишком большой — показаны первые 512 КБ","unpinOpenWith":"Открепить","unpinTerminal":"Открепить","unsaved":"Не сохранено","unstage":"Из индекса","unstageAll":"Всё из индекса","unstaged":"Вне индекса","uploadCancelled":"Загрузка отменена","uploadDone":"Загружено {count} файл(ов)","uploadDropChat":"Перетащите в чат, чтобы добавить изображения","uploadDropHint":"Перетащите файлы/папки сюда для загрузки","uploadFailed":"Не удалось загрузить: {error}","uploadFailedUnknown":"Неизвестная ошибка","uploadFiles":"Загрузить файлы","uploadFolder":"Загрузить папку","uploadHere":"Загрузите сюда","uploadProgress":"Загружено {done}/{total}: {name}","uploadTo":"Загрузить в {dir}","uploadTooLarge":"Файл слишком большой (превышен лимит загрузки)","uploadingTo":"Загрузка в {dir}…","viewCommitDiff":"Посмотреть изменения коммита","viewerBinary":"Скачивание файла","viewerCode":"Код","viewerHtml":"HTML","viewerImage":"Изображение","viewerMarkdown":"Markdown","viewerPdf":"PDF","worktree":"Рабочее дерево"},"dsh-better-sidebar":{"binaryNoPreview":"Файлы этого типа нельзя просмотреть","downloadToView":"Скачать для просмотра","fenceDisableAction":"Отключить ограничение путей","fenceErrorReason":"Этот путь находится вне рабочей области сессии и заблокирован","settingsBottomTerminalDesc":"При первом разворачивании нижней панели в сессии пытаться открыть свежую вкладку терминала (по умолчанию включено)","settingsBottomTerminalTitle":"Автооткрытие терминала при первом разворачивании нижней панели","settingsConflict":"Настройка изменена в другом окне — повторите попытку","settingsCustomCssDesc":"Стили, добавляемые в конец страницы (для переопределения JS-переменных используйте !important)","settingsCustomCssPlaceholder":"/* например, зарезервировать 36px для оболочки с пользовательским заголовком */\nhtml[data-dsh-title-bar-height=\"36\"] {\n --dsh-title-bar-strip: 36px !important;\n}","settingsCustomCssTitle":"Пользовательский CSS","settingsFenceDesc":"Если включено (по умолчанию), функции боковой панели работают только внутри рабочей области сессии","settingsFenceTitle":"Ограничение путей рабочей областью","settingsFontFamilyDesc":"Пользовательский шрифт терминала (CSS-стек, например \"JetBrains Mono\", monospace; пусто — системный моноширинный)","settingsFontFamilyPlaceholder":"\"JetBrains Mono\", monospace","settingsFontFamilyTitle":"Шрифт терминала","settingsFontSizeDesc":"Размер шрифта терминала в px (9–32, по умолчанию 13)","settingsFontSizeTitle":"Размер шрифта терминала","settingsJobsDesc":"Переключаться на вкладку «Задачи» при появлении новой фоновой задачи текущей сессии","settingsJobsTitle":"Автоматически открывать «Задачи» при появлении фоновой задачи","settingsOpenToolsDesc":"Если включено, модель может активно открывать файлы, папки и HTTP(S)-страницы в сайдбаре через инструмент sidebar_open (по умолчанию выключено)","settingsOpenToolsTitle":"Внедрять инструмент открытия сайдбара для модели","settingsSaveFailed":"Не удалось сохранить","settingsSchemeAutoDesc":"Консервативно: используется только стандартный Window Controls Overlay API (реальная высота наложения); в обычном веб-интерфейсе смещение не применяется","settingsSchemeAutoTitle":"Автоопределение","settingsSchemeCustomDesc":"Полный контроль: внедрение пользовательского CSS (переопределение встроенных стилей) и ручная настройка смещения","settingsSchemeCustomTitle":"Пользовательский","settingsSchemeDetectedSuffix":"обнаружено","settingsSchemeWebDesc":"Явный официальный веб-интерфейс: адаптация геометрии полностью отключена","settingsSchemeWebTitle":"Официальный веб DSH","settingsShellArgsDesc":"Явные аргументы командной оболочки через пробел (полностью заменяют стандартные)","settingsShellArgsPlaceholder":"например -l (пусто = стандартные)","settingsShellArgsTitle":"Аргументы командной оболочки","settingsShellDesc":"Оболочка для интерфейса и моделей (абсолютный путь или имя команды). Пусто — автоопределение","settingsShellPlaceholder":"например /bin/zsh (пусто = авто)","settingsShellTitle":"Командная оболочка (Shell)","settingsSubagentDesc":"Переключаться на вкладку «Задачи», когда в текущей сессии запускается субагент; широкие окна также разворачивают боковую панель","settingsSubagentTitle":"Автоматически открывать «Задачи» при появлении субагента","settingsTitleBarDesc":"Выберите схему совместимости заголовка: автоопределение (по умолчанию) / официальный веб DSH / десктопные оболочки / пользовательская (смещение + CSS)","settingsTitleBarStripDesc":"Высота полосы заголовка: на сколько пикселей сдвигать кнопки и контент вниз (0–120, по умолчанию 40; действует при пользовательской схеме)","settingsTitleBarStripTitle":"Смещение сверху","settingsTitleBarTitle":"Режим совместимости расположения","settingsToolsDesc":"Если включено, модель может создавать терминалы и управлять ими через 8 инструментов terminal_* (по умолчанию выключено)","settingsToolsTitle":"Внедрять терминальные инструменты для модели"}}
@@ -1 +1 @@
1
- {"dsh-hooks":{"addHook":"+ Добавить hook","currentHooks":"Текущие хуки","fillRunOrChannel":"hook #{i}:укажите команду run или выберите канал уведомлений","hookTriggered":"срабатываний хука","noHooks":"Нет хуков, нажмите «Редактировать» для добавления","notifyWebhook":"Webhook уведомлений","routeUnavailable":"Не удаётся получить доступ к маршрутам /dsh-hooks/*: убедитесь, что плагин dsh-hooks установлен и DSH перезапущен."}}
1
+ {"dsh-hooks":{"addHook":"+ Добавить hook","cardPreview":"Предпросмотр карточки","channelTest":"Тест каналов уведомлений","connected":"Подключено","currentHooks":"Текущие хуки","disconnect":"Отключить","disconnected":"Отключено","event":"Событие","execute":"Выполнение (реальный триггер)","feishu":"Уведомления Feishu","fillRunOrChannel":"hook #{i}:укажите команду run или выберите канал уведомлений","history":"История выполнения","hookTriggered":"срабатываний хука","manualTest":"Ручное тестирование","noHooks":"Нет хуков, нажмите «Редактировать» для добавления","notifyWebhook":"Webhook уведомлений","routeUnavailable":"Не удаётся получить доступ к маршрутам /dsh-hooks/*: убедитесь, что плагин dsh-hooks установлен и DSH перезапущен.","scanConnect":"Подключить Feishu по QR-коду","sendTest":"Отправить тестовое уведомление","simulate":"Симуляция (проверка)"},"hooks":{"addHook":"+ Добавить hook","cardPreview":"Предпросмотр карточки","channelTest":"Тест каналов уведомлений","connected":"Подключено","currentHooks":"Текущие хуки","disconnect":"Отключить","disconnected":"Отключено","event":"Событие","execute":"Выполнение (реальный триггер)","feishu":"Уведомления Feishu","fillRunOrChannel":"hook #{i}:укажите команду run или выберите канал уведомлений","history":"История выполнения","hookTriggered":"срабатываний хука","manualTest":"Ручное тестирование","noHooks":"Нет хуков, нажмите «Редактировать» для добавления","notifyWebhook":"Webhook уведомлений","routeUnavailable":"Не удаётся получить доступ к маршрутам /dsh-hooks/*: убедитесь, что плагин dsh-hooks установлен и DSH перезапущен.","scanConnect":"Подключить Feishu по QR-коду","sendTest":"Отправить тестовое уведомление","simulate":"Симуляция (проверка)"}}
@@ -1 +1 @@
1
- {"dsh-vision-bridge":{"addChannel":"Добавить канал","advanced":"Расширенные настройки","apiKey":"Ключ API","attachMaxItems":"Макс. вложений за вызов","attachMaxItemsRange":"Количество вложений за вызов должно быть целым числом от 1 до 32","attachments":"Вложения","attachmentsHint":"Сколько изображений можно опубликовать за один вызов attach, и нужно ли скрывать инструменты бриджа от моделей с нативным зрением.","auto":"Автоматически","autoDiscoverOllama":"Автопоиск моделей Ollama","baseURL":"Базовый URL","bench":"Бенчмарк","blurFaces":"Размывать лица на изображениях","channelOrderAutoLatency":"По задержке (наименьший пинг)","channelOrderManual":"Вручную (по списку)","channelOrderMode":"Режим порядка каналов","channelOrderWeighted":"По весам провайдеров","channels":"Каналы провайдеров","channelsDesc":"Список настроенных OCR / Vision провайдеров для анализа изображений.","channelsHint":"Перетащите каналы для изменения порядка приоритета.","circuitClosed":"Норма","circuitHalfOpen":"Тест восстановления","circuitOpen":"Разомкнут (сбой)","circuitState":"Состояние предохранителя (Circuit Breaker)","compression":"Сжатие изображений","compressionDesc":"Автоматически масштабировать и сжимать большие изображения перед отправкой в API.","concurrency":"Параллельные запросы","concurrencyHint":"Максимальное количество одновременных задач распознавания","consensus":"Консенсус моделей","cropImages":"Автообрезка пустых полей","cropImagesDesc":"Удалять пустые поля для экономии токенов и ускорения анализа","current":"Текущая: {provider} / {model}","currentAuto":"Автовыбор","defaultChannel":"Основной канал","defaultModel":"Модель по умолчанию","degraded":"Деградация","deleteChannel":"Удалить канал","describeStrategy":"Стратегия описания","description":"Шлюз компьютерного зрения: анализ скриншотов, распознавание документов, OCR и обработка изображений через мультимодальные модели.","deskew":"Устранение перекоса изображений","detailLevel":"Детализация (Detail Level)","detailLevelAuto":"Авто (Auto)","detailLevelHigh":"Высокая (High Detail)","detailLevelLow":"Низкая (Low Detail - экономия токенов)","discard":"Сбросить","editChannel":"Редактировать канал","empty":"-","emptyChannels":"Каналы компьютерного зрения не настроены.","enableFacePrivacy":"Защита приватности лиц","enableFacePrivacyDesc":"Обнаруживать и скрывать лица людей на скриншотах перед отправкой во внешние API","enhanceImage":"Улучшение качества изображений","errorCount":"Ошибок: {n}","escalation":"Эскалация","escalationAuto":"Автоэскалация (второй проход для сложных изображений)","escalationSimple":"Только простой режим (один проход)","failCount":"Сбоев: {n}","failed":"Не удалось загрузить/сохранить","fallbackChannel":"Резервный канал","fallbackChannelDesc":"Канал, используемый при недоступности основного провайдера","fastMode":"Быстрый режим OCR","filterProviders":"Фильтр провайдеров…","freeProviders":"Бесплатные провайдеры","healthy":"В норме","hideRedundantTools":"Скрывать инструменты бриджа у моделей со зрением","imageDimensions":"Максимальное разрешение (px)","imageDimensionsHint":"Например 2048 для ограничения максимальной стороны изображения","imageFormat":"Формат конвертации","imageFormatJpeg":"JPEG (меньший размер)","imageFormatPng":"PNG (без потерь)","imageFormatWebp":"WebP (оптимальный баланс)","imageMaxHeight":"Макс. высота (px)","imageMaxWidth":"Макс. ширина (px)","imageQuality":"Качество (1–100)","jsonrpc":"JSON-RPC","keyHidden":"неизвестно","keyMissing":"нет ключа","keyOk":"ключ в порядке","latency":"Задержка: {time}мс","latencyAvg":"Средняя задержка: {time}мс","latencyMax":"Макс. задержка: {time}мс","latencyMin":"Мин. задержка: {time}мс","latencyP95":"p95 задержка: {time}мс","loading":"Загрузка настроек Vision Bridge…","maskPII":"Маскировать персональные данные в промптах","maskSystemPaths":"Маскировать пути и IP в ответах","maxDimension":"Макс. размер стороны (px)","maxDimensionHint":"Изображения большего размера будут пропорционально уменьшены","maxTokens":"Максимум токенов вывода","method":"Метод","mode":"Режим","modeHybrid":"Гибридный (автоперезапись + инструменты)","modeLlm":"Только LLM (автоперезапись, инструменты доступны)","modeTools":"Только инструменты (без перезаписи, вызов describe_image)","model":"Модель","modelCatalog":"Каталог моделей","modelCatalogFailed":"Не удалось загрузить каталог моделей","modelCatalogLoading":"Загрузка каталога моделей…","modelInvalid":"Модель не принимает изображения","modelName":"Имя модели (например gpt-4o, claude-3-5-sonnet, qwen-vl)","modelPlaceholder":"gpt-4o","modelSelection":"Выбор модели","noChannels":"Нет доступных каналов","noModels":"Модели не найдены","noVisionModels":"No vision models in the catalog (input: [text, image]) — add one in Настройки → Models.","nsfwFilter":"Фильтр неприемлемого контента","ocrEngine":"Движок OCR","ocrEngineAuto":"Автовыбор","ocrEngineCloud":"Облачные мультимодальные модели","ocrEngineLocal":"Локальный OCR / Ollama","ocrLanguage":"Язык распознавания текста","ocrLanguageHint":"Например rus+eng для Tesseract / локальных движков","offline":"Офлайн","orderLatency":"По минимальной задержке","orderManual":"Ручной порядок","orderRandom":"Случайный балансировщик","orderRoundRobin":"Циклический (Round Robin)","orderWeighted":"Взвешенный балансировщик","pipeline":"Пайплайн обработки","pixelDiff":"Попиксельное сравнение (Pixel Diff)","pixelDiffHint":"Точное отслеживание изменений интерфейса «до / после» на уровне пикселей.","presetCloud":"Пресет: Облако","presetLmStudio":"Пресет: LM Studio","presetLocal":"Пресет: Локальный","privacy":"Приватность и безопасность","protocol":"Протокол","protocolOpenaiChat":"openai-chat","protocolOpenaiResponses":"openai-responses","provider":"Провайдер","providerName":"Имя провайдера (например openai, anthropic, ollama)","providerNameHint":"Идентификатор провайдера в системе","providerPlaceholder":"openai","quality":"Качество сжатия (1-100)","qualityAnalysis":"Анализ качества и детекция размытия","qualityAnalysisHint":"Определение резкости (дисперсия Лапласа) и извлечение цветовой палитры.","qualityHint":"85 рекомендуется для оптимального соотношения качества и размера","qualityJpeg":"Качество JPEG (%)","qualityWebp":"Качество WebP (%)","rateLimit":"Лимит запросов в минуту (RPM)","rateLimitRpm":"Лимит RPM","rateLimitTpm":"Лимит TPM","remove":"Удалить","reqBoth":"Выберите провайдера и модель, или оставьте оба пустыми для автовыбора","requestTemplate":"Шаблон запроса","requestTimeout":"Таймаут запроса (сек)","requestTimeoutHint":"Максимальное время ожидания ответа от Vision API","requests":"Запросов","reset":"Сброс (авто)","resetCircuits":"Сбросить предохранители","resetCircuitsSuccess":"Состояния предохранителей сброшены","resolution":"Разрешение","responsePath":"Путь ответа","retryAttempts":"Попыток повтора при ошибке","retryAttemptsHint":"Количество автоматических повторов при временных сбоях сети","retryCount":"Повторов: {n}","routeDirect":"Прямой маршрут","routeFallback":"Резервный маршрут","routeStrategy":"Стратегия маршрутизации","routingStrategy":"Стратегия маршрутизации","save":"Сохранить","saveChannel":"Сохранить канал","saved":"Настройки сохранены","savedChannel":"Канал сохранён","saving":"Сохранение…","savingChannel":"Сохранение канала…","secImage":"Качество изображений","secRouting":"Маршрутизация","security":"Безопасность","selfCheck":"Визуальная самопроверка","settings.channels":"Каналы","settings.circuitBreaker":"Предохранители","settings.general":"Основные","settings.performance":"Производительность","settings.privacy":"Приватность","sglang":"SGLang","status":"Статус провайдеров","statusActive":"Канал активен и проверен","statusBenchmarking":"Тестирование задержки…","statusError":"Ошибка канала: {error}","statusIdle":"Канал ожидает запросов","strategyAuto":"Авто (использовать Vision LLM)","strategyCacheOnly":"Только кэш (без сети)","strategyLlm":"Зрительная модель (Vision LLM)","strategyOcrLocal":"Локальный OCR (резерв)","stripEXIF":"Удалять метаданные EXIF","subtitle":"Изображения в чате обрабатываются выбранной моделью зрения. Оставьте поля пустыми для автовыбора первой подходящей модели.","successCount":"Успешных: {n}","successRate":"Успешность: {rate}%","targetFormat":"Целевой формат","telemetry":"Телеметрия канала","telemetryHint":"Задержка канала (RTT) в реальном времени, объём запросов и статус работоспособности.","testAllChannels":"Протестировать все каналы","testChannel":"Проверить канал","testFail":"Сбой: {err}","testOk":"OK ({ms}мс)","testSuccess":"Тест успешно пройден: ответ за {time}мс","testVision":"Тест зрения","testing":"Тестирование…","testingChannels":"Тестирование каналов…","tileLargeImages":"Фрагментировать большие изображения","timeoutSec":"Таймаут (сек)","title":"Шлюз компьютерного зрения (Vision Bridge)","tokenCount":"Токенов: {n}","tokenUsage":"Расход токенов","tokensAvg":"В среднем токенов: {n}","totalCalls":"Всего вызовов: {n}","totalLatency":"Суммарная задержка: {time}с","totalProcessed":"Обработано изображений: {n}","type":"Тип","visionFeatures":"Функции распознавания","visionFeaturesDesc":"Анализ структуры страниц, таблиц, графиков и рукописного текста","vllm":"vLLM","weightHint":"Относительный вес канала при взвешенной балансировке","weightLabel":"Вес:"}}
1
+ {"dsh-vision-bridge":{"addChannel":"Добавить канал","advanced":"Расширенные настройки","apiKey":"Ключ API","attachMaxItems":"Макс. вложений за вызов","attachMaxItemsRange":"Количество вложений за вызов должно быть целым числом от 1 до 32","attachments":"Вложения","attachmentsHint":"Сколько изображений можно опубликовать за один вызов attach, и нужно ли скрывать инструменты бриджа от моделей с нативным зрением.","auto":"Автоматически","autoDiscoverOllama":"Автопоиск моделей Ollama","baseURL":"Базовый URL","bench":"Бенчмарк","blurFaces":"Размывать лица на изображениях","channelOrderAutoLatency":"По задержке (наименьший пинг)","channelOrderManual":"Вручную (по списку)","channelOrderMode":"Режим порядка каналов","channelOrderWeighted":"По весам провайдеров","channels":"Каналы провайдеров","channelsDesc":"Список настроенных OCR / Vision провайдеров для анализа изображений.","channelsHint":"Перетащите каналы для изменения порядка приоритета.","circuitClosed":"Норма","circuitHalfOpen":"Тест восстановления","circuitOpen":"Разомкнут (сбой)","circuitState":"Состояние предохранителя (Circuit Breaker)","compression":"Сжатие изображений","compressionDesc":"Автоматически масштабировать и сжимать большие изображения перед отправкой в API.","concurrency":"Параллельные запросы","concurrencyHint":"Максимальное количество одновременных задач распознавания","consensus":"Консенсус моделей","cropImages":"Автообрезка пустых полей","cropImagesDesc":"Удалять пустые поля для экономии токенов и ускорения анализа","current":"Текущая: {provider} / {model}","currentAuto":"Автовыбор","defaultChannel":"Основной канал","defaultModel":"Модель по умолчанию","degraded":"Деградация","deleteChannel":"Удалить канал","describeStrategy":"Стратегия описания","description":"Шлюз компьютерного зрения: анализ скриншотов, распознавание документов, OCR и обработка изображений через мультимодальные модели.","deskew":"Устранение перекоса изображений","detailLevel":"Детализация (Detail Level)","detailLevelAuto":"Авто (Auto)","detailLevelHigh":"Высокая (High Detail)","detailLevelLow":"Низкая (Low Detail - экономия токенов)","discard":"Сбросить","editChannel":"Редактировать канал","empty":"-","emptyChannels":"Каналы компьютерного зрения не настроены.","enableFacePrivacy":"Защита приватности лиц","enableFacePrivacyDesc":"Обнаруживать и скрывать лица людей на скриншотах перед отправкой во внешние API","enhanceImage":"Улучшение качества изображений","errorCount":"Ошибок: {n}","escalateAuto":"Авто (быстрый OCR → LLM)","escalateLlm":"Всегда использовать Vision LLM","escalateOff":"Отключено (сразу ошибка)","escalateOnFail":"Эскалация при сбое","escalation":"Эскалация","escalationAuto":"Автоэскалация (второй проход для сложных изображений)","escalationSimple":"Только простой режим (один проход)","failCount":"Сбоев: {n}","failed":"Не удалось загрузить/сохранить","fallbackChannel":"Резервный канал","fallbackChannelDesc":"Канал, используемый при недоступности основного провайдера","fastMode":"Быстрый режим OCR","filterProviders":"Фильтр провайдеров…","freeProviders":"Бесплатные провайдеры","healthy":"В норме","hideRedundantTools":"Скрывать инструменты бриджа у моделей со зрением","imageDimensions":"Максимальное разрешение (px)","imageDimensionsHint":"Например 2048 для ограничения максимальной стороны изображения","imageFormat":"Формат конвертации","imageFormatJpeg":"JPEG (меньший размер)","imageFormatPng":"PNG (без потерь)","imageFormatWebp":"WebP (оптимальный баланс)","imageMaxHeight":"Макс. высота (px)","imageMaxWidth":"Макс. ширина (px)","imageQuality":"Качество (1–100)","jsonrpc":"JSON-RPC","keyHidden":"неизвестно","keyMissing":"нет ключа","keyOk":"ключ в порядке","latency":"Задержка: {time}мс","latencyAvg":"Средняя задержка: {time}мс","latencyMax":"Макс. задержка: {time}мс","latencyMin":"Мин. задержка: {time}мс","latencyP95":"p95 задержка: {time}мс","loading":"Загрузка настроек Vision Bridge…","maskPII":"Маскировать персональные данные в промптах","maskSystemPaths":"Маскировать пути и IP в ответах","maxDimension":"Макс. размер стороны (px)","maxDimensionHint":"Изображения большего размера будут пропорционально уменьшены","maxTokens":"Максимум токенов вывода","method":"Метод","mode":"Режим","modeHybrid":"Гибридный (автоперезапись + инструменты)","modeLlm":"Только LLM (автоперезапись, инструменты доступны)","modeTools":"Только инструменты (без перезаписи, вызов describe_image)","model":"Модель","modelCatalog":"Каталог моделей","modelCatalogFailed":"Не удалось загрузить каталог моделей","modelCatalogLoading":"Загрузка каталога моделей…","modelInvalid":"Модель не принимает изображения","modelName":"Имя модели (например gpt-4o, claude-3-5-sonnet, qwen-vl)","modelPlaceholder":"gpt-4o","modelSelection":"Выбор модели","noChannels":"Нет доступных каналов","noModels":"Модели не найдены","noVisionModels":"В каталоге нет моделей со зрением (вход: [text, image]) — добавьте в Настройки → Модели.","nsfwFilter":"Фильтр неприемлемого контента","ocrEngine":"Движок OCR","ocrEngineAuto":"Автовыбор","ocrEngineCloud":"Облачные мультимодальные модели","ocrEngineLocal":"Локальный OCR / Ollama","ocrLanguage":"Язык распознавания текста","ocrLanguageHint":"Например rus+eng для Tesseract / локальных движков","offline":"Офлайн","orderLatency":"По минимальной задержке","orderManual":"Ручной порядок","orderRandom":"Случайный балансировщик","orderRoundRobin":"Циклический (Round Robin)","orderWeighted":"Взвешенный балансировщик","pipeline":"Пайплайн обработки","pixelDiff":"Попиксельное сравнение (Pixel Diff)","pixelDiffHint":"Точное отслеживание изменений интерфейса «до / после» на уровне пикселей.","presetCloud":"Пресет: Облако","presetLmStudio":"Пресет: LM Studio","presetLocal":"Пресет: Локальный","privacy":"Приватность и безопасность","protocol":"Протокол","protocolOpenaiChat":"openai-chat","protocolOpenaiResponses":"openai-responses","provider":"Провайдер","providerName":"Имя провайдера (например openai, anthropic, ollama)","providerNameHint":"Идентификатор провайдера в системе","providerPlaceholder":"openai","quality":"Качество сжатия (1-100)","qualityAnalysis":"Анализ качества и детекция размытия","qualityAnalysisHint":"Определение резкости (дисперсия Лапласа) и извлечение цветовой палитры.","qualityHint":"85 рекомендуется для оптимального соотношения качества и размера","qualityJpeg":"Качество JPEG (%)","qualityWebp":"Качество WebP (%)","rateLimit":"Лимит запросов в минуту (RPM)","rateLimitRpm":"Лимит RPM","rateLimitTpm":"Лимит TPM","remove":"Удалить","reqBoth":"Выберите провайдера и модель, или оставьте оба пустыми для автовыбора","requestTemplate":"Шаблон запроса","requestTimeout":"Таймаут запроса (сек)","requestTimeoutHint":"Максимальное время ожидания ответа от Vision API","requests":"Запросов","reset":"Сброс (авто)","resetCircuits":"Сбросить предохранители","resetCircuitsSuccess":"Состояния предохранителей сброшены","resolution":"Разрешение","responsePath":"Путь ответа","retryAttempts":"Попыток повтора при ошибке","retryAttemptsHint":"Количество автоматических повторов при временных сбоях сети","retryCount":"Повторов: {n}","routeDirect":"Прямой маршрут","routeFallback":"Резервный маршрут","routeStrategy":"Стратегия маршрутизации","routing":"Маршрутизация","routingBalanced":"Сбалансированная","routingQuality":"Приоритет качества","routingSpeed":"Приоритет скорости","routingStrategy":"Стратегия маршрутизации","save":"Сохранить","saveChannel":"Сохранить канал","saved":"Настройки сохранены","savedChannel":"Канал сохранён","saving":"Сохранение…","savingChannel":"Сохранение канала…","secImage":"Качество изображений","secRouting":"Маршрутизация","security":"Безопасность","selfCheck":"Визуальная самопроверка","settings.channels":"Каналы","settings.circuitBreaker":"Предохранители","settings.general":"Основные","settings.performance":"Производительность","settings.privacy":"Приватность","sglang":"SGLang","status":"Статус провайдеров","statusActive":"Канал активен и проверен","statusBenchmarking":"Тестирование задержки…","statusError":"Ошибка канала: {error}","statusIdle":"Канал ожидает запросов","strategyAuto":"Авто (использовать Vision LLM)","strategyCacheOnly":"Только кэш (без сети)","strategyLlm":"Зрительная модель (Vision LLM)","strategyOcr":"Быстрый OCR","strategyOcrLocal":"Локальный OCR (резерв)","stripEXIF":"Удалять метаданные EXIF","subtitle":"Изображения в чате обрабатываются выбранной моделью зрения. Оставьте поля пустыми для автовыбора первой подходящей модели.","successCount":"Успешных: {n}","successRate":"Успешность: {rate}%","targetFormat":"Целевой формат","telemetry":"Телеметрия канала","telemetryHint":"Задержка канала (RTT) в реальном времени, объём запросов и статус работоспособности.","testAllChannels":"Протестировать все каналы","testChannel":"Проверить канал","testFail":"Сбой: {err}","testOk":"OK ({ms}мс)","testSuccess":"Тест успешно пройден: ответ за {time}мс","testVision":"Тест зрения","testing":"Тестирование…","testingChannels":"Тестирование каналов…","tileLargeImages":"Фрагментировать большие изображения","timeoutSec":"Таймаут (сек)","title":"Шлюз компьютерного зрения (Vision Bridge)","tokenCount":"Токенов: {n}","tokenUsage":"Расход токенов","tokensAvg":"В среднем токенов: {n}","totalCalls":"Всего вызовов: {n}","totalLatency":"Суммарная задержка: {time}с","totalProcessed":"Обработано изображений: {n}","type":"Тип","visionFeatures":"Функции распознавания","visionFeaturesDesc":"Анализ структуры страниц, таблиц, графиков и рукописного текста","vllm":"vLLM","weightHint":"Относительный вес канала при взвешенной балансировке","weightLabel":"Вес:"}}
@@ -1 +1 @@
1
- {"dsh-key-rotation":{"activeBadge":"активен","addKey":"+ Добавить ключ","addKeyTitle":"Добавить API-ключ","addProvider":"+ Добавить провайдера","brokenKey":"повреждён (3× AUTH)","budgetLabel":"бюджет:","bulkApply":"Применить к выбранным","bulkCooldownPlaceholder":"Массовый таймаут (мс)","bulkRemove":"Удалить выбранные","cancel":"Отмена","cardDesc":"Ротация API-ключей для провайдеров: пулы ключей, автоматическое переключение при исчерпании квот и rate-limit, кулдаун и восстановление.","codesTitle":"Переключать при этих ошибках","confirm":"Подтвердить","confirmBulkRemoveDesc":"Выбранные провайдеры и все их ключи будут исключены из ротации. Действие можно отменить один раз сразу после удаления.","confirmBulkRemoveTitle":"Удалить выбранных провайдеров ({n})?","confirmRemoveProvDesc":"Вы уверены, что хотите удалить этого провайдера и все настроенные ключи из ротации?","confirmRemoveProvTitle":"Удалить провайдера {p}?","confirmResetDesc":"Это немедленно сбросит счётчики сбоев, таймеры охлаждения и переведёт автоматический выключатель (circuit breaker) в исходное состояние.","confirmResetTitle":"Сбросить охлаждение для {p}?","cooldown":"Кулдаун после ошибки (мс)","desc":"Ротация API-ключей по провайдерам. Для каждого провайдера укажите список его ключей (имена переменных окружения из DSH credentials). Плагин направляет запросы по очереди и автоматически переключается на следующий ключ при ошибках лимитов или квот.","dialogLabel":"Подтверждение","discard":"Сбросить","empty":"Провайдеры для ротации ключей не настроены.","emptyDesc":"Добавьте провайдера и хотя бы одно имя API-ключа для запуска ротации.","emptyKeys":"В пуле пока нет ключей.","emptyTitle":"Пулов пока нет","errorCount":"Ошибок: {n}","errorTitle":"Не удалось загрузить настройки","eventAt":"Время","eventCooldown":"Таймаут","eventKey":"Ключ","eventReason":"Причина","exportCsv":"Экспорт в CSV","exportOne":"Экспорт пула","exportPools":"Экспорт всех пулов в JSON","exportProvider":"Экспортировать этого провайдера","failover":"Автоматическое переключение","failoverDesc":"Переключаться на следующий ключ в пуле при получении кодов 429, 402, 403, 503","filterAll":"Все ключи","filterCooldown":"На кулдауне","filterErrors":"С ошибками","filterReady":"Готовы к работе","header.keys_badge":"настроенных ключей","header.pools_badge":"активных пулов","header.sub":"Автоматическая круговая (round-robin) ротация нескольких ключей, экспоненциальные таймауты при ошибках 429/5xx, защита цепи failover и безопасность учётных данных (~/.dsh/.credentials.yaml).","header.title":"Ротация ключей и отказоустойчивость","headerPoolsTitle":"Пулы ротации ключей","health":"Состояние пула","healthBad":"Все ключи исчерпаны или заблокированы","healthGood":"Все ключи работоспособны","healthScoreTitle":"рейтинг надёжности","healthWarn":"Часть ключей на кулдауне","hoursAgo":"{n} ч назад","importEnv":"Импорт из переменных окружения (.env)","importPools":"Импорт пулов из JSON","justNow":"только что","key":"Ключ","keyActive":"Активен","keyBlocked":"Заблокирован","keyCooldown":"Кулдаун ({time}с)","keyCooling":"охлаждение, {s}с","keyDisabled":"Отключён вручную","keyErrors":"Ошибок подряд: {n}","keyExpired":"истёк","keyExpiringSoon":"истекает через {n} дн.","keyFromEnv":"из переменных окружения, только чтение","keyHint":"Значение сохраняется в учётных данных DSH и никогда не отправляется обратно в браузер — отображаются только последние 5 символов.","keyLabel":"Ключ {n}","keyLatency":"Задержка: {time}мс","keyMissing":"учётные данные отсутствуют","keyName":"Имя ключа","keyPlaceholder":"OPENAI_API_KEY_2","keyPool":"Пул ключей","keyPriority":"Приоритет","keyQuota":"Квота исчерпана","keyRateLimit":"Превышен лимит запросов","keyReady":"готов","keyRemoved":"Ключ удалён","keySave":"Сохранить key","keySaved":"Ключ добавлен","keySuccess":"Успешных запросов: {n}","keyValuePlaceholder":"paste the key, then Сохранить","keyWeight":"Вес: {n}","keyWriteFailed":"не удалось сохранить ключ: {msg}","keysCount":"Ключей в пуле: {n}","keysTitle":"Список ключей","lastError":"Последняя ошибка: {msg}","lastSuccess":"Успешный запрос: {time}","liveEventStream":"Лента событий в реальном времени","liveEventStreamEmpty":"События ротации пока не зафиксированы","loadChartAria":"Распределение трафика по ключам","loadDistribution":"Распределение трафика","loading":"Загрузка пулов ротации…","metrics":"Метрики использования","metricsAvgLatency":"Средняя задержка","metricsErrors":"Ошибки","metricsSuccess":"Успешные","metricsThroughput":"Запросов/мин","metricsTotal":"Всего запросов","minutesAgo":"{n} мин назад","modalAddKey":"Добавление ключа в пул","modalAddProvider":"Добавление пула провайдера","modalClose":"Закрыть диалог","modalEditKey":"Редактирование ключа","modalEditProvider":"Редактирование провайдера","mode":"Режим выбора ключа","modeOrder":"По порядку (Sequential)","modeRandom":"Случайно (Random)","modeWeighted":"По весам / бюджету","moveDown":"Переместить вниз","moveUp":"Переместить вверх","name":"Ротация API-ключей","noActivePools":"Нет активных пулов","noProviders":"Провайдеры не добавлены","noTrafficYet":"Трафик пока не зафиксирован","notRegistered":"не зарегистрирован","notSecretShape":"сохранено, но значение не похоже на API-ключ — проверьте опечатки","pausedBudget":"приостановлен","poolActive":"Пул активен","poolDisabled":"Пул отключён","poolEmpty":"В пуле нет активных ключей","poolExhausted":"пул исчерпан — все ключи охлаждаются","poolName":"Имя пула провайдера","proactiveGuardHint":"Заранее ставить ключи на паузу при приближении к квоте или заголовку Retry-After до получения 429","proactiveGuardLabel":"Превентивная защита от лимитов (Rate-Limit Guard)","provider":"Провайдер","providerActive":"Активен","providerDisabled":"Отключён","providerName":"Имя провайдера (например openai, openrouter)","providerPlaceholder":"openai","providerRemoved":"Провайдер удалён","providerType":"Тип провайдера","providersTitle":"Провайдеры и их ключи","quotaExhausted":"Квота исчерпана","quotaResetIn":"Сброс через {time}","rateLimit":"Превышен лимит запросов","recentFailures":"Недавние сбои ({n})","removeKey":"Удалить ключ","removeProvider":"Удалить провайдера","resetAll":"Сбросить статистику и кулдауны","resetAllSuccess":"Статистика и кулдауны успешно сброшены","resetCooldown":"Сбросить охлаждение","resetCooldowns":"Сбросить все кулдауны","resetSuccess":"Кулдауны ключей сброшены","resetting":"Сброс…","retestBroken":"Повторный тест","retestFail":"повторный тест не пройден — ключ всё ещё не работает","retry":"Повторить","retryCount":"Попыток повтора","retryInterval":"Интервал повтора (мс)","rotationMode":"Режим ротации","rotationSequential":"Последовательный (Round-Robin)","rotationWeighted":"Взвешенный (Weighted)","routingStrategyLabel":"Стратегия маршрутизации","routingStrategyLeastLoaded":"Минимальная нагрузка (по параллелизму)","routingStrategyLowestLatency":"Минимальная задержка (p95)","routingStrategyRoundRobin":"Круговой перебор (Round-Robin, по умолчанию)","rpmTitle":"запросов/мин: {u} использовано, {r} осталось","save":"Сохранить настройки","saved":"Настройки сохранены","saving":"Сохранение…","scheduleDays":"Расписание ротации (дней, 0=выкл.)","secondsAgo":"{n} с назад","sectionBackup":"Резервные копии и снимки","sectionBackupDesc":"Экспорт и импорт пулов провайдеров и создание полных снимков конфигурации плагина.","sectionFailover":"Триггеры отказа и коды ошибок","sectionFailoverDesc":"Выбор условий и ошибок, вызывающих автоматическое переключение на следующий доступный ключ.","sectionStats":"Здоровье пула и телеметрия","sectionStatsDesc":"Телеметрия активных пулов ключей в реальном времени, доступные учётные данные и статус переключения.","sectionTiming":"Тайминги и расписание ротации","sectionTimingDesc":"Настройка длительности периода охлаждения (cooldown) и окон периодической ротации.","selectProvider":"Выбрать провайдера {p}","selfHealingHint":"Периодическая проверка бесплатной моделью для возврата вышедших из строя ключей (0 — отключено)","selfHealingLabel":"Интервал автовосстановления (мин)","snapshotExport":"Снимок ⬇","snapshotImport":"Восстановить","sortUsage":"Сортировать по нагрузке","statHealthy":"Исправны / Готовы","statKeys":"Всего ключей","statPools":"Настроенных пулов","statRequests":"запросов","status":"Статус","statusAvailable":"Доступен","statusCooldown":"Кулдаун","statusDisabled":"Отключён","statusExhausted":"Исчерпан","statusFailed":"Ошибка","strategy":"Стратегия failover","subtitle":"Ротация API-ключей по провайдерам: пулы ключей, автоматическое переключение при исчерпании квот/лимитов, охлаждение и восстановление.","switchCodes":"Коды переключения (через запятую)","switchCount":"Переключений: {n}","switchesNone":"переключений пока не было","switchesSome":"переключений: {n} · последнее: {reason}, {ago}","testAll":"Проверить все ключи","testFail":"СБОЙ","testKey":"Проверить ключ","testOk":"OK","testSuccess":"Ключ валиден: ответ за {time}мс","testing":"Тестирование…","testingAllProgress":"Проверка {n} из {total}…","title":"Ротация API-ключей (dsh-key-rotation)","totalCalls":"Всего вызовов: {n}","totalErrors":"Всего сбоев: {n}","totalRequestsTitle":"всего запросов","unavailableDesc":"Хост не предоставил пространство настроек dsh-key-rotation. Откройте «Настройки» заново или проверьте, включён ли плагин.","unavailableTitle":"Мост настроек недоступен","undo":"Отменить","undoKey":"Ключ удалён","undoProvider":"Провайдер удалён","usedAgo":"{ago} назад","weight":"Вес ключа","weightHint":"вес в round-robin: сколько раз ключ участвует в цикле (1 = равная доля)"}}
1
+ {"dsh-key-rotation":{"activeBadge":"активен","addKey":"+ Добавить ключ","addKeyTitle":"Добавить API-ключ","addProvider":"+ Добавить провайдера","brokenKey":"повреждён (3× AUTH)","budgetLabel":"бюджет:","bulkApply":"Применить к выбранным","bulkCooldownPlaceholder":"Массовый таймаут (мс)","bulkRemove":"Удалить выбранные","cancel":"Отмена","cardDesc":"Ротация API-ключей для провайдеров: пулы ключей, автоматическое переключение при исчерпании квот и rate-limit, кулдаун и восстановление.","codesTitle":"Переключать при этих ошибках","confirm":"Подтвердить","confirmBulkRemoveDesc":"Выбранные провайдеры и все их ключи будут исключены из ротации. Действие можно отменить один раз сразу после удаления.","confirmBulkRemoveTitle":"Удалить выбранных провайдеров ({n})?","confirmRemoveProvDesc":"Вы уверены, что хотите удалить этого провайдера и все настроенные ключи из ротации?","confirmRemoveProvTitle":"Удалить провайдера {p}?","confirmResetDesc":"Это немедленно сбросит счётчики сбоев, таймеры охлаждения и переведёт автоматический выключатель (circuit breaker) в исходное состояние.","confirmResetTitle":"Сбросить охлаждение для {p}?","cooldown":"Кулдаун после ошибки (мс)","currentVersion":"Текущая версия","desc":"Ротация API-ключей по провайдерам. Для каждого провайдера укажите список его ключей (имена переменных окружения из DSH credentials). Плагин направляет запросы по очереди и автоматически переключается на следующий ключ при ошибках лимитов или квот.","dialogLabel":"Подтверждение","discard":"Сбросить","empty":"Провайдеры для ротации ключей не настроены.","emptyDesc":"Добавьте провайдера и хотя бы одно имя API-ключа для запуска ротации.","emptyKeys":"В пуле пока нет ключей.","emptyTitle":"Пулов пока нет","errorCount":"Ошибок: {n}","errorTitle":"Не удалось загрузить настройки","eventAt":"Время","eventCooldown":"Таймаут","eventKey":"Ключ","eventReason":"Причина","exportCsv":"Экспорт в CSV","exportOne":"Экспорт пула","exportPools":"Экспорт всех пулов в JSON","exportProvider":"Экспортировать этого провайдера","failover":"Автоматическое переключение","failoverDesc":"Переключаться на следующий ключ в пуле при получении кодов 429, 402, 403, 503","filterAll":"Все ключи","filterCooldown":"На кулдауне","filterErrors":"С ошибками","filterReady":"Готовы к работе","header.keys_badge":"настроенных ключей","header.pools_badge":"активных пулов","header.sub":"Автоматическая круговая (round-robin) ротация нескольких ключей, экспоненциальные таймауты при ошибках 429/5xx, защита цепи failover и безопасность учётных данных (~/.dsh/.credentials.yaml).","header.title":"Ротация ключей и отказоустойчивость","headerPoolsTitle":"Пулы ротации ключей","health":"Состояние пула","healthBad":"Все ключи исчерпаны или заблокированы","healthGood":"Все ключи работоспособны","healthScoreTitle":"рейтинг надёжности","healthWarn":"Часть ключей на кулдауне","hoursAgo":"{n} ч назад","importEnv":"Импорт из переменных окружения (.env)","importPools":"Импорт пулов из JSON","justNow":"только что","key":"Ключ","keyActive":"Активен","keyBlocked":"Заблокирован","keyCooldown":"Кулдаун ({time}с)","keyCooling":"охлаждение, {s}с","keyDisabled":"Отключён вручную","keyErrors":"Ошибок подряд: {n}","keyExpired":"истёк","keyExpiringSoon":"истекает через {n} дн.","keyFromEnv":"из переменных окружения, только чтение","keyHint":"Значение сохраняется в учётных данных DSH и никогда не отправляется обратно в браузер — отображаются только последние 5 символов.","keyLabel":"Ключ {n}","keyLatency":"Задержка: {time}мс","keyMissing":"учётные данные отсутствуют","keyName":"Имя ключа","keyPlaceholder":"OPENAI_API_KEY_2","keyPool":"Пул ключей","keyPriority":"Приоритет","keyQuota":"Квота исчерпана","keyRateLimit":"Превышен лимит запросов","keyReady":"готов","keyRemoved":"Ключ удалён","keySave":"Сохранить key","keySaved":"Ключ добавлен","keySuccess":"Успешных запросов: {n}","keyValuePlaceholder":"paste the key, then Сохранить","keyWeight":"Вес: {n}","keyWriteFailed":"не удалось сохранить ключ: {msg}","keysCount":"Ключей в пуле: {n}","keysTitle":"Список ключей","lastError":"Последняя ошибка: {msg}","lastSuccess":"Успешный запрос: {time}","latestVersion":"Последняя версия","liveEventStream":"Лента событий в реальном времени","liveEventStreamEmpty":"События ротации пока не зафиксированы","loadChartAria":"Распределение трафика по ключам","loadDistribution":"Распределение трафика","loading":"Загрузка пулов ротации…","metrics":"Метрики использования","metricsAvgLatency":"Средняя задержка","metricsErrors":"Ошибки","metricsSuccess":"Успешные","metricsThroughput":"Запросов/мин","metricsTotal":"Всего запросов","minutesAgo":"{n} мин назад","modalAddKey":"Добавление ключа в пул","modalAddProvider":"Добавление пула провайдера","modalClose":"Закрыть диалог","modalEditKey":"Редактирование ключа","modalEditProvider":"Редактирование провайдера","mode":"Режим выбора ключа","modeOrder":"По порядку (Sequential)","modeRandom":"Случайно (Random)","modeWeighted":"По весам / бюджету","moveDown":"Переместить вниз","moveUp":"Переместить вверх","name":"Ротация API-ключей","noActivePools":"Нет активных пулов","noProviders":"Провайдеры не добавлены","noTrafficYet":"Трафик пока не зафиксирован","notRegistered":"не зарегистрирован","notSecretShape":"сохранено, но значение не похоже на API-ключ — проверьте опечатки","pausedBudget":"приостановлен","poolActive":"Пул активен","poolDisabled":"Пул отключён","poolEmpty":"В пуле нет активных ключей","poolExhausted":"пул исчерпан — все ключи охлаждаются","poolName":"Имя пула провайдера","proactiveGuardHint":"Заранее ставить ключи на паузу при приближении к квоте или заголовку Retry-After до получения 429","proactiveGuardLabel":"Превентивная защита от лимитов (Rate-Limit Guard)","provider":"Провайдер","providerActive":"Активен","providerDisabled":"Отключён","providerName":"Имя провайдера (например openai, openrouter)","providerPlaceholder":"openai","providerRemoved":"Провайдер удалён","providerType":"Тип провайдера","providersTitle":"Провайдеры и их ключи","quotaExhausted":"Квота исчерпана","quotaResetIn":"Сброс через {time}","rateLimit":"Превышен лимит запросов","recentFailures":"Недавние сбои ({n})","removeKey":"Удалить ключ","removeProvider":"Удалить провайдера","resetAll":"Сбросить статистику и кулдауны","resetAllSuccess":"Статистика и кулдауны успешно сброшены","resetCooldown":"Сбросить охлаждение","resetCooldowns":"Сбросить все кулдауны","resetSuccess":"Кулдауны ключей сброшены","resetting":"Сброс…","retestBroken":"Повторный тест","retestFail":"повторный тест не пройден — ключ всё ещё не работает","retry":"Повторить","retryCount":"Попыток повтора","retryInterval":"Интервал повтора (мс)","rotationMode":"Режим ротации","rotationSequential":"Последовательный (Round-Robin)","rotationWeighted":"Взвешенный (Weighted)","routingStrategyLabel":"Стратегия маршрутизации","routingStrategyLeastLoaded":"Минимальная нагрузка (по параллелизму)","routingStrategyLowestLatency":"Минимальная задержка (p95)","routingStrategyRoundRobin":"Круговой перебор (Round-Robin, по умолчанию)","rpmTitle":"запросов/мин: {u} использовано, {r} осталось","save":"Сохранить настройки","saved":"Настройки сохранены","saving":"Сохранение…","scheduleDays":"Расписание ротации (дней, 0=выкл.)","secondsAgo":"{n} с назад","sectionBackup":"Резервные копии и снимки","sectionBackupDesc":"Экспорт и импорт пулов провайдеров и создание полных снимков конфигурации плагина.","sectionFailover":"Триггеры отказа и коды ошибок","sectionFailoverDesc":"Выбор условий и ошибок, вызывающих автоматическое переключение на следующий доступный ключ.","sectionStats":"Здоровье пула и телеметрия","sectionStatsDesc":"Телеметрия активных пулов ключей в реальном времени, доступные учётные данные и статус переключения.","sectionTiming":"Тайминги и расписание ротации","sectionTimingDesc":"Настройка длительности периода охлаждения (cooldown) и окон периодической ротации.","selectProvider":"Выбрать провайдера {p}","selfHealingHint":"Периодическая проверка бесплатной моделью для возврата вышедших из строя ключей (0 — отключено)","selfHealingLabel":"Интервал автовосстановления (мин)","snapshotExport":"Снимок ⬇","snapshotImport":"Восстановить","sortUsage":"Сортировать по нагрузке","statHealthy":"Исправны / Готовы","statKeys":"Всего ключей","statPools":"Настроенных пулов","statRequests":"запросов","status":"Статус","statusAvailable":"Доступен","statusCooldown":"Кулдаун","statusDisabled":"Отключён","statusExhausted":"Исчерпан","statusFailed":"Ошибка","strategy":"Стратегия failover","subtitle":"Ротация API-ключей по провайдерам: пулы ключей, автоматическое переключение при исчерпании квот/лимитов, охлаждение и восстановление.","switchCodes":"Коды переключения (через запятую)","switchCount":"Переключений: {n}","switchesNone":"переключений пока не было","switchesSome":"переключений: {n} · последнее: {reason}, {ago}","testAll":"Проверить все ключи","testFail":"СБОЙ","testKey":"Проверить ключ","testOk":"OK","testSuccess":"Ключ валиден: ответ за {time}мс","testing":"Тестирование…","testingAllProgress":"Проверка {n} из {total}…","title":"Ротация API-ключей (dsh-key-rotation)","totalCalls":"Всего вызовов: {n}","totalErrors":"Всего сбоев: {n}","totalRequestsTitle":"всего запросов","unavailableDesc":"Хост не предоставил пространство настроек dsh-key-rotation. Откройте «Настройки» заново или проверьте, включён ли плагин.","unavailableTitle":"Мост настроек недоступен","undo":"Отменить","undoKey":"Ключ удалён","undoProvider":"Провайдер удалён","updateAvailable":"Доступно обновление","updateCheck":"Проверить обновления","updateFailed":"Сбой обновления","updateNone":"Установлена актуальная версия","updateRestart":"Обновление установлено. Перезапустите DSH для применения.","updateRun":"Обновить сейчас","updateRunning":"Обновление…","usedAgo":"{ago} назад","weight":"Вес ключа","weightHint":"вес в round-robin: сколько раз ключ участвует в цикле (1 = равная доля)"},"keyRotation":{"currentVersion":"Текущая версия","latestVersion":"Последняя версия","updateAvailable":"Доступно обновление","updateCheck":"Проверить обновления","updateFailed":"Сбой обновления","updateNone":"Установлена актуальная версия","updateRestart":"Обновление установлено. Перезапустите DSH для применения.","updateRun":"Обновить сейчас","updateRunning":"Обновление…"}}
@@ -0,0 +1 @@
1
+ {"memoryMeter":{"cardActivity":"Активность по времени","cardLayers":"По слоям","cardRecent":"Последние обращения","cardTools":"Инструменты","denied":"Метрики недоступны: конечная точка отвечает только на локальные и same-origin запросы.","footerMetrics":"Метрики","footerSince":"сбор начат","kpiCalls":"Обращений всего","kpiCallsSub":"за время работы процесса","kpiInject":"Автоинжект","kpiRead":"Прочитано из памяти","kpiSuccess":"Успешных обращений","kpiWritten":"Записано в память","layerBrain":"MemoryBrain","layerNative":"Нативный DSH","layerWiki":"Wiki","legendRecall":"чтение (recall)","legendWrite":"запись (write)","live":"Live","notTracked":"не трекается","period30":"за 30 дней","period7":"за 7 дней","periodAll":"за всё время","periodToday":"сегодня","range1":"Сегодня","range30":"30д","range7":"7д","rangeAll":"Всё","scopeAll":"Все сессии","scopeSession":"В этой сессии","tab":"Память","thCalls":"Обращения","thChars":"Символов","thLayer":"Слой","thQuery":"Запрос","thSuccess":"Успех","thTime":"Время","thTool":"Инструмент","thVolume":"Объём","unitErrors":"ошибок","unitReads":"чтений","unitTotalWord":"всего","unitTurns":"ходов","unitWrites":"записей"}}
@@ -0,0 +1 @@
1
+ {"dsh-server-monitor":{"addServer":"Добавить сервер","address":"Адрес","architecture":"Архитектура","auth":"Способ аутентификации","available":"Доступно","cancel":"Отмена","command":"Команда","confirmDelete":"Удалить этот профиль сервера?","containers":"Контейнеры","cpu":"Процессор","deleteServer":"Удалить профиль","disks":"Диски","editServer":"Редактировать сервер","error":"Ошибка","filesystem":"Файловая система","host":"Хост","hostname":"Имя узла","image":"Образ","interface":"Сетевой интерфейс","keepSecret":"Оставьте поле пустым, чтобы сохранить текущее значение.","kernel":"Ядро","key":"Закрытый ключ","keyHint":"Ключ хранится только в хранилище этого плагина.","keyPath":"Путь к ключу","load":"Средняя нагрузка","loading":"Загрузка…","memory":"Память","mount":"Точка монтирования","name":"Название","network":"Сеть","noServers":"Серверы не настроены.","noSnapshot":"Снимок состояния недоступен.","os":"Операционная система","passphrase":"Парольная фраза ключа","password":"Пароль","port":"Порт","ports":"Прослушиваемые порты","processes":"Наиболее ресурсоёмкие процессы","protocol":"Протокол","resources":"Ресурсы","rx":"Получено (RX)","saved":"Сохранено","saving":"Сохранение…","select":"Выберите сервер","servers":"Серверы","state":"Состояние","subtitle":"Состояние Linux-серверов — только для просмотра","swap":"Область подкачки","system":"Система","testing":"Проверка подключения…","title":"Монитор серверов","tx":"Передано (TX)","unavailable":"Недоступно","uptime":"Время работы","used":"Использовано","username":"Имя пользователя"}}
@@ -0,0 +1 @@
1
+ {"agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."},"dsh-agentrouter":{"apiKeyEnv":"Имя переменной окружения / ключа API","apiKeyHint":"Укажите ключ ar-… в учётных данных DSH или в переменной окружения процесса. Не вставляйте секрет в эту форму.","baseUrl":"Базовый URL","defaultModel":"Модель по умолчанию","enabled":"Включено","keyMissing":"ключ отсутствует","loading":"Загрузка настроек…","refresh":"Обновить","registerProvider":"Зарегистрировать в моделях","save":"Сохранить","saved":"Сохранено","smokeChat":"Тестовый чат","subtitle":"Маршрутизация агентов и интеграция моделей через локальный или удалённый прокси","title":"AgentRouter","unavailable":"Настройки недоступны (статус снимка: {status}). Пространство имён хоста отсутствует."}}