import type { Messages } from '../types'; export const ruVaultMessages: Messages = { // Notes 'notes.search.placeholder': 'Поиск заметок, хостов, тегов...', 'notes.action.newNote': 'Новая заметка', 'notes.action.newGroup': 'Новая папка', 'notes.action.importMarkdown': 'Импорт Markdown', 'notes.action.exportNote': 'Экспорт заметки', 'notes.action.exportGroup': 'Экспорт папки', 'notes.action.exportAll': 'Экспорт заметок', 'notes.import.toast.success': 'Импортировано заметок: {count}', 'notes.import.toast.noNotes': 'Markdown-файлы не были импортированы.', 'notes.import.toast.failed': 'Не удалось импортировать Markdown-файлы.', 'notes.import.toast.inProgress': 'Импорт Markdown уже выполняется.', 'notes.import.toast.skipped': 'Пропущено неподдерживаемых файлов: {count}.', 'notes.export.toast.success': 'Экспортировано заметок: {count}', 'notes.export.toast.empty': 'Нет заметок для экспорта.', 'notes.export.toast.failed': 'Не удалось экспортировать заметки.', 'notes.codeBlock.copied': 'Скопировано', 'notes.codeBlock.copyFailed': 'Не удалось скопировать блок кода.', 'notes.group.prompt': 'Путь папки', 'notes.group.all': 'Блокнот', 'notes.group.ungrouped': 'Без группы', 'notes.section.notebooks': 'Блокнот', 'notes.section.notes': 'Заметки', 'notes.mode.edit': 'Правка', 'notes.mode.split': 'Разделить', 'notes.mode.preview': 'Просмотр', 'notes.title.placeholder': 'Заголовок заметки', 'notes.editor.placeholder': 'Пишите Markdown-заметки здесь...', 'notes.editor.unrenderableMarkdown': 'Эта заметка содержит Markdown, который не может отобразить визуальный редактор (например, незакрытые теги вида ). Показан исходный Markdown — содержимое не потеряно.', 'notes.editor.retryRichView': 'Повторить в визуальном режиме', 'notes.preview.empty': 'Пока нечего просматривать.', 'notes.empty.title': 'Заметок пока нет', 'notes.empty.desc': 'Создавайте Markdown-заметки для инструкций, напоминаний и передачи серверов.', 'notes.empty.group': 'В этом блокноте пока нет заметок.', 'notes.search.noResults': 'Заметки не найдены.', 'notes.toolbar.modeLive': 'Живой просмотр', 'notes.toolbar.modeLiveTitle': 'Режим живого просмотра (WYSIWYG)', 'notes.toolbar.modeSource': 'Исходный код', 'notes.toolbar.modeSourceTitle': 'Режим исходного кода (Markdown)', 'notes.toolbar.modePreview': 'Чтение', 'notes.toolbar.modePreviewTitle': 'Режим чтения (только для чтения)', 'notes.toolbar.undo': 'Отменить (Ctrl+Z)', 'notes.toolbar.redo': 'Повторить (Ctrl+Y)', 'notes.toolbar.typography': 'Шрифт кода и параметры оформления', 'notes.toolbar.customCodeFont': 'Пользовательский шрифт кода', 'notes.toolbar.fontsAvailable': '{count} доступных шрифтов', 'notes.toolbar.searchFont': 'Поиск шрифтов...', 'notes.toolbar.noFontsFound': 'Совпадающие моноширинные шрифты не найдены', 'notes.toolbar.defaultFont': 'Моноширинный по умолчанию (Default)', 'notes.toolbar.bodyFontSize': 'Размер текста', 'notes.toolbar.codeFontSize': 'Размер кода', 'notes.toolbar.headingLevel': 'Уровень заголовка', 'notes.toolbar.h1': 'Заголовок 1', 'notes.toolbar.h2': 'Заголовок 2', 'notes.toolbar.h3': 'Заголовок 3', 'notes.toolbar.h4': 'Заголовок 4', 'notes.toolbar.bold': 'Жирный (Ctrl+B)', 'notes.toolbar.italic': 'Курсив (Ctrl+I)', 'notes.toolbar.strikethrough': 'Зачёркнутый', 'notes.toolbar.underline': 'Подчёркнутый', 'notes.toolbar.inlineCode': 'Встроенный код', 'notes.toolbar.bulletList': 'Маркированный список', 'notes.toolbar.orderedList': 'Нумерованный список', 'notes.toolbar.taskList': 'Список задач', 'notes.toolbar.quote': 'Цитата', 'notes.toolbar.codeBlock': 'Блок кода', 'notes.toolbar.mathFormula': 'Математическая формула (LaTeX / Math)', 'notes.toolbar.table': 'Вставить таблицу', 'notes.toolbar.divider': 'Разделитель', 'notes.toolbar.link': 'Вставить ссылку', 'notes.toolbar.image': 'Вставить изображение', 'notes.action.pin': 'Закрепить заметку', 'notes.action.unpin': 'Открепить заметку', 'notes.tag.remove': 'Удалить тег', 'notes.tag.placeholder': 'Имя тега...', 'notes.tag.add': 'Добавить тег', 'notes.outline.title': 'Оглавление', 'notes.outline.titleWithCount': 'Оглавление ({count})', 'notes.outline.empty': 'Нет заголовков', 'notes.outline.emptyHint': 'Используйте # и ## в Markdown для создания заголовков', 'notes.export.share': 'Экспорт и общий доступ', 'notes.export.currentNote': 'Текущая заметка', 'notes.export.exportMarkdown': 'Экспорт в Markdown (.md)', 'notes.export.exportHtml': 'Экспорт в HTML (.html)', 'notes.export.copyMarkdown': 'Копировать исходный Markdown', 'notes.export.allNotes': 'Все заметки', 'notes.export.exportAllZip': 'Экспортировать все в ZIP-архив', 'notes.export.toast.markdownSuccess': 'Markdown-файл экспортирован', 'notes.export.toast.htmlSuccess': 'HTML-файл экспортирован', 'notes.export.toast.zipSuccess': 'Все заметки экспортированы в архив ZIP', // Vault hosts header/actions 'vault.hosts.search.placeholder': 'Найти хост или ssh user@hostname / ssh -p 2222 user@hostname...', 'vault.hosts.connect': 'Подключиться', 'vault.hosts.openSftp': 'Открыть SFTP', 'vault.view.grid': 'Сетка', 'vault.view.list': 'Список', 'vault.view.tree': 'Дерево', 'vault.tree.expandAll': 'Развернуть все', 'vault.tree.collapseAll': 'Свернуть все', 'vault.hosts.newHost': 'Новый хост', 'vault.hosts.newGroup': 'Новая группа', 'vault.hosts.import': 'Импорт', 'vault.hosts.export': 'Экспорт', 'vault.hosts.export.toast.success': 'Экспортировано {count} хостов в CSV', 'vault.hosts.export.toast.successWithSkipped': 'Экспортировано {count} хостов в CSV ({skipped} неподдерживаемых хостов пропущено)', 'vault.hosts.export.toast.passphrasesSkipped': 'Не удалось прочитать {count} сохранённых парольных фраз ключей; они оставлены пустыми', 'vault.hosts.export.toast.noHosts': 'Нет хостов для экспорта', 'vault.hosts.allHosts': 'Все хосты', 'vault.hosts.pinned': 'Закреплённые', 'vault.hosts.recentlyConnected': 'Недавно подключённые', 'vault.hosts.pinToTop': 'Закрепить сверху', 'vault.hosts.unpin': 'Открепить', 'vault.hosts.copyCredentials': 'Копировать учётные данные', 'vault.hosts.copyCredentials.toast.success': 'Учётные данные скопированы в буфер обмена', 'vault.hosts.copyCredentials.toast.noPassword': 'Для этого хоста нет сохранённого пароля', 'vault.hosts.multiSelect': 'Множественный выбор', 'vault.hosts.selected': 'Выбрано: {count}', 'vault.hosts.selectedSummary': 'Выбрано хостов: {hosts}, групп: {groups}', 'vault.hosts.selectAll': 'Выбрать все', 'vault.hosts.deselectAll': 'Снять выделение', 'vault.hosts.deleteSelected': 'Удалить ({count})', 'vault.hosts.deleteMultiple.success': 'Удалено хостов: {count}', 'vault.hosts.connectSelected': 'Подключить ({count})', 'vault.hosts.connectMultiple.success': 'Подключение хостов: {count}', 'vault.hosts.moveToGroup.success': 'Хост {host} перемещён в {group}', 'vault.hosts.empty.title': 'Настройте свои хосты', 'vault.hosts.empty.desc': 'Сохраняйте хосты, чтобы быстро подключаться к серверам, виртуальным машинам и контейнерам.', // Vault import 'vault.import.title': 'Добавить данные в хранилище', 'vault.import.desc': 'Перенесите свои подключения из популярных клиентов. Выберите формат файла, чтобы начать миграцию.', 'vault.import.chooseFormat': 'Выберите формат файла', 'vault.import.destination.title': 'Куда импортировать хосты?', 'vault.import.destination.preserve': 'Сохранить исходные группы', 'vault.import.destination.existing': 'Выбрать группу', 'vault.import.destination.new': 'Создать группу', 'vault.import.destination.noGroups': 'Нет доступных групп', 'vault.import.destination.newPlaceholder': 'Имя новой группы', 'vault.import.destination.settings': 'Место импорта', 'vault.import.destination.settingsHint': 'Куда помещать новые хосты', 'vault.import.destination.done': 'Готово', 'vault.import.securecrt.directoryHint': 'Выберите папку Sessions из SecureCRT.', 'vault.import.securecrt.chooseSource': 'Выберите источник импорта SecureCRT.', 'vault.import.securecrt.sourceQuestion': 'Что вы хотите импортировать?', 'vault.import.securecrt.promptTitle': 'Импорт из SecureCRT', 'vault.import.securecrt.promptDesc': 'Выберите папку Sessions из SecureCRT, чтобы импортировать все сеансы с сохранением структуры, или один файл сеанса .ini.', 'vault.import.securecrt.folder': 'Папка Sessions', 'vault.import.securecrt.folderDesc': 'Импортировать все сеансы с сохранением структуры папок.', 'vault.import.securecrt.file': 'Один файл сеанса', 'vault.import.securecrt.fileDesc': 'Импортировать один файл сеанса SecureCRT .ini.', 'vault.import.csv.tip': 'Массовый импорт: используйте шаблон CSV.', 'vault.import.csv.downloadTemplate': 'Скачать шаблон CSV', 'vault.import.toast.start': 'Импорт из {format}...', 'vault.import.toast.completedTitle': 'Импорт завершён', 'vault.import.toast.failedTitle': 'Ошибка импорта', 'vault.import.toast.noEntries': 'В {format} не найдено импортируемых записей.', 'vault.import.toast.noNewHosts': 'Из {format} не импортировано новых хостов.', 'vault.import.toast.summary': 'Импортировано {count} хостов (пропущено {skipped}, дубликатов {duplicates}).', 'vault.import.toast.firstIssue': 'Первая проблема: {issue}', 'vault.import.progress.title': 'Импорт хостов', 'vault.import.progress.reading': 'Чтение файла', 'vault.import.progress.parsing': 'Обработка хостов', 'vault.import.progress.preparing': 'Подготовка изменений', 'vault.import.progress.saving': 'Сохранение хостов', 'vault.import.progress.complete': 'Импорт завершён', 'vault.import.progress.failed': 'Ошибка импорта', 'vault.import.progress.persistFailed': 'Не удалось сохранить импортированные хосты. Освободите место в локальном хранилище и повторите попытку.', 'vault.import.progress.rollbackFailed': 'Не удалось безопасно отменить импорт. Некоторые хосты могли остаться в хранилище; проверьте его перед повторной попыткой.', 'vault.import.progress.summary': 'Импортировано: {count}; пропущено: {skipped}; дубликатов: {duplicates}.', 'vault.import.progress.keepOpen': 'Не закрывайте NetMesh, пока импорт выполняется в фоне.', 'vault.import.progress.fileSummary': '{name} · файлов: {count}', 'vault.import.progress.fileCount': 'Обработано {completed} из {total}', 'vault.import.mobaxterm.chooseEncoding': 'Выберите способ чтения файла MobaXterm.', 'vault.import.mobaxterm.encodingQuestion': 'Какая кодировка используется в этом файле?', 'vault.import.mobaxterm.auto': 'Определить автоматически', 'vault.import.mobaxterm.autoDesc': 'Рекомендуется. UTF-8, если он корректен, иначе китайская кодировка Windows.', 'vault.import.mobaxterm.utf8': 'UTF-8', 'vault.import.mobaxterm.utf8Desc': 'Для файлов, сохранённых или преобразованных в UTF-8.', 'vault.import.mobaxterm.gb18030': 'Китайская Windows', 'vault.import.mobaxterm.gb18030Desc': 'Для старых файлов, экспортированных в китайской Windows.', 'vault.import.mobaxterm.masterPassword': 'Мастер-пароль (необязательно)', 'vault.import.mobaxterm.masterPasswordPlaceholder': 'Введите мастер-пароль MobaXterm', 'vault.import.mobaxterm.masterPasswordHint': 'Нужен, чтобы импортировать сохранённые пароли из .mobaconf или MobaXterm.ini. Оставьте пустым, чтобы импортировать только сеансы.', 'vault.import.sshConfig.chooseMode': 'Выберите, как импортировать ваш файл SSH-конфига.', 'vault.import.sshConfig.modeQuestion': 'Как вы хотите выполнить импорт?', 'vault.import.sshConfig.importOnly': 'Только импорт', 'vault.import.sshConfig.importOnlyDesc': 'Одноразовый импорт. Изменения не будут синхронизироваться обратно в файл.', 'vault.import.sshConfig.managed': 'Управляемая синхронизация', 'vault.import.sshConfig.managedDesc': 'Поддерживать синхронизацию. Изменения будут сохраняться обратно в файл.', 'vault.import.sshConfig.managedDestinationHint': 'Управляемая синхронизация всегда использует отдельную группу; выбранная выше группа применяется только к разовому импорту.', 'vault.import.sshConfig.managedGroup': 'конфигурация SSH', 'vault.import.sshConfig.managedSuccess': 'Импортировано {count} хостов. Файл теперь находится под управлением.', 'vault.import.sshConfig.alreadyManaged': 'Этот файл уже находится под управлением.', 'vault.import.sshConfig.alreadyManagedDesc': 'Этот файл уже управляется в группе "{group}". Если хотите импортировать его заново, сначала удалите существующий управляемый источник.', 'vault.import.sshConfig.noFilePath': 'Невозможно управлять этим файлом.', 'vault.import.sshConfig.noFilePathDesc': 'Не удалось определить путь к файлу. Для управляемой синхронизации нужен доступ к файловой системе.', // Known Hosts 'knownHosts.search.placeholder': 'Поиск известных хостов...', 'knownHosts.action.scanSystem': 'Сканировать систему', 'knownHosts.action.importFile': 'Импортировать файл', 'knownHosts.action.browseFile': 'Выбрать файл', 'knownHosts.empty.title': 'Нет известных хостов', 'knownHosts.empty.desc': 'Известные хосты — это SSH-серверы, к которым вы подключались раньше. Импортируйте системный файл known_hosts, чтобы начать.', 'knownHosts.results.showingLimited': 'Показано {shown} из {total} хостов. Используйте поиск, чтобы найти нужные хосты.', 'knownHosts.toast.scanUnavailable': 'Сканирование системы недоступно на этой платформе.', 'knownHosts.toast.scanNoFile': 'Системный файл known_hosts не найден.', 'knownHosts.toast.scanNoEntries': 'В known_hosts не найдено пригодных записей.', 'knownHosts.toast.scanImported': 'Импортировано новых хостов: {count}.', 'knownHosts.toast.scanNoNew': 'Новых хостов не найдено.', 'knownHosts.toast.scanFailed': 'Не удалось просканировать системный known_hosts.', // Port Forwarding 'pf.empty.title': 'Настройте проброс портов', 'pf.empty.desc': 'Сохраняйте правила проброса портов для доступа к базам данных, веб-приложениям и другим сервисам.', 'pf.title': 'Проброс портов', 'pf.rulesCount': 'Правил: {count}', 'pf.wizard.editTitle': 'Редактировать проброс портов', 'pf.wizard.newTitle': 'Новый проброс портов', 'pf.wizard.saveChanges': 'Сохранить изменения', 'pf.wizard.done': 'Готово', 'pf.wizard.continue': 'Продолжить', 'pf.wizard.cancel': 'Отмена', 'pf.wizard.skipWizard': 'Пропустить мастер', 'pf.error.hostNotFound': 'Хост не найден', 'pf.toast.titleWithLabel': 'Проброс портов: {label}', 'pf.type.local': 'Локальный', 'pf.type.remote': 'Удалённый', 'pf.type.dynamic': 'Динамический', 'pf.type.menu.local': 'Локальный проброс', 'pf.type.menu.remote': 'Удалённый проброс', 'pf.type.menu.dynamic': 'Динамический проброс', 'pf.type.local.desc': 'Локальный проброс позволяет обращаться к прослушиваемому порту удалённого сервера так, как будто он локальный.', 'pf.type.remote.desc': 'Удалённый проброс открывает порт на удалённой машине и перенаправляет подключения на локальный (текущий) хост.', 'pf.type.dynamic.desc': 'Динамический проброс портов превращает NetMesh в SOCKS-прокси-сервер.', 'pf.wizard.type.title': 'Выберите тип проброса портов:', 'pf.wizard.localConfig.title': 'Укажите локальный порт и адрес привязки:', 'pf.wizard.localConfig.desc': 'Этот порт будет открыт на локальном (текущем) устройстве и будет принимать трафик.', 'pf.wizard.localConfig.localPort': 'Номер локального порта *', 'pf.wizard.bindAddress': 'Адрес привязки', 'pf.wizard.remoteHost.title': 'Выберите удалённый хост:', 'pf.wizard.remoteHost.desc': 'Выберите хост, на котором будет открыт порт. Трафик с этого порта будет перенаправляться на конечный хост.', 'pf.wizard.remoteConfig.title': 'Укажите порт и адрес привязки:', 'pf.wizard.remoteConfig.desc': 'Трафик будет перенаправляться с указанного порта и адреса интерфейса выбранного хоста.', 'pf.wizard.remoteConfig.remotePort': 'Номер удалённого порта *', 'pf.wizard.destination.title': 'Выберите конечный хост:', 'pf.wizard.destination.desc.local': 'Введите удалённый адрес назначения, к которому вы хотите получить доступ через туннель.', 'pf.wizard.destination.desc.remote': 'Адрес назначения и порт, на которые будет перенаправляться трафик.', 'pf.wizard.destination.address': 'Адрес назначения *', 'pf.wizard.destination.addressPlaceholder': 'например, 127.0.0.1 или 192.168.1.100', 'pf.wizard.destination.port': 'Номер порта назначения *', 'pf.wizard.sshServer.title': 'Выберите SSH-сервер:', 'pf.wizard.sshServer.desc.dynamic': 'Выберите SSH-сервер, который будет работать как SOCKS-прокси.', 'pf.wizard.sshServer.desc.default': 'Выберите SSH-сервер, который будет туннелировать ваш трафик к адресу назначения.', 'pf.wizard.label.title': 'Выберите метку:', 'pf.wizard.label.placeholder.dynamic': 'например, SOCKS Proxy', 'pf.wizard.label.placeholder.default': 'например, MySQL Production', 'pf.wizard.label.placeholder.remoteRule': 'например, Remote Rule', 'pf.wizard.placeholders.portExample': 'например, {port}', 'pf.action.newForwarding': 'Новое правило', 'pf.action.startAll': 'Запустить все', 'pf.action.stopAll': 'Остановить все', 'pf.toast.startAll.success': 'Запущено правил: {count}', 'pf.toast.startAll.partial': 'Запущено правил: {started} (не удалось: {failed})', 'pf.toast.startAll.failed': 'Не удалось запустить правил: {count}', 'pf.toast.stopAll.success': 'Остановлено туннелей: {count}', 'pf.toast.stopAll.partial': 'Остановлено туннелей: {stopped} (не удалось: {failed})', 'pf.toast.stopAll.failed': 'Не удалось остановить туннелей: {count}', 'pf.form.labelPlaceholder': 'Метка правила', 'pf.form.intermediateHost': 'Промежуточный хост *', 'pf.form.createRule': 'Создать правило', 'pf.form.openWizard': 'Открыть мастер', 'pf.form.openWizardTitle': 'Открыть мастер проброса портов', 'pf.view.grid': 'Сетка', 'pf.view.list': 'Список', 'pf.rule.summary.local': 'Локально {bindAddress}:{localPort} -> SSH-туннель -> удалённо {remoteHost}:{remotePort}', 'pf.rule.summary.remote': 'Удалённо {bindAddress}:{localPort} -> SSH-туннель -> локально {remoteHost}:{remotePort}', 'pf.rule.summary.dynamic': 'SOCKS на {bindAddress}:{localPort}', 'pf.tooltip.relayHost': 'Промежуточный хост', 'pf.tooltip.hostLabel': 'Хост', 'pf.tooltip.hostAddress': 'Адрес', 'pf.tooltip.noHost': 'Промежуточный хост не настроен', 'pf.tooltip.localDesc': 'Локальный проброс портов: доступ к удалённым сервисам через SSH-туннель', 'pf.tooltip.remoteDesc': 'Удалённый проброс портов: публикация локальных сервисов на удалённом хосте', 'pf.tooltip.dynamicDesc': 'Динамический SOCKS-прокси: маршрутизация трафика через SSH-туннель', 'pf.deleteActive.title': 'Удалить активное правило проброса портов?', 'pf.deleteActive.desc': 'Правило проброса портов "{label}" сейчас активно. При удалении туннель будет сначала остановлен.', 'pf.deleteActive.confirm': 'Остановить и удалить', 'pf.form.autoStart': 'Автозапуск', 'pf.form.autoStartDesc': 'Автоматически запускать это правило при запуске приложения', // SFTP 'sftp.newFolder': 'Новая папка', 'sftp.newFile': 'Новый файл', 'sftp.filter': 'Фильтр', 'sftp.filter.placeholder': 'Фильтр по имени файла...', 'sftp.bookmark.add': 'Добавить путь в закладки', 'sftp.bookmark.remove': 'Удалить закладку', 'sftp.bookmark.list': 'Закладки путей', 'sftp.bookmark.addGlobal': '+Глобальная', 'sftp.bookmark.addGlobalTooltip': 'Сохранить как глобальную закладку (общую для всех хостов)', 'sftp.bookmark.empty': 'Пока нет закладок', 'sftp.bookmark.removeConfirm': 'Удалить закладку {path}?', 'sftp.bookmark.manage': 'Управление', 'sftp.bookmark.rename': 'Переименовать закладку', 'sftp.bookmark.done': 'Готово', 'sftp.bookmark.moveUp': 'Переместить {label} вверх', 'sftp.bookmark.moveDown': 'Переместить {label} вниз', 'sftp.columns.name': 'Имя', 'sftp.columns.modified': 'Изменён', 'sftp.columns.size': 'Размер', 'sftp.columns.kind': 'Тип', 'sftp.columns.owner': 'Владелец', 'sftp.columns.configure': 'Выбрать видимые столбцы', 'sftp.columns.actions': 'Действия', 'sftp.sort.directoriesFirst': 'Папки сверху', 'sftp.emptyDirectory': 'Пустой каталог', 'sftp.nav.up': 'Наверх', 'sftp.nav.home': 'Перейти в домашний каталог', 'sftp.nav.refresh': 'Обновить', 'sftp.upload': 'Загрузить', 'sftp.uploadFiles': 'Загрузить файлы', 'sftp.uploadFolder': 'Загрузить папку', 'sftp.dragDropToUpload': 'Перетащите сюда файлы для загрузки', 'sftp.retry': 'Повторить', 'sftp.context.open': 'Открыть', 'sftp.context.navigateTo': 'Перейти к', 'sftp.context.moveTo': 'Переместить в...', 'sftp.context.moveToParent': 'Переместить в родительский каталог', 'sftp.moveTo.title': 'Переместить в каталог', 'sftp.moveTo.placeholder': 'Введите путь к целевому каталогу', 'sftp.moveTo.confirm': 'Переместить', 'sftp.moveTo.pathNotFound': 'Каталог не найден или недоступен', 'sftp.context.download': 'Скачать', 'sftp.context.extract': 'Распаковать здесь', 'sftp.extract.extracting': 'Распаковка {fileName}...', 'sftp.extract.success': 'Распакован {fileName}', 'sftp.extract.error': 'Не удалось распаковать {fileName}: {error}', 'sftp.context.copyToOtherPane': 'Копировать в другую панель', 'sftp.copyToOtherPane.unavailable': 'Откройте двухпанельный режим SFTP и подключите панель назначения перед копированием файлов.', 'sftp.copyCurrentPath': 'Копировать текущий путь', 'sftp.copyCurrentPath.success': 'Текущий путь скопирован', 'sftp.copyCurrentPath.error': 'Не удалось скопировать текущий путь', 'sftp.viewMode.label': 'Режим просмотра', 'sftp.viewMode.list': 'Список', 'sftp.viewMode.tree': 'Дерево', 'sftp.viewMode.switchToList': 'Переключиться на список', 'sftp.viewMode.switchToTree': 'Переключиться на дерево', 'sftp.listDensity.compact': 'Компактный список', 'sftp.listDensity.comfortable': 'Обычный список', 'sftp.listDensity.switchToCompact': 'Переключиться на компактный список', 'sftp.listDensity.switchToComfortable': 'Переключиться на обычный список', 'sftp.tree.loadError': 'Не удалось загрузить каталог', 'sftp.tree.loading': 'Загрузка...', 'sftp.kind.folder': 'Папка', 'sftp.context.rename': 'Переименовать', 'sftp.context.permissions': 'Права доступа', 'sftp.context.delete': 'Удалить', 'sftp.context.refresh': 'Обновить', 'sftp.context.uploadFiles': 'Загрузить файл(ы)...', 'sftp.context.uploadFilesHere': 'Загрузить файлы сюда...', 'sftp.context.uploadFolder': 'Загрузить папку...', 'sftp.context.uploadFolderHere': 'Загрузить папку сюда...', 'sftp.context.downloadSelected': 'Скачать выбранное ({count})', 'sftp.context.deleteSelected': 'Удалить выбранное ({count})', 'sftp.dropFilesHere': 'Перетащите сюда файлы', 'sftp.itemsCount': '{count} записей', 'sftp.selectedCount': '{count} выбрано', 'sftp.path.doubleClickToEdit': 'Дважды щёлкните, чтобы изменить путь', 'sftp.showHiddenPaths': 'Скрытые пути', 'sftp.task.waiting': 'Ожидание...', 'sftp.transfer.preparing': 'подготовка...', 'sftp.status.loading': 'Загрузка...', 'sftp.status.uploading': 'Загрузка...', 'sftp.status.ready': 'Готово', 'sftp.transfers': 'Передачи', 'sftp.transfers.active': '{count} активн(ый/ых)', 'sftp.transfers.clearCompleted': 'Очистить завершённые', 'sftp.transfers.calculatingTotal': 'Вычисление общего размера...', 'sftp.transfers.filesCount': '{count} файл(ов)', 'sftp.transfers.filesProgress': '{current}/{total} файл(ов)', 'sftp.transfers.filesDiscoveredProgress': '{completed} готово · {discovered} найдено', 'sftp.transfers.expandChildren': 'Показать файлы', 'sftp.transfers.collapseChildren': 'Скрыть файлы', 'sftp.transfers.expandChildList': 'Показать детали', 'sftp.transfers.collapseChildList': 'Скрыть', 'sftp.transfers.retryAction': 'Повторить', 'sftp.transfers.dismissAction': 'Скрыть', 'sftp.transfers.openTargetFolder': 'Открыть целевую папку', 'sftp.transfers.openTargetFolderError': 'Не удалось открыть целевую папку', 'sftp.transfers.copyTargetPath': 'Копировать целевой путь', 'sftp.transfers.copyTargetPathSuccess': 'Целевой путь скопирован', 'sftp.transfers.copyTargetPathError': 'Не удалось скопировать целевой путь', 'sftp.transfers.pathConflict.title': 'Передача заблокирована', 'sftp.transfers.pathConflict.paused': 'Другая передача «{name}» приостановлена. Сначала возобновите или отмените её.', 'sftp.transfers.pathConflict.inProgress': 'Другая передача «{name}» уже выполняется.', 'sftp.transferCenter.title': 'Передача файлов', 'sftp.transferCenter.quitConfirm': 'Незавершённых передач: {count}. Прогресс будет сохранён, а после следующего запуска передачу нужно продолжить вручную. Выйти?', 'sftp.transferCenter.phase.scanning': 'Сканирование', 'sftp.transferCenter.phase.compressing': 'Сжатие', 'sftp.transferCenter.phase.uploading': 'Загрузка', 'sftp.transferCenter.phase.transferring': 'Передача', 'sftp.transferCenter.phase.extracting': 'Распаковка', 'sftp.transferCenter.phase.verifying': 'Проверка', 'sftp.transferCenter.bucket.active': 'В процессе', 'sftp.transferCenter.bucket.all': 'Все', 'sftp.transferCenter.bucket.queued': 'В очереди', 'sftp.transferCenter.bucket.paused': 'Приостановлено', 'sftp.transferCenter.bucket.failed': 'Ошибки', 'sftp.transferCenter.bucket.attention': 'Требует внимания', 'sftp.transferCenter.bucket.completed': 'Завершено', 'sftp.transferCenter.status.pending': 'Подготовка', 'sftp.transferCenter.status.resuming': 'Переподключение и возобновление…', 'sftp.transferCenter.status.queued': 'В очереди', 'sftp.transferCenter.status.transferring': 'Передача', 'sftp.transferCenter.status.pausing': 'Пауза', 'sftp.transferCenter.status.paused': 'Приостановлено', 'sftp.transferCenter.status.attention': 'Требует внимания', 'sftp.transferCenter.status.interrupted': 'Прервано — продолжите вручную', 'sftp.transferCenter.status.completed': 'Завершено', 'sftp.transferCenter.status.failed': 'Ошибка', 'sftp.transferCenter.status.cancelled': 'Отменено', 'sftp.transferCenter.background': 'Фоновая', 'sftp.transferCenter.pause': 'Пауза', 'sftp.transferCenter.resume': 'Продолжить', 'sftp.transferCenter.prioritize': 'Передать следующей', 'sftp.transferCenter.pauseAll': 'Приостановить все', 'sftp.transferCenter.resumeAll': 'Продолжить все', 'sftp.transferCenter.empty': 'В этой категории нет передач', 'sftp.transferCenter.showBackground': 'Показать фоновые: {count}', 'sftp.transferCenter.hideBackground': 'Скрыть фоновые', 'sftp.transferCenter.clear': 'Очистить записи', 'sftp.transferCenter.applyAll': 'Применить ко всем', 'sftp.transfers.resizeNameColumn': 'Изменить ширину столбца имени файла', 'sftp.transfers.dragToResize': 'Перетащите для изменения размера', 'sftp.goUp': 'Наверх', 'sftp.goToTerminalCwd': 'Перейти в каталог терминала', 'sftp.locatePathInTerminal': 'Открыть путь в терминале', 'sftp.followTerminalCwd': 'Следовать за каталогом терминала', 'sftp.followTerminalCwd.enable': 'Включить следование за каталогом терминала', 'sftp.followTerminalCwd.disable': 'Отключить следование за каталогом терминала', 'sftp.encoding.label': 'Кодировка имён файлов', 'sftp.encoding.auto': 'Авто', 'sftp.encoding.utf8': 'UTF-8', 'sftp.encoding.gb18030': 'GB18030', 'sftp.goHome': 'Перейти в домашний каталог', 'sftp.goRoot': 'Перейти в корень', 'sftp.folderName': 'Имя папки', 'sftp.folderName.placeholder': 'Введите имя папки', 'sftp.fileName': 'Имя файла', 'sftp.fileName.placeholder': 'Введите имя файла', 'sftp.prompt.newFolderName': 'Имя новой папки?', 'sftp.rename.title': 'Переименовать', 'sftp.rename.newName': 'Новое имя', 'sftp.rename.placeholder': 'Введите новое имя', 'sftp.confirm.deleteOne': 'Удалить "{name}"?', 'sftp.deleteConfirm.single': 'Удалить "{name}"?', 'sftp.deleteConfirm.title': 'Удалить {count} элемент(ов)?', 'sftp.deleteConfirm.desc': 'Это действие нельзя отменить. Будет удалено следующее:', 'sftp.deleteConfirm.descSingle': 'Это действие нельзя отменить.', 'sftp.deleteConfirm.host': 'Хост', 'sftp.deleteConfirm.path': 'Путь', 'sftp.error.loadFailed': 'Не удалось загрузить каталог', 'sftp.error.downloadFailed': 'Ошибка скачивания', 'sftp.error.uploadFailed': 'Ошибка загрузки', 'sftp.error.deleteFailed': 'Ошибка удаления', 'sftp.error.createFolderFailed': 'Не удалось создать папку', 'sftp.error.createFileFailed': 'Не удалось создать файл', 'sftp.error.invalidFileName': 'Имя файла содержит недопустимые символы: {chars}', 'sftp.error.reservedName': 'Это имя файла зарезервировано системой', 'sftp.overwrite.title': 'Файл уже существует', 'sftp.overwrite.desc': 'Файл с именем "{name}" уже существует. Хотите заменить его?', 'sftp.overwrite.confirm': 'Заменить', 'sftp.error.renameFailed': 'Не удалось переименовать', 'sftp.picker.title': 'Выберите хост', 'sftp.picker.desc': 'Выберите хост для панели {side}', 'sftp.picker.searchPlaceholder': 'Поиск хостов...', 'sftp.picker.local.title': 'Локальная файловая система', 'sftp.picker.local.desc': 'Просмотр локальных файлов', 'sftp.picker.local.badge': 'Локально', 'sftp.picker.connected.section': 'Подключённые', 'sftp.picker.connected.badge': 'Онлайн', 'sftp.picker.connected.connecting': 'Подключение', 'sftp.picker.noMatch': 'Подходящие хосты не найдены', 'sftp.permissions.title': 'Изменить права доступа', 'sftp.permissions.owner': 'Владелец', 'sftp.permissions.group': 'Группа', 'sftp.permissions.others': 'Остальные', 'sftp.permissions.octal': 'Восьмеричный', 'sftp.permissions.symbolic': 'Символьный', 'sftp.permissions.success': 'Права доступа успешно обновлены', 'sftp.permissions.failed': 'Не удалось обновить права доступа', 'sftp.pane.local': 'Локально', 'sftp.pane.remote': 'Удалённо', 'sftp.pane.selectHost': 'Выберите хост', 'sftp.pane.selectHostToStart': 'Выберите хост для начала', 'sftp.pane.chooseFilesystem': 'Выберите локальную или удалённую файловую систему для просмотра', 'sftp.tabs.addTab': 'Добавить новую вкладку', 'sftp.tabs.closeTab': 'Закрыть вкладку', 'sftp.tabs.newTab': 'Новая вкладка', 'sftp.tabs.copyDefaultPath': 'Копировать вкладку (путь по умолчанию)', 'sftp.tabs.copyCurrentPath': 'Копировать и перейти к текущему пути', 'sftp.conflict.title': 'Конфликт файлов', 'sftp.conflict.desc': 'В месте назначения уже существует файл с таким именем', 'sftp.conflict.folderTitle': 'Конфликт папок', 'sftp.conflict.folderDesc': 'Выберите действие.', 'sftp.conflict.folderFileDesc': 'В месте назначения уже существует файл с таким именем. Папку нельзя объединить с файлом.', 'sftp.conflict.folderSymlinkDesc': 'В месте назначения уже существует символическая ссылка с таким именем. Папку нельзя объединить с символической ссылкой.', 'sftp.conflict.folderUnknownDesc': 'В месте назначения уже существует элемент с таким именем, но его тип не удалось определить. Замена недоступна для защиты данных в месте назначения.', 'sftp.conflict.folderMergeHint': 'Объединить: сохранить содержимое, которое есть только в папке назначения.', 'sftp.conflict.folderReplaceWarning': 'Заменить: удалить содержимое, которое есть только в папке назначения. Это нельзя отменить.', 'sftp.conflict.alreadyExistsSuffix': 'уже существует', 'sftp.conflict.existingFile': 'Существующий файл', 'sftp.conflict.newFile': 'Новый файл', 'sftp.conflict.size': 'Размер:', 'sftp.conflict.modified': 'Изменён:', 'sftp.conflict.applyToAll': 'Применить это действие ко всем оставшимся конфликтам ({count})', 'sftp.conflict.action.stop': 'Остановить', 'sftp.conflict.action.skip': 'Пропустить', 'sftp.conflict.action.keepBoth': 'Сохранить оба', 'sftp.conflict.action.duplicate': 'Дублировать', 'sftp.conflict.action.merge': 'Объединить', 'sftp.conflict.action.replace': 'Заменить', // SFTP Upload Phases 'sftp.upload.phase.compressing': 'Сжатие', 'sftp.upload.phase.uploading': 'Загрузка', 'sftp.upload.phase.extracting': 'Распаковка', 'sftp.upload.phase.compressed': 'Сжато', // SFTP File Opener 'sftp.context.copyPath': 'Копировать путь к файлу', 'sftp.context.openWithDefault': 'Открыть в системном приложении', 'sftp.context.openWith': 'Открыть с помощью...', 'sftp.context.edit': 'Редактировать', 'sftp.context.preview': 'Предпросмотр', 'sftp.opener.title': 'Открыть с помощью', 'sftp.opener.desc': 'Выберите приложение для открытия этого файла', 'sftp.opener.builtInEditor': 'Встроенный редактор', 'sftp.opener.editDescription': 'Редактировать текстовые файлы', 'sftp.opener.builtInImageViewer': 'Встроенный просмотрщик изображений', 'sftp.opener.previewDescription': 'Просмотр изображений', 'sftp.opener.systemApp': 'Выбрать приложение...', 'sftp.opener.systemAppDescription': 'Выберите приложение на вашем компьютере', 'sftp.opener.onlySystemApp': 'Этот файл можно открыть только во внешнем приложении', 'sftp.opener.noAppsAvailable': 'Нет доступных приложений', 'sftp.opener.noExtension': 'файлы без расширения', 'sftp.opener.setDefault': 'Всегда использовать это для файлов {ext}', 'sftp.opener.confirmTitle': 'Установить по умолчанию?', 'sftp.opener.confirmDescription': 'Хотите всегда использовать {app} для файлов {ext}?', 'sftp.opener.yesRemember': 'Да, запомнить выбор', 'sftp.opener.justOnce': 'Только один раз', 'sftp.opener.confirm.title': 'Установить приложение по умолчанию', 'sftp.opener.confirm.desc': 'Хотите всегда открывать файлы .{ext} этим приложением?', 'sftp.editor.title': 'Текстовый редактор', 'sftp.editor.save': 'Сохранить на удалённый сервер', 'sftp.editor.saving': 'Сохранение...', 'sftp.editor.saved': 'Успешно сохранено', 'sftp.editor.saveFailed': 'Не удалось сохранить файл', 'sftp.editor.unsavedChanges': 'У вас есть несохранённые изменения. Всё равно закрыть?', 'sftp.editor.syntaxHighlight': 'Подсветка синтаксиса', 'sftp.preview.title': 'Просмотр изображения', 'sftp.preview.zoomIn': 'Увеличить', 'sftp.preview.zoomOut': 'Уменьшить', 'sftp.preview.resetZoom': 'Сбросить масштаб', 'sftp.preview.fitToWindow': 'Подогнать по окну', // Settings > SFTP File Associations 'settings.tab.sftpFileAssociations': 'SFTP', 'settings.sftp.transferConcurrency': 'Параллелизм передачи', 'settings.sftp.transferConcurrency.desc': 'Максимальное число файлов, одновременно передаваемых для одной цели, включая содержимое папок и отдельно выбранные файлы. Большие значения могут ускорить передачу, но перегрузить некоторые серверы.', 'settings.sftp.transferPoolIdleTtl': 'Удержание transfer-соединений', 'settings.sftp.transferPoolIdleTtl.desc': 'Как долго простаивающие SFTP-соединения пула передачи остаются открытыми. Большее время снижает задержку перед следующей передачей. Активные передачи не закрываются.', 'settings.sftp.transferPoolIdleTtl.1m': '1 минута', 'settings.sftp.transferPoolIdleTtl.5m': '5 минут', 'settings.sftp.transferPoolIdleTtl.15m': '15 минут', 'settings.sftp.transferPoolIdleTtl.30m': '30 минут', 'settings.sftp.transferPoolIdleTtl.never': 'До выхода из приложения', 'settings.ssh.transportIdleTtl': 'Удержание SSH-соединений', 'settings.ssh.transportIdleTtl.desc': 'Как долго общее SSH-соединение остаётся открытым после освобождения последнего lease терминала, SFTP-браузера, пакетной передачи или проброса портов. Пока оно тёплое, повторное подключение к тому же хосту может обойти повторную аутентификацию (включая MFA). Активные сессии и передачи не закрываются.', 'settings.ssh.transportIdleTtl.1m': '1 минута', 'settings.ssh.transportIdleTtl.5m': '5 минут', 'settings.ssh.transportIdleTtl.15m': '15 минут', 'settings.ssh.transportIdleTtl.30m': '30 минут', 'settings.ssh.transportIdleTtl.never': 'До выхода из приложения', 'settings.sftp.defaultOpener': 'Приложение для открытия по умолчанию', 'settings.sftp.defaultOpener.desc': 'Выберите приложение по умолчанию для открытия файлов без конкретной ассоциации', 'settings.sftp.defaultOpener.ask': 'Всегда спрашивать', 'settings.sftp.defaultOpener.askDesc': 'Каждый раз показывать диалог выбора приложения', 'settings.sftp.defaultOpener.builtInDesc': 'По умолчанию открывать текстовые файлы во встроенном редакторе', 'settings.sftp.defaultOpener.systemApp': 'Выбрать приложение...', 'settings.sftp.defaultOpener.systemAppDesc': 'По умолчанию открывать файлы в конкретном приложении', 'settings.sftpFileAssociations.title': 'Ассоциации файлов SFTP', 'settings.sftpFileAssociations.desc': 'Настройка приложений по умолчанию для открытия файлов по расширению', 'settings.sftpFileAssociations.extension': 'Расширение', 'settings.sftpFileAssociations.application': 'Приложение', 'settings.sftpFileAssociations.noAssociations': 'Ассоциации файлов не настроены', 'settings.sftpFileAssociations.remove': 'Удалить', 'settings.sftpFileAssociations.removeConfirm': 'Удалить ассоциацию для .{ext}?', // Settings > SFTP Behavior 'settings.sftp.doubleClickBehavior': 'Поведение двойного щелчка', 'settings.sftp.doubleClickBehavior.desc': 'Выберите действие при двойном щелчке по файлу в SFTP-режиме', 'settings.sftp.doubleClickBehavior.open': 'Открыть файл', 'settings.sftp.doubleClickBehavior.transfer': 'Передать в другую панель', 'settings.sftp.doubleClickBehavior.openDesc': 'Открыть файл в приложении по умолчанию', 'settings.sftp.doubleClickBehavior.transferDesc': 'Передать файл на активный хост другой панели', 'settings.sshDeepLink.title': 'SSH- и Telnet-ссылки', 'settings.sshDeepLink.enable': 'Открывать ssh:// и telnet:// ссылки в NetMesh', 'settings.sshDeepLink.enableDesc': 'Разрешить NetMesh обрабатывать ssh:// и telnet:// ссылки из браузеров и других приложений, а также запуски в стиле PuTTY, например -ssh user@host -P 22 -pw password.', 'settings.explorerContextMenu.title': 'Проводник Windows', 'settings.explorerContextMenu.enable': 'Показывать «Open in NetMesh» в контекстном меню папок', 'settings.explorerContextMenu.enableDesc': 'Добавляет пункт в меню папок и фона папки, чтобы открыть локальный терминал в этом каталоге. Применяется сразу, переустановка не нужна.', 'settings.jmsDeepLink.title': 'Ссылки JumpServer', 'settings.jmsDeepLink.enable': 'Обрабатывать ссылки jms://', 'settings.jmsDeepLink.enableDesc': 'Зарегистрировать NetMesh как обработчик клиентских ссылок JumpServer jms://. Может конфликтовать с официальным клиентом JumpServer.', // Settings > SFTP Auto Sync 'settings.sftp.autoSync': 'Автосинхронизация с удалённым сервером', 'settings.sftp.autoSync.desc': 'Автоматически синхронизировать изменения файлов обратно на удалённый сервер при открытии файлов во внешних приложениях', 'settings.sftp.autoSync.enable': 'Включить автосинхронизацию', 'settings.sftp.autoSync.enableDesc': 'Когда вы сохраняете файл во внешнем приложении, изменения автоматически загружаются на удалённый сервер', // Settings > SFTP Auto Open Sidebar 'settings.sftp.autoOpenSidebar': 'Автооткрытие боковой панели при подключении', 'settings.sftp.autoOpenSidebar.desc': 'Автоматически открывать боковую панель файлового браузера SFTP при подключении к хосту', 'settings.sftp.autoOpenSidebar.enable': 'Включить автооткрытие боковой панели', 'settings.sftp.autoOpenSidebar.enableDesc': 'Боковая панель SFTP будет автоматически открываться при подключении терминальной сессии к удалённому хосту', 'settings.sftp.followTerminalCwd': 'Следовать за каталогом терминала', 'settings.sftp.followTerminalCwd.desc': 'Автоматически синхронизировать боковую панель SFTP с рабочим каталогом терминала (переключатель на панели инструментов)', 'settings.sftp.followTerminalCwd.enable': 'Включать следование по умолчанию', 'settings.sftp.followTerminalCwd.enableDesc': 'При открытой боковой панели SFTP режим следования включён по умолчанию и обновляется после команд cd в терминале', 'settings.sftp.defaultViewMode': 'Режим просмотра по умолчанию', 'settings.sftp.defaultViewMode.desc': 'Выберите режим просмотра по умолчанию при открытии новой вкладки SFTP. Настройки конкретного хоста имеют приоритет.', 'settings.sftp.defaultViewMode.list': 'Список', 'settings.sftp.defaultViewMode.listDesc': 'Показывать файлы в виде плоского списка для текущего каталога', 'settings.sftp.defaultViewMode.tree': 'Дерево', 'settings.sftp.defaultViewMode.treeDesc': 'Показывать файлы в иерархической древовидной структуре', 'sftp.autoSync.success': 'Файл синхронизирован с удалённым сервером: {fileName}', 'sftp.autoSync.error': 'Не удалось синхронизировать файл: {error}', // SFTP Folder Upload Progress 'sftp.upload.progress': 'Загрузка файлов {current} из {total}...', 'sftp.upload.uploading': 'Загрузка...', 'sftp.upload.compressing': 'Сжатие...', 'sftp.upload.extracting': 'Распаковка...', 'sftp.upload.scanning': 'Сканирование файлов...', 'sftp.upload.completed': 'Завершено', 'sftp.upload.compressed': 'Сжатая передача', 'sftp.upload.currentFile': 'Текущий: {fileName}', 'sftp.upload.cancelled': 'Загрузка отменена', 'sftp.upload.noFiles': 'Нет файлов для загрузки', 'sftp.upload.partialSuccess': 'Загружено: {success}; ошибок: {failed}', 'sftp.upload.cancel': 'Отмена', 'sftp.upload.completedToPath': 'Загружено в {path}', // SFTP Download 'sftp.download.completed': 'Скачано', 'sftp.download.cancelled': 'Скачивание отменено', // SFTP Reconnecting 'sftp.reconnecting.title': 'Переподключение...', 'sftp.reconnecting.desc': 'Соединение потеряно, выполняется попытка переподключения', 'sftp.reconnected': 'Соединение восстановлено', 'sftp.error.reconnectFailed': 'Не удалось переподключиться. Попробуйте ещё раз.', 'sftp.error.connectionLostManual': 'Соединение потеряно. Пожалуйста, переподключитесь вручную.', 'sftp.error.connectionLostReconnecting': 'Соединение потеряно. Переподключение...', 'sftp.error.sessionLost': 'SFTP-сессия потеряна. Пожалуйста, переподключитесь.', // Settings > SFTP Show Hidden Files 'settings.sftp.showHiddenFiles': 'Показывать скрытые файлы', 'settings.sftp.showHiddenFiles.desc': 'Показывать скрытые файлы (dotfiles в Unix/macOS и файлы с атрибутом hidden в Windows) в файловом браузере SFTP.', 'settings.sftp.showHiddenFiles.enable': 'Показывать скрытые файлы', 'settings.sftp.showHiddenFiles.enableDesc': 'Показывать скрытые файлы при просмотре как локальной, так и удалённой файловой системы', // Settings > SFTP Compressed Upload 'settings.sftp.compressedUpload': 'Передача со сжатием папок', 'settings.sftp.compressedUpload.desc': 'Сжимать папки перед загрузкой, чтобы значительно сократить время передачи.', 'settings.sftp.compressedUpload.enable': 'Включить сжатие папок', 'settings.sftp.compressedUpload.enableDesc': 'Автоматически сжимать папки с помощью tar перед передачей. Требует поддержки tar на сервере. Если она недоступна, будет использована обычная передача.', 'settings.sftp.skipUnchanged.enable': 'Пропускать неизменённые файлы', 'settings.sftp.skipUnchanged.enableDesc': 'Пропускать файлы, у которых размер и время изменения уже совпадают с назначением (в стиле rsync). Отключается при замене папки во временный путь.', // Quick Switcher 'qs.search.placeholder': 'Поиск хостов или вкладок', 'qs.jumpTo': 'Перейти к', 'qs.localTerminal': 'Локальный терминал', 'qs.localShells': 'Локальные оболочки', 'qs.default': 'По умолчанию', // Select Host panel 'selectHost.title': 'Выберите хост', 'selectHost.noHostsFound': 'Хосты не найдены', 'selectHost.newHost': 'Новый хост', 'selectHost.continue': 'Продолжить', 'selectHost.continueWithCount': 'Продолжить (выбрано: {count})', 'selectHost.toggleGroup': 'Переключить все хосты в группе {name}', 'selectHost.toggleHost': 'Переключить {name}', // Quick Connect 'quickConnect.knownHost.title': 'Вы уверены, что хотите подключиться?', 'quickConnect.knownHost.authenticity': 'Подлинность {hostname} не может быть установлена.', 'quickConnect.knownHost.fingerprintLabel': 'Отпечаток {keyType} — SHA256:', 'quickConnect.knownHost.addQuestion': 'Хотите добавить его в список известных хостов?', 'quickConnect.knownHost.addAndContinue': 'Добавить и продолжить', 'quickConnect.addKey': 'Добавить ключ', 'quickConnect.warning.unparsedOptions': 'Некоторые аргументы SSH были проигнорированы: {options}', 'quickConnect.identity.label': 'Набор учётных данных', 'quickConnect.identity.placeholder': 'Выберите сохранённый профиль', 'quickConnect.identity.empty': 'Сохранённые профили не найдены', 'quickConnect.identity.hint': 'Выберите профиль, чтобы автоматически подставить имя пользователя и способ входа.', 'quickConnect.identity.selectedHint': 'Готово к подключению как {username}.', 'quickConnect.identity.method.password': 'Пароль', 'quickConnect.identity.method.key': 'Ключ SSH', 'quickConnect.identity.method.certificate': 'Сертификат', 'quickConnect.identity.unavailable': 'Для этого профиля нет доступных учётных данных на устройстве.', 'quickConnect.identity.useCustom': 'Использовать другие данные', 'quickConnect.identity.connect': 'Подключиться с профилем', 'quickConnect.connectTitle': 'Подключение к {host}', // Terminal 'terminal.connectionErrorTitle': 'Ошибка подключения', // Protocol select dialog 'protocolSelect.chooseProtocol': 'Выберите протокол', 'protocolSelect.port': 'порт:', // Host Details 'hostDetails.title.details': 'Сведения о хосте', 'hostDetails.title.new': 'Новый хост', 'vault.panel.resizeWidth': 'Изменить ширину панели', 'hostDetails.saveAria': 'Сохранить', 'hostDetails.section.address': 'Адрес', 'hostDetails.hostname.placeholder': 'IP или имя хоста', 'hostDetails.section.general': 'Общие', 'hostDetails.os.title': 'Определение системы', 'hostDetails.os.desc': 'Используйте автоматическое определение. Укажите систему вручную только при ошибке. Режим сетевого устройства настраивается отдельно.', 'hostDetails.os.auto': 'Автоматически', 'hostDetails.os.unknown': 'Другая / неизвестно', 'hostDetails.os.selection': 'Выбор системы', 'hostDetails.os.current': 'Текущая система', 'hostDetails.os.freebsd': 'FreeBSD', 'hostDetails.os.linux': 'Linux', 'hostDetails.os.windows': 'Windows', 'hostDetails.os.macos': 'macOS', 'hostDetails.section.sftp': 'Настройки SFTP', 'hostDetails.sftp.fileProtocol': 'Протокол файлов', 'hostDetails.sftp.fileProtocol.desc': 'Авто сначала пробует SFTP, затем SCP-режим, если подсистема SFTP недоступна. Принудительный SCP — для хостов только с SCP.', 'hostDetails.sftp.fileProtocol.auto': 'Авто', 'hostDetails.sftp.fileProtocol.sftp': 'Только SFTP', 'hostDetails.sftp.fileProtocol.scp': 'Режим SCP', 'hostDetails.sftp.sudo': 'Режим sudo', 'hostDetails.sftp.sudo.desc': 'Автоматически получать привилегии Root с помощью сохранённого пароля', 'hostDetails.sftp.sudo.passwordWarning': 'Для режима sudo требуется пароль. Укажите его выше или убедитесь, что сервер разрешает sudo без пароля.', 'hostDetails.sftp.encoding': 'Кодировка имён файлов', 'hostDetails.sftp.encoding.desc': 'Выберите кодировку, используемую для декодирования и отправки имён файлов SFTP.', 'hostDetails.label.placeholder': 'Метка (например, Production Server)', 'hostDetails.notes.label': 'Заметки', 'hostDetails.notes.placeholder': 'Оборудование, проект, клиент, регион, роль...', 'hostDetails.notes.help': 'Поддерживается Markdown. Не храните здесь пароли и закрытые ключи.', 'hostDetails.notes.tab.edit': 'Редактировать', 'hostDetails.notes.tab.preview': 'Просмотр', 'hostDetails.notes.preview.empty': 'Пока нечего просматривать.', 'hostDetails.notes.toggle.show': 'Показать редактор заметок', 'hostDetails.notes.toggle.hide': 'Скрыть редактор заметок', 'hostDetails.group.placeholder': 'Родительская группа', 'hostDetails.section.credentials': 'Учётные данные', 'hostDetails.section.portCredentials': 'Порт и учётные данные', 'hostDetails.section.appearance': 'Внешний вид', 'hostDetails.distro.title': 'Дистрибутив Linux', 'hostDetails.distro.desc': 'Автоопределение при подключении или ручная замена значка дистрибутива.', 'hostDetails.icon.title': 'Значок хоста', 'hostDetails.icon.sectionTitle': 'Цвет и значок', 'hostDetails.icon.desc': 'Выберите источник значка и цвет для этого хоста.', 'hostDetails.icon.source': 'Источник', 'hostDetails.icon.manualLabel': 'Значок вручную', 'hostDetails.icon.tab.brand': 'Бренд', 'hostDetails.icon.tab.type': 'Тип', 'hostDetails.icon.mode.auto': 'Авто', 'hostDetails.icon.mode.custom': 'Свой', 'hostDetails.icon.reset': 'Сбросить значок', 'hostDetails.icon.colorLabel': 'Цвет значка', 'hostDetails.icon.colorDefault': 'По умолчанию', 'hostDetails.icon.colorAuto': 'Авто', 'hostDetails.icon.colorManual': 'Вручную', 'hostDetails.icon.colorChoice': 'Цвет', 'hostDetails.icon.autoColorLabel': 'Текущий цвет', 'hostDetails.icon.preview': 'Предпросмотр значка', 'hostDetails.icon.showLibrary': 'Показать библиотеку значков', 'hostDetails.icon.hideLibrary': 'Скрыть библиотеку значков', 'hostDetails.icon.autoUsesDistro': 'Использует значок дистрибутива Linux и выбранный цвет для этого хоста.', 'hostDetails.icon.customOverridesDistro': 'Встроенный значок заменяет значок дистрибутива Linux для этого хоста.', 'hostDetails.icon.option.server': 'Сервер', 'hostDetails.icon.option.terminal': 'Терминал', 'hostDetails.icon.option.database': 'База данных', 'hostDetails.icon.option.cloud': 'Облако', 'hostDetails.icon.option.router': 'Маршрутизатор', 'hostDetails.icon.option.shield': 'Защита', 'hostDetails.icon.option.code': 'Код', 'hostDetails.icon.option.box': 'Узел', 'hostDetails.icon.option.globe': 'Глобус', 'hostDetails.icon.option.cpu': 'CPU', 'hostDetails.icon.option.hard-drive': 'Хранилище', 'hostDetails.icon.option.network': 'Сеть', 'hostDetails.icon.option.wifi': 'Wi-Fi', 'hostDetails.icon.option.lock': 'Замок', 'hostDetails.icon.option.key': 'Ключ', 'hostDetails.icon.option.monitor': 'Монитор', 'hostDetails.icon.option.container': 'Контейнер', 'hostDetails.icon.option.activity': 'Активность', 'hostDetails.icon.option.zap': 'Быстрый', 'hostDetails.icon.option.server-cog': 'Настройки сервера', 'hostDetails.icon.color.blue': 'Синий', 'hostDetails.icon.color.green': 'Зеленый', 'hostDetails.icon.color.red': 'Красный', 'hostDetails.icon.color.amber': 'Янтарный', 'hostDetails.icon.color.purple': 'Фиолетовый', 'hostDetails.icon.color.cyan': 'Голубой', 'hostDetails.icon.color.orange': 'Оранжевый', 'hostDetails.icon.color.slate': 'Серый', 'hostDetails.icon.color.violet': 'Фиолетово-синий', 'hostDetails.icon.color.pink': 'Розовый', 'hostDetails.icon.color.rose': 'Розово-красный', 'hostDetails.icon.color.lime': 'Лаймовый', 'hostDetails.icon.color.teal': 'Бирюзовый', 'hostDetails.icon.color.sky': 'Небесный', 'hostDetails.icon.color.indigo': 'Индиго', 'hostDetails.icon.color.zinc': 'Цинковый', 'hostDetails.icon.color.custom': 'Свой цвет', 'hostDetails.distro.mode': 'Источник', 'hostDetails.distro.mode.auto': 'Автоопределение', 'hostDetails.distro.mode.manual': 'Ручное переопределение', 'hostDetails.distro.detectedLabel': 'Текущий', 'hostDetails.distro.manualLabel': 'Переопределить', 'hostDetails.distro.pending': 'Определится после первого подключения', 'hostDetails.distro.unknown': 'Неизвестно', 'hostDetails.distro.option.linux': 'Обычный Linux', 'hostDetails.distro.option.ubuntu': 'Ubuntu', 'hostDetails.distro.option.debian': 'Debian', 'hostDetails.distro.option.centos': 'CentOS', 'hostDetails.distro.option.rocky': 'Rocky Linux', 'hostDetails.distro.option.fedora': 'Fedora', 'hostDetails.distro.option.arch': 'Arch Linux', 'hostDetails.distro.option.alpine': 'Alpine', 'hostDetails.distro.option.amazon': 'Amazon Linux', 'hostDetails.distro.option.opensuse': 'openSUSE / SLES', 'hostDetails.distro.option.redhat': 'Red Hat / RHEL', 'hostDetails.distro.option.almalinux': 'AlmaLinux', 'hostDetails.distro.option.alinux': 'Alibaba Cloud Linux', 'hostDetails.distro.option.openeuler': 'openEuler', 'hostDetails.distro.option.freebsd': 'FreeBSD', 'hostDetails.distro.option.oracle': 'Oracle Linux', 'hostDetails.distro.option.kali': 'Kali Linux', 'hostDetails.distro.option.cisco': 'Cisco', 'hostDetails.distro.option.juniper': 'Juniper Networks', 'hostDetails.distro.option.huawei': 'Huawei', 'hostDetails.distro.option.h3c': 'H3C', 'hostDetails.distro.option.hpe': 'HPE', 'hostDetails.distro.option.mikrotik': 'MikroTik', 'hostDetails.distro.option.fortinet': 'Fortinet', 'hostDetails.distro.option.paloalto': 'Palo Alto Networks', 'hostDetails.distro.option.zyxel': 'ZyXEL', 'hostDetails.distro.option.ruijie': 'Ruijie', 'hostDetails.section.mosh': 'Mosh', 'hostDetails.username.placeholder': 'Имя пользователя', 'hostDetails.password.placeholder': 'Пароль', 'hostDetails.password.show': 'Показать пароль', 'hostDetails.password.hide': 'Скрыть пароль', 'hostDetails.password.save': 'Сохранить пароль', 'hostDetails.auth.method': 'Способ входа', 'hostDetails.auth.auto': 'Автоматически', 'hostDetails.auth.auto.desc': 'Сначала использовать SSH-агент и локальные ключи, затем сохранённый пароль.', 'hostDetails.auth.passwordOnly': 'Только пароль', 'hostDetails.auth.password.desc': 'Использовать только сохранённый пароль и интерактивные запросы пароля.', 'hostDetails.auth.key': 'Ключ', 'hostDetails.auth.key.desc': 'Использовать выбранный ключ и сохранённый пароль как запасной вариант.', 'hostDetails.auth.certificate': 'Сертификат', 'hostDetails.auth.certificate.desc': 'Использовать выбранный SSH-сертификат и сохранённый пароль как запасной вариант.', 'hostDetails.auth.mfaFirst': 'Сначала интерактивная аутентификация', 'hostDetails.auth.mfaFirst.desc': 'Для серверов, которым нужны пароль и MFA через keyboard-interactive.', 'hostDetails.auth.credentialRequired': 'Перед сохранением этого способа входа выберите ключ или сертификат.', 'hostDetails.identity.suggestions': 'Идентификаторы', 'hostDetails.identity.missing': 'Идентификатор не найден', 'hostDetails.credential.keyCertificate': 'Ключ, сертификат, локальный файл ключа', 'hostDetails.credential.key': 'Ключ', 'hostDetails.credential.certificate': 'Сертификат', 'hostDetails.credential.localKeyFile': 'Локальный файл ключа', 'hostDetails.credential.localKeyFilePlaceholder': '~/.ssh/id_ed25519', 'hostDetails.credential.browseKeyFile': 'Обзор...', 'hostDetails.credential.missing': 'Учётные данные не найдены', 'hostDetails.section.systemSshAgent': 'Системный SSH-агент', 'hostDetails.systemSshAgent': 'Использовать системный SSH-агент для входа', 'hostDetails.systemSshAgent.desc': 'Использовать ключи, разблокированные macOS, Linux, Windows, 1Password или другим совместимым агентом', 'hostDetails.systemSshAgent.socket': 'Сокет агента', 'hostDetails.systemSshAgent.socket.desc': 'Оставьте пустым, чтобы использовать SSH_AUTH_SOCK', 'hostDetails.systemSshAgent.identitiesOnly': 'Только настроенные ключи', 'hostDetails.systemSshAgent.identitiesOnly.desc': 'Не пробовать другие ключи, загруженные в агент', 'hostDetails.systemSshAgent.notRunning': 'Системный SSH-агент недоступен', 'hostDetails.systemSshAgent.notRunningHint': 'Запустите или разблокируйте SSH-агент либо укажите путь к его сокету выше.', 'hostDetails.keys.search': 'Поиск ключей...', 'hostDetails.keys.empty': 'Нет доступных ключей', 'hostDetails.certs.search': 'Поиск сертификатов...', 'hostDetails.certs.empty': 'Нет доступных сертификатов', 'hostDetails.agentForwarding': 'Проброс SSH-агента', 'hostDetails.agentForwarding.desc': 'Разрешить удалённому серверу использовать ваши локальные SSH-ключи (например, для операций git)', 'hostDetails.agentForwarding.agentNotRunning': 'SSH-агент недоступен', 'hostDetails.agentForwarding.agentNotRunningHint': 'SSH-агент не обнаружен. Включите OpenSSH Authentication Agent в службах Windows или используйте совместимый агент, например Bitwarden, 1Password или gpg-agent.', 'hostDetails.section.agentForwarding': 'SSH-агент', 'hostDetails.x11Forwarding': 'Проброс X11-приложений', 'hostDetails.x11Forwarding.desc': 'Показывать удалённые графические приложения на вашем локальном рабочем столе, если запущен локальный X-сервер.', 'hostDetails.section.x11Forwarding': 'Проброс X11', 'hostDetails.section.deviceType': 'Тип устройства', 'hostDetails.deviceType': 'Режим сетевого устройства', 'hostDetails.deviceType.desc': 'Включайте для сетевого оборудования (коммутаторов, маршрутизаторов, межсетевых экранов), подключённого по SSH. Команды отправляются как есть, без обёртки оболочки, что совместимо с CLI вендоров вроде Huawei VRP и Cisco IOS.', 'hostDetails.deviceType.warning': 'Команды AI-агента будут отправляться напрямую без отслеживания кода выхода. Включайте только для устройств, на которых нет стандартной оболочки.', 'hostDetails.section.sshAlgorithms': 'SSH-алгоритмы', 'hostDetails.section.terminalBehavior': 'Поведение терминала', 'hostDetails.lineTimestamps': 'Показывать время вывода', 'hostDetails.lineTimestamps.desc': 'Показывать локальное время рядом с видимыми строками вывода для этого хоста, не изменяя текст терминала.', 'hostDetails.legacyAlgorithms': 'Разрешить устаревшие алгоритмы', 'hostDetails.legacyAlgorithms.desc': 'Включить устаревшие SSH-алгоритмы (diffie-hellman-group1, ssh-dss, 3des-cbc и т. д.) для подключения к старому сетевому оборудованию.', 'hostDetails.legacyAlgorithms.warning': 'У этих алгоритмов есть известные слабые места безопасности. Включайте только для устаревших устройств, которые не поддерживают современную криптографию.', 'hostDetails.skipEcdsaHostKey': 'Пропустить ключ хоста ECDSA', 'hostDetails.skipEcdsaHostKey.desc': 'Некоторые старые коммутаторы Huawei / Cisco выдают нестандартные подписи ECDSA host-key, из-за чего соединение падает с "signature verification failed". Включение этой опции убирает все ecdsa-sha2-* из предложения клиента, и согласование переходит к RSA / Ed25519.', 'hostDetails.algorithms.advanced': 'Дополнительные настройки алгоритмов', 'hostDetails.algorithms.advanced.desc': 'Заменить предлагаемый список алгоритмов для любой категории для конкретного хоста. Не трогать категорию = использовать значение по умолчанию; выбранное подмножество полностью заменяет список по умолчанию. Неверные значения могут сделать хост недоступным.', 'hostDetails.algorithms.inheritedNotice': 'В текущей группе заданы переопределения алгоритмов для: {categories}. Кнопка «Сбросить» здесь возвращает к спискам группы, а не к значениям NetMesh по умолчанию. Чтобы игнорировать ограничение группы, очистите переопределение в настройках алгоритмов группы.', 'hostDetails.algorithms.customized': 'настроено', 'hostDetails.algorithms.reset': 'Сбросить', 'hostDetails.algorithms.category.kex': 'Обмен ключами (KEX)', 'hostDetails.algorithms.category.cipher': 'Шифр', 'hostDetails.algorithms.category.hmac': 'MAC (HMAC)', 'hostDetails.algorithms.category.serverHostKey': 'Ключ хоста', 'hostDetails.algorithms.category.compress': 'Сжатие', 'hostDetails.section.keepalive': 'Поддержание соединения', 'hostDetails.keepalive.override': 'Переопределить глобальный keepalive', 'hostDetails.keepalive.desc': 'Использовать для этого хоста собственную политику keepalive вместо глобальной настройки. Полезно для старых маршрутизаторов и коммутаторов, чей SSH-сервер не отвечает на запросы keepalive@openssh.com. Установите интервал 0, чтобы полностью отключить keepalive для этого хоста.', 'hostDetails.keepalive.interval': 'Интервал (секунды)', 'hostDetails.keepalive.countMax': 'Макс. число пропущенных keepalive', 'hostDetails.keepalive.disabledHint': 'Интервал = 0 отключает keepalive для этого хоста. Для определения разорванного соединения сессия будет полагаться на TCP-таймауты.', 'hostDetails.section.sshTimeouts': 'Тайм-ауты SSH-подключения', 'hostDetails.sshTimeouts.tcpConnect': 'Тайм-аут TCP', 'hostDetails.sshTimeouts.tcpConnect.desc': 'Сколько секунд ждать сетевого подключения к этому хосту.', 'hostDetails.sshTimeouts.authReady': 'Тайм-аут SSH-входа', 'hostDetails.sshTimeouts.authReady.desc': 'Сколько секунд ждать согласования SSH и завершения аутентификации после подключения.', 'hostDetails.backspaceBehavior': 'Поведение Backspace', 'hostDetails.backspaceBehavior.default': 'По умолчанию', 'hostDetails.jumpHosts': 'Прокси через хосты', 'hostDetails.jumpHosts.hops': 'Переходов: {count}', 'hostDetails.jumpHosts.direct': 'Напрямую', 'hostDetails.jumpHosts.configure': 'Настроить прокси-хосты', 'hostDetails.proxy': 'Прокси через HTTP/SOCKS5/Command', 'hostDetails.proxy.none': 'Нет', 'hostDetails.proxy.edit': 'Редактировать прокси', 'hostDetails.proxy.configure': 'Настроить прокси', 'hostDetails.proxyPanel.title': 'Прокси через HTTP/SOCKS5/Command', 'hostDetails.proxyPanel.hostPlaceholder': 'Прокси-хост', 'hostDetails.proxyPanel.command': 'ProxyCommand', 'hostDetails.proxyPanel.commandPlaceholder': 'cloudflared access ssh --hostname %h', 'hostDetails.proxyPanel.commandHelp': 'Используйте %h для целевого хоста, %p для целевого порта и %% для символа процента.', 'hostDetails.proxyPanel.credentials': 'Учётные данные', 'hostDetails.proxyPanel.usernamePlaceholder': 'Имя пользователя', 'hostDetails.proxyPanel.passwordPlaceholder': 'Пароль', 'hostDetails.proxyPanel.identities': 'Идентификаторы', 'hostDetails.proxyPanel.keychainIdentity': 'Идентификатор из связки ключей', 'hostDetails.proxyPanel.manualCredentials': 'Ввести вручную', 'hostDetails.proxyPanel.remove': 'Удалить прокси', 'hostDetails.proxyPanel.savedProxy': 'Сохранённый прокси', 'hostDetails.proxyPanel.selectSaved': 'Выбрать сохранённый прокси', 'hostDetails.proxyPanel.customProxy': 'Пользовательский прокси', 'hostDetails.proxyPanel.missing': 'Отсутствует', 'hostDetails.proxyPanel.missingSaved': 'Сохранённый прокси отсутствует', 'hostDetails.proxyPanel.missingIdentity': 'Идентификатор из связки ключей отсутствует', 'hostDetails.proxyPanel.incompleteIdentity': 'Для идентификатора прокси нужны имя пользователя и пароль', 'hostDetails.proxyPanel.unreadableIdentity': 'Пароль идентификатора прокси нельзя прочитать на этом устройстве', 'hostDetails.proxyPanel.error.required': 'Требуются хост и порт прокси или ProxyCommand.', 'hostDetails.envVars': 'Переменные окружения', 'hostDetails.envVars.add': 'Добавить переменную окружения', 'hostDetails.envVars.title': 'Переменные окружения', 'hostDetails.envVars.desc': 'Задайте переменную окружения для {host}.', 'hostDetails.envVars.note': 'Некоторые SSH-серверы по умолчанию разрешают только переменные с префиксом LC_ и LANG_.', 'hostDetails.envVars.variable': 'Переменная', 'hostDetails.envVars.value': 'Значение', 'hostDetails.envVars.newVariable': 'Новая переменная', 'hostDetails.envVars.variableName': 'Имя переменной', 'hostDetails.chain.title': 'Редактировать цепочку', 'hostDetails.chain.desc': 'Добавление ещё одного хоста создаст подключение к {host}.', 'hostDetails.chain.addHost': 'Добавить хост', 'hostDetails.chain.target': 'Цель', 'hostDetails.chain.availableHosts': 'Доступные хосты', 'hostDetails.chain.clear': 'Очистить', 'hostDetails.group.title': 'Новая группа', 'hostDetails.group.general': 'Общие', 'hostDetails.group.namePlaceholder': 'Имя группы', 'hostDetails.group.parentPlaceholder': 'Родительская группа', 'hostDetails.group.cloudSync': 'Облачная синхронизация', 'hostDetails.group.addProtocol': 'Добавить протокол', 'hostDetails.startupCommand': 'Команда запуска', 'hostDetails.startupCommand.placeholder': 'Команда для запуска при подключении (например, cd /app && ls)', 'hostDetails.startupCommand.help': 'This command will be executed automatically after SSH connection is established.', 'hostDetails.startupCommand.runMode': 'Многострочный запуск', 'hostDetails.startupCommand.runMode.help': 'Выберите, как отправлять многострочные команды запуска после подключения.', 'hostDetails.startupCommand.runMode.lineDelay': 'Отправлять построчно', 'hostDetails.startupCommand.runMode.paste': 'Отправить сразу', 'hostDetails.otherProtocols': 'Другие протоколы', 'hostDetails.telnetOn': 'Telnet на', 'hostDetails.port': 'порт', 'hostDetails.telnet.credentials': 'Учётные данные', 'hostDetails.telnet.identity.placeholder': 'Ручной идентификатор', 'hostDetails.telnet.username': 'Имя пользователя Telnet', 'hostDetails.telnet.password': 'Пароль Telnet', 'hostDetails.charset.placeholder': 'Кодировка (например, UTF-8)', 'hostDetails.telnet.add': 'Добавить протокол Telnet', 'hostDetails.telnet.setDefault': 'Подключаться по Telnet по умолчанию', 'hostDetails.tags': 'Теги', 'hostDetails.group': 'Группа', 'hostDetails.selectGroup': 'Выберите группу', 'hostDetails.addTag': 'Добавить тег...', 'hostDetails.createTag': 'Создать тег', 'hostDetails.createGroup': 'Создать группу', 'hostDetails.plugin.title': 'Подключение плагина', 'hostDetails.plugin.provider.placeholder': 'Выберите провайдер подключения', 'hostDetails.plugin.provider.empty': 'Провайдеры подключения не установлены', 'hostDetails.plugin.authentication.placeholder': 'Выберите провайдер аутентификации', 'hostDetails.plugin.authentication.none': 'Управляется провайдером или не требуется', 'hostDetails.plugin.credential.placeholder': 'Выберите учётные данные хоста', 'hostDetails.plugin.credential.none': 'Без сохранённых учётных данных', 'hostDetails.plugin.credential.password': 'Пароль профиля', 'hostDetails.plugin.credential.privateKey': 'Закрытый ключ', 'hostDetails.plugin.credential.unavailable': 'Сохранённые учётные данные недоступны', 'hostDetails.plugin.configuration.label': 'Конфигурация провайдера (JSON)', 'hostDetails.plugin.configuration.invalid': 'Конфигурация должна быть допустимым JSON.', 'hostDetails.plugin.configuration.schemaInvalid': 'Конфигурация не соответствует схеме провайдера.', 'hostDetails.plugin.unavailable': 'Настроенный провайдер недоступен. Конфигурация сохранится до восстановления плагина.', 'hostDetails.plugin.useSsh': 'Использовать SSH', // Host form (legacy modal) 'hostForm.title.edit': 'Редактировать хост', 'hostForm.title.new': 'Новый хост', 'hostForm.desc.edit': 'Обновите параметры подключения для этого хоста', 'hostForm.desc.new': 'Создайте новую запись SSH-хоста', 'hostForm.field.label': 'Метка', 'hostForm.placeholder.label': 'Мой production-сервер', 'hostForm.field.hostname': 'Имя хоста / IP', 'hostForm.placeholder.hostname': '192.168.1.1', 'hostForm.field.port': 'Порт', 'hostForm.field.username': 'Имя пользователя', 'hostForm.field.osType': 'Тип ОС', 'hostForm.placeholder.selectOs': 'Выберите ОС', 'hostForm.field.group': 'Группа', 'hostForm.placeholder.group': 'например, AWS, DigitalOcean', 'hostForm.field.tags': 'Теги', 'hostForm.placeholder.addTag': 'Добавить тег...', 'hostForm.auth.method': 'Метод аутентификации', 'hostForm.auth.password': 'Пароль', 'hostForm.auth.sshKey': 'SSH-ключ', 'hostForm.auth.selectKey': 'Выберите SSH-ключ', 'hostForm.auth.noKeys': 'Нет доступных ключей', 'hostForm.auth.noKeysHint': 'В связке ключей не найдено SSH-ключей. Сначала создайте один.', 'hostForm.saveHost': 'Сохранить хост', 'vault.import.plugins.title': 'Импортёры плагинов', 'vault.import.plugins.loading': 'Создание безопасного предварительного просмотра…', 'vault.import.plugins.progress': 'Обработано {completed} из {total} {message}', 'vault.import.plugins.preview': 'Предварительный просмотр импорта', 'vault.import.plugins.empty': 'Импортёр не вернул доступных черновиков.', 'vault.import.plugins.summary': 'Черновики: {parsed} · предупреждения: {warnings} · ошибки: {errors}', 'vault.import.plugins.commit': 'Импортировать предварительный просмотр', 'vault.import.plugins.fileUnavailable': 'Мост настольного импортёра не может получить доступ к выбранному файлу.', 'vault.import.plugins.notRecognized': 'Этот импортёр не распознал выбранный файл.', 'vault.import.plugins.containsErrors': 'Предварительный просмотр содержит ошибки и не может быть применён.', 'vault.import.plugins.committed': 'Импортировано проверенных элементов: {count}.', 'vault.import.plugins.duplicates': 'Дубликаты будут пропущены: {count}.', 'vault.import.plugins.validationErrors': 'Черновики не прошли проверку хоста: {count}. Импортёр должен исправить их.', 'vault.import.plugins.kind.host': 'Хост', 'vault.import.plugins.kind.identity': 'Учётные данные', 'vault.import.plugins.kind.key': 'Ключ', 'vault.import.plugins.kind.snippet': 'Сниппет', 'vault.import.plugins.kind.group': 'Группа', 'vault.import.plugins.moreItems': 'В импорт включено ещё элементов: {count}.', 'vault.import.plugins.moreDiagnostics': 'В предварительном просмотре скрыто ещё сообщений: {count}.', };