993 lines
57 KiB
JSON
993 lines
57 KiB
JSON
{
|
||
"tabs": {
|
||
"advanced": {
|
||
"description": "Расширенные параметры: экспорт и импорт конфигурации, сброс настроек и редактирование raw-конфигурации.",
|
||
"label": "Расширенные"
|
||
},
|
||
"general": {
|
||
"description": "Основные настройки приложения: тема, язык, плотность интерфейса и поведение при запуске.",
|
||
"label": "Общие"
|
||
},
|
||
"infoAriaLabel": "Что такое «{{label}}»?",
|
||
"notifications": {
|
||
"description": "Настройте, когда и как получать уведомления об активности агентов, завершении задач и ошибках.",
|
||
"label": "Уведомления"
|
||
}
|
||
},
|
||
"view": {
|
||
"description": "Управление настройками приложения",
|
||
"loading": "Загрузка настроек...",
|
||
"title": "Настройки"
|
||
},
|
||
"runtimeProvider": {
|
||
"actions": {
|
||
"cancel": "Отмена",
|
||
"test": "Тест"
|
||
},
|
||
"defaults": {
|
||
"allProjects": "Все проекты",
|
||
"allProjectsHint": "Тесты используют {{project}}. Default применяется, если у проекта нет своего override.",
|
||
"loadingContexts": "Загрузка contexts...",
|
||
"projectHint": "Сохранение изменит override только для {{project}}.",
|
||
"projectOverrideContext": "Project override context",
|
||
"scopeDescriptionAllProjects": "Default для всех проектов, у которых нет собственного OpenCode override.",
|
||
"scopeDescriptionProject": "Override только для выбранного проекта. Уже запущенные команды не изменяются.",
|
||
"selectProjectContext": "Выберите project context",
|
||
"selectProjectHint": "Выберите проект перед тестированием local models или сохранением defaults.",
|
||
"selectValidationContext": "Выберите validation context",
|
||
"setAllProjectsDefault": "Задать default для всех проектов",
|
||
"setProjectDefault": "Задать default для проекта",
|
||
"thisProject": "Этот проект",
|
||
"title": "OpenCode defaults",
|
||
"validationContext": "Validation context"
|
||
},
|
||
"diagnostics": {
|
||
"copied": "Diagnostics скопированы",
|
||
"copiedShort": "Скопировано",
|
||
"copy": "Скопировать diagnostics",
|
||
"hints": "Подсказки",
|
||
"likelyCause": "Вероятная причина:"
|
||
},
|
||
"models": {
|
||
"alreadyDefault": "Это уже выбранный OpenCode default.",
|
||
"empty": "Модели не найдены.",
|
||
"emptyFree": "Free models не найдены.",
|
||
"emptyRecommended": "Recommended models не найдены.",
|
||
"emptyRecommendedFree": "Recommended free models не найдены.",
|
||
"freeOnly": "Только free",
|
||
"launchableDescription": "Известные routes из OpenCode config, free built-in models и текущий default. Local routes нужно проверить тестом перед запуском команд.",
|
||
"launchableTitle": "Маршруты моделей OpenCode",
|
||
"loadingRoutes": "Загрузка OpenCode model routes...",
|
||
"noRoutesMatch": "OpenCode model routes не найдены по запросу \"{{query}}\".",
|
||
"noneReported": "OpenCode model routes пока не получены. Настройте local route в OpenCode или используйте вкладку Providers для просмотра catalog providers.",
|
||
"recommendedOnly": "Только recommended",
|
||
"searchPlaceholder": "Поиск моделей",
|
||
"selectProjectBeforeTesting": "Выберите project context перед тестированием моделей.",
|
||
"selectProjectBeforeTestingDefaults": "Выберите project context перед тестированием или сохранением OpenCode defaults.",
|
||
"testInProgress": "Тест модели уже выполняется.",
|
||
"useInTeamPicker": "Сохранить для team picker",
|
||
"validationContextRequired": "Выберите validation context выше, чтобы включить Test и Set default. Сохранение для team picker только запоминает route для новых команд.",
|
||
"actionsUnavailable": "Действия временно недоступны.",
|
||
"defaultSaveInProgress": "OpenCode default сохраняется.",
|
||
"routeUnavailableAuth": "Этому provider нужна авторизация перед использованием модели.",
|
||
"routeUnavailableFailed": "Этот model route не прошёл последний execution test.",
|
||
"routeUnavailableGeneric": "Этот model route сейчас нельзя использовать.",
|
||
"routeUnavailableUnknown": "Эта модель выбрана текущим OpenCode default, но её пока нет в live catalog."
|
||
},
|
||
"providers": {
|
||
"catalog": "OpenCode provider catalog",
|
||
"countFallback": "OpenCode providers",
|
||
"description": "{{count}}. Connected и recommended providers показаны первыми.",
|
||
"description_few": "{{count}}. Connected и recommended providers показаны первыми.",
|
||
"description_many": "{{count}}. Connected и recommended providers показаны первыми.",
|
||
"description_one": "{{count}}. Connected и recommended providers показаны первыми.",
|
||
"description_other": "{{count}}. Connected и recommended providers показаны первыми.",
|
||
"loadMore": "Загрузить ещё providers",
|
||
"loading": "Загрузка OpenCode providers",
|
||
"noMatches": "Providers не найдены по поиску.",
|
||
"noneReported": "Managed runtime не сообщил OpenCode providers.",
|
||
"recommended": "Recommended",
|
||
"refreshCatalog": "Обновить catalog",
|
||
"searchPlaceholder": "Поиск providers"
|
||
},
|
||
"setup": {
|
||
"loading": "Загрузка provider setup..."
|
||
},
|
||
"summary": {
|
||
"defaultModel": "OpenCode default: {{model}}",
|
||
"loading": "Загрузка managed OpenCode runtime, connected providers и model defaults...",
|
||
"source": "Источник: {{source}}",
|
||
"title": "OpenCode runtime"
|
||
},
|
||
"tabs": {
|
||
"models": "Модели",
|
||
"providers": "Providers"
|
||
},
|
||
"modelRoutes": {
|
||
"searchPlaceholder": "Поиск маршрутов моделей"
|
||
},
|
||
"badges": {
|
||
"usedInTeamPicker": "Сохранено для team picker",
|
||
"free": "free",
|
||
"local": "local",
|
||
"configured": "настроено",
|
||
"knownRoute": "известный route",
|
||
"connected": "подключено",
|
||
"verified": "проверено",
|
||
"needsTest": "нужен тест",
|
||
"failed": "ошибка",
|
||
"unknown": "неизвестно",
|
||
"default": "по умолчанию"
|
||
},
|
||
"compatibleEndpoint": {
|
||
"baseUrlPlaceholder": "http://localhost:1234"
|
||
}
|
||
},
|
||
"general": {
|
||
"agentLanguage": {
|
||
"description": "Язык общения с агентами",
|
||
"descriptionWithDetected": "Язык общения с агентами (определён: {{detected}})",
|
||
"emptyMessage": "Язык не найден.",
|
||
"label": "Язык",
|
||
"searchPlaceholder": "Поиск языка...",
|
||
"selectPlaceholder": "Выберите язык...",
|
||
"title": "Язык агентов"
|
||
},
|
||
"appLanguage": {
|
||
"description": "Язык интерфейса приложения.",
|
||
"label": "Язык",
|
||
"title": "Язык приложения"
|
||
},
|
||
"appearance": {
|
||
"autoExpandAIGroups": {
|
||
"description": "Автоматически раскрывать каждый ответ при открытии транскрипта или получении нового сообщения",
|
||
"label": "Раскрывать ответы AI по умолчанию"
|
||
},
|
||
"nativeTitleBar": {
|
||
"description": "Использовать стандартную системную рамку окна вместо кастомной панели заголовка",
|
||
"label": "Использовать системную панель заголовка",
|
||
"restartConfirm": {
|
||
"confirmLabel": "Перезапустить",
|
||
"message": "Чтобы применить изменение панели заголовка, приложение нужно перезапустить. Перезапустить сейчас?",
|
||
"title": "Требуется перезапуск"
|
||
}
|
||
},
|
||
"theme": {
|
||
"description": "Выберите предпочитаемую цветовую тему",
|
||
"label": "Тема",
|
||
"options": {
|
||
"dark": "Тёмная",
|
||
"light": "Светлая",
|
||
"system": "Системная"
|
||
}
|
||
},
|
||
"title": "Внешний вид"
|
||
},
|
||
"browserAccess": {
|
||
"serverMode": {
|
||
"description": "Запустить HTTP-сервер для доступа к интерфейсу из браузера или встраивания в iframe",
|
||
"label": "Включить режим сервера"
|
||
},
|
||
"title": "Доступ из браузера"
|
||
},
|
||
"localClaudeRoot": {
|
||
"actions": {
|
||
"selectFolder": "Выбрать папку",
|
||
"selectFolderManually": "Выбрать папку вручную",
|
||
"useAutoDetect": "Использовать автоопределение",
|
||
"useFolder": "Использовать папку",
|
||
"usePath": "Использовать путь",
|
||
"useThisPath": "Использовать этот путь",
|
||
"useWsl": "Используете Linux/WSL?"
|
||
},
|
||
"confirm": {
|
||
"noProjectsDir": {
|
||
"message": "В этой папке нет директории \"projects\". Всё равно продолжить?",
|
||
"title": "Директория projects не найдена"
|
||
},
|
||
"notClaudeDir": {
|
||
"message": "Эта папка называется \"{{folderName}}\", а не \".claude\". Всё равно продолжить?",
|
||
"title": "Выбранная папка не является .claude"
|
||
},
|
||
"noWslPaths": {
|
||
"message": "Не удалось автоматически найти WSL-дистрибутивы с данными Claude. Выбрать папку вручную?",
|
||
"title": "Пути Claude в WSL не найдены"
|
||
},
|
||
"wslNoProjectsDir": {
|
||
"message": "В \"{{path}}\" нет директории \"projects\". Всё равно продолжить?",
|
||
"title": "В пути WSL нет директории projects"
|
||
}
|
||
},
|
||
"current": {
|
||
"autoDetected": "Автоопределено: {{path}}",
|
||
"autoDetectedPath": "Используется автоопределённый путь",
|
||
"customPath": "Используется пользовательский путь",
|
||
"label": "Текущий локальный корень"
|
||
},
|
||
"description": "Выберите локальную папку, которая будет считаться корнем данных Claude",
|
||
"errors": {
|
||
"detectWslFailed": "Не удалось определить пути корня Claude в WSL",
|
||
"loadFailed": "Не удалось загрузить настройки локального корня Claude",
|
||
"updateFailed": "Не удалось обновить корень Claude"
|
||
},
|
||
"title": "Локальный корень Claude",
|
||
"wslModal": {
|
||
"closeAriaLabel": "Закрыть окно выбора пути WSL",
|
||
"description": "Найденные WSL-дистрибутивы и кандидаты корня Claude",
|
||
"noProjectsDir": "Директория projects не найдена",
|
||
"title": "Выберите корень Claude в WSL"
|
||
}
|
||
},
|
||
"privacy": {
|
||
"telemetry": {
|
||
"description": "Помогите улучшить приложение, отправляя анонимные отчёты о сбоях и производительности",
|
||
"label": "Отправлять отчёты о сбоях"
|
||
},
|
||
"title": "Приватность"
|
||
},
|
||
"server": {
|
||
"runningOn": "Запущено на",
|
||
"standaloneModeDescription": "Приложение работает в автономном режиме. HTTP-сервер всегда активен. Системные уведомления недоступны - триггеры уведомлений записываются только внутри приложения.",
|
||
"title": "Сервер"
|
||
},
|
||
"startup": {
|
||
"launchAtLogin": {
|
||
"description": "Автоматически запускать приложение при входе в систему",
|
||
"label": "Запускать при входе"
|
||
},
|
||
"showDockIcon": {
|
||
"description": "Показывать значок приложения в Dock (macOS)",
|
||
"label": "Показывать значок в Dock"
|
||
},
|
||
"title": "Запуск"
|
||
}
|
||
},
|
||
"notifications": {
|
||
"dev": {
|
||
"descriptionPrefix": "В режиме разработки уведомления могут работать некорректно. macOS определяет приложение как \"Electron\" (bundle ID",
|
||
"descriptionSuffix": "), а не как production-приложение. Проверьте разрешения в System Settings > Notifications > Electron.",
|
||
"title": "Режим разработки"
|
||
},
|
||
"ignoredRepositories": {
|
||
"description": "Уведомления из этих репозиториев будут игнорироваться",
|
||
"empty": "Игнорируемых репозиториев нет",
|
||
"selectPlaceholder": "Выберите репозиторий для игнорирования...",
|
||
"title": "Игнорируемые репозитории"
|
||
},
|
||
"settings": {
|
||
"enabled": {
|
||
"description": "Показывать системные уведомления об ошибках и событиях",
|
||
"label": "Включить системные уведомления"
|
||
},
|
||
"sound": {
|
||
"description": "Воспроизводить звук при появлении уведомлений",
|
||
"label": "Воспроизводить звук"
|
||
},
|
||
"subagentErrors": {
|
||
"description": "Обнаруживать ошибки в сессиях субагентов и уведомлять о них",
|
||
"label": "Включать ошибки субагентов"
|
||
},
|
||
"title": "Настройки уведомлений"
|
||
},
|
||
"snooze": {
|
||
"clear": "Снять паузу",
|
||
"description": "Временно приостановить уведомления",
|
||
"descriptionWithTime": "Приостановлено до {{time}}",
|
||
"label": "Приостановить уведомления",
|
||
"options": {
|
||
"15": "15 минут",
|
||
"30": "30 минут",
|
||
"60": "1 час",
|
||
"120": "2 часа",
|
||
"240": "4 часа",
|
||
"-1": "До завтра"
|
||
},
|
||
"selectDuration": "Выберите длительность..."
|
||
},
|
||
"taskCompletion": {
|
||
"description": "Получайте системные уведомления, когда Claude завершает задачи: звуки, баннеры и бейджи Dock/панели задач. Работает на macOS, Linux и Windows.",
|
||
"installPlugin": "Установить плагин claude-notifications-go",
|
||
"title": "Уведомления о завершении задач"
|
||
},
|
||
"team": {
|
||
"allTasksCompleted": {
|
||
"description": "Уведомлять, когда все задачи в команде переходят в статус completed",
|
||
"label": "Все задачи завершены"
|
||
},
|
||
"autoResumeOnRateLimit": {
|
||
"description": "Когда Claude сообщает время сброса лимита, запланировать follow-up для лида команды после восстановления лимита",
|
||
"label": "Автовозобновление после rate limit"
|
||
},
|
||
"clarifications": {
|
||
"description": "Показывать системные уведомления, когда задаче нужен ваш ввод",
|
||
"label": "Уведомления об уточнениях по задачам"
|
||
},
|
||
"crossTeamMessage": {
|
||
"description": "Уведомлять, когда приходит сообщение от другой команды",
|
||
"label": "Уведомления о сообщениях между командами"
|
||
},
|
||
"leadInbox": {
|
||
"description": "Уведомлять, когда участники команды отправляют сообщения лиду команды",
|
||
"label": "Уведомления inbox лида"
|
||
},
|
||
"statusChange": {
|
||
"description": "Показывать системные уведомления при изменении статуса задачи",
|
||
"label": "Уведомления об изменении статуса задач",
|
||
"onlySolo": {
|
||
"description": "Уведомлять только когда в команде нет участников",
|
||
"label": "Только в Solo-режиме"
|
||
},
|
||
"statuses": {
|
||
"description": "Какие целевые статусы вызывают уведомление",
|
||
"label": "Уведомлять по этим статусам",
|
||
"options": {
|
||
"approved": "Одобрено",
|
||
"completed": "Завершено",
|
||
"deleted": "Удалено",
|
||
"in_progress": "Запущено",
|
||
"needsFix": "Нужны исправления",
|
||
"pending": "Ожидание",
|
||
"review": "Ревью"
|
||
}
|
||
}
|
||
},
|
||
"taskComments": {
|
||
"description": "Показывать системные уведомления, когда агенты комментируют задачи",
|
||
"label": "Уведомления о комментариях к задачам"
|
||
},
|
||
"taskCreated": {
|
||
"description": "Показывать системные уведомления при создании новой задачи",
|
||
"label": "Уведомления о новых задачах"
|
||
},
|
||
"teamLaunched": {
|
||
"description": "Уведомлять, когда команда завершила запуск и готова к работе",
|
||
"label": "Уведомления о запуске команды"
|
||
},
|
||
"title": "Уведомления команды",
|
||
"toolApproval": {
|
||
"description": "Уведомлять, когда инструменту нужно ваше подтверждение (Allow/Deny), пока приложение не в фокусе",
|
||
"label": "Уведомления о подтверждении инструментов"
|
||
},
|
||
"userInbox": {
|
||
"description": "Уведомлять, когда участники команды отправляют сообщения вам",
|
||
"label": "Уведомления вашего inbox"
|
||
}
|
||
},
|
||
"test": {
|
||
"action": "Отправить тест",
|
||
"description": "Отправить тестовое уведомление, чтобы проверить доставку",
|
||
"failedToSend": "Не удалось отправить тестовое уведомление",
|
||
"label": "Тестовое уведомление",
|
||
"sending": "Отправка...",
|
||
"sent": "Отправлено!",
|
||
"unknownError": "Неизвестная ошибка"
|
||
}
|
||
},
|
||
"advanced": {
|
||
"about": {
|
||
"appIconAlt": "Значок приложения",
|
||
"description": "Собирайте команды AI-агентов, которые автономно работают параллельно, общаются между командами и управляют задачами на kanban-доске - со встроенным code review, живым мониторингом процессов и полной видимостью инструментов.",
|
||
"standalone": "Автономно",
|
||
"title": "О приложении",
|
||
"version": "Версия {{version}}"
|
||
},
|
||
"configuration": {
|
||
"editConfig": "Редактировать конфиг",
|
||
"exportConfig": "Экспортировать конфиг",
|
||
"importConfig": "Импортировать конфиг",
|
||
"openInEditor": "Открыть в редакторе",
|
||
"resetToDefaults": "Сбросить по умолчанию",
|
||
"title": "Конфигурация"
|
||
},
|
||
"updates": {
|
||
"available": "Доступна v{{version}}",
|
||
"check": "Проверить обновления",
|
||
"checking": "Проверка...",
|
||
"ready": "Обновление готово",
|
||
"unknownVersion": "неизвестная",
|
||
"upToDate": "Актуальная версия"
|
||
},
|
||
"appName": "Agent Teams AI"
|
||
},
|
||
"configEditor": {
|
||
"errors": {
|
||
"loadFailed": "Не удалось загрузить конфиг",
|
||
"saveFailed": "Не удалось сохранить конфиг"
|
||
},
|
||
"footer": {
|
||
"autoSave": "Изменения сохраняются автоматически после редактирования",
|
||
"toClose": "чтобы закрыть",
|
||
"escapeKey": "Esc"
|
||
},
|
||
"loading": "Загрузка конфига...",
|
||
"status": {
|
||
"invalidJson": "Некорректный JSON",
|
||
"saveFailed": "Сохранение не удалось",
|
||
"saved": "Сохранено",
|
||
"saving": "Сохранение..."
|
||
},
|
||
"title": "Редактирование конфигурации"
|
||
},
|
||
"notificationTriggers": {
|
||
"add": {
|
||
"cancel": "Отмена",
|
||
"submit": "Добавить триггер",
|
||
"title": "Добавить свой триггер"
|
||
},
|
||
"builtin": {
|
||
"description": "Стандартные триггеры, встроенные в приложение. Их можно включать или отключать и настраивать их паттерны.",
|
||
"title": "Встроенные триггеры"
|
||
},
|
||
"card": {
|
||
"builtinBadge": "Встроенный",
|
||
"collapseAriaLabel": "Свернуть",
|
||
"deleteAriaLabel": "Удалить триггер",
|
||
"editNameAriaLabel": "Редактировать имя",
|
||
"expandAriaLabel": "Развернуть"
|
||
},
|
||
"color": {
|
||
"customHexTitle": "Пользовательский HEX-цвет",
|
||
"invalidHex": "Некорректный HEX"
|
||
},
|
||
"configuration": {
|
||
"alertIfGreaterThan": "Уведомить если >",
|
||
"emptyPatternHint": "Оставьте пустым, чтобы совпадало с любым содержимым. Используется синтаксис JavaScript regex.",
|
||
"errorStatusDescription": "Срабатывает, когда выполнение инструмента сообщает об ошибке (is_error: true).",
|
||
"tokensUnit": "токенов",
|
||
"matchPatternPlaceholder": "например, error|failed|exception"
|
||
},
|
||
"custom": {
|
||
"description": "Создавайте собственные триггеры для уведомлений по конкретным паттернам или выводам инструментов.",
|
||
"empty": "Пользовательские триггеры пока не настроены.",
|
||
"title": "Пользовательские триггеры"
|
||
},
|
||
"errors": {
|
||
"invalidRegexPattern": "Некорректный regex-паттерн"
|
||
},
|
||
"fields": {
|
||
"contentType": "Тип содержимого",
|
||
"matchField": "Поле для поиска",
|
||
"matchPattern": "Паттерн совпадения (Regex)",
|
||
"scopeToolName": "Область / инструмент",
|
||
"scopeToolNameOptional": "Область / инструмент (необязательно)",
|
||
"threshold": "Порог",
|
||
"tokenType": "Тип токенов",
|
||
"triggerNamePlaceholder": "например, Ошибка сборки",
|
||
"triggerNameRequired": "Название триггера *"
|
||
},
|
||
"ignorePatterns": {
|
||
"hint": "Нажмите Enter, чтобы добавить. Уведомление пропускается, если совпал любой паттерн.",
|
||
"placeholder": "Добавить ignore regex...",
|
||
"removeAriaLabel": "Удалить ignore-паттерн",
|
||
"summary": "Дополнительно: правила исключения",
|
||
"title": "Ignore-паттерны (пропустить при совпадении)"
|
||
},
|
||
"options": {
|
||
"contentTypes": {
|
||
"text": "Текстовый вывод",
|
||
"thinking": "Thinking",
|
||
"tool_result": "Результат инструмента",
|
||
"tool_use": "Вызов инструмента"
|
||
},
|
||
"matchFields": {
|
||
"args": "Аргументы",
|
||
"command": "Команда",
|
||
"content": "Содержимое",
|
||
"description": "Описание",
|
||
"file_path": "Путь к файлу",
|
||
"fullInput": "Весь ввод (JSON)",
|
||
"glob": "Glob-фильтр",
|
||
"new_string": "Новая строка",
|
||
"old_string": "Старая строка",
|
||
"path": "Путь",
|
||
"pattern": "Паттерн",
|
||
"prompt": "Промпт",
|
||
"query": "Запрос",
|
||
"skill": "Название skill",
|
||
"subagent_type": "Тип субагента",
|
||
"text": "Текстовое содержимое",
|
||
"thinking": "Thinking-содержимое",
|
||
"url": "URL"
|
||
},
|
||
"modes": {
|
||
"content_match": "Паттерн в содержимом",
|
||
"error_status": "Ошибка выполнения",
|
||
"token_threshold": "Высокий расход токенов"
|
||
},
|
||
"tokenTypes": {
|
||
"input": "Входные токены",
|
||
"output": "Выходные токены",
|
||
"total": "Всего токенов"
|
||
},
|
||
"toolNames": {
|
||
"anyTool": "Любой инструмент"
|
||
}
|
||
},
|
||
"preview": {
|
||
"defaultTestTriggerName": "Тестовый триггер",
|
||
"detectedSuffix": "ошибок было бы обнаружено",
|
||
"more": "...и ещё {{count}}",
|
||
"more_few": "...и ещё {{count}}",
|
||
"more_many": "...и ещё {{count}}",
|
||
"more_one": "...и ещё {{count}}",
|
||
"more_other": "...и ещё {{count}}",
|
||
"testTrigger": "Проверить триггер",
|
||
"testing": "Проверка...",
|
||
"title": "Предпросмотр",
|
||
"truncatedWarning": "Поиск остановлен раньше времени (таймаут или лимит количества). Фактических совпадений может быть больше.",
|
||
"viewSession": "Открыть сессию"
|
||
},
|
||
"repositoryScope": {
|
||
"empty": "Репозитории не выбраны - триггер применяется ко всем репозиториям",
|
||
"hint": "Если репозитории выбраны, триггер срабатывает только для ошибок в этих репозиториях.",
|
||
"placeholder": "Выберите репозиторий для добавления...",
|
||
"summary": "Дополнительно: область репозиториев",
|
||
"title": "Ограничить репозиториями (применяется только к выбранным)"
|
||
},
|
||
"sections": {
|
||
"configuration": "Конфигурация",
|
||
"dotColor": "Цвет точки",
|
||
"generalInfo": "Основная информация",
|
||
"triggerCondition": "Условие триггера"
|
||
}
|
||
},
|
||
"workspaceProfiles": {
|
||
"actions": {
|
||
"addProfile": "Добавить профиль",
|
||
"cancel": "Отмена",
|
||
"deleteProfile": "Удалить профиль",
|
||
"editProfile": "Редактировать профиль",
|
||
"save": "Сохранить"
|
||
},
|
||
"authMethods": {
|
||
"agent": "SSH Agent",
|
||
"auto": "Auto (из SSH Config)",
|
||
"password": "Пароль",
|
||
"privateKey": "Приватный ключ"
|
||
},
|
||
"deleteConfirm": {
|
||
"confirmLabel": "Удалить",
|
||
"message": "Вы уверены, что хотите удалить \"{{name}}\"? Это действие нельзя отменить.",
|
||
"title": "Удалить профиль"
|
||
},
|
||
"description": "Сохраняйте SSH-профили для быстрого повторного подключения",
|
||
"empty": {
|
||
"description": "Добавьте SSH-профиль, чтобы быстро подключаться",
|
||
"title": "Сохранённых профилей нет"
|
||
},
|
||
"form": {
|
||
"authentication": "Аутентификация",
|
||
"host": "Хост",
|
||
"name": "Название",
|
||
"passwordPrompt": "Пароль будет запрошен при подключении.",
|
||
"port": "Порт",
|
||
"privateKeyPath": "Путь к приватному ключу",
|
||
"username": "Имя пользователя",
|
||
"namePlaceholder": "Мой сервер",
|
||
"hostPlaceholder": "hostname или IP",
|
||
"usernamePlaceholder": "user"
|
||
},
|
||
"loading": "Загрузка профилей...",
|
||
"title": "Профили рабочих окружений"
|
||
},
|
||
"connection": {
|
||
"actions": {
|
||
"connect": "Подключиться",
|
||
"connecting": "Подключение...",
|
||
"disconnect": "Отключиться",
|
||
"testConnection": "Проверить подключение",
|
||
"testing": "Проверка..."
|
||
},
|
||
"currentMode": {
|
||
"description": "Источник данных для файлов сессий",
|
||
"label": "Текущий режим",
|
||
"local": "Локально ({{path}})"
|
||
},
|
||
"description": "Подключитесь к удалённой машине, чтобы просматривать сессии Claude Code, запущенные там",
|
||
"form": {
|
||
"authentication": "Аутентификация",
|
||
"host": "Хост",
|
||
"password": "Пароль",
|
||
"port": "Порт",
|
||
"privateKeyPath": "Путь к приватному ключу",
|
||
"username": "Имя пользователя",
|
||
"hostPlaceholder": "hostname или alias из SSH config",
|
||
"usernamePlaceholder": "user"
|
||
},
|
||
"savedProfiles": {
|
||
"title": "Сохранённые профили"
|
||
},
|
||
"ssh": {
|
||
"title": "SSH-подключение"
|
||
},
|
||
"status": {
|
||
"connectedTo": "Подключено к {{host}}",
|
||
"remoteSessions": "Просмотр удалённых сессий через SSH"
|
||
},
|
||
"test": {
|
||
"failed": "Подключение не удалось: {{error}}",
|
||
"success": "Подключение успешно",
|
||
"unknownError": "Неизвестная ошибка"
|
||
},
|
||
"title": "Удалённое подключение"
|
||
},
|
||
"providerRuntime": {
|
||
"actions": {
|
||
"cancel": "Отмена",
|
||
"cancelLogin": "Отменить вход",
|
||
"connectChatGpt": "Подключить ChatGPT",
|
||
"delete": "Удалить",
|
||
"disable": "Отключить",
|
||
"disconnectAccount": "Отключить аккаунт",
|
||
"generateLink": "Создать ссылку",
|
||
"openLogin": "Открыть вход",
|
||
"reconnectAnthropic": "Переподключить Anthropic",
|
||
"refresh": "Обновить",
|
||
"replaceKey": "Заменить ключ",
|
||
"saveEndpoint": "Сохранить endpoint",
|
||
"saveKey": "Сохранить ключ",
|
||
"saving": "Сохранение...",
|
||
"setApiKey": "Задать API key",
|
||
"updateKey": "Обновить ключ",
|
||
"useCode": "Использовать код"
|
||
},
|
||
"apiKey": {
|
||
"loadingStoredCredentials": "Загрузка сохранённых credentials...",
|
||
"projectScope": "Проект",
|
||
"scope": "Scope",
|
||
"storedIn": "Хранится в {{backend}}",
|
||
"userScope": "Пользователь",
|
||
"storedInApp": "Сохранено в приложении",
|
||
"providers": {
|
||
"anthropic": {
|
||
"name": "Anthropic API Key",
|
||
"title": "API key",
|
||
"description": "Используйте прямой Anthropic API key для доступа с API-billing. Сессия подписки Anthropic останется доступной после переключения обратно.",
|
||
"placeholder": "sk-ant-..."
|
||
},
|
||
"codex": {
|
||
"name": "Codex API Key",
|
||
"title": "API key",
|
||
"description": "Используйте OpenAI API key как дополнительный способ аутентификации Codex. При переключении Codex в режим API key приложение отзеркалит OPENAI_API_KEY в CODEX_API_KEY для native launches.",
|
||
"placeholder": "sk-proj-..."
|
||
},
|
||
"gemini": {
|
||
"name": "Gemini API Key",
|
||
"title": "API access",
|
||
"description": "Используйте `GEMINI_API_KEY` для Gemini API backend. CLI SDK и ADC не требуют его.",
|
||
"placeholder": "AIza..."
|
||
}
|
||
}
|
||
},
|
||
"codex": {
|
||
"account": {
|
||
"appServer": "App-server: {{state}}",
|
||
"connected": "Подключено",
|
||
"description": "Управляйте локальной сессией Codex app-server account, которая используется для subscription-backed native launches.",
|
||
"loginInProgress": "Вход выполняется",
|
||
"plan": "План: {{plan}}",
|
||
"reconnectRequired": "Нужно переподключить",
|
||
"title": "ChatGPT account",
|
||
"hints": {
|
||
"autoUsesApiKeyUntilChatgpt": "{{message}} Auto продолжит использовать найденный API key, пока ChatGPT не подключён.",
|
||
"detectedApiKeyNeedsApiMode": "{{message}} Найденный API key используется только после переключения Codex в API key mode.",
|
||
"localArtifactsNoSession": "Codex CLI сейчас не видит активный ChatGPT account. Локальные данные Codex account есть, но активная managed session не выбрана. Лимиты появятся здесь только после того, как Codex CLI увидит аккаунт.",
|
||
"noActiveAccount": "Codex CLI сейчас не видит активный ChatGPT account. Лимиты появятся здесь только после того, как Codex CLI увидит аккаунт.",
|
||
"reconnectBeforeUsage": "В Codex локально выбран ChatGPT account, но текущей сессии нужно переподключение, прежде чем здесь загрузятся лимиты.",
|
||
"usageLimitsAfterReport": "Лимиты появятся здесь после того, как Codex сообщит их для подключённого ChatGPT account."
|
||
}
|
||
},
|
||
"install": {
|
||
"checking": "Проверка",
|
||
"downloading": "Загрузка",
|
||
"installCli": "Установить Codex CLI",
|
||
"installing": "Установка",
|
||
"retryInstall": "Повторить установку",
|
||
"title": "Установить Codex CLI в данные приложения"
|
||
},
|
||
"rateLimits": {
|
||
"credits": "Credits",
|
||
"creditsDescription": "Credits показываются отдельно от window-based subscription usage и могут быть недоступны для plan-backed ChatGPT-сессий.",
|
||
"noSecondaryWindow": "Codex не вернул secondary window для этого account snapshot.",
|
||
"notReported": "Не передано",
|
||
"primaryReset": "Сброс primary",
|
||
"primaryUsed": "Primary использовано",
|
||
"primaryWindow": "Primary window",
|
||
"remainingLeft": "{{value}} осталось",
|
||
"remainingUnknown": "Остаток неизвестен",
|
||
"secondaryReset": "Сброс secondary",
|
||
"secondaryUsed": "Secondary использовано",
|
||
"secondaryWindow": "Secondary window",
|
||
"usedQuotaNote": "Эти проценты показывают использованную квоту, а не остаток.",
|
||
"weeklyReset": "Сброс weekly",
|
||
"weeklyUsed": "Weekly использовано",
|
||
"weeklyUsedOneWeek": "Weekly использовано (1w)",
|
||
"weeklyWindow": "Weekly window",
|
||
"secondaryFallback": "secondary",
|
||
"secondaryWindowNote": " Weekly-лимиты показаны отдельно в окне {{window}}.",
|
||
"usageExplanationGeneric": "Показывает использованную квоту, а не остаток.",
|
||
"usageExplanationWindowOnly": "Показывает использованную квоту в текущем окне {{window}}, а не остаток.",
|
||
"usageExplanationWithRemaining": "Использовано {{used}} - примерно {{remaining}} осталось в текущем окне {{window}}."
|
||
}
|
||
},
|
||
"compatibleEndpoint": {
|
||
"authToken": "Auth token",
|
||
"authTokenMissing": "Auth token не настроен.",
|
||
"baseUrl": "Base URL",
|
||
"description": "Использовать локальный runtime endpoint, совместимый с Anthropic.",
|
||
"keepSavedToken": "Оставьте пустым, чтобы сохранить текущий token",
|
||
"title": "Локальный / compatible endpoint",
|
||
"tokenStatus": "Token {{status}}",
|
||
"validation": {
|
||
"baseUrlRequired": "Base URL обязателен",
|
||
"firstPartyAnthropic": "Для первого-party Anthropic используйте Auto, Subscription или API key",
|
||
"httpRequired": "Base URL должен использовать http:// или https://",
|
||
"invalidUrl": "Недопустимый URL",
|
||
"noCredentials": "Base URL не должен содержать credentials"
|
||
},
|
||
"status": {
|
||
"endpointDisabledTokenKept": "Endpoint отключён. Сохранённый token оставлен.",
|
||
"endpointSaved": "Endpoint сохранён",
|
||
"endpointSavedTokenMissing": "Endpoint сохранён. Auth token не настроен."
|
||
}
|
||
},
|
||
"connection": {
|
||
"authenticationMethod": "Метод аутентификации",
|
||
"descriptions": {
|
||
"anthropic": "Выберите, как запуски Anthropic из приложения проходят аутентификацию.",
|
||
"codex": "Выберите, должен ли Codex предпочитать ChatGPT subscription или API key при native runtime запуске.",
|
||
"gemini": "Настройте опциональный API-доступ. CLI SDK и ADC всё равно определяются автоматически.",
|
||
"opencode": "Аутентификация OpenCode и список провайдеров управляются runtime OpenCode."
|
||
},
|
||
"method": "Метод подключения",
|
||
"mode": "Режим: {{mode}}",
|
||
"selected": "Выбрано",
|
||
"switching": "Переключение...",
|
||
"title": "Подключение"
|
||
},
|
||
"connectionCards": {
|
||
"apiKey": {
|
||
"title": "API key"
|
||
},
|
||
"anthropic": {
|
||
"apiKeyDescription": "Использовать ANTHROPIC_API_KEY и биллинг Anthropic API.",
|
||
"autoDescription": "Использовать runtime-настройки Anthropic по умолчанию и лучший локальный credential.",
|
||
"hint": "Auto оставляет Anthropic на стандартном локальном выборе credentials.",
|
||
"subscriptionDescription": "Использовать локальную Anthropic sign-in сессию и subscription access.",
|
||
"subscriptionTitle": "Anthropic subscription"
|
||
},
|
||
"auto": {
|
||
"title": "Авто"
|
||
},
|
||
"codex": {
|
||
"apiKeyDescription": "Использовать OPENAI_API_KEY и CODEX_API_KEY billing для native Codex launches.",
|
||
"autoDescription": "Предпочитать ChatGPT account и subscription. API key mode использовать только при необходимости.",
|
||
"chatgptDescription": "Использовать подключённый ChatGPT account и Codex subscription.",
|
||
"chatgptTitle": "ChatGPT account",
|
||
"hint": "Codex всегда работает через native runtime. Auto предпочитает ChatGPT account перед API-key credentials."
|
||
}
|
||
},
|
||
"description": "Управляйте тем, как каждый провайдер подключается, и какой backend должен использовать multimodel runtime, если это поддерживается.",
|
||
"fastMode": {
|
||
"defaultOff": "По умолчанию выкл.",
|
||
"description": "Включать Claude Code Fast mode по умолчанию для новых запусков Anthropic-команд, когда выбранные модель и runtime это поддерживают. Fast mode примерно в 2 раза дороже, но даёт скорость примерно в 1.5 раза выше.",
|
||
"disabledHint": "Новые Anthropic-запуски остаются на обычной скорости, если команда явно не включает Fast mode.",
|
||
"enabledHint": "Новые Anthropic-запуски будут запрашивать Fast mode по умолчанию, когда выбранная модель это поддерживает.",
|
||
"notExposed": "Этот Anthropic runtime не предоставляет Fast mode.",
|
||
"preferFast": "Предпочитать Fast",
|
||
"title": "Fast mode по умолчанию",
|
||
"unavailableForRuntime": "Fast mode сейчас недоступен для этого Anthropic runtime."
|
||
},
|
||
"alerts": {
|
||
"anthropicApiKeyMissing": "Выбран API key mode, но Anthropic API credential пока недоступен.",
|
||
"anthropicStoredKeyAvailable": "Сохранённый API key доступен, но запуски Anthropic из приложения используют его только после переключения в API key mode.",
|
||
"anthropicSubscriptionMissing": "Выбран Anthropic subscription mode. Войдите в Anthropic, чтобы использовать этого провайдера.",
|
||
"authTokenMissing": "Auth token не настроен. Многим локальным Anthropic-compatible endpoints нужен непустой token.",
|
||
"chatgptLoginPending": "Ожидание завершения входа в ChatGPT account...",
|
||
"chatgptLoginStarting": "Запуск входа в ChatGPT...",
|
||
"codexApiKeyMissing": "Выбран API key mode, но OPENAI_API_KEY или CODEX_API_KEY credential пока недоступен.",
|
||
"codexLocalArtifactsNoSession": "Codex CLI сейчас не видит активный ChatGPT account. Локальные данные Codex account есть, но активная managed session не выбрана.",
|
||
"codexNeedsReconnect": "В Codex локально выбран ChatGPT account, но текущей сессии нужно переподключение.",
|
||
"codexNoChatgptAccount": "Codex CLI сейчас не видит активный ChatGPT account. Подключите ChatGPT, чтобы использовать subscription.",
|
||
"codexNoCredential": "ChatGPT account или API key пока недоступны.",
|
||
"geminiApiUnavailable": "Gemini API сейчас недоступен. Настройте `GEMINI_API_KEY` здесь или используйте корректные Google ADC credentials.",
|
||
"withApiKeyFallback": "{{message}} Переключитесь в API key mode, чтобы использовать найденный API key."
|
||
},
|
||
"authModeDescriptions": {
|
||
"anthropic": {
|
||
"apiKey": "Принудительно использовать API key credential для Anthropic-запусков из приложения.",
|
||
"auto": "Использовать стандартное поведение runtime. Сохранённые API keys в приложении используются только после переключения в API key mode.",
|
||
"oauth": "Принудительно использовать локальную Anthropic subscription session для Anthropic-запусков из приложения."
|
||
},
|
||
"codex": {
|
||
"apiKey": "Принудительно использовать OPENAI_API_KEY / CODEX_API_KEY billing для native Codex launches.",
|
||
"auto": "Предпочитать ChatGPT account, когда он доступен. Переходить к API key mode только при необходимости.",
|
||
"chatgpt": "Принудительно использовать подключённый ChatGPT account и subscription для native Codex launches."
|
||
}
|
||
},
|
||
"progress": {
|
||
"applyingConnectionChanges": "Применение изменений подключения...",
|
||
"refreshingProviderStatus": "Обновление статуса провайдера...",
|
||
"savingCompatibleEndpoint": "Сохранение compatible endpoint...",
|
||
"switchingAnthropicSubscription": "Переключение на Anthropic subscription...",
|
||
"switchingApiKey": "Переключение на API key...",
|
||
"switchingApiKeyMode": "Переключение в API key mode...",
|
||
"switchingAuto": "Переключение на Авто...",
|
||
"switchingChatgpt": "Переключение в ChatGPT account mode..."
|
||
},
|
||
"provider": "Провайдер",
|
||
"runtime": {
|
||
"descriptions": {
|
||
"anthropic": "У Anthropic сейчас нет отдельного выбора runtime backend.",
|
||
"codex": "Codex теперь работает только через native runtime path.",
|
||
"gemini": "Выберите, какой Gemini runtime backend должен использовать multimodel.",
|
||
"opencode": "OpenCode использует собственный managed runtime host. Desktop сейчас показывает только статус."
|
||
},
|
||
"title": "Runtime",
|
||
"updating": "Обновление runtime..."
|
||
},
|
||
"runtimeSummary": "Runtime: {{runtime}}",
|
||
"status": {
|
||
"configured": "настроен",
|
||
"enabled": "Включено",
|
||
"notConfigured": "Не настроен",
|
||
"notSet": "не задан",
|
||
"off": "Выкл.",
|
||
"unknown": "Неизвестно"
|
||
},
|
||
"title": "Настройки провайдера",
|
||
"usage": {
|
||
"apiKey": "Используется API key",
|
||
"apiKeyRequired": "Нужен API key",
|
||
"compatibleEndpoint": "Используется compatible endpoint",
|
||
"notConnected": "Не подключено",
|
||
"usingMethod": "Используется {{method}}"
|
||
},
|
||
"errors": {
|
||
"apiKeyDeletedRefreshFailed": "API key удалён, но не удалось обновить статус провайдера.",
|
||
"apiKeySavedRefreshFailed": "API key сохранён, но не удалось обновить статус провайдера.",
|
||
"connectionUpdatedRefreshFailed": "Подключение обновлено, но не удалось обновить статус провайдера.",
|
||
"deleteApiKey": "Не удалось удалить API key",
|
||
"disableEndpoint": "Не удалось отключить endpoint",
|
||
"endpointDisabledRefreshFailed": "Endpoint отключён, но не удалось обновить статус провайдера.",
|
||
"endpointSavedRefreshFailed": "Endpoint сохранён, но не удалось обновить статус провайдера.",
|
||
"refreshCodexAccount": "Не удалось обновить Codex account",
|
||
"saveApiKey": "Не удалось сохранить API key",
|
||
"saveEndpoint": "Не удалось сохранить endpoint",
|
||
"updateAnthropicFastMode": "Не удалось обновить Anthropic Fast mode",
|
||
"updateConnection": "Не удалось обновить подключение",
|
||
"updateRuntimeBackend": "Не удалось обновить runtime backend",
|
||
"apiKeyRequired": "API key обязателен"
|
||
},
|
||
"connectionUi": {
|
||
"authMode": {
|
||
"auto": "Авто",
|
||
"oauth": "Подписка / OAuth",
|
||
"chatgpt": "Аккаунт ChatGPT",
|
||
"apiKey": "API key",
|
||
"anthropicSubscription": "Подписка Anthropic"
|
||
},
|
||
"authMethod": {
|
||
"apiKey": "API key",
|
||
"apiKeyHelper": "API key helper",
|
||
"oauth": "OAuth",
|
||
"claudeSubscription": "Подписка Claude",
|
||
"geminiCli": "Gemini CLI",
|
||
"googleAccount": "Аккаунт Google",
|
||
"serviceAccount": "service account"
|
||
},
|
||
"runtime": {
|
||
"codexNative": "Codex native",
|
||
"currentRuntime": "Текущий runtime",
|
||
"selectedRuntime": "Выбранный runtime",
|
||
"summary": "{{prefix}}: {{runtime}}"
|
||
},
|
||
"status": {
|
||
"checking": "Проверка...",
|
||
"modelsAvailable": "Модели доступны",
|
||
"checked": "Проверено",
|
||
"providerActivity": "Активность провайдеров",
|
||
"notConnected": "Не подключено",
|
||
"startingChatGptLogin": "Запускается вход в ChatGPT...",
|
||
"waitingForChatGptLogin": "Ожидание входа в аккаунт ChatGPT...",
|
||
"chatGptVerificationDegraded": "Аккаунт ChatGPT найден - проверка аккаунта сейчас работает в ограниченном режиме.",
|
||
"chatGptAccountReady": "Аккаунт ChatGPT готов",
|
||
"apiKeyReady": "API key готов",
|
||
"codexLocalAccountNeedsReconnect": "В Codex локально выбран аккаунт ChatGPT, но текущей сессии нужно переподключение.",
|
||
"codexNoActiveManagedSession": "Codex CLI сообщает, что активного входа ChatGPT нет. Локальные данные аккаунта Codex есть, но активная управляемая сессия не выбрана.",
|
||
"codexNoActiveChatGptLogin": "Codex CLI сообщает, что активного входа ChatGPT нет",
|
||
"connectChatGptForSubscription": "Подключите аккаунт ChatGPT, чтобы использовать подписку Codex.",
|
||
"codexNativeReady": "Codex native готов",
|
||
"codexNativeUnavailable": "Codex native недоступен",
|
||
"unavailableInCurrentRuntime": "Недоступно в текущем runtime",
|
||
"connectedViaApiKey": "Подключено через API key",
|
||
"apiKeyConfiguredNotVerified": "API key настроен, но ещё не проверен",
|
||
"apiKeyModeMissingCredential": "Выбран режим API key, но API key не настроен",
|
||
"connectedVia": "Подключено через {{method}}",
|
||
"unableToVerify": "Не удалось проверить"
|
||
},
|
||
"mode": {
|
||
"selectedAuth": "Выбранная аутентификация: {{authMode}}",
|
||
"preferredAuth": "Предпочитаемая аутентификация: {{authMode}}"
|
||
},
|
||
"credential": {
|
||
"apiKeyConfigured": "API key настроен",
|
||
"savedApiKeyAvailable": "Сохранённый API key доступен в Manage",
|
||
"apiKeyAlsoConfigured": "API key также настроен в Manage",
|
||
"apiKeyConfiguredInManage": "API key настроен в Manage",
|
||
"apiKeyFallbackInManage": "API key также доступен в Manage как fallback",
|
||
"availableAsFallback": "{{summary}} - доступен как fallback",
|
||
"savedApiKeyAvailableIfSwitch": "Сохранённый API key доступен в Manage, если переключиться в режим API key",
|
||
"availableIfSwitch": "{{summary}} - доступен при переключении в режим API key",
|
||
"autoWillUseUntilChatGpt": "{{summary}} - Auto будет использовать его, пока ChatGPT не подключён"
|
||
},
|
||
"actions": {
|
||
"connect": "Подключить",
|
||
"connectAnthropic": "Подключить Anthropic",
|
||
"connectChatGpt": "Подключить ChatGPT",
|
||
"disconnect": "Отключить",
|
||
"openLogin": "Открыть вход"
|
||
},
|
||
"disconnect": {
|
||
"anthropicTitle": "Отключить подписку Anthropic?",
|
||
"anthropic": "Это удалит локальную сессию подписки Anthropic из runtime Claude CLI.",
|
||
"anthropicWithApiKey": "Это удалит локальную сессию подписки Anthropic из runtime Claude CLI. Сохранённые API keys в Manage останутся доступными.",
|
||
"geminiTitle": "Отключить Gemini CLI?",
|
||
"gemini": "Это очистит локальные метаданные сессии Gemini CLI. Внешние ADC credentials и сохранённые API keys не удаляются."
|
||
}
|
||
}
|
||
},
|
||
"cliRuntime": {
|
||
"actions": {
|
||
"checkForUpdates": "Проверить обновления",
|
||
"checking": "Проверка...",
|
||
"extensions": "Расширения",
|
||
"installRuntime": "Установить {{runtime}}",
|
||
"manage": "Управлять",
|
||
"recheck": "Проверить снова",
|
||
"reinstallRuntime": "Переустановить {{runtime}}",
|
||
"retry": "Повторить",
|
||
"update": "Обновить"
|
||
},
|
||
"installer": {
|
||
"checkingLatest": "Проверка последней версии...",
|
||
"downloading": "Загрузка...",
|
||
"failed": "Установка не удалась",
|
||
"installed": "Установлено v{{version}}",
|
||
"installing": "Установка...",
|
||
"latest": "latest",
|
||
"verifying": "Проверка checksum..."
|
||
},
|
||
"labels": {
|
||
"multimodel": "Multimodel"
|
||
},
|
||
"loading": {
|
||
"aiProviders": "Проверка AI-провайдеров...",
|
||
"claudeCli": "Проверка Claude CLI..."
|
||
},
|
||
"provider": {
|
||
"backend": "Backend: {{backend}}",
|
||
"loadingModels": "Загрузка моделей...",
|
||
"modelsUnavailable": "Модели недоступны для этой сборки runtime",
|
||
"runtime": "Runtime: {{runtime}}"
|
||
},
|
||
"providerTerminal": {
|
||
"authFailed": "Аутентификация не удалась",
|
||
"authUpdated": "Аутентификация обновлена",
|
||
"loggedOut": "Провайдер отключён",
|
||
"login": "Вход",
|
||
"logout": "Выход",
|
||
"logoutFailed": "Выход не удался"
|
||
},
|
||
"status": {
|
||
"configuredNotFound": "Настроенный {{runtime}} не найден.",
|
||
"foundButFailed": "{{runtime}} найден, но не запустился",
|
||
"healthCheckFailed": "Настроенный {{runtime}} не прошёл health check запуска.",
|
||
"notInstalled": "{{runtime}} не установлен"
|
||
},
|
||
"title": "CLI Runtime"
|
||
},
|
||
"cliStatus": {
|
||
"versionUpgrade": "v{{current}} -> v{{latest}}"
|
||
}
|
||
}
|