import type { Messages } from '../types';

export const ruAiMessages: Messages = {
  // AI Settings
  'ai.agentSettings': 'Настройки агента',
  'ai.chat.preparing': 'Подготовка…',
  'ai.title': 'AI',
  'ai.description': 'Настройка AI-провайдеров, агентов и параметров безопасности',
  'ai.providers': 'Провайдеры',
  'ai.agents': 'Агенты',
  'ai.providers.empty': 'Провайдеры не настроены. Добавьте провайдера, чтобы начать.',
  'ai.providers.add': 'Добавить провайдера',
  'ai.providers.active': 'Активен',
  'ai.providers.apiKeyConfigured': 'API-ключ настроен',
  'ai.providers.noApiKey': 'Нет API-ключа',
  'ai.providers.configure': 'Настроить',
  'ai.providers.remove': 'Удалить',
  'ai.providers.name': 'Отображаемое имя',
  'ai.providers.name.placeholder': 'например, Мой провайдер',
  'ai.providers.style': 'Стиль протокола',
  'ai.providers.style.anthropic': 'Совместимый с Anthropic',
  'ai.providers.style.openai': 'Совместимый с OpenAI',
  'ai.providers.style.google': 'Совместимый с Google',
  'ai.providers.style.inherited': 'авто',
  'ai.providers.style.help': 'Определяет, какой формат API используется для запросов. Переопределите, если стороннее API использует другой диалект.',
  'ai.providers.icon.change': 'Изменить иконку',
  'ai.providers.icon.upload': 'Загрузить изображение',
  'ai.providers.icon.reset': 'Сбросить',
  'ai.providers.icon.close': 'Свернуть',
  'ai.providers.icon.uploadedNote': 'Своя иконка (64×64 WebP)',
  'ai.providers.icon.errorType': 'Пожалуйста, выберите файл изображения.',
  'ai.providers.apiKey': 'API-ключ',
  'ai.providers.apiKey.placeholder': 'Введите API-ключ',
  'ai.providers.apiKey.decrypting': 'Расшифровка...',
  'ai.providers.baseUrl': 'Базовый URL',
  'ai.providers.skipTLSVerify': 'Пропустить проверку TLS-сертификата (для самоподписанных сертификатов)',
  'ai.providers.defaultModel': 'Модель по умолчанию',
  'ai.providers.defaultModel.placeholder': 'например, gpt-4o, claude-sonnet-4-20250514',
  'ai.providers.contextWindow': 'Контекстное окно',
  'ai.providers.contextWindow.placeholder': 'например, 128000',
  'ai.providers.contextWindow.help': 'Оставьте пустым, чтобы использовать значение из списка моделей, если оно доступно; иначе Netcatty применит безопасное значение по умолчанию.',
  'ai.providers.contextWindow.error': 'Введите положительное целое число или оставьте поле пустым.',
  'ai.providers.refreshModels': 'Обновить модели',
  'ai.providers.searchModel': 'Искать или ввести ID модели...',
  'ai.providers.filterModels': 'Фильтровать модели...',
  'ai.providers.loadingModels': 'Загрузка моделей...',
  'ai.providers.noMatchingModels': 'Нет подходящих моделей',
  'ai.providers.clickToLoadModels': 'Нажмите, чтобы загрузить модели',
  'ai.providers.showingModels': 'Показаны первые 100 из {count} моделей. Введите текст для фильтрации.',
  'ai.providers.advancedParams': 'Дополнительные параметры',
  'ai.providers.advancedParams.hint': 'Оставьте пустым, чтобы использовать настройки провайдера по умолчанию.',
  'ai.providers.advancedParams.maxTokens.placeholder': 'например, 4096',
  'ai.providers.advancedParams.default': 'По умолчанию у провайдера',

  // AI Codex
  'ai.codex': 'Codex',
  'ai.codex.title': 'Codex CLI',
  'ai.codex.description': 'Подключение OpenAI Codex. Здесь можно войти через ChatGPT или включить API-ключ OpenAI-совместимого провайдера и пользовательский endpoint в настройках.',
  'ai.codex.detecting': 'Обнаружение...',
  'ai.codex.notFound': 'Не найден',
  'ai.codex.awaitingLogin': 'Ожидание входа',
  'ai.codex.connectedChatGPT': 'Подключено через ChatGPT',
  'ai.codex.connectedApiKey': 'Подключено через API-ключ',
  'ai.codex.connectedCustomConfig': 'Подключено через ~/.codex/config.toml',
  'ai.codex.customConfigIncomplete': 'Обнаружен пользовательский конфиг (отсутствует переменная окружения)',
  'ai.codex.customConfigHint': 'Используется пользовательский провайдер "{provider}", настроенный в ~/.codex/config.toml — вход через ChatGPT не требуется.',
  'ai.codex.customConfigMissingEnvKey': 'Предупреждение: {envKey} не задана в переменных окружения вашей оболочки. Экспортируйте её (или запустите netcatty из оболочки, где она задана), чтобы Codex мог пройти аутентификацию.',
  'ai.codex.notConnected': 'Не подключено',
  'ai.codex.statusUnknown': 'Статус неизвестен',
  'ai.codex.path': 'Путь:',
  'ai.codex.notFoundHint': 'Не удалось найти codex в PATH. Установите его или укажите путь к исполняемому файлу ниже.',
  'ai.codex.customPathPlaceholder': 'например, /usr/local/bin/codex',
  'ai.codex.check': 'Проверить',
  'ai.codex.openLogin': 'Открыть вход',
  'ai.codex.logout': 'Выйти',
  'ai.codex.connectChatGPT': 'Подключить ChatGPT',
  'ai.codex.refreshStatus': 'Обновить статус',

  // AI Claude Code
  'ai.claude.title': 'Claude Code',
  'ai.claude.description': 'Агентный помощник для программирования от Anthropic. Требует установленный в системе Claude Code CLI.',
  'ai.claude.detecting': 'Обнаружение...',
  'ai.claude.detected': 'Обнаружен',
  'ai.claude.notFound': 'Не найден',
  'ai.claude.path': 'Путь:',
  'ai.claude.notFoundHint': 'Не удалось найти claude в PATH. Установите его или укажите путь к исполняемому файлу ниже.',
  'ai.claude.customPathPlaceholder': 'например, /usr/local/bin/claude',
  'ai.claude.configSection': 'Аутентификация и конфигурация (опционально)',
  'ai.claude.configDir': 'Каталог конфигурации',
  'ai.claude.configDir.placeholder': '~/.claude (пусто — по умолчанию)',
  'ai.claude.configDir.hint': 'Задаёт CLAUDE_CONFIG_DIR — укажите папку, где выполнен вход `claude` (содержит settings.json и учётные данные).',
  'ai.claude.settings': 'Файл настроек',
  'ai.claude.settings.placeholder': '~/team-settings.json (путь или встроенный {"model":"..."})',
  'ai.claude.settings.hint': 'Опционально. Путь к settings.json или встроенный JSON, передаётся в SDK как `settings`. Дополняет «Каталог конфигурации» выше и независим от него (накладывается сверху, не заменяет).',
  'ai.claude.envVars': 'Переменные окружения',
  'ai.claude.envVars.placeholder': 'ANTHROPIC_BASE_URL=https://...\nANTHROPIC_MODEL=...',
  'ai.claude.envVars.hint': 'По одному KEY=VALUE в строке, передаётся агенту Claude. Хранится локально в открытом виде — для API-ключей и учётных данных используйте «Каталог конфигурации» выше (вход `claude`).',
  'ai.claude.check': 'Проверить',

  // AI GitHub Copilot CLI
  'ai.copilot.title': 'GitHub Copilot CLI',
  'ai.copilot.description': 'Использует GitHub Copilot CLI. После обнаружения может быть выбран как внешний агент для программирования.',
  'ai.copilot.detecting': 'Обнаружение...',
  'ai.copilot.detected': 'Обнаружен',
  'ai.copilot.notFound': 'Не найден',
  'ai.copilot.path': 'Путь:',
  'ai.copilot.notFoundHint': 'Не удалось найти copilot в PATH. Установите его или укажите путь к исполняемому файлу ниже.',
  'ai.copilot.customPathPlaceholder': 'например, /usr/local/bin/copilot',
  'ai.copilot.check': 'Проверить',

  // AI Cursor SDK
  'ai.cursor.title': 'Cursor',
  'ai.cursor.description': 'Использует Cursor SDK.',
  'ai.cursor.detecting': 'Обнаружение...',
  'ai.cursor.detected': 'Доступен',
  'ai.cursor.notFound': 'Недоступен',
  'ai.cursor.path': 'Среда:',
  'ai.cursor.notFoundHint': 'Укажите API-ключ, чтобы включить Cursor.',
  'ai.cursor.notInstalledHint': 'Cursor SDK не обнаружен.',
  'ai.cursor.installStatus': 'Cursor SDK',
  'ai.cursor.installed': 'Обнаружено',
  'ai.cursor.notInstalled': 'Не обнаружено',
  'ai.cursor.apiKeyStatus': 'API-ключ',
  'ai.cursor.apiKeyConfigured': 'Настроен',
  'ai.cursor.apiKeyMissing': 'Не указан',
  'ai.cursor.apiKeyFromEnv': 'Из окружения',
  'ai.cursor.apiKey': 'API-ключ',
  'ai.cursor.apiKeyPlaceholder': 'Введите API-ключ Cursor',
  'ai.cursor.apiKeyPlaceholder.env': 'Используется CURSOR_API_KEY; введите ключ для замены',
  'ai.cursor.apiKeyEnvHint': 'Cursor может использовать CURSOR_API_KEY из shell. Сохраняйте ключ здесь только если хотите переопределить его в Netcatty.',
  'ai.cursor.apiKeyOverrideHint': 'Netcatty сначала использует сохранённый здесь ключ, затем CURSOR_API_KEY.',
  'ai.cursor.saveApiKey': 'Сохранить',
  'ai.cursor.saved': 'Сохранено',
  'ai.cursor.showApiKey': 'Показать API-ключ',
  'ai.cursor.hideApiKey': 'Скрыть API-ключ',
  'ai.cursor.customPathPlaceholder': 'например, /usr/local/bin/cursor',
  'ai.cursor.check': 'Проверить',

  // AI CodeBuddy Code
  'ai.codebuddy.title': 'CodeBuddy Code',
  'ai.codebuddy.description': 'Использует CodeBuddy Code через официальный Agent SDK (`@tencent-ai/agent-sdk`). После обнаружения может быть выбран как внешний агент для программирования.',
  'ai.codebuddy.detecting': 'Обнаружение...',
  'ai.codebuddy.detected': 'Обнаружен',
  'ai.codebuddy.notFound': 'Не найден',
  'ai.codebuddy.path': 'Путь:',
  'ai.codebuddy.notFoundHint': 'Не удалось найти codebuddy в PATH. Установите его или укажите путь к исполняемому файлу ниже.',
  'ai.codebuddy.customPathPlaceholder': 'например, /usr/local/bin/codebuddy',
  'ai.codebuddy.check': 'Проверить',
  'ai.codebuddy.configSection': 'Аутентификация и конфигурация (необязательно)',
  'ai.codebuddy.internetEnv': 'Сетевая среда',
  'ai.codebuddy.internetEnv.default': 'По умолчанию (зарубежная)',
  'ai.codebuddy.internetEnv.internal': 'Internal',
  'ai.codebuddy.internetEnv.ioa': 'IOA',
  'ai.codebuddy.internetEnv.hint': 'Устанавливает CODEBUDDY_INTERNET_ENVIRONMENT — выберите Internal или IOA для ограниченных сетевых сред.',
  'ai.codebuddy.envVars': 'Переменные окружения',
  'ai.codebuddy.envVars.placeholder': 'CODEBUDDY_API_KEY=...\nCODEBUDDY_AUTH_TOKEN=...\nOTHER_VAR=...',
  'ai.codebuddy.envVars.hint': 'По одной записи KEY=VALUE на строку, передаются агенту CodeBuddy. Укажите CODEBUDDY_API_KEY или CODEBUDDY_AUTH_TOKEN для аутентификации. Хранятся локально в открытом виде.',

  // AI Default Agent
  'ai.defaultAgent': 'Агент по умолчанию',
  'ai.defaultAgent.description': 'Агент, который будет использоваться при запуске новой AI-сессии',
  'ai.defaultAgent.catty': 'Catty (встроенный)',
  'ai.toolAccess.title': 'Доступ к инструментам',
  'ai.toolAccess.mode': 'Режим доступа Netcatty',
  'ai.toolAccess.description': 'Выберите, как внешние агенты получают доступ к сессиям Netcatty. MCP предоставляет встроенный сервер, а Skills + CLI указывает агентам на локальный skill Netcatty и команды CLI.',
  'ai.toolAccess.mode.mcp': 'MCP',
  'ai.toolAccess.mode.skills': 'Skills + CLI',
  'ai.userSkills.title': 'Пользовательские skills',
  'ai.userSkills.description': 'Откройте папку skills Netcatty, чтобы добавить свои каталоги skills. Netcatty автоматически сканирует их и добавляет только лёгкие индексы, если skill явно не соответствует текущему запросу.',
  'ai.userSkills.openFolder': 'Открыть папку skills',
  'ai.userSkills.reload': 'Перезагрузить skills',
  'ai.userSkills.location': 'Расположение',
  'ai.userSkills.loading': 'Сканирование пользовательских skills...',
  'ai.userSkills.summary': '{ready} готово, {warnings} предупреждений',
  'ai.userSkills.empty': 'Пользовательские skills пока не найдены. Откройте папку, чтобы добавить каталоги skills с файлом SKILL.md.',
  'ai.userSkills.unavailable': 'Пользовательские skills недоступны в этой среде.',
  'ai.userSkills.status.ready': 'Готово',
  'ai.userSkills.status.warning': 'Предупреждение',

  // AI Quick Messages
  'ai.quickMessages.title': 'Быстрые сообщения',
  'ai.quickMessages.description': 'Создавайте часто используемые подсказки и вставляйте их в AI-чат через / или кнопку быстрых сообщений. В отличие от user skills, быстрые сообщения заполняют поле ввода текстом.',
  'ai.quickMessages.add': 'Добавить быстрое сообщение',
  'ai.quickMessages.createTitle': 'Новое быстрое сообщение',
  'ai.quickMessages.editTitle': 'Редактировать быстрое сообщение',
  'ai.quickMessages.name': 'Название',
  'ai.quickMessages.name.placeholder': 'например: Проверить диск',
  'ai.quickMessages.slug': 'Команда',
  'ai.quickMessages.slug.placeholder': 'disk-check',
  'ai.quickMessages.descriptionField': 'Описание (необязательно)',
  'ai.quickMessages.descriptionField.placeholder': 'Краткая подсказка о назначении',
  'ai.quickMessages.content': 'Текст сообщения',
  'ai.quickMessages.content.placeholder': 'Полный текст подсказки для вставки...',
  'ai.quickMessages.empty': 'Быстрых сообщений пока нет. Добавьте несколько часто используемых подсказок.',
  'ai.quickMessages.confirmDelete': 'Удалить быстрое сообщение «{name}»?',
  'ai.quickMessages.error.nameRequired': 'Укажите название.',
  'ai.quickMessages.error.invalidSlug': 'Команда может содержать только строчные буквы, цифры и дефисы.',
  'ai.quickMessages.error.contentRequired': 'Укажите текст сообщения.',
  'ai.quickMessages.error.slugTaken': 'Эта команда уже используется другим быстрым сообщением.',
  'ai.quickMessages.error.slugConflictsWithSkill': 'Команда конфликтует с user skill «/{slug}». Выберите другую.',
  'ai.quickMessages.error.maxItems': 'Можно сохранить не более {max} быстрых сообщений.',

  // AI Chat
  'ai.chat.noProvider': 'AI-провайдер не настроен. Перейдите в **Настройки → AI → Провайдеры**, чтобы добавить и включить провайдера.',
  'ai.chat.toolDenied': 'Действие было отклонено пользователем.',
  'ai.chat.toolApproved': 'Одобрено',
  'ai.chat.toolApprovalHint': 'Нажмите Enter для одобрения, Escape для отклонения',
  'ai.chat.approve': 'Одобрить',
  'ai.chat.reject': 'Отклонить',
  'ai.chat.toolLabel': 'Инструмент',
  'ai.chat.targetLabel': 'Цель',
  'ai.chat.permissionRequired': 'Требуется разрешение',
  'ai.chat.permissionDescription': 'AI-агент хочет выполнить вызов инструмента, для которого требуется ваше одобрение.',
  'ai.chat.commandBlocked': 'Эта команда заблокирована вашей политикой безопасности и не может быть выполнена.',
  'ai.chat.recommendAllow': 'Разрешить',
  'ai.chat.recommendConfirm': 'Подтвердить',
  'ai.chat.recommendDeny': 'Запретить',
  'ai.chat.exportConversation': 'Экспортировать разговор',
  'ai.chat.exportAs': 'Экспортировать как',
  'ai.chat.exportMarkdown': 'Markdown',
  'ai.chat.exportJSON': 'JSON',
  'ai.chat.exportPlainText': 'Обычный текст',
  'ai.chat.thinking': 'Размышляет',
  'ai.chat.thoughtFor': 'Размышлял {duration}',
  'ai.chat.thought': 'Мысль',
  'ai.chat.agents': 'Агенты',
  'ai.chat.detectedOnMachine': 'Обнаружено на этом устройстве',
  'ai.chat.rescan': 'Пересканировать',
  'ai.chat.permObserver': 'Наблюдатель',
  'ai.chat.permConfirm': 'Подтверждение',
  'ai.chat.permAuto': 'Авто',
  'ai.chat.permObserverDesc': 'Только чтение',
  'ai.chat.permConfirmDesc': 'Спрашивать перед действиями',
  'ai.chat.permAutoDesc': 'Выполнять свободно',
  'ai.chat.emptyHint': 'Спрашивайте о ваших серверах, запускайте команды или получайте помощь с конфигурациями.',
  'ai.chat.placeholder': 'Сообщение {agent} — @ для добавления контекста, / для команд',
  'ai.chat.placeholderDefault': 'Сообщение агенту Catty...',
  'ai.chat.noModel': 'Нет модели',
  'ai.chat.noProviderModel': 'Модель по умолчанию не задана — настройте её в Настройки → AI → Провайдеры.',
  'ai.chat.selectProvider': 'Выберите провайдера',
  'ai.chat.recent': 'Недавние',
  'ai.chat.viewAll': 'Показать всё',
  'ai.chat.untitled': 'Без названия',
  'ai.chat.justNow': 'Только что',
  'ai.chat.minutesAgo': '{n}м назад',
  'ai.chat.hoursAgo': '{n}ч назад',
  'ai.chat.daysAgo': '{n}д назад',
  'ai.chat.newChat': 'Новый чат',
  'ai.chat.allSessions': 'Все сессии',
  'ai.chat.loadEarlierMessages': 'Загрузить более ранние сообщения (ещё {n})',
  'ai.chat.usedTools': 'Использовано инструментов: {n}',
  'ai.chat.loadMoreSessions': 'Загрузить больше сессий (ещё {n})',
  'ai.chat.noSessions': 'Предыдущих сессий нет',
  'ai.chat.retryHint': 'Вы можете повторить попытку, отправив сообщение ещё раз.',
  'ai.chat.approvalTimeout': 'Время ожидания одобрения инструмента истекло через 5 минут. Вы можете повторить попытку, отправив сообщение ещё раз.',
  'ai.chat.menuHosts': 'Хосты',
  'ai.chat.menuContext': 'Контекст',
  'ai.chat.menuFiles': 'Файлы',
  'ai.chat.menuImage': 'Изображение',
  'ai.chat.menuMentionHost': 'Упомянуть хост',
  'ai.chat.menuUserSkills': 'Пользовательские skills',
  'ai.chat.menuSlashCommands': 'Команды /',
  'ai.chat.slashCommands': 'Команды /',
  'ai.chat.slashQuickMessages': 'Быстрые сообщения',
  'ai.chat.slashUserSkills': 'User skills',
  'ai.chat.quickMessages': 'Команды /',
  'ai.chat.slashNoResults': 'Нет подходящих команд',
  'ai.chat.slashEmptyHint': 'Добавьте подсказки в Настройки → AI → Быстрые сообщения.',

  // AI Chat Shortcuts
  'ai.chatShortcuts.title': 'Быстрые действия чата',
  'ai.chatShortcuts.selectionAction': 'Показывать «Добавить в чат» при выделении в терминале',
  'ai.chatShortcuts.selectionAction.description': 'Показывать небольшую кнопку AI рядом с выделенным текстом терминала.',

  // AI Error
  'ai.codex.bridgeError': 'Обработчики главного процесса Codex ещё не загружены. Полностью перезапустите Netcatty или dev-процесс Electron и попробуйте снова.',

  // AI Web Search
  'ai.webSearch.title': 'Веб-поиск',
  'ai.webSearch.enable': 'Включить веб-поиск',
  'ai.webSearch.enable.description': 'Разрешить AI-агенту искать в интернете актуальную информацию.',
  'ai.webSearch.provider': 'Провайдер поиска',
  'ai.webSearch.provider.description': 'Выберите провайдера API веб-поиска.',
  'ai.webSearch.apiKey': 'API-ключ',
  'ai.webSearch.apiKey.description': 'API-ключ для выбранного провайдера поиска.',
  'ai.webSearch.apiKey.placeholder': 'Введите API-ключ...',
  'ai.webSearch.apiHost': 'API Host',
  'ai.webSearch.apiHost.description': 'Пользовательский API endpoint. Оставьте по умолчанию, если не используете прокси.',
  'ai.webSearch.apiHost.searxngDescription': 'URL вашего экземпляра SearXNG (обязательно).',
  'ai.webSearch.maxResults': 'Макс. число результатов',
  'ai.webSearch.maxResults.description': 'Максимальное количество результатов поиска для возврата (1-20).',

  // AI Safety Settings
  'ai.safety.title': 'Безопасность',
  'ai.safety.permissionMode': 'Режим разрешений',
  'ai.safety.permissionMode.description': 'Управляет тем, как AI взаимодействует с вашими терминалами. Режим наблюдателя блокирует все операции записи через Netcatty и применяется как к встроенным, так и к внешним агентам. Режим подтверждения носит рекомендательный характер для внешних агентов (они управляют собственным потоком одобрения инструментов).',
  'ai.safety.permissionMode.observer': 'Наблюдатель — только чтение, без действий',
  'ai.safety.permissionMode.confirm': 'Подтверждение — спрашивать перед действиями',
  'ai.safety.permissionMode.autonomous': 'Автономный — выполнять свободно',
  'ai.safety.commandTimeout': 'Тайм-аут команды',
  'ai.safety.commandTimeout.description': 'Максимальное число секунд, которое команда может выполняться до принудительного завершения. Применяется как к встроенным, так и к внешним агентам.',
  'ai.safety.commandTimeout.unit': 'с',
  'ai.safety.maxIterations': 'Макс. число итераций',
  'ai.safety.maxIterations.description': 'Максимальное число циклов использования инструментов AI, чтобы предотвратить бесконтрольное выполнение. У внешних агентов могут быть собственные внутренние лимиты итераций, имеющие приоритет.',
  'ai.safety.blocklist': 'Чёрный список команд',
  'ai.safety.blocklist.description': 'Regex-шаблоны для блокировки опасных команд. Применяется как к встроенным, так и к внешним агентам через механизм выполнения Netcatty.',
  'ai.safety.blocklist.placeholder': 'Regex-шаблон...',
  'ai.safety.blocklist.reset': 'Сбросить по умолчанию',
  'ai.safety.blocklist.add': 'Добавить шаблон',
  'ai.safety.note': 'Эти настройки безопасности применяются к действиям, выполняемым через Netcatty. Внешние CLI-агенты могут иметь собственные локальные инструменты и собственные правила управления ими.',

  // Unified tooltips for terminal workspace and top tabs (issue #954)
  'terminal.layer.addTerminal': 'Добавить терминал',
  'terminal.layer.switchToSplitView': 'Переключить в режим разделения',
  'terminal.layer.sftp': 'SFTP',
  'terminal.layer.scripts': 'Скрипты',
  'terminal.layer.history': 'История',
  'terminal.layer.theme': 'Тема',
  'terminal.layer.aiChat': 'AI-чат',
  'terminal.layer.movePanelLeft': 'Переместить панель влево',
  'terminal.layer.movePanelRight': 'Переместить панель вправо',
  'terminal.layer.closePanel': 'Закрыть панель',
  'terminal.layer.hostTree.search': 'Поиск хостов...',
  'terminal.layer.hostTree.searchButton': 'Поиск',
  'terminal.layer.hostTree.tagsButton': 'Фильтр по тегам',
  'terminal.layer.hostTree.newGroup': 'Новая группа',
  'terminal.layer.hostTree.localShell': 'Локальная оболочка',
  'terminal.layer.hostTree.tagsEmpty': 'Нет доступных тегов',
  'terminal.layer.hostTree.clearTags': 'Сбросить выбор',
  'terminal.layer.hostTree.collapse': 'Свернуть список хостов',
  'terminal.layer.hostTree.expand': 'Развернуть список хостов',
  'terminal.layer.hostTree.empty': 'Хосты не найдены',
  'topTabs.openQuickSwitcher': 'Открыть быстрый переключатель',
  'topTabs.moreTabs': 'Больше вкладок',
  'topTabs.aiAssistant': 'AI-помощник',
  'topTabs.windowOpacity': 'Прозрачность окна',
  'topTabs.toggleTheme': 'Переключить тему',
  'topTabs.openSettings': 'Открыть настройки',
  'ai.chat.sessionHistory': 'История сессий',
  'ai.chat.attach': 'Прикрепить',
  'ai.chat.terminalSelectionAttachment': 'Выделение терминала',
  'ai.chat.terminalSelectionLines': 'строк: {count}',
  'ai.chat.collapse': 'Свернуть',
  'ai.chat.expand': 'Развернуть',
  'ai.chat.enableAgent': 'Включить {name}',
  'zmodem.waitingForRemote': 'Ожидание удалённой стороны...',
  'zmodem.uploading': 'Загрузка',
  'zmodem.downloading': 'Скачивание',
  'zmodem.cancelTransfer': 'Отменить передачу (Ctrl+C)',
  'zmodem.overwrite.title': 'Remote file already exists',
  'zmodem.overwrite.applyToRest': 'Apply to remaining conflicts',
  'zmodem.overwrite.overwrite': 'Overwrite',
  'zmodem.overwrite.skip': 'Skip',
  'zmodem.overwrite.cancel': 'Cancel',
  'settings.shortcuts.resetToDefault': 'Сбросить по умолчанию',
};
