feat: convert file manager into a plugin

This commit is contained in:
LukeGus committed 2026-09-23 16:27:29 -05:00
1 parent b76da9ab52
commit c85c1fdb86
259 files changed
+54155 -16791

No files matched your search

-385
View File
@@ -715,7 +715,6 @@
"hostManager": "Менеджер хостов",
"credentials": "Учетные данные",
"portForwarding": "Пересылка",
"sftp": "SFTP",
"connections": "Подключения",
"serial": "Последовательный порт",
"keepSideMenuOpen": "Оставить меню открытым",
@@ -767,14 +766,12 @@
"tabRdp": "RDP",
"tabVnc": "VNC",
"tabTunnels": "Туннели",
"tabFiles": "Файлы",
"tabStats": "Метрики хоста",
"tabTelnet": "Telnet",
"tabSharing": "Общий доступ",
"tabAuthentication": "Аутентификация",
"terminal": "Терминал",
"tunnel": "Туннель",
"fileManager": "Файловый менеджер",
"serverStats": "Метрики хоста",
"status": {
"available": "Доступный",
@@ -1118,12 +1115,6 @@
"proxmoxResultSkippedNoIp": "{{count}} пропущено (IP-адрес не найден)",
"proxmoxStatsUrlCopied": "URL-адрес статистики Proxmox скопирован в буфер обмена.",
"copyProxmoxStatsUrlAction": "Скопируйте URL-адрес статистики Proxmox.",
"enableFileManagerMonitor": "Включить файловый менеджер",
"enableFileManagerMonitorDesc": "Просмотр и управление файлами на этом хосте через SFTP",
"scpLegacyLabel": "Устаревший режим SCP",
"scpLegacyDesc": "Использовать устаревший протокол передачи файлов для серверов, не поддерживающих подсистему SFTP (например, встроенные или минимальные SSH-серверы).",
"defaultPathLabel": "Путь по умолчанию",
"fileManagerPathHint": "Каталог, который открывается при запуске файлового менеджера для этого хоста.",
"statusChecksLabel": "Проверки состояния",
"enableStatusChecks": "Включить проверки состояния",
"enableStatusChecksDesc": "Периодически пинговать этот хост для проверки доступности",
@@ -1278,7 +1269,6 @@
"deletedHost": "Удалён {{name}}",
"copiedToClipboard": "Скопировано в буфер обмена",
"terminalUrlCopied": "URL терминала скопирован",
"fileManagerUrlCopied": "URL файлового менеджера скопирован",
"tunnelUrlCopied": "URL туннеля скопирован",
"dockerUrlCopied": "URL Docker скопирован",
"hostMetricsUrlCopied": "URL метрик хоста скопирован",
@@ -1296,7 +1286,6 @@
"copyAddress": "Копировать адрес",
"copyLink": "Копировать ссылку",
"copyTerminalUrlAction": "Копировать URL терминала",
"copyFileManagerUrlAction": "Копировать URL файлового менеджера",
"copyTunnelUrlAction": "Копировать URL туннеля",
"copyDockerUrlAction": "Копировать URL Docker",
"copyHostMetricsUrlAction": "Копировать URL метрик хоста",
@@ -1857,336 +1846,6 @@
"removeFromSplit": "Убрать из разделённой области"
}
},
"fileManager": {
"noHostSelected": "Хост не выбран",
"initializingEditor": "Инициализация редактора...",
"file": "Файл",
"folder": "Папка",
"uploadFile": "Загрузить файл",
"downloadFile": "Скачать",
"extractArchive": "Извлечь архив",
"extractingArchive": "Распаковка {{name}}...",
"archiveExtractedSuccessfully": "{{name}} успешно распакован",
"extractFailed": "Ошибка распаковки",
"compressFile": "Сжать файл",
"compressFiles": "Сжать файлы",
"compressFilesDesc": "Сжать {{count}} элементов в архив",
"archiveName": "Имя архива",
"enterArchiveName": "Введите имя архива...",
"compressionFormat": "Формат сжатия",
"selectedFiles": "Выбранные файлы",
"andMoreFiles": "и ещё {{count}}...",
"compress": "Сжать",
"compressingFiles": "Сжатие {{count}} элементов в {{name}}...",
"filesCompressedSuccessfully": "{{name}} успешно создан",
"compressFailed": "Ошибка сжатия",
"edit": "Редактировать",
"preview": "Предпросмотр",
"previous": "Назад",
"next": "Далее",
"pageXOfY": "Страница {{current}} из {{total}}",
"zoomOut": "Уменьшить",
"zoomIn": "Увеличить",
"newFile": "Новый файл",
"newFolder": "Новая папка",
"rename": "Переименовать",
"uploading": "Загрузка...",
"uploadingFile": "Загрузка {{name}}...",
"fileName": "Имя файла",
"folderName": "Имя папки",
"fileUploadedSuccessfully": "Файл «{{name}}» успешно загружен",
"failedToUploadFile": "Не удалось загрузить файл",
"uploadingFolderFiles": "Загрузка {{count}} файла(ов)...",
"uploadedFolderFiles": "Файл(ы) {{count}} успешно загружен(ы).",
"uploadedFolderPartial": "Загрузка {{uploaded}} файла(ов), {{failed}} не удалась.",
"fileDownloadedSuccessfully": "Файл «{{name}}» успешно скачан",
"failedToDownloadFile": "Не удалось скачать файл",
"fileCreatedSuccessfully": "Файл «{{name}}» успешно создан",
"folderCreatedSuccessfully": "Папка «{{name}}» успешно создана",
"failedToCreateItem": "Не удалось создать элемент",
"operationFailed": "Операция {{operation}} не удалась для {{name}}: {{error}}",
"failedToResolveSymlink": "Не удалось разрешить символическую ссылку",
"itemsDeletedSuccessfully": "{{count}} элементов успешно удалено",
"failedToDeleteItems": "Не удалось удалить элементы",
"sudoPasswordRequired": "Требуется пароль администратора",
"enterSudoPassword": "Введите пароль sudo для продолжения операции",
"sudoPassword": "Пароль sudo",
"sudoOperationFailed": "Операция sudo не удалась",
"sudoAuthFailed": "Аутентификация sudo не удалась",
"dragFilesToUpload": "Перетащите файлы сюда для загрузки",
"dropToUploadHere": "Перетащите файл для загрузки сюда.",
"dropToDownloadHere": "Скачать можно здесь (перетащите ссылку)",
"localFiles": "Местный",
"showLocalFiles": "Отображение локальных файлов (в режиме разделенного экрана)",
"hideLocalFiles": "Скрыть локальные файлы",
"localHome": "Домашняя папка",
"localPathPlaceholder": "Путь к локальной папке",
"localShowHidden": "Показать скрытые файлы",
"localHideHidden": "Скрыть скрытые файлы",
"localRevealInFileManager": "Показать в системном файловом менеджере",
"localCannotOpenFolder": "Не удаётся открыть папку",
"localItemCount": "{{count}} предметов",
"localSelectedCount": "{{count}} выбрано",
"back": "Назад",
"forward": "Вперед",
"up": "Вверх",
"kind": "Добрый",
"localUploadingProgress": "Загрузка {{current}} из {{total}}",
"localDownloadingProgress": "Загрузка {{current}} из {{total}}",
"localTransferInFlight": "{{count}} сразу",
"localPreparingDownload": "Подготовка к загрузке...",
"localTransferCancelled": "Трансфер отменен",
"localNothingToTransfer": "Нет ничего для перевода",
"localUploadComplete": "Загружено {{count}} файлов",
"localUploadFailed": "Загрузка не удалась.",
"localUploadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.",
"localDownloadComplete": "Загружено {{count}} файлов",
"localDownloadFailed": "Загрузка не удалась.",
"localDownloadPartial": "Загрузка {{done}} файла(ов), {{failed}} не удалась.",
"localReplaceExistingPrompt": "{{count}} Элемент(ы) уже существуют в этой папке. Заменить их?",
"localReplace": "Заменять",
"localSkipExisting": "Пропускать",
"localSkippedExisting": "Пропущено {{count}} существующих элементов",
"localUnsafeNamesSkipped": "Пропущено {{count}} элементов, названия которых нельзя использовать на этом компьютере",
"localOpen": "Открыть",
"localOpenFolder": "Открыть папку",
"localUploadToRemote": "Загрузка на сервер",
"localUploadToRemoteMany": "Загрузите {{count}} предметов на сервер",
"localMoveToTrash": "Переместить в мусорное ведро",
"localMoveToTrashMany": "Переместите {{count}} элементов в корзину",
"localTrashConfirmSingle": "Переместить \"{{name}}\" в корзину?",
"localTrashConfirmFolder": "Переместить папку \"{{name}}\" и всё её содержимое в корзину?",
"localTrashConfirmMany": "Переместить {{count}} элементов в корзину?",
"localTrashed": "Перемещено {{count}} предметов в корзину",
"localTrashFailed": "Не удалось переместить в мусорный бак.",
"localRenameFailed": "Переименование не удалось.",
"localCreateFailed": "Не удалось создать элемент.",
"goToParentFolder": "Перейдите в родительскую папку",
"resizeSidebar": "Перетащите ползунок, чтобы изменить размер боковой панели (двойной щелчок для сброса).",
"resizeLocalPane": "Перетащите курсор, чтобы изменить размер локальной панели (двойной щелчок для сброса).",
"columns": "Колонки",
"columnsHint": "Щелкните правой кнопкой мыши, чтобы выбрать столбцы.",
"emptyFolder": "Эта папка пуста",
"searchFiles": "Поиск файлов...",
"upload": "Загрузить",
"selectHostToStart": "Выберите хост для начала управления файлами",
"sshRequiredForFileManager": "Файловому менеджеру требуется SSH. У этого хоста SSH не включен.",
"failedToConnect": "Не удалось подключиться к SSH",
"failedToLoadDirectory": "Не удалось загрузить каталог",
"noSSHConnection": "Нет доступного SSH-подключения",
"copy": "Копировать",
"cut": "Вырезать",
"paste": "Вставить",
"copyPath": "Копировать путь",
"copyPaths": "Копировать пути",
"delete": "Удалить",
"properties": "Свойства",
"refresh": "Обновить",
"downloadFiles": "Скачать {{count}} файлов в браузер",
"copyFiles": "Копировать {{count}} элементов",
"cutFiles": "Вырезать {{count}} элементов",
"deleteFiles": "Удалить {{count}} элементов",
"filesCopiedToClipboard": "{{count}} элементов скопировано в буфер обмена",
"filesCutToClipboard": "{{count}} элементов вырезано в буфер обмена",
"pathCopiedToClipboard": "Путь скопирован в буфер обмена",
"pathsCopiedToClipboard": "{{count}} путей скопировано в буфер обмена",
"failedToCopyPath": "Не удалось скопировать путь в буфер обмена",
"copyFolderLink": "Скопировать ссылку на папку",
"copyCurrentFolderLink": "Скопировать ссылку на текущую папку",
"folderLinkCopied": "Ссылка на папку скопирована в буфер обмена",
"failedToCopyFolderLink": "Не удалось скопировать ссылку на папку",
"movedItems": "Перемещено {{count}} элементов",
"failedToDeleteItem": "Не удалось удалить элемент",
"itemRenamedSuccessfully": "{{type}} успешно переименован(а)",
"failedToRenameItem": "Не удалось переименовать элемент",
"download": "Скачать",
"openExternalEditor": "Открыть во внешнем редакторе",
"chooseExternalEditor": "Выбрать внешний редактор",
"externalEditorSelected": "Внешний редактор выбран",
"externalEditorDesktopOnly": "Внешний редактор доступен только в настольном приложении",
"externalEditorOpened": "Открыт во внешнем редакторе. Сохранение в нём загрузит изменения обратно на сервер.",
"failedToOpenExternalEditor": "Не удалось открыть внешний редактор",
"failedToSelectExternalEditor": "Не удалось выбрать внешний редактор",
"permissions": "Права доступа",
"size": "Размер",
"modified": "Изменён",
"path": "Путь",
"confirmDelete": "Вы уверены, что хотите удалить {{name}}?",
"permissionDenied": "Доступ запрещён",
"serverError": "Ошибка сервера",
"fileSavedSuccessfully": "Файл успешно сохранён",
"failedToSaveFile": "Не удалось сохранить файл",
"confirmDeleteSingleItem": "Вы уверены, что хотите безвозвратно удалить \"{{name}}\"?",
"confirmDeleteMultipleItems": "Вы уверены, что хотите безвозвратно удалить {{count}} элементов?",
"confirmDeleteMultipleItemsWithFolders": "Вы уверены, что хотите безвозвратно удалить {{count}} элементов? Включая папки и их содержимое.",
"confirmDeleteFolder": "Вы уверены, что хотите безвозвратно удалить папку \"{{name}}\" и всё её содержимое?",
"permanentDeleteWarning": "Это действие необратимо. Элемент(ы) будут безвозвратно удалены с сервера.",
"moveToTrashWarning": "Изделие(а) будет перемещено в мусорный контейнер Termix и может быть возвращено в рабочее состояние до истечения срока хранения.",
"itemsMovedToTrash": "{{count}} элемент(ы) перемещены в корзину",
"trash": "Мусор",
"trashDescription": "Удаленные элементы сохраняются на этом хосте в течение {{days}} дней.",
"trashLoadFailed": "Не удалось загрузить мусор.",
"trashEmpty": "Мусорное ведро пусто.",
"trashRestore": "Восстановить",
"trashRestored": "Восстановлено {{name}}",
"trashRestoreFailed": "Не удалось восстановить элемент. Возможно, исходный путь уже существует.",
"trashDeletePermanently": "Удалить навсегда",
"trashDeleteConfirm": "Удалить {{name}}навсегда? Это действие необратимо.",
"trashPermanentlyDeleted": "Удалено навсегда {{name}}",
"trashDeleteFailed": "Не удалось удалить элемент навсегда.",
"trashEmptyAction": "Опустошите мусорный бак",
"trashEmptyConfirm": "Удалить все элементы из корзины навсегда? Это действие необратимо.",
"trashEmptied": "Мусор вывезен",
"trashRetention": "Автоматическая очистка через (дней)",
"trashRetentionSaved": "Обновлена информация о хранении мусора.",
"trashRetentionFailed": "Не удалось обновить срок хранения корзины.",
"trashUnavailableConfirm": "Этот элемент нельзя переместить в корзину, как правило, потому что он находится в другой файловой системе или требует повышенных прав доступа. Может, лучше удалить его навсегда?",
"recent": "Недавние",
"pinned": "Закреплённые",
"folderShortcuts": "Ярлыки папок",
"failedToReconnectSSH": "Не удалось переподключить SSH-сессию",
"openTerminalHere": "Открыть терминал здесь",
"run": "Запустить",
"openTerminalInFolder": "Открыть терминал в этой папке",
"openTerminalInFileLocation": "Открыть терминал в расположении файла",
"runningFile": "Выполняется - {{file}}",
"onlyRunExecutableFiles": "Можно запускать только исполняемые файлы",
"directories": "Каталоги",
"removedFromRecentFiles": "Удалено \"{{name}}\" из недавних файлов",
"removeFailed": "Не удалось удалить",
"unpinnedSuccessfully": "Успешно откреплено \"{{name}}\"",
"unpinFailed": "Не удалось открепить",
"removedShortcut": "Ярлык \"{{name}}\" удалён",
"removeShortcutFailed": "Не удалось удалить ярлык",
"clearedAllRecentFiles": "Очищен список недавних файлов",
"clearFailed": "Очистка не удалась",
"removeFromRecentFiles": "Удалить из списка недавних файлов",
"clearAllRecentFiles": "Очистить список недавних файлов",
"unpinFile": "Открепить файл",
"removeShortcut": "Удалить ярлык",
"pinFile": "Закрепить файл",
"addToShortcuts": "Добавить в ярлыки",
"pasteFailed": "Вставка не удалась",
"noUndoableActions": "Нет действий для отмены",
"undoCopySuccess": "Отмена копирования: удалено {{count}} скопированных файлов",
"undoCopyFailedDelete": "Отмена не удалась: не удалось удалить скопированные файлы",
"undoCopyFailedNoInfo": "Отмена не удалась: не найдена информация о скопированных файлах",
"undoMoveSuccess": "Отмена перемещения: {{count}} файлов возвращено в исходное расположение",
"undoMoveFailedMove": "Отмена не удалась: не удалось вернуть файлы",
"undoMoveFailedNoInfo": "Отмена не удалась: не найдена информация о перемещённых файлах",
"undoDeleteNotSupported": "Операцию удаления нельзя отменить: файлы навсегда удалены с сервера",
"undoTypeNotSupported": "Неподдерживаемый тип операции отмены",
"undoOperationFailed": "Операция отмены не удалась",
"unknownError": "Неизвестная ошибка",
"confirm": "Подтвердить",
"find": "Поиск...",
"replace": "Заменить",
"downloadInstead": "Скачать вместо",
"keyboardShortcuts": "Горячие клавиши",
"searchAndReplace": "Поиск и замена",
"editing": "Редактирование",
"search": "Поиск",
"findNext": "Найти далее",
"findPrevious": "Найти предыдущий",
"save": "Сохранить",
"selectAll": "Выделить всё",
"undo": "Отменить",
"redo": "Повторить",
"moveLineUp": "Переместить строку вверх",
"moveLineDown": "Переместить строку вниз",
"toggleComment": "Переключить комментарий",
"autoComplete": "Автодополнение",
"imageLoadError": "Не удалось загрузить изображение",
"startTyping": "Начните вводить...",
"unknownSize": "Неизвестный размер",
"fileIsEmpty": "Файл пуст",
"largeFileWarning": "Предупреждение о большом файле",
"largeFileWarningDesc": "Размер этого файла {{size}}, что может вызвать проблемы с производительностью при открытии в текстовом виде.",
"fileNotFoundAndRemoved": "Файл \"{{name}}\" не найден и был удалён из недавних/закреплённых файлов",
"failedToLoadFile": "Не удалось загрузить файл: {{error}}",
"serverErrorOccurred": "Произошла ошибка сервера. Попробуйте позже.",
"autoSaveFailed": "Автосохранение не удалось",
"fileAutoSaved": "Файл автосохранён",
"moveFileFailed": "Не удалось переместить {{name}}",
"moveOperationFailed": "Операция перемещения не удалась",
"canOnlyCompareFiles": "Можно сравнивать только два файла",
"comparingFiles": "Сравнение файлов: {{file1}} и {{file2}}",
"dragFailed": "Операция перетаскивания не удалась",
"filePinnedSuccessfully": "Файл \"{{name}}\" успешно закреплён",
"pinFileFailed": "Не удалось закрепить файл",
"fileUnpinnedSuccessfully": "Файл \"{{name}}\" успешно откреплён",
"unpinFileFailed": "Не удалось открепить файл",
"shortcutAddedSuccessfully": "Ярлык папки \"{{name}}\" успешно добавлен",
"addShortcutFailed": "Не удалось добавить ярлык",
"operationCompletedSuccessfully": "{{operation}} {{count}} элементов успешно",
"operationCompleted": "{{operation}} {{count}} элементов",
"downloadFileSuccess": "Файл {{name}} успешно загружен",
"downloadFileFailed": "Не удалось загрузить",
"downloadingFile": "Загрузка {{name}}…",
"downloadProgressBytes": "{{transferred}} / {{total}}",
"moveTo": "Переместить в {{name}}",
"diffCompareWith": "Сравнить с {{name}}",
"dragOutsideToDownload": "Перетащите за пределы окна для загрузки ({{count}} файлов)",
"newFolderDefault": "Новая папка",
"newFileDefault": "Новый файл.txt",
"successfullyMovedItems": "Успешно перемещено {{count}} элементов в {{target}}",
"move": "Переместить",
"searchInFile": "Поиск в файле (Ctrl+F)",
"showKeyboardShortcuts": "Показать сочетания клавиш",
"decreaseFontSize": "Уменьшить размер шрифта",
"increaseFontSize": "Увеличить размер шрифта",
"startWritingMarkdown": "Начните писать Markdown-контент...",
"loadingFileComparison": "Загрузка сравнения файлов...",
"reload": "Перезагрузить",
"compare": "Сравнить",
"sideBySide": "Бок о бок",
"inline": "Встроенный",
"fileComparison": "Сравнение файлов: {{file1}} и {{file2}}",
"fileTooLarge": "Файл слишком большой: {{error}}",
"sshConnectionFailed": "Ошибка SSH-подключения. Проверьте подключение к {{name}} ({{ip}}:{{port}})",
"loadFileFailed": "Не удалось загрузить файл: {{error}}",
"connecting": "Подключение...",
"connectedSuccessfully": "Подключено успешно",
"totpVerificationFailed": "Ошибка проверки TOTP",
"warpgateVerificationFailed": "Ошибка аутентификации Warpgate",
"authenticationFailed": "Ошибка аутентификации",
"incorrectPassphrase": "Неверная парольная фраза. Попробуйте еще раз.",
"verificationCodePrompt": "Код подтверждения:",
"changePermissions": "Изменить права доступа",
"currentPermissions": "Текущие права доступа",
"owner": "Владелец",
"group": "Группа",
"others": "Остальные",
"read": "Чтение",
"write": "Запись",
"execute": "Выполнение",
"permissionsChangedSuccessfully": "Права доступа успешно изменены",
"failedToChangePermissions": "Не удалось изменить права доступа",
"name": "Имя",
"sortByName": "По имени",
"sortByDate": "По дате изменения",
"sortBySize": "По размеру",
"ascending": "По возрастанию",
"descending": "По убыванию",
"root": "Корень",
"new": "Создать",
"sortBy": "Сортировка",
"items": "Элементов",
"selected": "Выбрано",
"editor": "Редактор",
"octal": "Восьмеричный",
"storage": "Хранилище",
"disk": "Диск",
"used": "Занято",
"of": "из",
"toggleSidebar": "Переключить боковую панель",
"compactLayout": "Используйте компактную компоновку.",
"comfortableLayout": "Используйте удобную планировку",
"cannotLoadPdf": "Не удаётся загрузить PDF",
"pdfLoadError": "Ошибка при загрузке этого PDF-файла.",
"loadingPdf": "Загрузка PDF...",
"loadingPage": "Загрузка страницы..."
},
"transfer": {
"copyToHost": "Копировать на хост…",
"moveToHost": "Переместить на хост…",
@@ -2292,50 +1951,6 @@
"retryTransferError": "Повтор не удался",
"transferFailedRetryHint": "Частичные данные сохранены в месте назначения. Повтор возобновится, когда соединение восстановится."
},
"sftpTransfer": {
"title": "SFTP",
"description": "Передача файлов между двумя SSH-хостами.",
"sourceServer": "Исходный сервер",
"destinationServer": "Сервер назначения",
"selectHost": "Выберите хост",
"noHostSelected": "Хост не выбран",
"move": "Двигаться",
"copy": "Копия",
"upload": "Загрузить",
"itemsSelected": "{{count}} выбранный элемент",
"itemsSelected_other": "{{count}} выбранные элементы",
"ready": "Готовый",
"loadingHosts": "Загрузка хостов...",
"name": "Имя",
"modified": "Модифицированный",
"size": "Размер",
"noFiles": "Нет файлов",
"open": "Открыть",
"up": "Вверх",
"refresh": "Обновить",
"copyToTarget": "Скопировать в целевую директорию",
"rename": "Переименовать",
"delete": "Удалить",
"editPermissions": "Изменить права доступа",
"createNewFolder": "Создать новую папку",
"deleteSelectedItems": "Удалить выбранные элементы",
"deleteConfirm": "Удалить {{count}} выбранный элемент?",
"deleteConfirm_other": "Удалить {{count}} выбранные элементы?",
"cancel": "Отмена",
"save": "Сохранять",
"folderCreated": "Создана папка",
"itemRenamed": "Элемент переименован",
"actionFailed": "Действие не удалось.",
"itemsDeleted": "{{count}} элемент удален",
"itemsDeleted_other": "{{count}} удаленные элементы",
"deleteFailed": "Удаление не удалось.",
"permissionsUpdated": "Права доступа обновлены.",
"noRemoteSessionConnected": "Удалённая сессия не подключена",
"failedToListFiles": "Не удалось отобразить список файлов.",
"failedToRefresh": "Не удалось обновить",
"destinationInsideSource": "Место назначения не может находиться внутри выбранного пути источника.",
"sameHostNoOp": "Исходная и целевая папки — одна и та же."
},
"tunnels": {
"noSshTunnels": "Нет SSH-туннелей",
"createFirstTunnelMessage": "Вы ещё не создали ни одного SSH-туннеля. Настройте туннельные соединения в Менеджере хостов, чтобы начать.",