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

export const ruTerminalMessages: Messages = {
  'terminal.sudoHint.pressEnter': 'Нажмите Enter, чтобы вставить пароль sudo',
  // Connection logs
  'logs.table.date': 'Дата',
  'logs.table.user': 'Пользователь',
  'logs.table.host': 'Хост',
  'logs.table.saved': 'Сохранено',
  'logs.empty.title': 'Нет журналов подключений',
  'logs.empty.desc':
    'История ваших подключений будет отображаться здесь, когда вы подключаетесь к хостам или открываете локальные терминалы.',
  'logs.loadMore': 'Загрузить ещё {count} журналов',
  'logs.ongoing': 'в процессе',
  'logs.localTerminal': 'Локальный терминал',
  'logs.action.save': 'Сохранить',
  'logs.action.unsave': 'Убрать из сохранённых',
  'logs.action.delete': 'Удалить',

  // Log view
  'logView.customizeAppearance': 'Настроить внешний вид',
  'logView.appearance': 'Внешний вид',
  'logView.readOnly': 'Только чтение',
  'logView.export': 'Экспорт',

  // Terminal toolbar / search / context menu / auth
  'terminal.toolbar.openSftp': 'Открыть SFTP',
  'terminal.toolbar.availableAfterConnect': 'Доступно после подключения',
  'terminal.toolbar.sendYmodem': 'Отправить через YMODEM',
  'terminal.toolbar.sftp': 'SFTP',
  'terminal.toolbar.more': 'Другие действия',
  'terminal.toolbar.scripts': 'Скрипты',
  'terminal.toolbar.history': 'История команд',
  'history.scope.label': 'Область истории',
  'history.tab.host': 'Хост',
  'history.tab.global': 'Глобальная',
  'history.searchPlaceholder': 'Поиск по истории...',
  'history.loading': 'Загрузка удалённой истории...',
  'history.meta.count': '{count} команд',
  'history.empty.noSession': 'Откройте удалённую сессию, чтобы просмотреть историю команд.',
  'history.empty.unsupportedProtocol': 'История команд доступна только для сессий SSH/Mosh/ET.',
  'history.empty.noHistory': 'История команд на этом хосте не найдена.',
  'history.empty.noGlobalHistory': 'Глобальной истории команд пока нет. Выполненные команды появятся здесь.',
  'history.action.refresh': 'Обновить',
  'history.action.retry': 'Повторить',
  'history.action.paste': 'Вставить в терминал',
  'history.action.run': 'Выполнить в терминале',
  'history.action.saveAsSnippet': 'Сохранить как сниппет',
  'terminal.toolbar.library': 'Библиотека',
  'terminal.toolbar.noSnippets': 'Нет доступных сниппетов',
  'terminal.toolbar.terminalSettings': 'Настройки терминала',
  'terminal.toolbar.searchTerminal': 'Поиск по терминалу',
  'terminal.toolbar.search': 'Поиск',
  'terminal.toolbar.timestampsEnable': 'Показать время',
  'terminal.toolbar.timestampsDisable': 'Скрыть время',
  'terminal.toolbar.broadcast': 'Трансляция',
  'terminal.toolbar.broadcastEnable': 'Включить режим трансляции',
  'terminal.toolbar.broadcastDisable': 'Отключить режим трансляции',
  'terminal.toolbar.composeBar': 'Строка ввода',
  'terminal.composeBar.placeholder': 'Введите команду здесь и нажмите Enter для отправки...',
  'terminal.composeBar.send': 'Отправить',
  'terminal.composeBar.close': 'Закрыть строку ввода',
  'terminal.composeBar.broadcasting': 'Трансляция во все сессии',
  'terminal.composeBar.resize': 'Изменить высоту строки ввода',
  'terminal.composeBar.manageSnippets': 'Управление быстрыми сниппетами',
  'terminal.composeBar.searchSnippets': 'Поиск сниппетов...',
  'terminal.composeBar.noPinnedSnippets': 'Закрепите сниппеты через + для быстрого доступа',
  'terminal.composeBar.noMatchingSnippets': 'Сниппеты не найдены',
  'terminal.composeBar.pinnedCount': 'Закреплено: {count}',
  'terminal.composeBar.unpinSnippet': 'Убрать {label} из панели',
  'terminal.composeBar.snippetClickHint': 'Клик — вставить · Shift+клик — отправить',
  'terminal.toolbar.focus': 'Фокус',
  'terminal.toolbar.focusMode': 'Режим фокуса',
  'terminal.toolbar.encoding': 'Кодировка терминала',
  'terminal.toolbar.encoding.utf8': 'UTF-8',
  'terminal.toolbar.encoding.gb18030': 'GB18030',
  'terminal.toolbar.closeSession': 'Закрыть сессию',
  'terminal.toolbar.hostHighlight.title': 'Подсветка ключевых слов хоста',
  'terminal.toolbar.hostHighlight.noRules': 'Для этого хоста не задано пользовательских правил подсветки',
  'terminal.toolbar.hostHighlight.addRule': 'Добавить новое правило',
  'terminal.toolbar.hostHighlight.labelPlaceholder': 'Метка (например, Error)',
  'terminal.toolbar.hostHighlight.patternPlaceholder': 'Regex-шаблон (например, \\bfailed\\b)',
  'terminal.toolbar.hostHighlight.invalidPattern': 'Некорректный regex-шаблон',
  'terminal.toolbar.hostHighlight.clearAll': 'Очистить все',
  'terminal.toolbar.hostHighlight.changeColor': 'Изменить цвет подсветки для',
  'terminal.toolbar.hostHighlight.selectColor': 'Выбрать цвет для нового правила',
  'terminal.statusbar.copyHostname.label': 'Копировать адрес хоста',
  'terminal.statusbar.copyHostname.tooltip': 'Копировать адрес хоста ({hostname})',
  'terminal.statusbar.copyHostname.toast': 'Адрес хоста скопирован: {hostname}',
  'terminal.statusbar.copyHostname.error': 'Не удалось скопировать адрес хоста в буфер обмена',
  'terminal.serverStats.cpu': 'Использование CPU',
  'terminal.serverStats.cpuCores': 'Использование ядер CPU',
  'terminal.serverStats.memory': 'Использование памяти',
  'terminal.serverStats.memoryDetails': 'Сведения о памяти',
  'terminal.serverStats.memUsed': 'Использовано',
  'terminal.serverStats.memBuffers': 'Буферы',
  'terminal.serverStats.memCached': 'Кэш',
  'terminal.serverStats.memFree': 'Свободно',
  'terminal.serverStats.swap': 'Swap',
  'terminal.serverStats.swapUsed': 'Использовано swap',
  'terminal.serverStats.swapFree': 'Свободный swap',
  'terminal.serverStats.swapTotal': 'Всего',
  'terminal.serverStats.topProcesses': 'Топ процессов по памяти',
  'terminal.serverStats.disk': 'Использование диска (корень)',
  'terminal.serverStats.diskDetails': 'Смонтированные диски',
  'terminal.serverStats.network': 'Скорость сети',
  'terminal.serverStats.networkDetails': 'Сетевые интерфейсы',
  'terminal.serverStats.noData': 'Данные недоступны',
  'terminal.dragDrop.localTitle': 'Перетащите для вставки путей',
  'terminal.dragDrop.localMessage': 'Пути к файлам будут вставлены в терминал',
  'terminal.dragDrop.remoteTitle': 'Перетащите для загрузки файлов',
  'terminal.dragDrop.remoteMessage': 'Файлы будут загружены через SFTP',
  'terminal.dragDrop.notConnected': 'Нельзя перетащить файлы — терминал не подключён',
  'terminal.dragDrop.errorTitle': 'Ошибка перетаскивания',
  'terminal.dragDrop.errorMessage': 'Не удалось обработать перетащенные файлы',
  'terminal.search.placeholder': 'Поиск...',
  'terminal.search.noResults': 'Ничего не найдено',
  'terminal.search.prevMatch': 'Предыдущее совпадение (Shift+Enter)',
  'terminal.search.nextMatch': 'Следующее совпадение (Enter)',
  'terminal.menu.copy': 'Копировать',
  'terminal.menu.paste': 'Вставить',
  'terminal.menu.addSelectionToAI': 'Добавить в чат',
  'terminal.menu.pasteSelection': 'Вставить выделенное',
  'terminal.menu.selectAll': 'Выбрать всё',
  'terminal.menu.reconnect': 'Переподключиться',
  'terminal.menu.sendYmodem': 'Отправить через YMODEM',
  'terminal.menu.splitHorizontal': 'Разделить по горизонтали',
  'terminal.menu.splitVertical': 'Разделить по вертикали',
  'terminal.menu.clearBuffer': 'Очистить буфер',
  'terminal.menu.closeTerminal': 'Закрыть терминал',
  'terminal.ymodem.selectFile': 'Выберите файл для отправки',
  'terminal.ymodem.allFiles': 'Все файлы',
  'terminal.ymodem.started': 'YMODEM отправляет {fileName}',
  'terminal.ymodem.complete': 'YMODEM отправил {fileName}',
  'terminal.ymodem.failed': 'Не удалось отправить через YMODEM',
  'terminal.ymodem.unavailable': 'YMODEM недоступен',
  'terminal.selection.addToAI': 'Добавить в чат',
  'terminal.selection.addToAIDesc': 'Прикрепить выбранный вывод терминала к черновику AI',
  'terminal.auth.password': 'Пароль',
  'terminal.auth.sshKey': 'SSH-ключ',
  'terminal.auth.username': 'Имя пользователя',
  'terminal.auth.username.placeholder': 'root',
  'terminal.auth.passwordLabel': 'Пароль',
  'terminal.auth.password.placeholder': 'Введите пароль',
  'terminal.auth.passphrase': 'Парольная фраза',
  'terminal.auth.passphrase.placeholder': 'Необязательная парольная фраза для выбранного приватного ключа',
  'terminal.auth.certificate': 'Сертификат',
  'terminal.auth.selectKey': 'Выбрать ключ',
  'terminal.auth.noKeysHint': 'Нет доступных ключей. Добавьте ключи в связке ключей.',
  'terminal.auth.continueSave': 'Продолжить и сохранить',
  'terminal.auth.credentialsUnavailable': 'Сохранённые учётные данные не могут быть расшифрованы на этом устройстве. Пожалуйста, введите и сохраните их заново.',
  'terminal.auth.jumpCredentialsUnavailable': 'У jump-хоста сохранены учётные данные, которые нельзя расшифровать на этом устройстве. Откройте настройки хоста и введите их заново.',
  'terminal.auth.proxyCredentialsUnavailable': 'Учётные данные прокси не могут быть расшифрованы на этом устройстве. Откройте настройки хоста и заново введите пароль прокси.',
  'terminal.auth.keyUnavailableFallbackPassword': 'Сохранённый SSH-ключ недоступен на этом устройстве. Выполняется переход на аутентификацию по паролю.',
  'terminal.progress.timeoutIn': 'Тайм-аут через {seconds}с',
  'terminal.progress.disconnected': 'Отключено',
  'terminal.progress.cancelling': 'Отмена...',
  'terminal.progress.startOver': 'Начать заново',
  'terminal.connection.dismissDisconnectedDialog': 'Закрыть уведомление об отключении',
  'terminal.connection.chainOf': 'Цепочка {current} из {total}',
  'terminal.connection.showLogs': 'Показать журналы',
  'terminal.connection.hideLogs': 'Скрыть журналы',
  'terminal.connection.protocol.ssh': 'SSH',
  'terminal.connection.protocol.telnet': 'Telnet',
  'terminal.connection.protocol.mosh': 'Mosh',
  'terminal.connection.protocol.serial': 'Serial',
  'terminal.connection.protocol.local': 'Локальная оболочка',
  'terminal.hostKey.unknownTitle': 'Подтвердите этот ключ хоста',
  'terminal.hostKey.changedTitle': 'Ключ хоста изменился',
  'terminal.hostKey.unknownDescription': 'Подлинность {host} пока не может быть установлена.',
  'terminal.hostKey.changedDescription': 'Сохранённый ключ для {host} больше не совпадает с этим сервером.',
  'terminal.hostKey.fingerprintLabel': 'Отпечаток {keyType} — SHA256:',
  'terminal.hostKey.savedFingerprintLabel': 'Сохранённый отпечаток',
  'terminal.hostKey.unknownHint': 'Запомните его, если этот отпечаток принадлежит серверу, к которому вы ожидали подключиться.',
  'terminal.hostKey.changedHint': 'Продолжайте только если вы ожидали, что этот хост изменится.',
  'terminal.hostKey.addAndContinue': 'Добавить и продолжить',
  'terminal.hostKey.updateAndContinue': 'Обновить и продолжить',
  'terminal.themeModal.title': 'Внешний вид терминала',
  'terminal.themeModal.tab.theme': 'Тема',
  'terminal.themeModal.tab.font': 'Шрифт',
  'terminal.themeModal.tab.custom': 'Пользовательское',
  'terminal.themeModal.globalTheme': 'Глобальная тема',
  'terminal.themeModal.globalFont': 'Глобальный шрифт',
  'terminal.themeModal.fontSize': 'Размер шрифта',
  'terminal.themeModal.fontWeight': 'Толщина шрифта',
  'terminal.themeModal.livePreview': 'Предпросмотр в реальном времени',
  'terminal.themeModal.themeType': 'Тема {type}',
  'terminal.hiddenTheme.title': 'Текущая скрытая тема',
  'terminal.hiddenTheme.desc': 'Эта тема скрыта из ручного выбора и будет заменена, когда вы выберете другую тему.',
  'topTabs.toggleTheme.systemExitTitle': 'Активна системная тема',
  'topTabs.toggleTheme.systemExitMessage': 'Откройте настройки, чтобы выбрать фиксированную светлую или тёмную тему.',
  'topTabs.toggleTheme.openSettings': 'Открыть настройки',

  // Custom Themes
  'terminal.customTheme.section': 'Пользовательские темы',
  'terminal.customTheme.yourThemes': 'Ваши темы',
  'terminal.customTheme.new': 'Новая тема',
  'terminal.customTheme.newDesc': 'Клонировать текущую тему и настроить её',
  'terminal.customTheme.newTitle': 'Новая пользовательская тема',
  'terminal.customTheme.editTitle': 'Редактировать тему',
  'terminal.customTheme.import': 'Импорт .itermcolors',
  'terminal.customTheme.importDesc': 'Импорт из файла цветовой схемы iTerm2',
  'terminal.customTheme.importError': 'Не удалось разобрать выбранный файл. Убедитесь, что это корректный XML-файл .itermcolors.',
  'terminal.customTheme.delete': 'Удалить тему',
  'terminal.customTheme.confirmDelete': 'Подтвердить удаление',
  'terminal.customTheme.name': 'Название',
  'terminal.customTheme.namePlaceholder': 'Моя пользовательская тема',
  'terminal.customTheme.type': 'Тип',
  'terminal.customTheme.group.general': 'Общие',
  'terminal.customTheme.group.normal': 'Обычные цвета',
  'terminal.customTheme.group.bright': 'Яркие цвета',
  'terminal.customTheme.color.background': 'Фон',
  'terminal.customTheme.color.foreground': 'Текст',
  'terminal.customTheme.color.cursor': 'Курсор',
  'terminal.customTheme.color.selection': 'Выделение',
  'terminal.customTheme.color.black': 'Чёрный',
  'terminal.customTheme.color.red': 'Красный',
  'terminal.customTheme.color.green': 'Зелёный',
  'terminal.customTheme.color.yellow': 'Жёлтый',
  'terminal.customTheme.color.blue': 'Синий',
  'terminal.customTheme.color.magenta': 'Пурпурный',
  'terminal.customTheme.color.cyan': 'Голубой',
  'terminal.customTheme.color.white': 'Белый',
  'terminal.customTheme.color.brightBlack': 'Яркий чёрный',
  'terminal.customTheme.color.brightRed': 'Яркий красный',
  'terminal.customTheme.color.brightGreen': 'Яркий зелёный',
  'terminal.customTheme.color.brightYellow': 'Яркий жёлтый',
  'terminal.customTheme.color.brightBlue': 'Яркий синий',
  'terminal.customTheme.color.brightMagenta': 'Яркий пурпурный',
  'terminal.customTheme.color.brightCyan': 'Яркий голубой',
  'terminal.customTheme.color.brightWhite': 'Яркий белый',

  // Cloud Sync Settings
  'cloudSync.gate.title': 'Синхронизация с end-to-end шифрованием',
  'cloudSync.gate.desc':
    'Ваши данные шифруются локально перед синхронизацией. Облачные провайдеры никогда не видят ваши данные в открытом виде. Задайте мастер-ключ, чтобы включить безопасную синхронизацию.',
  'cloudSync.gate.masterKey': 'Мастер-ключ',
  'cloudSync.gate.confirmMasterKey': 'Подтвердите мастер-ключ',
  'cloudSync.gate.placeholder': 'Введите надёжный пароль',
  'cloudSync.gate.confirmPlaceholder': 'Подтвердите пароль',
  'cloudSync.gate.mismatch': 'Пароли не совпадают',
  'cloudSync.gate.warning':
    'Я понимаю, что если забуду мастер-ключ, мои данные нельзя будет восстановить. Сброс пароля невозможен.',
  'cloudSync.gate.enableVault': 'Включить зашифрованное хранилище',
  'cloudSync.gate.enabledToast': 'Зашифрованное хранилище включено',
  'cloudSync.gate.setupFailed': 'Не удалось настроить мастер-ключ',
  'cloudSync.passwordStrength.tooShort': 'Слишком короткий',
  'cloudSync.passwordStrength.weak': 'Слабый',
  'cloudSync.passwordStrength.moderate': 'Средний',
  'cloudSync.passwordStrength.strong': 'Сильный',
  'cloudSync.passwordStrength.veryStrong': 'Очень сильный',
  'cloudSync.provider.notConnected': 'Не подключено',
  'cloudSync.provider.sync': 'Синхронизация',
  'cloudSync.provider.connect': 'Подключить',
  'cloudSync.provider.connecting': 'Подключение...',
  'cloudSync.provider.webdav': 'WebDAV',
  'cloudSync.provider.webdav.desc': 'Подключение к самостоятельно размещённому WebDAV endpoint',
  'cloudSync.provider.s3': 'Совместимое с S3',
  'cloudSync.provider.s3.desc': 'Подключение к объектному хранилищу, совместимому с S3',
  'cloudSync.provider.comingSoon': 'Скоро',
  'cloudSync.webdav.title': 'Настройки WebDAV',
  'cloudSync.webdav.desc': 'Настройка WebDAV endpoint для зашифрованной синхронизации.',
  'cloudSync.webdav.endpoint': 'URL endpoint',
  'cloudSync.webdav.authType': 'Тип аутентификации',
  'cloudSync.webdav.auth.basic': 'Basic',
  'cloudSync.webdav.auth.digest': 'Digest',
  'cloudSync.webdav.auth.token': 'Токен',
  'cloudSync.webdav.username': 'Имя пользователя',
  'cloudSync.webdav.password': 'Пароль',
  'cloudSync.webdav.token': 'Токен',
  'cloudSync.webdav.showSecret': 'Показать секрет',
  'cloudSync.webdav.allowInsecure': 'Разрешить небезопасное соединение (игнорировать ошибки сертификата)',
  'cloudSync.webdav.validation.endpoint': 'Введите корректный WebDAV endpoint.',
  'cloudSync.webdav.validation.credentials': 'Имя пользователя и пароль обязательны.',
  'cloudSync.webdav.validation.token': 'Токен обязателен.',
  'cloudSync.s3.title': 'Настройки S3',
  'cloudSync.s3.desc': 'Подключение к объектному хранилищу, совместимому с S3, для зашифрованной синхронизации.',
  'cloudSync.s3.endpoint': 'URL endpoint',
  'cloudSync.s3.region': 'Регион',
  'cloudSync.s3.bucket': 'Бакет',
  'cloudSync.s3.accessKeyId': 'ID ключа доступа',
  'cloudSync.s3.secretAccessKey': 'Секретный ключ доступа',
  'cloudSync.s3.sessionToken': 'Токен сессии (необязательно)',
  'cloudSync.s3.prefix': 'Префикс ключа (необязательно)',
  'cloudSync.s3.forcePathStyle': 'Принудительно использовать path-style URL (для MinIO/R2 и т. д.)',
  'cloudSync.s3.showSecret': 'Показать секреты',
  'cloudSync.s3.validation.required': 'Endpoint, регион, бакет, access key и secret обязательны.',
  'cloudSync.smb.title': 'Настройки SMB',
  'cloudSync.smb.desc': 'Подключение к файловой SMB/CIFS-шаре для зашифрованной синхронизации.',
  'cloudSync.smb.share': 'Путь к шаре',
  'cloudSync.smb.username': 'Имя пользователя',
  'cloudSync.smb.password': 'Пароль',
  'cloudSync.smb.domain': 'Домен (необязательно)',
  'cloudSync.smb.domainPlaceholder': 'например, WORKGROUP',
  'cloudSync.smb.port': 'Порт (необязательно)',
  'cloudSync.smb.showSecret': 'Показать пароль',
  'cloudSync.smb.validation.share': 'Путь к шаре обязателен.',
  'cloudSync.smb.validation.port': 'Порт должен быть числом от 1 до 65535.',
  'cloudSync.connect.smb.success': 'SMB успешно подключён',
  'cloudSync.connect.smb.failedTitle': 'Ошибка подключения SMB',
  'cloudSync.provider.smb': 'SMB-шара',
  'cloudSync.connect.webdav.success': 'WebDAV успешно подключён',
  'cloudSync.connect.webdav.failedTitle': 'Ошибка подключения WebDAV',
  'cloudSync.connect.s3.success': 'S3 успешно подключён',
  'cloudSync.connect.s3.failedTitle': 'Ошибка подключения S3',
  'cloudSync.lastSync.never': 'Никогда',
  'cloudSync.lastSync.justNow': 'Только что',
  'cloudSync.lastSync.minutesAgo': '{minutes} мин назад',
  'cloudSync.changeKey': 'Изменить ключ',
  'cloudSync.providers.title': 'Облачные провайдеры',
  'cloudSync.syncAll': 'Синхронизировать всех подключённых провайдеров',
  'cloudSync.autoSync.title': 'Автосинхронизация',
  'cloudSync.autoSync.desc': 'Автоматически синхронизировать при внесении изменений',
  'cloudSync.strategy.title': 'Стратегия синхронизации',
  'cloudSync.strategy.desc': 'Выберите, что делать, когда изменились и локальные, и облачные данные.',
  'cloudSync.strategy.smartMerge': 'Умное объединение (рекомендуется)',
  'cloudSync.strategy.smartMergeDesc': 'По возможности объединять изменения с обеих сторон; если Netcatty не сможет безопасно выбрать, он попросит вас решить вручную.',
  'cloudSync.strategy.preferCloud': 'Приоритет облака',
  'cloudSync.strategy.preferCloudDesc': 'Когда изменились обе стороны, скачать облачную версию и заменить локальные изменения.',
  'cloudSync.strategy.preferLocal': 'Приоритет локальных данных',
  'cloudSync.strategy.preferLocalDesc': 'Когда изменились обе стороны, загрузить локальную версию и заменить облачные изменения.',
  'cloudSync.status.title': 'Статус синхронизации',
  'cloudSync.status.localVersion': 'Локальная версия',
  'cloudSync.status.remoteVersion': 'Удалённая версия',
  'cloudSync.history.title': 'История синхронизации',
  'cloudSync.history.upload': 'Загрузка',
  'cloudSync.history.download': 'Скачивание',
  'cloudSync.history.resolved': 'Разрешено',
  'cloudSync.history.error': 'Ошибка',
  'cloudSync.localBackups.title': 'История локальных резервных копий',
  'cloudSync.localBackups.desc': 'Netcatty сохраняет локальные точки восстановления перед сменой версии приложения и перед восстановлением хранилища.',
  'cloudSync.localBackups.retentionTitle': 'Хранение резервных копий',
  'cloudSync.localBackups.retentionDesc': 'Выберите, сколько локальных резервных копий должен хранить Netcatty.',
  'cloudSync.localBackups.maxCount': 'Макс. число копий',
  'cloudSync.localBackups.maxSaved': 'Хранение резервных копий: {count}',
  'cloudSync.localBackups.maxInvalid': 'Введите число от 1 до 100.',
  'cloudSync.localBackups.empty': 'Локальных резервных копий пока нет.',
  'cloudSync.localBackups.reason.appVersionChange': 'Перед сменой версии приложения',
  'cloudSync.localBackups.reason.beforeRestore': 'Перед восстановлением',
  'cloudSync.localBackups.versionChange': '{from} -> {to}',
  'cloudSync.localBackups.counts': '{hosts} хостов, {keys} ключей, {snippets} сниппетов',
  'cloudSync.localBackups.restore': 'Восстановить',
  'cloudSync.localBackups.restoreSuccess': 'Локальная резервная копия восстановлена.',
  'cloudSync.localBackups.restoreFailedTitle': 'Ошибка восстановления',
  'cloudSync.localBackups.restoreMissing': 'Резервная копия не найдена.',
  'cloudSync.localBackups.protectiveBackupFailed': 'Не удалось создать защитную резервную копию, поэтому восстановление было прервано для защиты ваших текущих данных. Устраните основную проблему (например, доступ к keychain) и попробуйте снова. Подробности: {message}',
  'cloudSync.localBackups.restoreConfirmTitle': 'Восстановить эту резервную копию?',
  'cloudSync.localBackups.restoreConfirmDesc': 'Ваши текущие хосты, ключи, сниппеты и настройки будут заменены содержимым этой резервной копии. Перед этим автоматически создаётся защитный снимок текущих данных.',
  'cloudSync.localBackups.restoreConfirmButton': 'Восстановить',
  'cloudSync.localBackups.restoreConfirmCancel': 'Отмена',
  'cloudSync.localBackups.unavailableTitle': 'Локальные резервные копии недоступны',
  'cloudSync.localBackups.unavailableDesc': 'Эта платформа не предоставляет Netcatty безопасное хранилище ключей, поэтому локальные резервные копии нельзя записывать безопасно. Установите Netcatty в систему с поддерживаемым keychain, чтобы включить историю локальных резервных копий.',
  'cloudSync.localBackups.lockedTitle': 'Требуется мастер-ключ',
  'cloudSync.localBackups.lockedDesc': 'Настройте или разблокируйте мастер-ключ перед восстановлением резервной копии, чтобы восстановленные учётные данные оставались зашифрованными.',
  'cloudSync.revisionHistory.viewButton': 'История',
  'cloudSync.revisionHistory.title': 'История версий хранилища',
  'cloudSync.revisionHistory.description': 'Просматривайте и восстанавливайте предыдущие версии вашего хранилища из истории ревизий Gist.',
  'cloudSync.revisionHistory.empty': 'Ревизии не найдены.',
  'cloudSync.revisionHistory.current': 'Текущая',
  'cloudSync.revisionHistory.revision': 'Ревизия',
  'cloudSync.revisionHistory.revisionPreview': 'Содержимое ревизии',
  'cloudSync.revisionHistory.device': 'Устройство',
  'cloudSync.revisionHistory.hosts': 'Хосты',
  'cloudSync.revisionHistory.keys': 'Ключи',
  'cloudSync.revisionHistory.snippets': 'Сниппеты',
  'cloudSync.revisionHistory.identities': 'Идентификаторы',
  'cloudSync.revisionHistory.restoreButton': 'Восстановить эту версию',
  'cloudSync.revisionHistory.restored': 'Хранилище восстановлено из выбранной ревизии.',
  'cloudSync.revisionHistory.revisionNotFound': 'Ревизия не найдена или не содержит данных хранилища.',
  'cloudSync.revisionHistory.decryptFailed': 'Не удалось расшифровать эту ревизию. Возможно, она была зашифрована другим мастер-паролем.',
  'cloudSync.changeKey.title': 'Изменить мастер-ключ',
  'cloudSync.changeKey.current': 'Текущий мастер-ключ',
  'cloudSync.changeKey.new': 'Новый мастер-ключ',
  'cloudSync.changeKey.confirmNew': 'Подтвердите новый мастер-ключ',
  'cloudSync.changeKey.currentPlaceholder': 'Введите текущий мастер-ключ',
  'cloudSync.changeKey.newPlaceholder': 'Введите новый мастер-ключ',
  'cloudSync.changeKey.confirmPlaceholder': 'Подтвердите новый мастер-ключ',
  'cloudSync.changeKey.fillAll': 'Пожалуйста, заполните все поля',
  'cloudSync.changeKey.minLength': 'Новый мастер-ключ должен содержать не менее 8 символов',
  'cloudSync.changeKey.notMatch': 'Новые мастер-ключи не совпадают',
  'cloudSync.changeKey.incorrectCurrent': 'Неверный текущий мастер-ключ',
  'cloudSync.changeKey.failed': 'Не удалось изменить мастер-ключ',
  'cloudSync.changeKey.desc': 'Это заново зашифрует ваше хранилище. Убедитесь, что вы помните новый ключ.',
  'cloudSync.changeKey.showKeys': 'Показать ключи',
  'cloudSync.changeKey.updatedToast': 'Мастер-ключ обновлён',
  'cloudSync.changeKey.updateButton': 'Обновить ключ',
  'cloudSync.unlock.title': 'Введите мастер-ключ',
  'cloudSync.unlock.masterKey': 'Мастер-ключ',
  'cloudSync.unlock.desc':
    'Введите мастер-ключ один раз, чтобы включить зашифрованную синхронизацию. Он будет безопасно сохранён в системном keychain.',
  'cloudSync.unlock.placeholder': 'Введите мастер-ключ',
  'cloudSync.unlock.empty': 'Пожалуйста, введите мастер-ключ',
  'cloudSync.unlock.incorrect': 'Неверный мастер-ключ',
  'cloudSync.unlock.failed': 'Не удалось разблокировать хранилище',
  'cloudSync.unlock.showKey': 'Показать ключ',
  'cloudSync.unlock.notNow': 'Не сейчас',
  'cloudSync.unlock.readyToast': 'Хранилище готово',
  'cloudSync.unlock.unlockButton': 'Разблокировать',
  'cloudSync.header.vaultReady': 'Хранилище готово',
  'cloudSync.header.preparingVault': 'Подготовка хранилища...',
  'cloudSync.header.providersConnected': 'Подключено провайдеров: {count}',
  'cloudSync.githubFlow.title': 'Подключить GitHub',
  'cloudSync.githubFlow.desc': 'Скопируйте код ниже и введите его на GitHub, чтобы авторизовать Netcatty.',
  'cloudSync.githubFlow.copyCode': 'Скопировать код',
  'cloudSync.githubFlow.copied': 'Скопировано!',
  'cloudSync.githubFlow.openGitHub': 'Открыть GitHub',
  'cloudSync.githubFlow.waiting': 'Ожидание авторизации...',
  'cloudSync.conflict.title': 'Обнаружен конфликт версий',
  'cloudSync.conflict.desc': 'Выберите, какую версию сохранить',
  'cloudSync.conflict.local': 'ЛОКАЛЬНАЯ',
  'cloudSync.conflict.cloud': 'ОБЛАЧНАЯ',
  'cloudSync.conflict.detailsTitle': 'Изменённые данные',
  'cloudSync.conflict.detailsCounts': 'Локально {local} · Облако {cloud} · Конфликты {conflicts}',
  'cloudSync.conflict.entity.hosts': 'Хосты',
  'cloudSync.conflict.entity.keys': 'Ключи',
  'cloudSync.conflict.entity.identities': 'Идентификаторы',
  'cloudSync.conflict.entity.proxyProfiles': 'Профили прокси',
  'cloudSync.conflict.entity.snippets': 'Сниппеты',
  'cloudSync.conflict.entity.customGroups': 'Группы',
  'cloudSync.conflict.entity.snippetPackages': 'Пакеты сниппетов',
  'cloudSync.conflict.entity.portForwardingRules': 'Проброс портов',
  'cloudSync.conflict.entity.groupConfigs': 'Настройки групп',
  'cloudSync.conflict.entity.settings': 'Настройки',
  'cloudSync.conflict.keepLocal': 'Перезаписать облако (сохранить локальную)',
  'cloudSync.conflict.useCloud': 'Скачать из облака (перезаписать локальную)',
  'cloudSync.connect.browserContinue': 'Завершите авторизацию в браузере',
  'cloudSync.connect.browserCancelled': 'Предыдущая авторизация в браузере была отменена',
  'cloudSync.connect.github.success': 'GitHub успешно подключён',
  'cloudSync.connect.github.failedTitle': 'Ошибка подключения GitHub',
  'cloudSync.connect.github.timeout': 'Время подключения к GitHub истекло. Проверьте сеть или настройки прокси.',
  'cloudSync.connect.github.networkError': 'Не удалось связаться с GitHub. Проверьте сеть или настройки прокси.',
  'cloudSync.connect.google.failedTitle': 'Ошибка подключения Google',
  'cloudSync.connect.onedrive.failedTitle': 'Ошибка подключения OneDrive',
  'cloudSync.sync.success': 'Синхронизировано с {provider}',
  'cloudSync.sync.failed': 'Синхронизация не удалась',
  'cloudSync.sync.failedTitle': 'Синхронизация не удалась',
  'cloudSync.sync.errorTitle': 'Ошибка синхронизации',
  'cloudSync.resolve.downloaded': 'Скачаны данные из облака',
  'cloudSync.resolve.uploaded': 'Загружены локальные данные',
  'cloudSync.resolve.failedTitle': 'Не удалось разрешить конфликт',
  'cloudSync.clearLocal.title': 'Очистить локальные данные',
  'cloudSync.clearLocal.desc': 'Сбросить локальную версию и историю синхронизации. При следующей синхронизации данные будут скачаны из облака.',
  'cloudSync.clearLocal.button': 'Очистить',
  'cloudSync.clearLocal.dialog.title': 'Очистить локальные данные хранилища?',
  'cloudSync.clearLocal.dialog.desc': 'Локальная версия будет сброшена до 0, а история синхронизации очищена. При следующей синхронизации данные будут скачаны из облака и заменят локальные.',
  'cloudSync.clearLocal.dialog.cancel': 'Отмена',
  'cloudSync.clearLocal.dialog.confirm': 'Очистить локальные данные',
  'cloudSync.clearLocal.toast.title': 'Локальные данные очищены',
  'cloudSync.clearLocal.toast.desc': 'Локальная версия сброшена до 0. Выполните синхронизацию для загрузки из облака.',

  // Keychain
  'keychain.filter.key': 'Ключ',
  'keychain.filter.certificate': 'Сертификат',
  'keychain.action.generateKey': 'Создать ключ',
  'keychain.action.importKey': 'Импорт. ключ',
  'keychain.action.newIdentity': 'Новый ид-катор',
  'keychain.action.importCertificate': 'Импорт. сертификат',
  'keychain.view.grid': 'Сетка',
  'keychain.view.list': 'Список',
  'keychain.section.keys': 'Ключи',
  'keychain.section.identities': 'Идентификаторы',
  'keychain.count.items': '{count} запис(ей)',
  'keychain.empty.title': 'Настройте свои ключи',
  'keychain.empty.desc': 'Импортируйте или создайте SSH-ключи для безопасной аутентификации.',
  'keychain.panel.generateKey': 'Сгенерировать ключ',
  'keychain.panel.newKey': 'Новый ключ',
  'keychain.panel.keyDetails': 'Сведения о ключе',
  'keychain.panel.editKey': 'Редактировать ключ',
  'keychain.panel.editIdentity': 'Редактировать идентификатор',
  'keychain.panel.newIdentity': 'Новый идентификатор',
  'keychain.panel.keyExport': 'Экспорт ключа',
  'keychain.validation.labelRequired': 'Пожалуйста, введите метку для ключа',
  'keychain.validation.labelAndPrivateKeyRequired': 'Метка и приватный ключ обязательны',
  'keychain.validation.labelAndUsernameRequired': 'Метка и имя пользователя обязательны',
  'keychain.error.generationUnavailable': 'Генератор ключей не работает - пожалуйста, убедитесь, что приложение работает в Electron',
  'keychain.error.generateKeyPairFailed': 'Не удалось сгенерировать пару ключей',
  'keychain.error.generateKeyFailed': 'Не удалось сгенерировать ключ',
  'keychain.error.keyGenerationTitle': 'Генерация ключа',
  'keychain.export.exportTo': 'Экспортировать в *',
  'keychain.export.selectHost': 'Выберите хост',
  'keychain.export.location': 'Расположение ~ $1 *',
  'keychain.export.filename': 'Имя файла ~ $2 *',
  'keychain.export.note': 'Экспорт ключей сейчас поддерживается только в системах {unix}. Используйте раздел {advanced} для настройки скрипта экспорта.',
  'keychain.export.script': 'Скрипт *',
  'keychain.export.scriptPlaceholder': 'Скрипт экспорта...',
  'keychain.export.missingCredentials': 'У хоста нет сохранённого пароля или ключа. Сначала добавьте в хост учётные данные с паролем.',
  'keychain.export.successTitle': 'Экспорт выполнен успешно',
  'keychain.export.successMessage': 'Публичный ключ экспортирован и привязан к {host}',
  'keychain.export.failedTitle': 'Ошибка экспорта',
  'keychain.export.failedMessage': 'Не удалось экспортировать ключ: {error}',
  'keychain.export.failedPrefix': 'Ошибка экспорта: {error}',
  'keychain.export.exitCode': 'Команда завершилась с кодом {code}',
  'keychain.export.exporting': 'Экспорт...',
  'keychain.export.exportAndAttach': 'Экспортировать и привязать',
  'keychain.export.title': 'Экспорт ключа',
  'keychain.export.exportToRequired': 'Экспортировать в *',
  'keychain.export.selectHostPlaceholder': 'Выберите хост...',
  'keychain.export.locationLabel': 'Расположение ~ $1 *',
  'keychain.export.filenameLabel': 'Имя файла ~ $2 *',
  'keychain.export.advanced': 'Дополнительно',
  'keychain.export.note.supportsOnly': 'Экспорт ключей сейчас поддерживается только в',
  'keychain.export.note.systems': 'системах.',
  'keychain.export.note.use': 'Используйте',
  'keychain.export.note.customize': 'раздел для настройки скрипта экспорта.',
  'keychain.export.scriptRequired': 'Скрипт *',
  'keychain.export.exportToHost': 'Экспортировать на хост',
  'keychain.export.failedGeneric': 'Ошибка экспорта: {message}',
  'keychain.field.label': 'Метка',
  'keychain.field.labelRequired': 'Метка *',
  'keychain.field.labelPlaceholder': 'Метка ключа',
  'keychain.field.privateKeyRequired': 'Приватный ключ *',
  'keychain.field.publicKey': 'Публичный ключ',
  'keychain.field.certificatePlaceholder': 'Содержимое сертификата (необязательно)',
  'keychain.generate.keyType': 'Тип ключа',
  'keychain.generate.keySize': 'Размер ключа',
  'keychain.generate.labelPlaceholder': 'Метка ключа',
  'keychain.generate.passphrasePlaceholder': 'Парольная фраза (необязательно)',
  'keychain.generate.savePassphrase': 'Сохранить парольную фразу',
  'keychain.generate.generate': 'Сгенерировать',
  'keychain.generate.generateSave': 'Сгенерировать и сохранить',
  'keychain.import.dropHint': 'Перетащите сюда файл ключа',
  'keychain.import.importFromFile': 'Импортировать из файла',
  'keychain.import.saveKey': 'Сохранить ключ',
  'keychain.import.importedKeyLabel': 'Импортированный ключ',
  'keychain.identity.usernameRequired': 'Имя пользователя *',
  'keychain.identity.method.passwordOnly': 'Пароль',
  'keychain.identity.summary.password': 'Пароль аутентификации',
  'keychain.identity.summary.key': 'Ключ аутентификации',
  'keychain.identity.summary.certificate': 'Сертификат аутентификации',
  'keychain.identity.summary.passwordAndKey': 'Пароль и ключ аутентификации',
  'keychain.identity.summary.passwordAndCertificate': 'Пароль и сертификат аутентификации',
  'keychain.identity.summary.none': 'Нет учётных данных',
  'keychain.identity.selectCredential': 'Выберите {kind}',
  'keychain.identity.save': 'Сохранить',
  'keychain.identity.update': 'Обновить',
  'keychain.keyDialog.newTitle': 'Новый ключ',
  'keychain.keyDialog.newDesc': 'Добавить новый SSH-ключ',
  'keychain.keyDialog.editTitle': 'Редактировать ключ',
  'keychain.keyDialog.editDesc': 'Обновить этот SSH-ключ',
  'keychain.keyDialog.updateKey': 'Обновить ключ',

  // Tabs
  'tabs.closeSessionAria': 'Закрыть сессию',
  'tabs.closeLogViewAria': 'Закрыть просмотр журнала',
  'tabs.logPrefix': 'Журнал:',
  'tabs.logLocal': 'Локальный',
  'tabs.copyTab': 'Копировать вкладку',
  'tabs.copyTabToNewWindow': 'Копировать вкладку в новое окно',
  'tabs.copyTabToNewWindowFailed': 'Не удалось открыть вкладку в новом окне',
  'tabs.closeOthers': 'Закрыть остальные',
  'tabs.closeToRight': 'Закрыть вкладки справа',
  'tabs.closeAll': 'Закрыть все',
  'keychain.edit.labelRequired': 'Метка *',
  'keychain.edit.keyLabelPlaceholder': 'Метка ключа',
  'keychain.edit.privateKeyRequired': 'Приватный ключ *',
  'keychain.edit.publicKey': 'Публичный ключ',
  'keychain.edit.certificate': 'Сертификат',
  'keychain.edit.certificatePlaceholder': 'Содержимое сертификата (необязательно)',
  'keychain.edit.filePath': 'Путь к файлу',
  'keychain.edit.keyExport': 'Экспорт ключа',
  'keychain.edit.exportToHost': 'Экспортировать на хост',

  // Snippets
  'snippets.searchPlaceholder': 'Поиск сниппетов...',
  'snippets.action.newSnippet': 'Новый сниппет',
  'snippets.action.newPackage': 'Новый пакет',
  'snippets.panel.newTitle': 'Новый сниппет',
  'snippets.panel.editTitle': 'Редактировать сниппет',
  'snippets.field.description': 'Описание действия',
  'snippets.field.descriptionPlaceholder': 'Например: проверить сетевую нагрузку',
  'snippets.field.package': 'Добавить пакет',
  'snippets.field.packagePlaceholder': 'Выберите или создайте пакет',
  'snippets.field.createPackage': 'Создать пакет',
  'snippets.field.scriptRequired': 'Скрипт *',
  'snippets.scriptEditor.expand': 'Открыть в окне',
  'snippets.scriptEditor.resize': 'Изменить высоту редактора',
  'snippets.scriptEditor.modalTitle': 'Редактировать скрипт',
  'snippets.variables.dialogTitle': 'Переменные сниппета',
  'snippets.variables.dialogDesc': 'Заполните значения для "{label}" перед запуском.',
  'snippets.variables.hint': 'Значения вставляются в скрипт как есть (без shell-экранирования).',
  'snippets.variables.preview': 'Предпросмотр',
  'snippets.variables.placeholder': 'Введите значение',
  'snippets.variables.placeholderDefault': 'По умолчанию: {value}',
  'snippets.variables.required': 'Эта переменная обязательна',
  'snippets.variables.run': 'Запустить',
  'snippets.field.variablesHelp': 'Используйте {{name}} или {{name:default}} для плейсхолдеров в скрипте.',
  'snippets.field.variablesDetected': 'Переменные',
  'snippets.field.variableDefault': 'по умолчанию {value}',
  'snippets.targets.title': 'Цели',
  'snippets.targets.add': 'Добавить цели',
  'snippets.history.title': 'История оболочки',
  'snippets.history.subtitle': '{count} команд',
  'snippets.history.emptyTitle': 'История оболочки пока пуста',
  'snippets.history.emptyDesc': 'Здесь будут появляться выполненные вами команды',
  'snippets.history.loadMore': 'Загрузить ещё',
  'snippets.history.separator': '•',
  'snippets.history.labelPlaceholder': 'Задайте метку для этого сниппета',
  'snippets.history.saveAsSnippet': 'Сохранить как сниппет',
  'snippets.history.time.justNow': 'только что',
  'snippets.history.time.minutesAgo': '{count}м назад',
  'snippets.history.time.hoursAgo': '{count}ч назад',
  'snippets.history.time.daysAgo': '{count}д назад',
  'snippets.breadcrumb.allPackages': 'Все пакеты',
  'snippets.breadcrumb.separator': '›',
  'snippets.empty.title': 'Создать сниппет',
  'snippets.empty.desc': 'Сохраняйте самые используемые команды как сниппеты, чтобы повторно использовать их в один клик.',
  'snippets.search.noResults.title': 'Нет совпадений',
  'snippets.search.noResults.desc': 'Ни один сниппет или пакет не соответствует запросу "{query}". Попробуйте другой поисковый запрос или очистите поиск для просмотра.',
  'snippets.section.packages': 'Пакеты',
  'snippets.section.snippets': 'Сниппеты',
  'snippets.package.count': '{count} сниппет(ов)',
  'snippets.commandFallback': 'Команда',
  'snippets.view.grid': 'Сетка',
  'snippets.view.list': 'Список',
  'snippets.packageDialog.title': 'Новый пакет',
  'snippets.packageDialog.parent': 'Родитель: {parent}',
  'snippets.packageDialog.root': 'Корень',
  'snippets.packageDialog.placeholder': 'например, ops/maintenance',
  'snippets.packageDialog.hint': 'Используйте "/" для создания вложенных пакетов.',

  // Snippets Rename Dialog
  'snippets.renameDialog.title': 'Переименовать пакет',
  'snippets.renameDialog.currentPath': 'Текущий путь: {path}',
  'snippets.renameDialog.placeholder': 'Введите новое имя',
  'snippets.renameDialog.error.empty': 'Имя пакета не может быть пустым',
  'snippets.renameDialog.error.duplicate': 'Пакет с таким именем уже существует',
  'snippets.renameDialog.error.invalidChars': 'Имя пакета может содержать только буквы, цифры, дефисы и подчёркивания',

  'snippets.field.noAutoRun': 'Только вставить (не выполнять автоматически)',
  // Snippet Shortkey
  'snippets.field.shortkey': 'Сочетание клавиш',
  'snippets.shortkey.placeholder': 'Нажмите, чтобы задать сочетание',
  'snippets.shortkey.recording': 'Нажмите сочетание клавиш...',
  'snippets.shortkey.hint': 'Нажмите это сочетание в терминале, чтобы быстро отправить команду.',
  'snippets.shortkey.clear': 'Очистить сочетание',
  'snippets.shortkey.error.systemConflict': 'Это сочетание конфликтует с системным сочетанием',
  'snippets.shortkey.error.snippetConflict': 'Это сочетание уже используется сниппетом: {name}',

  // Serial Port
  'serial.button': 'Серийный',
  'serial.modal.title': 'Подключение к последовательному порту',
  'serial.modal.desc': 'Настройте параметры подключения к последовательному порту',
  'serial.field.port': 'Последовательный порт',
  'serial.field.selectPort': 'Выберите порт...',
  'serial.field.baudRate': 'Скорость передачи',
  'serial.field.dataBits': 'Биты данных',
  'serial.field.stopBits': 'Стоп-биты',
  'serial.field.stopBits15Warning': '1.5 stop bits may not be supported on all Windows devices',
  'serial.field.parity': 'Чётность',
  'serial.field.flowControl': 'Управление потоком',
  'serial.noPorts': 'Последовательные порты не обнаружены. Подключите устройство и обновите список.',
  'serial.field.customPort': 'Путь к пользовательскому порту',
  'serial.field.customPortPlaceholder': 'например, /dev/ttys001 или COM1',
  'serial.type.hardware': 'Аппаратный',
  'serial.type.pseudo': 'Псевдотерминал',
  'serial.type.custom': 'Пользовательский',
  'serial.parity.none': 'Нет',
  'serial.parity.even': 'Чётная',
  'serial.parity.odd': 'Нечётная',
  'serial.parity.mark': 'Mark',
  'serial.parity.space': 'Space',
  'serial.flowControl.none': 'Нет',
  'serial.flowControl.xon/xoff': 'XON/XOFF (программный)',
  'serial.flowControl.rts/cts': 'RTS/CTS (аппаратный)',
  'serial.field.localEcho': 'Принудительное локальное эхо',
  'serial.field.localEchoDesc': 'Локально отображать вводимые символы (для устройств без удалённого эха)',
  'serial.field.lineMode': 'Построчный режим',
  'serial.field.lineModeDesc': 'Буферизовать ввод и отправлять по Enter (вместо посимвольной отправки)',
  'serial.field.charset': 'Кодировка',
  'serial.connectionError': 'Не удалось подключиться к последовательному порту',
  'serial.field.baudRatePlaceholder': 'Выберите или введите скорость...',
  'serial.field.baudRateEmpty': 'Введите пользовательскую скорость передачи',
  'serial.field.customBaudRate': 'Используется пользовательская скорость передачи',
  'serial.field.saveConfig': 'Сохранить конфигурацию',
  'serial.field.saveConfigDesc': 'Сохраните эту последовательную конфигурацию в хостах для быстрого доступа',
  'serial.field.configLabel': 'Имя конфигурации',
  'serial.field.configLabelPlaceholder': 'например, Arduino Uno',
  'serial.connectAndSave': 'Подключить и сохранить',
  'serial.edit.title': 'Настройки последовательного порта',

  // Keyboard Interactive Authentication (2FA/MFA)
  'keyboard.interactive.title': 'Требуется аутентификация',
  'keyboard.interactive.desc': 'Сервер требует дополнительную аутентификацию.',
  'keyboard.interactive.descWithHost': 'Сервер {hostname} требует дополнительную аутентификацию.',
  'keyboard.interactive.response': 'Ответ',
  'keyboard.interactive.enterCode': 'Введите код подтверждения',
  'keyboard.interactive.enterResponse': 'Введите ответ',
  'keyboard.interactive.submit': 'Отправить',
  'keyboard.interactive.verifying': 'Проверка...',
  'keyboard.interactive.savePassword': 'Сохранить пароль',

  // Passphrase Modal for encrypted SSH keys
  'passphrase.title': 'Парольная фраза SSH-ключа',
  'passphrase.desc': 'Введите парольную фразу для {keyName}',
  'passphrase.descWithHost': 'Введите парольную фразу для {keyName}, чтобы подключиться к {hostname}',
  'passphrase.label': 'Парольная фраза',
  'passphrase.keyPath': 'Ключ',
  'passphrase.unlock': 'Разблокировать',
  'passphrase.unlocking': 'Разблокировка...',
  'passphrase.skip': 'Пропустить',
  'passphrase.remember': 'Запомнить эту парольную фразу',

  // Text Editor
  'sftp.editor.wordWrap': 'Перенос строк',
  'sftp.editor.maximize': 'Развернуть',
  'sftp.editor.unsavedTitle': 'Несохранённые изменения',
  'sftp.editor.unsavedMessage': 'В файле {fileName} есть несохранённые изменения. Сохранить перед закрытием?',
  'sftp.editor.discardChanges': 'Отбросить',
  'sftp.editor.saveAndClose': 'Сохранить и закрыть',
  'sftp.editor.quitBlockedByDirty': 'Есть несохранённые редакторы — перед выходом сохраните изменения или отбросьте их',

};
