From 845a1759e575bfdfbef692830f542a13191acaca Mon Sep 17 00:00:00 2001 From: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Date: Mon, 12 Jan 2026 06:03:25 -0500 Subject: [PATCH] New translations en.json (Russian) --- src/locales/translated/ru.json | 4452 ++++++++++++++++---------------- 1 file changed, 2226 insertions(+), 2226 deletions(-) diff --git a/src/locales/translated/ru.json b/src/locales/translated/ru.json index e319cfd7..7c628e0d 100644 --- a/src/locales/translated/ru.json +++ b/src/locales/translated/ru.json @@ -1,882 +1,882 @@ { "credentials": { - "credentialsViewer": "Credentials Viewer", - "manageYourSSHCredentials": "Manage your SSH credentials securely", - "addCredential": "Add Credential", - "createCredential": "Create Credential", - "editCredential": "Edit Credential", - "viewCredential": "View Credential", - "duplicateCredential": "Duplicate Credential", - "deleteCredential": "Delete Credential", - "updateCredential": "Update Credential", - "credentialName": "Credential Name", - "credentialDescription": "Description", - "username": "Username", - "searchCredentials": "Search credentials...", - "selectFolder": "Select Folder", - "selectAuthType": "Select Auth Type", - "allFolders": "All Folders", - "allAuthTypes": "All Auth Types", - "uncategorized": "Uncategorized", - "totalCredentials": "Total", - "keyBased": "Key-based", - "passwordBased": "Password-based", - "folders": "Folders", - "noCredentialsMatchFilters": "No credentials match your filters", - "noCredentialsYet": "No credentials created yet", - "createFirstCredential": "Create your first credential", - "failedToFetchCredentials": "Failed to fetch credentials", - "credentialDeletedSuccessfully": "Credential deleted successfully", - "failedToDeleteCredential": "Failed to delete credential", - "confirmDeleteCredential": "Are you sure you want to delete credential \"{{name}}\"?", - "credentialCreatedSuccessfully": "Credential created successfully", - "credentialUpdatedSuccessfully": "Credential updated successfully", - "failedToSaveCredential": "Failed to save credential", - "failedToFetchCredentialDetails": "Failed to fetch credential details", - "failedToFetchHostsUsing": "Failed to fetch hosts using this credential", - "loadingCredentials": "Loading credentials...", - "retry": "Retry", - "noCredentials": "No Credentials", - "noCredentialsMessage": "You haven't added any credentials yet. Click \"Add Credential\" to get started.", - "sshCredentials": "SSH Credentials", - "credentialsCount": "{{count}} credentials", - "refresh": "Refresh", - "passwordRequired": "Password is required", - "sshKeyRequired": "SSH key is required", - "credentialAddedSuccessfully": "Credential \"{{name}}\" added successfully", - "general": "General", - "description": "Description", - "folder": "Folder", - "tags": "Tags", - "addTagsSpaceToAdd": "Add tags (press space to add)", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "upload": "Upload", - "updateKey": "Update Key", - "keyPassword": "Key Password", - "keyType": "Key Type", + "credentialsViewer": "Просмотр учетных данных", + "manageYourSSHCredentials": "Безопасное управление учётными данными SSH", + "addCredential": "Добавить учетные данные", + "createCredential": "Создать учетные данные", + "editCredential": "Изменить учетные данные", + "viewCredential": "Просмотр учетных данных", + "duplicateCredential": "Дублировать учетные данные", + "deleteCredential": "Удалить учетные данные", + "updateCredential": "Обновить учетные данные", + "credentialName": "Имя учётной записи", + "credentialDescription": "Описание", + "username": "Имя пользователя", + "searchCredentials": "Поиск учетных данных...", + "selectFolder": "Выберите папку", + "selectAuthType": "Выберите тип аутентификации", + "allFolders": "Все папки", + "allAuthTypes": "Все типы аутентификации", + "uncategorized": "Без категории", + "totalCredentials": "Итого", + "keyBased": "Ключ на основе", + "passwordBased": "Парольный", + "folders": "Папки", + "noCredentialsMatchFilters": "Нет учетных данных, соответствующих вашим фильтрам", + "noCredentialsYet": "Учетные данные еще не созданы", + "createFirstCredential": "Создайте свои первые учетные данные", + "failedToFetchCredentials": "Не удалось получить учетные данные", + "credentialDeletedSuccessfully": "Учетные данные успешно удалены", + "failedToDeleteCredential": "Не удалось удалить учетные данные", + "confirmDeleteCredential": "Вы уверены, что хотите удалить учетные данные \"{{name}}\"?", + "credentialCreatedSuccessfully": "Учетные данные успешно созданы", + "credentialUpdatedSuccessfully": "Учетные данные успешно обновлены", + "failedToSaveCredential": "Не удалось сохранить учетные данные", + "failedToFetchCredentialDetails": "Не удалось получить данные учётных данных", + "failedToFetchHostsUsing": "Не удалось получить хосты с использованием этих учетных данных", + "loadingCredentials": "Загрузка учетных данных...", + "retry": "Повторить", + "noCredentials": "Нет учетных данных", + "noCredentialsMessage": "Вы еще не добавили учетные данные. Нажмите \"Добавить учетные данные\", чтобы начать.", + "sshCredentials": "Учётные данные SSH", + "credentialsCount": "Учетные данные {{count}}", + "refresh": "Обновить", + "passwordRequired": "Требуется пароль", + "sshKeyRequired": "Требуется SSH ключ", + "credentialAddedSuccessfully": "Учетные данные \"{{name}}\" успешно добавлены", + "general": "Общие положения", + "description": "Описание", + "folder": "Папка", + "tags": "Теги", + "addTagsSpaceToAdd": "Добавить теги (нажмите пробел для добавления)", + "password": "Пароль", + "key": "Спецификация", + "sshPrivateKey": "SSH закрытый ключ", + "upload": "Выгрузить", + "updateKey": "Обновить ключ", + "keyPassword": "Пароль ключа", + "keyType": "Тип ключа", "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", - "basicInfo": "Basic Info", - "authentication": "Authentication", - "organization": "Organization", - "basicInformation": "Basic Information", - "basicInformationDescription": "Enter the basic information for this credential", - "authenticationMethod": "Authentication Method", - "authenticationMethodDescription": "Choose how you want to authenticate with SSH servers", - "organizationDescription": "Organize your credentials with folders and tags", - "enterCredentialName": "Enter credential name", - "enterCredentialDescription": "Enter description (optional)", - "enterUsername": "Enter username", - "nameIsRequired": "Credential name is required", - "usernameIsRequired": "Username is required", - "authenticationType": "Authentication Type", - "passwordAuthDescription": "Use password authentication", - "sshKeyAuthDescription": "Use SSH key authentication", - "passwordIsRequired": "Password is required", - "sshKeyIsRequired": "SSH key is required", - "sshKeyType": "SSH Key Type", - "privateKey": "Private Key", - "enterPassword": "Enter password", - "enterPrivateKey": "Enter private key", - "keyPassphrase": "Key Passphrase", - "enterKeyPassphrase": "Enter key passphrase (optional)", - "keyPassphraseOptional": "Optional: leave empty if your key has no passphrase", - "leaveEmptyToKeepCurrent": "Leave empty to keep current value", - "uploadKeyFile": "Upload Key File", - "generateKeyPairButton": "Generate Key Pair", - "generateKeyPair": "Generate Key Pair", - "generateKeyPairDescription": "Generate a new SSH key pair. If you want to protect the key with a passphrase, enter it in the Key Password field below first.", - "deploySSHKey": "Deploy SSH Key", - "deploySSHKeyDescription": "Deploy public key to target server", - "sourceCredential": "Source Credential", - "targetHost": "Target Host", - "deploymentProcess": "Deployment Process", - "deploymentProcessDescription": "This will safely add the public key to the target host's ~/.ssh/authorized_keys file without overwriting existing keys. The operation is reversible.", - "chooseHostToDeploy": "Choose a host to deploy to...", - "deploying": "Deploying...", - "name": "Name", - "noHostsAvailable": "No hosts available", - "noHostsMatchSearch": "No hosts match your search", - "sshKeyGenerationNotImplemented": "SSH key generation feature coming soon", - "connectionTestingNotImplemented": "Connection testing feature coming soon", - "testConnection": "Test Connection", - "selectOrCreateFolder": "Select or create folder", - "noFolder": "No folder", - "orCreateNewFolder": "Or create new folder", - "addTag": "Add tag", - "saving": "Saving...", - "credentialId": "Credential ID", - "overview": "Overview", - "security": "Security", - "usage": "Usage", - "securityDetails": "Security Details", - "securityDetailsDescription": "View encrypted credential information", - "credentialSecured": "Credential Secured", - "credentialSecuredDescription": "All sensitive data is encrypted with AES-256", - "passwordAuthentication": "Password Authentication", - "keyAuthentication": "Key Authentication", - "securityReminder": "Security Reminder", - "securityReminderText": "Never share your credentials. All data is encrypted at rest.", - "hostsUsingCredential": "Hosts Using This Credential", - "noHostsUsingCredential": "No hosts are currently using this credential", - "timesUsed": "Times Used", - "lastUsed": "Last Used", - "connectedHosts": "Connected Hosts", - "created": "Created", - "lastModified": "Last Modified", - "usageStatistics": "Usage Statistics", - "copiedToClipboard": "{{field}} copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "sshKey": "SSH Key", - "createCredentialDescription": "Create a new SSH credential for secure access", - "editCredentialDescription": "Update the credential information", - "listView": "List", - "folderView": "Folders", - "unknownCredential": "Unknown", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The credential will be moved to \"Uncategorized\".", - "removedFromFolder": "Credential \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove credential from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "movedToFolder": "Credential \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move credential to folder", - "sshPublicKey": "SSH Public Key", - "publicKeyNote": "Public key is optional but recommended for key validation", - "publicKeyUploaded": "Public Key Uploaded", - "uploadPublicKey": "Upload Public Key", - "uploadPrivateKeyFile": "Upload Private Key File", - "uploadPublicKeyFile": "Upload Public Key File", - "privateKeyRequiredForGeneration": "Private key is required to generate public key", - "failedToGeneratePublicKey": "Failed to generate public key", - "generatePublicKey": "Generate from Private Key", - "publicKeyGeneratedSuccessfully": "Public key generated successfully", - "detectedKeyType": "Detected key type", - "detectingKeyType": "detecting...", - "optional": "Optional", - "generateKeyPairNew": "Generate New Key Pair", - "generateEd25519": "Generate Ed25519", - "generateECDSA": "Generate ECDSA", - "generateRSA": "Generate RSA", + "basicInfo": "Основная информация", + "authentication": "Проверка подлинности", + "organization": "Организация", + "basicInformation": "Основная информация", + "basicInformationDescription": "Введите основную информацию для этого учетных данных", + "authenticationMethod": "Метод аутентификации", + "authenticationMethodDescription": "Выберите способ аутентификации с SSH серверами", + "organizationDescription": "Организуйте ваши учетные данные с помощью папок и тегов", + "enterCredentialName": "Введите имя учетных данных", + "enterCredentialDescription": "Введите описание (необязательно)", + "enterUsername": "Введите имя пользователя", + "nameIsRequired": "Требуется имя учётной записи", + "usernameIsRequired": "Требуется имя пользователя", + "authenticationType": "Тип аутентификации", + "passwordAuthDescription": "Использовать аутентификацию по паролю", + "sshKeyAuthDescription": "Использовать SSH аутентификацию", + "passwordIsRequired": "Требуется пароль", + "sshKeyIsRequired": "Требуется SSH ключ", + "sshKeyType": "Тип SSH ключа", + "privateKey": "Приватный ключ", + "enterPassword": "Введите пароль", + "enterPrivateKey": "Введите приватный ключ", + "keyPassphrase": "Ключевая фраза", + "enterKeyPassphrase": "Введите пароль ключа (необязательно)", + "keyPassphraseOptional": "Опционально: оставьте пустым, если ваш ключ не имеет ключевой фразы", + "leaveEmptyToKeepCurrent": "Оставьте пустым, чтобы сохранить текущее значение", + "uploadKeyFile": "Загрузить файл ключа", + "generateKeyPairButton": "Сгенерировать ключевую пару", + "generateKeyPair": "Сгенерировать ключевую пару", + "generateKeyPairDescription": "Создайте новую пару ключей SSH. Если вы хотите защитить ключ с помощью ключевой фразы, введите его в поле Пароль ключевого ключа ниже.", + "deploySSHKey": "Установка SSH ключа", + "deploySSHKeyDescription": "Разместить публичный ключ целевому серверу", + "sourceCredential": "Исходные учетные данные", + "targetHost": "Целевой хост", + "deploymentProcess": "Процесс развертывания", + "deploymentProcessDescription": "Это безопасно добавит публичный ключ к файлу ~/.ssh/authorized_keys целевого хоста без перезаписи существующих ключей. Операция может быть отменена.", + "chooseHostToDeploy": "Выберите хост для развертывания...", + "deploying": "Развертывание...", + "name": "Наименование", + "noHostsAvailable": "Нет хостов", + "noHostsMatchSearch": "Нет хостов, соответствующих вашему запросу", + "sshKeyGenerationNotImplemented": "Функция генерации SSH ключей скоро появится", + "connectionTestingNotImplemented": "Испытание подключения в ближайшее время", + "testConnection": "Проверить соединение", + "selectOrCreateFolder": "Выберите или создайте папку", + "noFolder": "Нет папки", + "orCreateNewFolder": "Или создать новую папку", + "addTag": "Добавить тег", + "saving": "Сохранение...", + "credentialId": "Идентификатор учетных данных", + "overview": "Общий обзор", + "security": "Безопасность", + "usage": "Использование", + "securityDetails": "Детали безопасности", + "securityDetailsDescription": "Просмотр зашифрованных реквизитов", + "credentialSecured": "Полномочия защищены", + "credentialSecuredDescription": "Все конфиденциальные данные зашифрованы с помощью AES-256", + "passwordAuthentication": "Аутентификация пароля", + "keyAuthentication": "Аутентификация ключа", + "securityReminder": "Напоминание о безопасности", + "securityReminderText": "Никогда не делитесь своими учетными данными. Все данные зашифрованы на отдых.", + "hostsUsingCredential": "Хосты с использованием этого Учетные данные", + "noHostsUsingCredential": "В настоящее время ни один хост не использует эти учетные данные", + "timesUsed": "Использовано", + "lastUsed": "Последнее Использовано", + "connectedHosts": "Подключенные хосты", + "created": "Создано", + "lastModified": "Последнее изменение", + "usageStatistics": "Статистика использования", + "copiedToClipboard": "{{field}} скопирован в буфер обмена", + "failedToCopy": "Не удалось скопировать в буфер обмена", + "sshKey": "SSH ключ", + "createCredentialDescription": "Создать новый SSH учетные данные для безопасного доступа", + "editCredentialDescription": "Обновить информацию о учетных данных", + "listView": "Список", + "folderView": "Папки", + "unknownCredential": "Неизвестен", + "confirmRemoveFromFolder": "Вы уверены, что хотите удалить \"{{name}}\" из папки \"{{folder}}\"? Учётные данные будут перемещены в \"Без категории\".", + "removedFromFolder": "Учётные данные \"{{name}}\" успешно удалены из папки", + "failedToRemoveFromFolder": "Не удалось удалить учетные данные из папки", + "folderRenamed": "Папка \"{{oldName}}\" успешно переименована в \"{{newName}}\"", + "failedToRenameFolder": "Не удалось переименовать папку", + "movedToFolder": "Учетные данные \"{{name}}\" перемещены в \"{{folder}}\" успешно", + "failedToMoveToFolder": "Не удалось переместить учетные данные в папку", + "sshPublicKey": "Публичный SSH ключ", + "publicKeyNote": "Публичный ключ является необязательным, но рекомендуется для проверки ключа", + "publicKeyUploaded": "Открытый ключ загружен", + "uploadPublicKey": "Загрузить открытый ключ", + "uploadPrivateKeyFile": "Загрузить файл с закрытым ключом", + "uploadPublicKeyFile": "Загрузить файл открытого ключа", + "privateKeyRequiredForGeneration": "Для генерации публичного ключа требуется закрытый ключ", + "failedToGeneratePublicKey": "Не удалось сгенерировать открытый ключ", + "generatePublicKey": "Сгенерировать из приватного ключа", + "publicKeyGeneratedSuccessfully": "Открытый ключ успешно создан", + "detectedKeyType": "Обнаружен тип ключа", + "detectingKeyType": "обнаружение...", + "optional": "Опционально", + "generateKeyPairNew": "Создать новую пару ключей", + "generateEd25519": "Генерировать Ed25519", + "generateECDSA": "Создать ECDSA", + "generateRSA": "Сгенерировать RSA", "keyTypeEcdsaP256": "ECDSA P-256 (SSH)", "keyTypeEcdsaP384": "ECDSA P-384 (SSH)", "keyTypeEcdsaP521": "ECDSA P-521 (SSH)", "keyTypeDsa": "DSA (SSH)", "keyTypeRsaSha256": "RSA-SHA2-256", "keyTypeRsaSha512": "RSA-SHA2-512", - "keyPairGeneratedSuccessfully": "{{keyType}} key pair generated successfully", - "failedToGenerateKeyPair": "Failed to generate key pair", - "generateKeyPairNote": "Generate a new SSH key pair directly. This will replace any existing keys in the form.", - "invalidKey": "Invalid Key", - "detectionError": "Detection Error", - "removing": "Removing:", - "clickToEditCredential": "Click to edit credential", - "dragToMoveBetweenFolders": "Drag to move between folders", - "keyBasedOnlyForDeployment": "Only SSH key-based credentials can be deployed", - "publicKeyRequiredForDeployment": "Public key is required for deployment", - "selectTargetHost": "Please select a target host", - "keyDeployedSuccessfully": "SSH key deployed successfully", - "deploymentFailed": "Deployment failed", - "failedToDeployKey": "Failed to deploy SSH key", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", + "keyPairGeneratedSuccessfully": "Пара ключей {{keyType}} успешно создана", + "failedToGenerateKeyPair": "Не удалось сгенерировать пару ключей", + "generateKeyPairNote": "Создать новую SSH пару ключей напрямую. Это заменит любые существующие ключи в форме.", + "invalidKey": "Неверный ключ", + "detectionError": "Ошибка обнаружения", + "removing": "Удаление:", + "clickToEditCredential": "Нажмите, чтобы изменить учетные данные", + "dragToMoveBetweenFolders": "Перетащите между папками", + "keyBasedOnlyForDeployment": "Только учетные данные на основе ключа могут быть развернуты", + "publicKeyRequiredForDeployment": "Для установки необходим открытый ключ", + "selectTargetHost": "Пожалуйста, выберите целевой узел", + "keyDeployedSuccessfully": "SSH ключ успешно развернут", + "deploymentFailed": "Ошибка развертывания", + "failedToDeployKey": "Не удалось развернуть SSH ключ", + "clickToRenameFolder": "Нажмите, чтобы переименовать папку", + "renameFolder": "Переименовать папку", "idLabel": "ID:" }, "dragIndicator": { - "error": "Error: {{error}}", - "dragging": "Dragging {{fileName}}", - "preparing": "Preparing {{fileName}}", - "readySingle": "Ready to download {{fileName}}", - "readyMultiple": "Ready to download {{count}} files", - "batchDrag": "Drag {{count}} files to desktop", - "dragToDesktop": "Drag to desktop", - "canDragAnywhere": "You can drag files anywhere on your desktop" + "error": "Ошибка: {{error}}", + "dragging": "Перетаскивание {{fileName}}", + "preparing": "Подготовка {{fileName}}", + "readySingle": "Готово к загрузке {{fileName}}", + "readyMultiple": "Готово к загрузке файлов {{count}}", + "batchDrag": "Перетащите файлы {{count}} на рабочий стол", + "dragToDesktop": "Перетащите на рабочий стол", + "canDragAnywhere": "Вы можете перетаскивать файлы на рабочем столе" }, "sshTools": { - "title": "SSH Tools", - "closeTools": "Close SSH Tools", - "keyRecording": "Key Recording", - "startKeyRecording": "Start Key Recording", - "stopKeyRecording": "Stop Key Recording", - "selectTerminals": "Select terminals:", - "typeCommands": "Type commands (all keys supported):", - "commandsWillBeSent": "Commands will be sent to {{count}} selected terminal(s).", - "settings": "Settings", - "enableRightClickCopyPaste": "Enable right‑click copy/paste", - "shareIdeas": "Have ideas for what should come next for ssh tools? Share them on", + "title": "SSH инструменты", + "closeTools": "Закрыть SSH инструменты", + "keyRecording": "Запись ключа", + "startKeyRecording": "Запустить запись ключа", + "stopKeyRecording": "Запись клавиши остановки", + "selectTerminals": "Выберите терминалы:", + "typeCommands": "Введите команды (все поддерживаемые ключи):", + "commandsWillBeSent": "Команды будут отправлены {{count}} выбранным терминалам(ям).", + "settings": "Настройки", + "enableRightClickCopyPaste": "Включить копию/вставку правого клика", + "shareIdeas": "У вас есть идеи о том, что нужно сделать дальше для ssh? Поделитесь ими на", "scripts": { - "inputPlaceholder": "e.g., System Commands, Docker Scripts" + "inputPlaceholder": "например, Системные команды, Docker скрипты" } }, "snippets": { - "title": "Snippets", - "new": "New Snippet", - "create": "Create Snippet", - "edit": "Edit Snippet", - "run": "Run", - "empty": "No snippets yet", - "emptyHint": "Create a snippet to save commonly used commands", - "searchSnippets": "Search snippets...", - "name": "Name", - "description": "Description", - "content": "Command", - "namePlaceholder": "e.g., Restart Nginx", - "descriptionPlaceholder": "Optional description", - "contentPlaceholder": "e.g., sudo systemctl restart nginx", - "nameRequired": "Name is required", - "contentRequired": "Command is required", - "createDescription": "Create a new command snippet for quick execution", - "editDescription": "Edit this command snippet", - "deleteConfirmTitle": "Delete Snippet", - "deleteConfirmDescription": "Are you sure you want to delete \"{{name}}\"?", - "createSuccess": "Snippet created successfully", - "updateSuccess": "Snippet updated successfully", - "deleteSuccess": "Snippet deleted successfully", - "createFailed": "Failed to create snippet", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "failedToFetch": "Failed to fetch snippets", - "executeSuccess": "Executing: {{name}}", - "copySuccess": "Copied \"{{name}}\" to clipboard", - "runTooltip": "Execute this snippet in the terminal", - "copyTooltip": "Copy snippet to clipboard", - "editTooltip": "Edit this snippet", - "deleteTooltip": "Delete this snippet", - "newFolder": "New Folder", - "reorderSameFolder": "Can only reorder snippets within the same folder", - "reorderSuccess": "Snippets reordered successfully", - "reorderFailed": "Failed to reorder snippets", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? All snippets will be moved to Uncategorized.", - "deleteFolderSuccess": "Folder deleted successfully", - "deleteFolderFailed": "Failed to delete folder", - "updateFolderSuccess": "Folder updated successfully", - "createFolderSuccess": "Folder created successfully", - "updateFolderFailed": "Failed to update folder", - "createFolderFailed": "Failed to create folder", - "selectTerminals": "Select Terminals (optional)", - "executeOnSelected": "Execute on {{count}} selected terminal(s)", - "executeOnCurrent": "Execute on current terminal (click to select multiple)", - "folder": "Folder", - "selectFolder": "Select a folder or leave empty", - "noFolder": "No folder (Uncategorized)", - "folderName": "Folder Name", - "folderNameRequired": "Folder name is required", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "updateFolder": "Update Folder", - "createFolder": "Create Folder", - "editFolder": "Edit Folder", - "editFolderDescription": "Customize your snippet folder", - "createFolderDescription": "Organize your snippets into folders" + "title": "Сниппеты", + "new": "Новый сниппет", + "create": "Создать сниппет", + "edit": "Редактировать сниппет", + "run": "Запустить", + "empty": "Пока нет фрагментов", + "emptyHint": "Создайте сниппет для сохранения часто используемых команд", + "searchSnippets": "Поиск сниппетов...", + "name": "Наименование", + "description": "Описание", + "content": "Команда", + "namePlaceholder": "например, перезагрузите Nginx", + "descriptionPlaceholder": "Дополнительное описание", + "contentPlaceholder": "например, nginx перезапуск sudo systemctl", + "nameRequired": "Требуется имя", + "contentRequired": "Требуется команда", + "createDescription": "Создать новую команду сниппета для быстрого выполнения", + "editDescription": "Редактировать эту команду сниппета", + "deleteConfirmTitle": "Удалить сниппет", + "deleteConfirmDescription": "Вы уверены, что хотите удалить \"{{name}}\"?", + "createSuccess": "Сниппет успешно создан", + "updateSuccess": "Сниппет успешно обновлен", + "deleteSuccess": "Сниппет успешно удален", + "createFailed": "Не удалось создать сниппет", + "updateFailed": "Не удалось обновить сниппет", + "deleteFailed": "Не удалось удалить сниппет", + "failedToFetch": "Не удалось получить сниппеты", + "executeSuccess": "Выполнение: {{name}}", + "copySuccess": "Скопировано \"{{name}}\" в буфер обмена", + "runTooltip": "Выполнить этот сниппет в терминале", + "copyTooltip": "Копировать сниппет в буфер обмена", + "editTooltip": "Редактировать этот сниппет", + "deleteTooltip": "Удалить этот сниппет", + "newFolder": "Новая папка", + "reorderSameFolder": "Можно изменять порядок фрагментов только в той же папке", + "reorderSuccess": "Порядок сниппетов успешно изменен", + "reorderFailed": "Не удалось изменить порядок сниппетов", + "deleteFolderConfirm": "Удалить папку \"{{name}}? Все сниппеты будут перемещены в Без категории.", + "deleteFolderSuccess": "Папка успешно удалена", + "deleteFolderFailed": "Не удалось удалить папку", + "updateFolderSuccess": "Папка успешно обновлена", + "createFolderSuccess": "Папка успешно создана", + "updateFolderFailed": "Не удалось обновить папку", + "createFolderFailed": "Не удалось создать папку", + "selectTerminals": "Выберите терминалы (опционально)", + "executeOnSelected": "Выполнить с {{count}} выбранных терминалов(ов)", + "executeOnCurrent": "Выполнить на текущем терминале (нажмите, чтобы выбрать несколько)", + "folder": "Папка", + "selectFolder": "Выберите папку или оставьте пустым", + "noFolder": "Нет папки (без категории)", + "folderName": "Имя папки", + "folderNameRequired": "Требуется имя папки", + "folderColor": "Цвет папки", + "folderIcon": "Иконка папки", + "preview": "Предпросмотр", + "updateFolder": "Обновить папку", + "createFolder": "Создать папку", + "editFolder": "Изменить папку", + "editFolderDescription": "Настройка папки сниппетов", + "createFolderDescription": "Организовать ваши сниппеты в папках" }, "commandHistory": { - "title": "History", - "searchPlaceholder": "Search commands...", - "noTerminal": "No active terminal", - "noTerminalHint": "Open a terminal to see its command history.", - "empty": "No command history yet", - "emptyHint": "Execute commands in the active terminal to build its history.", - "noResults": "No commands found", - "noResultsHint": "No commands matching \"{{query}}\"", - "deleteSuccess": "Command deleted from history", - "deleteFailed": "Failed to delete command.", - "deleteTooltip": "Delete command", - "tabHint": "Use Tab in Terminal to autocomplete from command history if enabled in User Profile", - "authRequiredRefresh": "Authentication required. Please refresh the page.", - "dataAccessLockedReauth": "Data access locked. Please re-authenticate.", - "loading": "Loading command history...", - "error": "Error Loading History" + "title": "История", + "searchPlaceholder": "Поиск команд...", + "noTerminal": "Нет активных терминалов", + "noTerminalHint": "Откройте терминал, чтобы увидеть историю команд.", + "empty": "Пока нет истории команд", + "emptyHint": "Выполните команды в активном терминале для построения своей истории.", + "noResults": "Команды не найдены", + "noResultsHint": "Нет команд, соответствующих \"{{query}}\"", + "deleteSuccess": "Команда удалена из истории", + "deleteFailed": "Не удалось удалить команду.", + "deleteTooltip": "Удалить команду", + "tabHint": "Использовать Tab в терминале для автозаполнения из истории команд, если включено в профиле пользователя", + "authRequiredRefresh": "Требуется аутентификация. Пожалуйста, обновите страницу.", + "dataAccessLockedReauth": "Доступ к данным заблокирован. Пожалуйста, повторите аутентификацию.", + "loading": "Загрузка истории команд...", + "error": "Ошибка загрузки истории" }, "splitScreen": { - "title": "Split Screen", - "none": "None", - "twoSplit": "2-Way", - "threeSplit": "3-Way", - "fourSplit": "4-Way", - "availableTabs": "Available Tabs", - "dragTabsHint": "Drag tabs to the layout cells below to assign them", - "layout": "Split Screen Layout", - "dropHere": "Drop tab here", - "apply": "Apply Split", - "clear": "Clear Split", - "selectMode": "Select a split screen mode", - "helpText": "Choose how many tabs you want to view at once", - "success": "Split screen applied successfully", - "cleared": "Split screen cleared", + "title": "Разделить экран", + "none": "Нет", + "twoSplit": "2 линии", + "threeSplit": "Трехсторонний", + "fourSplit": "4-сторонний", + "availableTabs": "Доступные вкладки", + "dragTabsHint": "Перетащите вкладки в ячейки макета, чтобы назначить их", + "layout": "Разделить расположение экрана", + "dropHere": "Перетащите вкладку сюда", + "apply": "Применить разделение", + "clear": "Очистить сплит", + "selectMode": "Выберите режим разделения экрана", + "helpText": "Выберите, сколько вкладок вы хотите просматривать одновременно", + "success": "Разделение экрана успешно применено", + "cleared": "Разделенный экран очищен", "error": { - "noAssignments": "Please assign at least one tab to the layout", - "fillAllSlots": "Please fill all {{count}} slots before applying" + "noAssignments": "Пожалуйста, назначьте по крайней мере одну вкладку для макета", + "fillAllSlots": "Пожалуйста, заполните все слоты {{count}} перед применением" } }, "homepage": { - "loggedInTitle": "Logged in!", - "loggedInMessage": "You are logged in! Use the sidebar to access all available tools. To get started, create an SSH Host in the SSH Manager tab. Once created, you can connect to that host using the other apps in the sidebar.", - "failedToLoadAlerts": "Failed to load alerts", - "failedToDismissAlert": "Failed to dismiss alert" + "loggedInTitle": "Вход выполнен!", + "loggedInMessage": "Вы вошли в систему! Используйте боковую панель, чтобы получить доступ ко всем доступным инструментам. Чтобы начать, создайте SSH хост на вкладке SSH Manager. После создания вы можете подключиться к этому хосту, используя другие приложения в боковой панели.", + "failedToLoadAlerts": "Не удалось загрузить оповещения", + "failedToDismissAlert": "Не удалось уволить оповещение" }, "serverConfig": { - "title": "Server Configuration", - "description": "Configure the Termix server URL to connect to your backend services", - "serverUrl": "Server URL", - "enterServerUrl": "Please enter a server URL", - "testConnectionFirst": "Please test the connection first", - "connectionSuccess": "Connection successful!", - "connectionFailed": "Connection failed", - "connectionError": "Connection error occurred", - "connected": "Connected", - "disconnected": "Disconnected", - "configSaved": "Configuration saved successfully", - "saveFailed": "Failed to save configuration", - "saveError": "Error saving configuration", - "saving": "Saving...", - "saveConfig": "Save Configuration", - "helpText": "Enter the URL where your Termix server is running (e.g., http://localhost:30001 or https://your-server.com)", - "warning": "Warning", - "notValidatedWarning": "URL not validated - ensure it's correct", - "changeServer": "Change Server", - "mustIncludeProtocol": "Server URL must start with http:// or https://" + "title": "Конфигурация сервера", + "description": "Настройте URL сервера Termix для подключения к вашим сервисам backend", + "serverUrl": "URL сервера", + "enterServerUrl": "Пожалуйста, введите URL сервера", + "testConnectionFirst": "Сначала проверьте подключение", + "connectionSuccess": "Успешное подключение!", + "connectionFailed": "Не удалось подключиться", + "connectionError": "Ошибка соединения", + "connected": "Подключено", + "disconnected": "Отключено", + "configSaved": "Конфигурация успешно сохранена", + "saveFailed": "Не удалось сохранить настройки", + "saveError": "Ошибка при сохранении конфигурации", + "saving": "Сохранение...", + "saveConfig": "Сохранить конфигурацию", + "helpText": "Введите URL, на котором запущен сервер Termix (например, http://localhost:30001 или https://your-server.com)", + "warning": "Предупреждение", + "notValidatedWarning": "URL не валидирован - убедитесь, что это правильно", + "changeServer": "Сменить сервер", + "mustIncludeProtocol": "Адрес сервера должен начинаться с http:// или https://" }, "versionCheck": { - "error": "Version Check Error", - "checkFailed": "Failed to check for updates", - "upToDate": "App is Up to Date", - "currentVersion": "You are running version {{version}}", - "updateAvailable": "Update Available", - "newVersionAvailable": "A new version is available! You are running {{current}}, but {{latest}} is available.", - "releasedOn": "Released on {{date}}", - "downloadUpdate": "Download Update", - "dismiss": "Dismiss", - "checking": "Checking for updates...", - "checkUpdates": "Check for Updates", - "checkingUpdates": "Checking for updates...", - "refresh": "Refresh", - "updateRequired": "Update Required", - "updateDismissed": "Update notification dismissed", - "noUpdatesFound": "No updates found" + "error": "Ошибка проверки версии", + "checkFailed": "Не удалось проверить обновления", + "upToDate": "Приложение обновлено", + "currentVersion": "Вы используете версию {{version}}", + "updateAvailable": "Доступно обновление", + "newVersionAvailable": "Доступна новая версия! Вы используете {{current}}, но {{latest}} доступен.", + "releasedOn": "Выпущено на {{date}}", + "downloadUpdate": "Загрузить обновление", + "dismiss": "Отклонить", + "checking": "Проверка обновлений...", + "checkUpdates": "Проверить обновления", + "checkingUpdates": "Проверка обновлений...", + "refresh": "Обновить", + "updateRequired": "Требуется обновление", + "updateDismissed": "Уведомление об обновлении отклонено", + "noUpdatesFound": "Обновления не найдены" }, "common": { - "close": "Close", + "close": "Закрыть", "minimize": "Minimize", - "online": "Online", - "offline": "Offline", - "continue": "Continue", - "maintenance": "Maintenance", - "degraded": "Degraded", + "online": "Онлайн", + "offline": "Оффлайн", + "continue": "Продолжить", + "maintenance": "Техническое обслуживание", + "degraded": "Ухудшение", "discord": "Discord", - "error": "Error", - "warning": "Warning", - "info": "Info", - "success": "Success", - "loading": "Loading...", - "required": "Required", - "optional": "Optional", - "connect": "Connect", - "connecting": "Connecting...", - "creating": "Creating...", - "clear": "Clear", - "toggleSidebar": "Toggle Sidebar", + "error": "Ошибка", + "warning": "Предупреждение", + "info": "Инфо", + "success": "Успешно", + "loading": "Загрузка...", + "required": "Требуется", + "optional": "Опционально", + "connect": "Подключиться", + "connecting": "Подключение...", + "creating": "Создание...", + "clear": "Очистить", + "toggleSidebar": "Переключить боковую панель", "sidebar": "Sidebar", - "home": "Home", - "expired": "Expired", - "expiresToday": "Expires today", + "home": "Домашний", + "expired": "Истёк", + "expiresToday": "Истекает сегодня", "expiresTomorrow": "Expires in {{days}} days", - "updateAvailable": "Update Available", - "sshPath": "SSH Path", - "localPath": "Local Path", - "appName": "Termix", + "updateAvailable": "Доступно обновление", + "sshPath": "Путь SSH", + "localPath": "Локальный путь", + "appName": "Термикс", "resetSidebarWidth": "Reset sidebar width", - "dragToResizeSidebar": "Drag to resize sidebar", - "noAuthCredentials": "No authentication credentials available for this SSH host", - "noReleases": "No Releases", - "updatesAndReleases": "Updates & Releases", - "newVersionAvailable": "A new version ({{version}}) is available.", - "failedToFetchUpdateInfo": "Failed to fetch update information", - "preRelease": "Pre-release", - "loginFailed": "Login failed", - "noReleasesFound": "No releases found.", - "yourBackupCodes": "Your Backup Codes", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", + "dragToResizeSidebar": "Перетащите для изменения размера боковой панели", + "noAuthCredentials": "Нет учетных данных для этого SSH хоста", + "noReleases": "Нет релизов", + "updatesAndReleases": "Обновления и релизы", + "newVersionAvailable": "Доступна новая версия ({{version}}).", + "failedToFetchUpdateInfo": "Не удалось получить информацию об обновлении", + "preRelease": "Пре-релиз", + "loginFailed": "Вход не удался", + "noReleasesFound": "Релизы не найдены.", + "yourBackupCodes": "Ваши резервные коды", + "sendResetCode": "Отправить код сброса", + "verifyCode": "Проверить код", + "resetPassword": "Сбросить пароль", "resetCode": "Reset Code", - "newPassword": "New Password", - "folder": "Folder", - "file": "File", - "renamedSuccessfully": "renamed successfully", - "deletedSuccessfully": "deleted successfully", - "noTunnelConnections": "No tunnel connections configured", - "sshTools": "SSH Tools", - "english": "English", - "chinese": "Chinese", - "german": "German", - "cancel": "Cancel", - "username": "Username", - "name": "Name", - "login": "Login", - "logout": "Logout", - "register": "Register", - "password": "Password", - "version": "Version", - "confirmPassword": "Confirm Password", - "back": "Back", - "email": "Email", - "submit": "Submit", - "change": "Change", - "save": "Save", - "saving": "Saving...", - "delete": "Delete", - "edit": "Edit", - "add": "Add", - "search": "Search", - "confirm": "Confirm", - "yes": "Yes", - "no": "No", - "ok": "OK", - "enabled": "Enabled", - "disabled": "Disabled", - "important": "Important", - "notEnabled": "Not Enabled", - "settingUp": "Setting up...", - "next": "Next", - "previous": "Previous", - "refresh": "Refresh", - "settings": "Settings", - "profile": "Profile", - "help": "Help", - "about": "About", - "language": "Language", - "autoDetect": "Auto-detect", - "changeAccountPassword": "Change your account password", - "passwordResetTitle": "Password Reset", - "passwordResetDescription": "You are about to reset your password. This will log you out of all active sessions.", - "enterSixDigitCode": "Enter the 6-digit code from the docker container logs for user:", - "enterNewPassword": "Enter your new password for user:", - "passwordsDoNotMatch": "Passwords do not match", - "passwordMinLength": "Password must be at least 6 characters long", - "passwordResetSuccess": "Password reset successfully! You can now log in with your new password.", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", - "documentation": "Documentation", - "retry": "Retry", - "checking": "Checking...", - "checkingDatabase": "Checking database connection...", - "actions": "Actions", - "remove": "Remove", + "newPassword": "Новый пароль", + "folder": "Папка", + "file": "Файл", + "renamedSuccessfully": "успешно переименовано", + "deletedSuccessfully": "успешно удалено", + "noTunnelConnections": "туннельные соединения не настроены", + "sshTools": "SSH инструменты", + "english": "Russian", + "chinese": "Китайский", + "german": "Немецкий", + "cancel": "Отмена", + "username": "Имя пользователя", + "name": "Наименование", + "login": "Логин", + "logout": "Выйти", + "register": "Регистрация", + "password": "Пароль", + "version": "Версии", + "confirmPassword": "Подтверждение пароля", + "back": "Назад", + "email": "Почта", + "submit": "Отправить", + "change": "Изменить", + "save": "Сохранить", + "saving": "Сохранение...", + "delete": "Удалить", + "edit": "Редактирование", + "add": "Добавить", + "search": "Искать", + "confirm": "Подтвердить", + "yes": "Да", + "no": "Нет", + "ok": "ОК", + "enabled": "Включено", + "disabled": "Отключено", + "important": "Важное", + "notEnabled": "Не включен", + "settingUp": "Настройка...", + "next": "Следующий", + "previous": "Предыдущий", + "refresh": "Обновить", + "settings": "Настройки", + "profile": "Профиль", + "help": "Справка", + "about": "О программе", + "language": "Язык", + "autoDetect": "Автоопределение", + "changeAccountPassword": "Изменить пароль учетной записи", + "passwordResetTitle": "Сброс пароля", + "passwordResetDescription": "Вы собираетесь сбросить пароль. Это выведет вас из всех активных сессий.", + "enterSixDigitCode": "Введите 6-значный код из журналов docker container для пользователя:", + "enterNewPassword": "Введите новый пароль для пользователя:", + "passwordsDoNotMatch": "Пароли не совпадают", + "passwordMinLength": "Пароль должен содержать не менее 6 символов", + "passwordResetSuccess": "Пароль успешно сброшен! Теперь вы можете войти с новым паролем.", + "failedToInitiatePasswordReset": "Не удалось сбросить пароль", + "failedToVerifyResetCode": "Не удалось проверить код сброса", + "failedToCompletePasswordReset": "Не удалось завершить сброс пароля", + "documentation": "Документация", + "retry": "Повторить", + "checking": "Проверка...", + "checkingDatabase": "Проверка подключения к базе данных...", + "actions": "Действия", + "remove": "Удалить", "revoke": "Revoke", - "create": "Create" + "create": "Создать" }, "nav": { - "home": "Home", - "hosts": "Hosts", - "credentials": "Credentials", - "terminal": "Terminal", - "docker": "Docker", - "tunnels": "Tunnels", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "admin": "Admin", - "userProfile": "User Profile", - "tools": "Tools", - "snippets": "Snippets", + "home": "Домашний", + "hosts": "Узлы", + "credentials": "Полномочия", + "terminal": "Терминал", + "docker": "Докер", + "tunnels": "Туннели", + "fileManager": "Файловый менеджер", + "serverStats": "Статистика сервера", + "admin": "Админ", + "userProfile": "Профиль пользователя", + "tools": "Инструменты", + "snippets": "Сниппеты", "newTab": "New Tab", - "splitScreen": "Split Screen", - "closeTab": "Close Tab", - "sshManager": "SSH Manager", - "hostManager": "Host Manager", - "cannotSplitTab": "Cannot split this tab", + "splitScreen": "Разделить экран", + "closeTab": "Закрыть вкладку", + "sshManager": "SSH менеджер", + "hostManager": "Менеджер хостов", + "cannotSplitTab": "Нельзя разделить эту вкладку", "tabNavigation": "Tab Navigation", "hostTabTitle": "{{username}}@{{ip}}:{{port}}" }, "admin": { - "title": "Admin Settings", + "title": "Админ настройки", "oidc": "OIDC", - "users": "Users", - "userManagement": "User Management", - "makeAdmin": "Make Admin", - "removeAdmin": "Remove Admin", - "deleteUser": "Delete user {{username}}? This cannot be undone.", - "allowRegistration": "Allow Registration", - "oidcSettings": "OIDC Settings", - "clientId": "Client ID", - "clientSecret": "Client Secret", - "issuerUrl": "Issuer URL", - "authorizationUrl": "Authorization URL", - "tokenUrl": "Token URL", - "updateSettings": "Update Settings", - "confirmDelete": "Are you sure you want to delete this user?", - "confirmMakeAdmin": "Are you sure you want to make {{username}} an admin?", - "confirmRemoveAdmin": "Are you sure you want to remove admin status from {{username}}?", - "externalAuthentication": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for OIDC/OAuth2 authentication.", - "userIdentifierPath": "User Identifier Path", - "displayNamePath": "Display Name Path", - "scopes": "Scopes", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", + "users": "Пользователи", + "userManagement": "Управление пользователями", + "makeAdmin": "Сделать админом", + "removeAdmin": "Удалить админа", + "deleteUser": "Удалить пользователя {{username}}? Это действие не может быть отменено.", + "allowRegistration": "Разрешить регистрацию", + "oidcSettings": "Настройки OIDC", + "clientId": "ID клиента", + "clientSecret": "Секрет клиента", + "issuerUrl": "URL эмитента", + "authorizationUrl": "URL авторизации", + "tokenUrl": "URL токена", + "updateSettings": "Настройки обновления", + "confirmDelete": "Вы уверены, что хотите удалить этого пользователя?", + "confirmMakeAdmin": "Вы уверены, что хотите сделать {{username}} администратором?", + "confirmRemoveAdmin": "Вы уверены, что хотите удалить статус администратора из {{username}}?", + "externalAuthentication": "Внешняя аутентификация (OIDC)", + "configureExternalProvider": "Настройка внешнего поставщика идентификации для аутентификации OIDC/OAuth2.", + "userIdentifierPath": "Путь к идентификатору пользователя", + "displayNamePath": "Отображаемый путь", + "scopes": "Области", + "saving": "Сохранение...", + "saveConfiguration": "Сохранить конфигурацию", "reset": "Reset", - "success": "Success", - "loading": "Loading...", - "refresh": "Refresh", - "loadingUsers": "Loading users...", - "username": "Username", - "type": "Type", - "actions": "Actions", - "external": "External", - "local": "Local", - "adminManagement": "Admin Management", - "makeUserAdmin": "Make User Admin", - "adding": "Adding...", - "currentAdmins": "Current Admins", - "adminBadge": "Admin", - "removeAdminButton": "Remove Admin", - "general": "General", - "userRegistration": "User Registration", - "allowNewAccountRegistration": "Allow new account registration", - "allowPasswordLogin": "Allow username/password login", - "missingRequiredFields": "Missing required fields: {{fields}}", - "oidcConfigurationUpdated": "OIDC configuration updated successfully!", - "failedToFetchOidcConfig": "Failed to fetch OIDC configuration", - "failedToFetchRegistrationStatus": "Failed to fetch registration status", - "failedToFetchPasswordLoginStatus": "Failed to fetch password login status", - "failedToFetchUsers": "Failed to fetch users", - "oidcConfigurationDisabled": "OIDC configuration disabled successfully!", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToDisableOidcConfig": "Failed to disable OIDC configuration", - "enterUsernameToMakeAdmin": "Enter username to make admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "failedToMakeUserAdmin": "Failed to make user admin", - "removeAdminStatus": "Remove admin status from {{username}}?", - "adminStatusRemoved": "Admin status removed from {{username}}", - "failedToRemoveAdminStatus": "Failed to remove admin status", - "userDeletedSuccessfully": "User {{username}} deleted successfully", - "failedToDeleteUser": "Failed to delete user", - "overrideUserInfoUrl": "Override User Info URL (not required)", - "failedToFetchSessions": "Failed to fetch sessions", - "sessionRevokedSuccessfully": "Session revoked successfully", - "failedToRevokeSession": "Failed to revoke session", - "confirmRevokeSession": "Are you sure you want to revoke this session?", - "confirmRevokeAllSessions": "Are you sure you want to revoke all sessions for this user?", - "failedToRevokeSessions": "Failed to revoke sessions", - "sessionsRevokedSuccessfully": "Sessions revoked successfully", - "linkToPasswordAccount": "Link to Password Account", - "linkOIDCDialogTitle": "Link OIDC Account to Password Account", - "linkOIDCDialogDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "createUser": "Create User", - "createUserDescription": "Create a new local user with username and password", - "enterUsername": "Enter username", - "enterPassword": "Enter password", - "userCreatedSuccessfully": "User {{username}} created successfully", - "failedToCreateUser": "Failed to create user", - "manageUser": "Manage User", - "manageUserDescription": "Manage user settings, roles, and permissions", - "authType": "Authentication Type", - "adminStatus": "Admin Status", - "userId": "User ID", - "regularUser": "Regular User", - "adminPrivileges": "Administrator Privileges", - "administratorRole": "Administrator Role", - "administratorRoleDescription": "Grant full system access and management privileges", - "passwordManagement": "Password Management", - "passwordResetWarning": "Resetting a user's password will delete all their data (SSH hosts, credentials, settings). This action cannot be undone.", - "resetUserPassword": "Reset User Password", - "resettingPassword": "Resetting...", - "passwordResetInitiated": "Password reset initiated for {{username}}. Reset code sent.", - "failedToResetPassword": "Failed to initiate password reset", - "sessionManagement": "Session Management", - "revokeAllSessions": "Revoke All Sessions", - "revokeAllSessionsDescription": "Force logout from all devices and sessions", - "revoking": "Revoking...", - "revoke": "Revoke All", - "dangerZone": "Danger Zone", - "deleteUserTitle": "Delete User Account", - "deleteUserWarning": "Permanently delete this user account and all associated data. This action cannot be undone.", - "deleting": "Deleting...", - "cannotDeleteSelf": "You cannot delete your own account", - "cannotRemoveLastAdmin": "Cannot remove the last administrator", - "cannotRemoveOwnAdmin": "You cannot remove your own admin privileges", - "cannotModifyOwnAdminStatus": "You cannot modify your own admin status", - "dualAuth": "Dual Auth", - "externalOIDC": "External (OIDC)", - "localPassword": "Local Password", - "confirmRevokeOwnSessions": "Are you sure you want to revoke all your own sessions? You will be logged out.", - "linkOIDCWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOIDCActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOIDCActionAddCapability": "Add OIDC login capability to the target password account", - "linkOIDCActionDualAuth": "Allow the password account to login with both password and OIDC", - "linkTargetUsernameLabel": "Target Password Account Username", - "linkTargetUsernamePlaceholder": "Enter username of password account", - "linkAccountsButton": "Link Accounts", - "linkingAccounts": "Linking...", - "accountsLinkedSuccessfully": "OIDC user {{oidcUsername}} has been linked to {{targetUsername}}", - "failedToLinkAccounts": "Failed to link accounts", - "linkTargetUsernameRequired": "Target username is required", - "unlinkOIDCTitle": "Unlink OIDC Authentication", - "unlinkOIDCDescription": "Remove OIDC authentication from {{username}}? The user will only be able to login with username/password after this.", - "unlinkOIDCSuccess": "OIDC unlinked from {{username}}", - "failedToUnlinkOIDC": "Failed to unlink OIDC", - "databaseSecurity": "Database Security", - "encryptionStatus": "Encryption Status", - "encryptionEnabled": "Encryption Enabled", - "enabled": "Enabled", - "disabled": "Disabled", - "keyId": "Key ID", - "created": "Created", - "migrationStatus": "Migration Status", - "migrationCompleted": "Migration completed", - "migrationRequired": "Migration required", - "deviceProtectedMasterKey": "Environment-Protected Master Key", - "legacyKeyStorage": "Legacy Key Storage", - "masterKeyEncryptedWithDeviceFingerprint": "Master key encrypted with environment fingerprint (KEK protection active)", - "keyNotProtectedByDeviceBinding": "Key not protected by environment binding (upgrade recommended)", + "success": "Успешно", + "loading": "Загрузка...", + "refresh": "Обновить", + "loadingUsers": "Загрузка пользователей...", + "username": "Имя пользователя", + "type": "Тип", + "actions": "Действия", + "external": "Внешний", + "local": "Локальный", + "adminManagement": "Управление администратором", + "makeUserAdmin": "Сделать Администратором пользователя", + "adding": "Добавление...", + "currentAdmins": "Текущие администраторы", + "adminBadge": "Админ", + "removeAdminButton": "Удалить админа", + "general": "Общие положения", + "userRegistration": "Регистрация пользователя", + "allowNewAccountRegistration": "Разрешить регистрацию нового аккаунта", + "allowPasswordLogin": "Разрешить логин и пароль", + "missingRequiredFields": "Отсутствуют обязательные поля: {{fields}}", + "oidcConfigurationUpdated": "Конфигурация OIDC успешно обновлена!", + "failedToFetchOidcConfig": "Не удалось получить конфигурацию OIDC", + "failedToFetchRegistrationStatus": "Не удалось получить статус регистрации", + "failedToFetchPasswordLoginStatus": "Не удалось получить статус логина пароля", + "failedToFetchUsers": "Не удалось получить пользователей", + "oidcConfigurationDisabled": "Конфигурация OIDC успешно выключена!", + "failedToUpdateOidcConfig": "Не удалось обновить конфигурацию OIDC", + "failedToDisableOidcConfig": "Не удалось отключить конфигурацию OIDC", + "enterUsernameToMakeAdmin": "Введите имя пользователя для админа", + "userIsNowAdmin": "Пользователь {{username}} теперь является администратором", + "failedToMakeUserAdmin": "Не удалось сделать администратора пользователя", + "removeAdminStatus": "Удалить статус администратора из {{username}}?", + "adminStatusRemoved": "Статус администратора удален из {{username}}", + "failedToRemoveAdminStatus": "Не удалось удалить статус администратора", + "userDeletedSuccessfully": "Пользователь {{username}} успешно удален", + "failedToDeleteUser": "Не удалось удалить пользователя", + "overrideUserInfoUrl": "Переопределить URL информации пользователя (не обязательно)", + "failedToFetchSessions": "Не удалось получить сеансы", + "sessionRevokedSuccessfully": "Сессия успешно отозвана", + "failedToRevokeSession": "Не удалось отозвать сессию", + "confirmRevokeSession": "Вы уверены, что хотите отменить эту сессию?", + "confirmRevokeAllSessions": "Вы уверены, что хотите отменить все сессии для этого пользователя?", + "failedToRevokeSessions": "Не удалось отозвать сессии", + "sessionsRevokedSuccessfully": "Сессии успешно отозваны", + "linkToPasswordAccount": "Привязать к учётной записи", + "linkOIDCDialogTitle": "Привязать аккаунт OIDC к паролю", + "linkOIDCDialogDescription": "Привязать {{username}} (OIDC пользователь) к существующей учетной записи с паролем. Это позволит двойной аутентификация для учетной записи с паролем.", + "createUser": "Создать пользователя", + "createUserDescription": "Создать нового локального пользователя с именем пользователя и паролем", + "enterUsername": "Введите имя пользователя", + "enterPassword": "Введите пароль", + "userCreatedSuccessfully": "Пользователь {{username}} успешно создан", + "failedToCreateUser": "Не удалось создать пользователя", + "manageUser": "Управление пользователем", + "manageUserDescription": "Управление настройками, ролями и правами пользователя", + "authType": "Тип аутентификации", + "adminStatus": "Статус админа", + "userId": "ID пользователя", + "regularUser": "Обычный пользователь", + "adminPrivileges": "Привилегии администратора", + "administratorRole": "Роль администратора", + "administratorRoleDescription": "Предоставить полный системный доступ и права управления", + "passwordManagement": "Управление паролями", + "passwordResetWarning": "Сброс пароля пользователя удалит все его данные (SSH хосты, учетные данные, настройки). Это действие не может быть отменено.", + "resetUserPassword": "Сбросить пароль пользователя", + "resettingPassword": "Сброс...", + "passwordResetInitiated": "Для {{username}}был создан сброс пароля. Код сброса был отправлен.", + "failedToResetPassword": "Не удалось сбросить пароль", + "sessionManagement": "Управление сессиями", + "revokeAllSessions": "Отозвать все сессии", + "revokeAllSessionsDescription": "Принудительный выход со всех устройств и сессий", + "revoking": "Отмена...", + "revoke": "Отозвать все", + "dangerZone": "Опасная зона", + "deleteUserTitle": "Удалить учетную запись", + "deleteUserWarning": "Окончательно удалить эту учетную запись пользователя и все связанные с ней данные. Это действие нельзя отменить.", + "deleting": "Удаление...", + "cannotDeleteSelf": "Вы не можете удалить свою собственную учетную запись", + "cannotRemoveLastAdmin": "Невозможно удалить последнего администратора", + "cannotRemoveOwnAdmin": "Вы не можете удалить свои права администратора", + "cannotModifyOwnAdminStatus": "Вы не можете изменить свой собственный статус администратора", + "dualAuth": "Двойная авторизация", + "externalOIDC": "Внешний (OIDC)", + "localPassword": "Локальный пароль", + "confirmRevokeOwnSessions": "Вы уверены, что хотите отменить все свои собственные сессии? Вы выйдете из системы.", + "linkOIDCWarningTitle": "Предупреждение: Данные пользователя OIDC будут удалены", + "linkOIDCActionDeleteUser": "Удалить учетную запись пользователя OIDC и все их данные", + "linkOIDCActionAddCapability": "Добавить возможность входа OIDC в целевую учетную запись пароля", + "linkOIDCActionDualAuth": "Разрешить учётной записи для входа с паролем и OIDC", + "linkTargetUsernameLabel": "Имя пользователя пользователя", + "linkTargetUsernamePlaceholder": "Введите имя пользователя учетной записи с паролем", + "linkAccountsButton": "Связать аккаунты", + "linkingAccounts": "Связь...", + "accountsLinkedSuccessfully": "OIDC пользователь {{oidcUsername}} был связан с {{targetUsername}}", + "failedToLinkAccounts": "Не удалось привязать аккаунты", + "linkTargetUsernameRequired": "Требуется имя пользователя", + "unlinkOIDCTitle": "Отвязать аутентификацию OIDC", + "unlinkOIDCDescription": "Удалить OIDC аутентификацию из {{username}}? После этого пользователь сможет войти только с именем пользователя/паролем.", + "unlinkOIDCSuccess": "OIDC отвязан от {{username}}", + "failedToUnlinkOIDC": "Не удалось отвязать OIDC", + "databaseSecurity": "Безопасность базы данных", + "encryptionStatus": "Статус шифрования", + "encryptionEnabled": "Шифрование включено", + "enabled": "Включено", + "disabled": "Отключено", + "keyId": "ID ключа", + "created": "Создано", + "migrationStatus": "Статус миграции", + "migrationCompleted": "Миграция завершена", + "migrationRequired": "Требуется миграция", + "deviceProtectedMasterKey": "Защищенный окружающей средой главный ключ", + "legacyKeyStorage": "Хранилище устаревших ключей", + "masterKeyEncryptedWithDeviceFingerprint": "Мастер-ключ зашифрован с помощью отпечатка пальца среды (KEK защита)", + "keyNotProtectedByDeviceBinding": "Ключ не защищен привязкой окружающей среды (рекомендуется обновление)", "valid": "Valid", - "initializeDatabaseEncryption": "Initialize Database Encryption", - "enableAes256EncryptionWithDeviceBinding": "Enable AES-256 encryption with environment-bound master key protection. This creates enterprise-grade security for SSH keys, passwords, and authentication tokens.", - "featuresEnabled": "Features enabled:", - "aes256GcmAuthenticatedEncryption": "AES-256-GCM authenticated encryption", - "deviceFingerprintMasterKeyProtection": "Environment fingerprint master key protection (KEK)", - "pbkdf2KeyDerivation": "PBKDF2 key derivation with 100K iterations", - "automaticKeyManagement": "Automatic key management and rotation", - "initializing": "Initializing...", - "initializeEnterpriseEncryption": "Initialize Enterprise Encryption", - "migrateExistingData": "Migrate Existing Data", - "encryptExistingUnprotectedData": "Encrypt existing unprotected data in your database. This process is safe and creates automatic backups.", - "testMigrationDryRun": "Verify Encryption Compatibility", - "migrating": "Migrating...", - "migrateData": "Migrate Data", - "securityInformation": "Security Information", - "sshPrivateKeysEncryptedWithAes256": "SSH private keys and passwords are encrypted with AES-256-GCM", - "userAuthTokensProtected": "User authentication tokens and 2FA secrets are protected", - "masterKeysProtectedByDeviceFingerprint": "Master encryption keys are protected by device fingerprint (KEK)", - "keysBoundToServerInstance": "Keys are bound to current server environment (migratable via environment variables)", - "pbkdf2HkdfKeyDerivation": "PBKDF2 + HKDF key derivation with 100K iterations", - "backwardCompatibleMigration": "All data remains backward compatible during migration", - "enterpriseGradeSecurityActive": "Enterprise-Grade Security Active", - "masterKeysProtectedByDeviceBinding": "Your master encryption keys are protected by environment fingerprinting. This uses server hostname, paths, and other environment info to generate protection keys. To migrate servers, set the DB_ENCRYPTION_KEY environment variable on the new server.", - "important": "Important", - "keepEncryptionKeysSecure": "Ensure data security: regularly backup your database files and server configuration. To migrate to a new server, set the DB_ENCRYPTION_KEY environment variable on the new environment, or maintain the same hostname and directory structure.", - "loadingEncryptionStatus": "Loading encryption status...", - "testMigrationDescription": "Verify that existing data can be safely migrated to encrypted format without actually modifying any data", - "serverMigrationGuide": "Server Migration Guide", - "migrationInstructions": "To migrate encrypted data to a new server: 1) Backup database files, 2) Set environment variable DB_ENCRYPTION_KEY=\"your-key\" on new server, 3) Restore database files", - "environmentProtection": "Environment Protection", - "environmentProtectionDesc": "Protects encryption keys based on server environment info (hostname, paths, etc.), migratable via environment variables", - "verificationCompleted": "Compatibility verification completed - no data was changed", - "verificationInProgress": "Verification completed", - "dataMigrationCompleted": "Data migration completed successfully!", - "verificationFailed": "Compatibility verification failed", - "migrationFailed": "Migration failed", - "runningVerification": "Running compatibility verification...", - "startingMigration": "Starting migration...", - "hardwareFingerprintSecurity": "Hardware Fingerprint Security", - "hardwareBoundEncryption": "Hardware-Bound Encryption Active", - "masterKeysNowProtectedByHardwareFingerprint": "Master keys are now protected by real hardware fingerprinting instead of environment variables", - "cpuSerialNumberDetection": "CPU serial number detection", - "motherboardUuidIdentification": "Motherboard UUID identification", - "diskSerialNumberVerification": "Disk serial number verification", - "biosSerialNumberCheck": "BIOS serial number check", - "stableMacAddressFiltering": "Stable MAC address filtering", - "databaseFileEncryption": "Database File Encryption", - "dualLayerProtection": "Dual-Layer Protection Active", - "bothFieldAndFileEncryptionActive": "Both field-level and file-level encryption are now active for maximum security", - "fieldLevelAes256Encryption": "Field-level AES-256 encryption for sensitive data", - "fileLevelDatabaseEncryption": "File-level database encryption with hardware binding", - "hardwareBoundFileKeys": "Hardware-bound file encryption keys", - "automaticEncryptedBackups": "Automatic encrypted backup creation", - "createEncryptedBackup": "Create Encrypted Backup", - "creatingBackup": "Creating Backup...", - "backupCreated": "Backup Created", - "encryptedBackupCreatedSuccessfully": "Encrypted backup created successfully", - "backupCreationFailed": "Backup creation failed", - "databaseMigration": "Database Migration", - "exportForMigration": "Export for Migration", - "exportDatabaseForHardwareMigration": "Export database as SQLite file with decrypted data for migration to new hardware", + "initializeDatabaseEncryption": "Инициализация шифрования базы данных", + "enableAes256EncryptionWithDeviceBinding": "Включите шифрование AES-256 с ключом мастер-защиты, связанным с окружающей средой. Это создает безопасность для SSH ключей, паролей и токенов.", + "featuresEnabled": "Функции включены:", + "aes256GcmAuthenticatedEncryption": "AES-256-GCM шифрование", + "deviceFingerprintMasterKeyProtection": "Защита от отпечатков пальцев среды (KEK)", + "pbkdf2KeyDerivation": "Выражение ключа PBKDF2 с итерациями 100K", + "automaticKeyManagement": "Автоматическое управление ключами и вращение", + "initializing": "Инициализация...", + "initializeEnterpriseEncryption": "Инициализация шифрования предприятия", + "migrateExistingData": "Миграция существующих данных", + "encryptExistingUnprotectedData": "Шифровать существующие незащищенные данные в базе данных. Это безопасный процесс и создание автоматических резервных копий.", + "testMigrationDryRun": "Проверка совместимости шифрования", + "migrating": "Перенос данных...", + "migrateData": "Перенести данные", + "securityInformation": "Информация о безопасности", + "sshPrivateKeysEncryptedWithAes256": "Приватные ключи и пароли SSH шифруются AES-256-GCM", + "userAuthTokensProtected": "Маркеры аутентификации пользователя и секреты 2FA защищены", + "masterKeysProtectedByDeviceFingerprint": "Мастер-ключи шифрования защищены отпечатком пальца устройства (KEK)", + "keysBoundToServerInstance": "Ключи привязаны к текущему серверному окружению (перемещается через переменные окружения)", + "pbkdf2HkdfKeyDerivation": "PBKDF2 + деривация ключа HKDF с 100K итерациями", + "backwardCompatibleMigration": "Все данные остаются обратно совместимыми во время миграции", + "enterpriseGradeSecurityActive": "Активная безопасность предприятия-града", + "masterKeysProtectedByDeviceBinding": "Ваши мастер-ключи шифрования защищены отпечатком пальцев окружения. Это использует имя хоста сервера, пути и другую информацию окружения для создания ключей защиты. Чтобы мигрировать серверы, установите переменную окружения DB_ENCRYPTION_KEY на новом сервере.", + "important": "Важное", + "keepEncryptionKeysSecure": "Обеспечение безопасности данных: регулярно резервное копирование файлов баз данных и конфигурация сервера. Чтобы перейти на новый сервер, установите переменную окружения DB_ENCRYPTION_KEY в новой среде или сохраните те же имя хоста и структуру каталогов.", + "loadingEncryptionStatus": "Загрузка статуса шифрования...", + "testMigrationDescription": "Проверьте, что существующие данные могут быть безопасно перенесены в зашифрованный формат без фактического изменения каких-либо данных", + "serverMigrationGuide": "Руководство по миграции сервера", + "migrationInstructions": "Для переноса зашифрованных данных на новый сервер: 1) Резервное копирование файлов баз данных, 2) Установка переменной окружения DB_ENCRYPTION_KEY=\"ваш ключ\" на новом сервере, 3) Восстановление файлов базы данных", + "environmentProtection": "Защита окружающей среды", + "environmentProtectionDesc": "Защищает ключи шифрования, основанные на информации о серверной среде (имя хоста, пути и т.д.), миграцию с помощью переменных окружения", + "verificationCompleted": "Проверка совместимости завершена - данные не были изменены", + "verificationInProgress": "Проверка завершена", + "dataMigrationCompleted": "Перенос данных успешно завершен!", + "verificationFailed": "Сбой проверки совместимости", + "migrationFailed": "Сбой миграции", + "runningVerification": "Выполнение проверки совместимости...", + "startingMigration": "Начинается миграция...", + "hardwareFingerprintSecurity": "Безопасность отпечатков пальцев", + "hardwareBoundEncryption": "Включение аппаратного шифрования", + "masterKeysNowProtectedByHardwareFingerprint": "Мастер-ключи теперь защищены при помощи аппаратных отпечатков пальцев вместо переменных среды", + "cpuSerialNumberDetection": "Обнаружение серийного номера ЦП", + "motherboardUuidIdentification": "Идентификация UUID материнской платы", + "diskSerialNumberVerification": "Выверка серийного номера диска", + "biosSerialNumberCheck": "Проверка серийного номера BIOS", + "stableMacAddressFiltering": "Стабильная фильтрация MAC-адреса", + "databaseFileEncryption": "Шифрование файла базы данных", + "dualLayerProtection": "Защита с двойным слоем активна", + "bothFieldAndFileEncryptionActive": "Шифрование как в поле, так и в файловом уровне теперь активно для максимальной безопасности", + "fieldLevelAes256Encryption": "Полевое шифрование AES-256 для чувствительных данных", + "fileLevelDatabaseEncryption": "Шифрование базы данных на уровне файлов с аппаратной привязкой", + "hardwareBoundFileKeys": "Ключи шифрования с аппаратными средствами", + "automaticEncryptedBackups": "Автоматическое создание зашифрованной резервной копии", + "createEncryptedBackup": "Создать зашифрованную резервную копию", + "creatingBackup": "Создание резервной копии...", + "backupCreated": "Резервная копия создана", + "encryptedBackupCreatedSuccessfully": "Резервная копия успешно создана", + "backupCreationFailed": "Не удалось создать резервную копию", + "databaseMigration": "Миграция базы данных", + "exportForMigration": "Экспорт для миграции", + "exportDatabaseForHardwareMigration": "Экспортировать базу данных как файл SQLite с расшифрованными данными для перехода на новое оборудование", "exportDatabase": "Export SQLite Database", - "exporting": "Exporting...", - "exportCreated": "SQLite Export Created", - "exportContainsDecryptedData": "SQLite export contains decrypted data - keep secure!", - "databaseExportedSuccessfully": "SQLite database exported successfully", - "databaseExportFailed": "SQLite database export failed", - "importFromMigration": "Import from Migration", - "importDatabaseFromAnotherSystem": "Import SQLite database from another system or hardware", + "exporting": "Экспортируется...", + "exportCreated": "Экспорт SQLite создан", + "exportContainsDecryptedData": "Экспорт SQLite содержит расшифрованные данные - храните в безопасности!", + "databaseExportedSuccessfully": "База данных SQLite успешно экспортирована", + "databaseExportFailed": "Экспорт базы данных SQLite не удался", + "importFromMigration": "Импорт из миграции", + "importDatabaseFromAnotherSystem": "Импорт базы данных SQLite из другой системы или оборудования", "importDatabase": "Import SQLite Database", - "importing": "Importing...", - "selectedFile": "Selected SQLite File", - "importWillReplaceExistingData": "SQLite import will replace existing data - backup recommended!", - "pleaseSelectImportFile": "Please select a SQLite import file", - "databaseImportedSuccessfully": "SQLite database imported successfully", - "databaseImportFailed": "SQLite database import failed", - "manageEncryptionAndBackups": "Manage encryption keys, database security, and backup operations", - "activeSecurityFeatures": "Currently active security measures and protections", - "deviceBindingTechnology": "Advanced hardware-based key protection technology", - "backupAndRecovery": "Secure backup creation and database recovery options", - "crossSystemDataTransfer": "Export and import databases across different systems", - "noMigrationNeeded": "No migration needed", - "encryptionKey": "Encryption Key", - "keyProtection": "Key Protection", - "active": "Active", - "legacy": "Legacy", - "dataStatus": "Data Status", - "encrypted": "Encrypted", - "needsMigration": "Needs Migration", - "ready": "Ready", - "initializeEncryption": "Initialize Encryption", - "initialize": "Initialize", - "test": "Test", - "migrate": "Migrate", - "backup": "Backup", - "createBackup": "Create Backup", - "exportImport": "Export/Import", - "export": "Export", - "import": "Import", - "passwordRequired": "Password required", - "confirmExport": "Confirm Export", - "exportDescription": "Export SSH hosts and credentials as SQLite file", - "importDescription": "Import SQLite file with incremental merge (skips duplicates)", - "criticalWarning": "Critical Warning", - "cannotDisablePasswordLoginWithoutOIDC": "Cannot disable password login without OIDC configured! You must configure OIDC authentication before disabling password login, or you will lose access to Termix.", - "confirmDisablePasswordLogin": "Are you sure you want to disable password login? Make sure OIDC is properly configured and working before proceeding, or you will lose access to your Termix instance.", - "passwordLoginDisabled": "Password login disabled successfully", - "passwordLoginAndRegistrationDisabled": "Password login and new account registration disabled successfully", - "requiresPasswordLogin": "Requires password login enabled", - "passwordLoginDisabledWarning": "Password login is disabled. Ensure OIDC is properly configured or you will not be able to log in to Termix.", - "oidcRequiredWarning": "CRITICAL: Password login is disabled. If you reset or misconfigure OIDC, you will lose all access to Termix and brick your instance. Only proceed if you are absolutely certain.", - "confirmDisableOIDCWarning": "WARNING: You are about to disable OIDC while password login is also disabled. This will brick your Termix instance and you will lose all access. Are you absolutely sure you want to proceed?", - "failedToUpdatePasswordLoginStatus": "Failed to update password login status", - "loadingSessions": "Loading sessions...", - "noActiveSessions": "No active sessions found.", - "device": "Device", - "user": "User", - "lastActive": "Last Active", - "expires": "Expires", + "importing": "Импортируем...", + "selectedFile": "Выбранный файл SQLite", + "importWillReplaceExistingData": "SQLite импорт заменит существующие данные - рекомендуется резервное копирование!", + "pleaseSelectImportFile": "Пожалуйста, выберите файл импорта SQLite", + "databaseImportedSuccessfully": "База данных SQLite успешно импортирована", + "databaseImportFailed": "Ошибка импорта базы данных SQLite", + "manageEncryptionAndBackups": "Управление ключами шифрования, безопасностью баз данных и операциями с резервным копированием", + "activeSecurityFeatures": "В настоящее время активные меры безопасности и защита", + "deviceBindingTechnology": "Расширенная технология защиты ключей", + "backupAndRecovery": "Безопасное создание резервного копирования и параметры восстановления базы данных", + "crossSystemDataTransfer": "Экспорт и импорт баз данных по различным системам", + "noMigrationNeeded": "Миграция не требуется", + "encryptionKey": "Ключ шифрования", + "keyProtection": "Защита ключа", + "active": "Активный", + "legacy": "Наследие", + "dataStatus": "Состояние данных", + "encrypted": "Зашифровано", + "needsMigration": "Потребности в миграции", + "ready": "Готово", + "initializeEncryption": "Инициализация шифрования", + "initialize": "Инициализация", + "test": "Тест", + "migrate": "Мигрировать", + "backup": "Резервное копирование", + "createBackup": "Создать резервную копию", + "exportImport": "Экспорт/Импорт", + "export": "Экспорт", + "import": "Импорт", + "passwordRequired": "Требуется пароль", + "confirmExport": "Подтвердить экспорт", + "exportDescription": "Экспортировать хосты и учетные данные SSH в файл SQLite", + "importDescription": "Импорт файла SQLite с инкрементальным слиянием (пропускает дубликаты)", + "criticalWarning": "Критическое предупреждение", + "cannotDisablePasswordLoginWithoutOIDC": "Невозможно отключить логин пароля без настройки OIDC! Перед отключением пароля необходимо настроить аутентификацию OIDC, или вы потеряете доступ к Termix.", + "confirmDisablePasswordLogin": "Вы уверены, что хотите отключить ввод пароля? Убедитесь, что OIDC правильно настроен и работает, прежде чем продолжить, или вы потеряете доступ к вашему экземпляру Termix.", + "passwordLoginDisabled": "Пароль успешно отключен", + "passwordLoginAndRegistrationDisabled": "Логин и регистрация новой учетной записи отключены", + "requiresPasswordLogin": "Требуется вход в систему", + "passwordLoginDisabledWarning": "Вход в систему отключен. Убедитесь, что OIDC настроен должным образом или вы не сможете войти в Termix.", + "oidcRequiredWarning": "CRITICAL: Вход в систему отключен. Если вы сбросили или неправильно настроили OIDC, доступ к термиксу и брику вашего экземпляра. Продолжайте только в том случае, если вы абсолютно уверены.", + "confirmDisableOIDCWarning": "ПРЕДУПРЕЖДЕНИЕ: Вы собираетесь отключить OIDC, пока логин и пароль также отключены. Это приведет к брику вашего экземпляра Termix, и вы потеряете все права. Вы уверены, что хотите продолжить?", + "failedToUpdatePasswordLoginStatus": "Не удалось обновить статус входа в пароль", + "loadingSessions": "Загрузка сессий...", + "noActiveSessions": "Активные сессии не найдены.", + "device": "Устройство", + "user": "Пользователь", + "lastActive": "Последняя активность", + "expires": "Истекает", "revoked": "Revoked", - "revokeAllUserSessionsTitle": "Revoke all sessions for this user", - "revokeAll": "Revoke All", - "linkOidcToPasswordAccount": "Link OIDC Account to Password Account", - "linkOidcToPasswordAccountDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "linkOidcWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOidcWarningDescription": "This action will:", - "linkOidcActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOidcActionAddCapability": "Add OIDC login capability to the target password account", - "linkOidcActionDualAuth": "Allow the password account to login with both password and OIDC", - "passwordMinLength": "Password must be at least 6 characters", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role" + "revokeAllUserSessionsTitle": "Отозвать все сессии этого пользователя", + "revokeAll": "Отозвать все", + "linkOidcToPasswordAccount": "Привязать аккаунт OIDC к паролю", + "linkOidcToPasswordAccountDescription": "Привязать {{username}} (OIDC пользователь) к существующей учетной записи с паролем. Это позволит двойной аутентификация для учетной записи с паролем.", + "linkOidcWarningTitle": "Предупреждение: Данные пользователя OIDC будут удалены", + "linkOidcWarningDescription": "Это действие будет:", + "linkOidcActionDeleteUser": "Удалить учетную запись пользователя OIDC и все их данные", + "linkOidcActionAddCapability": "Добавить возможность входа OIDC в целевую учетную запись пароля", + "linkOidcActionDualAuth": "Разрешить учётной записи для входа с паролем и OIDC", + "passwordMinLength": "Пароль должен содержать не менее 6 символов", + "currentRoles": "Текущие роли", + "noRolesAssigned": "Роли не назначены", + "assignNewRole": "Назначить новую роль" }, "hosts": { - "title": "Host Manager", - "sshHosts": "SSH Hosts", - "noHosts": "No SSH Hosts", - "noHostsMessage": "You haven't added any SSH hosts yet. Click \"Add Host\" to get started.", - "loadingHosts": "Loading hosts...", - "failedToLoadHosts": "Failed to load hosts", - "retry": "Retry", - "refresh": "Refresh", - "optional": "Optional", - "hostsCount": "{{count}} hosts", - "importJson": "Import JSON", - "importing": "Importing...", - "importJsonTitle": "Import SSH Hosts from JSON", - "importJsonDesc": "Upload a JSON file to bulk import multiple SSH hosts (max 100).", - "downloadSample": "Download Sample", - "formatGuide": "Format Guide", - "exportCredentialWarning": "Warning: Host \"{{name}}\" uses credential authentication. The exported file will not include the credential data and will need to be manually reconfigured after import. Do you want to continue?", - "exportSensitiveDataWarning": "Warning: Host \"{{name}}\" contains sensitive authentication data (password/SSH key). The exported file will include this data in plaintext. Please keep the file secure and delete it after use. Do you want to continue?", - "uncategorized": "Uncategorized", - "confirmDelete": "Are you sure you want to delete \"{{name}}\" ?", - "failedToDeleteHost": "Failed to delete host", - "failedToExportHost": "Failed to export host. Please ensure you're logged in and have access to the host data.", - "jsonMustContainHosts": "JSON must contain a \"hosts\" array or be an array of hosts", - "noHostsInJson": "No hosts found in JSON file", - "maxHostsAllowed": "Maximum 100 hosts allowed per import", - "importCompleted": "Import completed: {{success}} successful, {{failed}} failed", - "importFailed": "Import failed", - "importError": "Import error", - "failedToImportJson": "Failed to import JSON file", - "connectionDetails": "Connection Details", - "organization": "Organization", - "ipAddress": "IP Address", - "port": "Port", - "name": "Name", - "username": "Username", - "folder": "Folder", - "tags": "Tags", - "pin": "Pin", - "notes": "Notes", - "expirationDate": "Expiration Date", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "mustSelectValidSshConfig": "Must select a valid SSH configuration from the list", - "addHost": "Add Host", - "editHost": "Edit Host", - "cloneHost": "Clone Host", - "updateHost": "Update Host", - "hostUpdatedSuccessfully": "Host \"{{name}}\" updated successfully!", - "hostAddedSuccessfully": "Host \"{{name}}\" added successfully!", - "hostDeletedSuccessfully": "Host \"{{name}}\" deleted successfully!", - "failedToSaveHost": "Failed to save host. Please try again.", - "savingHost": "Saving host...", - "updatingHost": "Updating host...", - "cloningHost": "Cloning host...", - "enableTerminal": "Enable Terminal", - "enableTerminalDesc": "Enable/disable host visibility in Terminal tab", - "enableTunnel": "Enable Tunnel", - "enableTunnelDesc": "Enable/disable host visibility in Tunnel tab", - "enableFileManager": "Enable File Manager", - "enableFileManagerDesc": "Enable/disable host visibility in File Manager tab", - "enableDockerDesc": "Enable/disable host visibility in Docker tab", - "enableDocker": "Enable Docker", - "defaultPath": "Default Path", - "defaultPathDesc": "Default directory when opening file manager for this host", - "tunnelConnections": "Tunnel Connections", - "connection": "Connection", - "remove": "Remove", - "sourcePort": "Source Port", - "sourcePortDesc": " (Source refers to the Current Connection Details in the General tab)", - "endpointPort": "Endpoint Port", - "endpointSshConfig": "Endpoint SSH Configuration", - "tunnelForwardDescription": "This tunnel will forward traffic from port {{sourcePort}} on the source machine (current connection details in general tab) to port {{endpointPort}} on the endpoint machine.", - "maxRetries": "Max Retries", - "maxRetriesDescription": "Maximum number of retry attempts for tunnel connection.", - "retryInterval": "Retry Interval (seconds)", - "retryIntervalDescription": "Time to wait between retry attempts.", - "autoStartContainer": "Auto Start on Container Launch", - "autoStartDesc": "Automatically start this tunnel when the container launches", - "addConnection": "Add Tunnel Connection", - "sshpassRequired": "Sshpass Required For Password Authentication", - "sshpassRequiredDesc": "For password authentication in tunnels, sshpass must be installed on the system.", - "otherInstallMethods": "Other installation methods:", - "debianUbuntuEquivalent": "(Debian/Ubuntu) or the equivalent for your OS.", - "or": "or", + "title": "Менеджер хостов", + "sshHosts": "SSH хосты", + "noHosts": "Нет SSH хостов", + "noHostsMessage": "Вы еще не добавили ни одного хоста SSH. Нажмите \"Добавить хост\", чтобы начать.", + "loadingHosts": "Загрузка узлов...", + "failedToLoadHosts": "Не удалось загрузить хосты", + "retry": "Повторить", + "refresh": "Обновить", + "optional": "Опционально", + "hostsCount": "{{count}} узлов", + "importJson": "Импорт JSON", + "importing": "Импортируем...", + "importJsonTitle": "Импорт хостов SSH из JSON", + "importJsonDesc": "Загрузите JSON файл для массового импорта нескольких SSH хостов (максимум 100).", + "downloadSample": "Скачать образец", + "formatGuide": "Форматирование руководства", + "exportCredentialWarning": "Предупреждение: Хост \"{{name}}\" использует аутентификацию учетных данных. Экспортированный файл не будет включать учетные данные и должен быть изменен вручную после импорта. Вы хотите продолжить?", + "exportSensitiveDataWarning": "Предупреждение: Хост \"{{name}}\" содержит конфиденциальные данные аутентификации (пароль/SSH ключ). Экспортированный файл будет включать эти данные в обычный текст. Пожалуйста, сохраните файл в безопасности и удалите его после использования. Вы хотите продолжить?", + "uncategorized": "Без категории", + "confirmDelete": "Вы уверены, что хотите удалить \"{{name}}\" ?", + "failedToDeleteHost": "Не удалось удалить узел", + "failedToExportHost": "Не удалось экспортировать хост. Пожалуйста, убедитесь, что вы вошли в систему и имеете доступ к данным хоста.", + "jsonMustContainHosts": "JSON должен содержать «хост» массив или быть массивом хостов", + "noHostsInJson": "Хосты не найдены в JSON файле", + "maxHostsAllowed": "Максимум 100 узлов, разрешенных на импорт", + "importCompleted": "Импорт завершен: {{success}} успешно завершен, {{failed}} не удалось", + "importFailed": "Не удалось импортировать", + "importError": "Ошибка импорта", + "failedToImportJson": "Не удалось импортировать JSON файл", + "connectionDetails": "Детали подключения", + "organization": "Организация", + "ipAddress": "IP-адрес", + "port": "Порт", + "name": "Наименование", + "username": "Имя пользователя", + "folder": "Папка", + "tags": "Теги", + "pin": "Закрепить", + "notes": "Примечания", + "expirationDate": "Срок действия", + "passwordRequired": "Пароль требуется при использовании аутентификации пароля", + "sshKeyRequired": "Приватный ключ SSH требуется при использовании аутентификации ключа", + "keyTypeRequired": "Тип ключа требуется при использовании аутентификации ключа", + "mustSelectValidSshConfig": "Необходимо выбрать корректную конфигурацию SSH из списка", + "addHost": "Добавить хост", + "editHost": "Изменить хост", + "cloneHost": "Клонировать хост", + "updateHost": "Обновить хост", + "hostUpdatedSuccessfully": "Хост \"{{name}}\" успешно обновлен!", + "hostAddedSuccessfully": "Хост \"{{name}}\" успешно добавлен!", + "hostDeletedSuccessfully": "Хост \"{{name}}\" успешно удален!", + "failedToSaveHost": "Не удалось сохранить хост. Пожалуйста, попробуйте еще раз.", + "savingHost": "Сохранение хоста...", + "updatingHost": "Обновление хоста...", + "cloningHost": "Клонирование хоста...", + "enableTerminal": "Включить терминал", + "enableTerminalDesc": "Включить/выключить видимость хоста во вкладке Терминал", + "enableTunnel": "Включить Туннель", + "enableTunnelDesc": "Включить/выключить видимость хоста во вкладке Туннель", + "enableFileManager": "Включить Диспетчер файлов", + "enableFileManagerDesc": "Включить/отключить видимость хоста во вкладке Файловый Менеджер", + "enableDockerDesc": "Включить/отключить видимость хоста во вкладке Docker", + "enableDocker": "Включить Docker", + "defaultPath": "Путь по умолчанию", + "defaultPathDesc": "Каталог по умолчанию при открытии файлового менеджера для этого узла", + "tunnelConnections": "Туннель соединения", + "connection": "Подключение", + "remove": "Удалить", + "sourcePort": "Порт источника", + "sourcePortDesc": " (Источник относится к текущей информации о соединении на вкладке Общие)", + "endpointPort": "Порт точки входа", + "endpointSshConfig": "Конфигурация SSH", + "tunnelForwardDescription": "Этот туннель будет перенаправлять трафик с порта {{sourcePort}} на исходной машине (текущая информация о соединении) на порт {{endpointPort}} на конечной машине.", + "maxRetries": "Макс. повторов", + "maxRetriesDescription": "Максимальное количество попыток повтора для туннельного соединения.", + "retryInterval": "Интервал повтора (секунд)", + "retryIntervalDescription": "Время ожидания между попытками повтора.", + "autoStartContainer": "Автозапуск при запуске контейнера", + "autoStartDesc": "Автоматически запускать этот туннель при запуске контейнера", + "addConnection": "Добавить туннельное соединение", + "sshpassRequired": "Для аутентификации пароля требуется Sshpass", + "sshpassRequiredDesc": "Для аутентификации паролей в туннелях в системе должен быть установлен sshpass.", + "otherInstallMethods": "Другие методы установки:", + "debianUbuntuEquivalent": "(Debian/Ubuntu) или эквивалент вашей ОС.", + "or": "или", "centosRhelFedora": "CentOS/RHEL/Fedora", "macos": "macOS", - "windows": "Windows", - "sshServerConfigRequired": "SSH Server Configuration Required", - "sshServerConfigDesc": "For tunnel connections, the SSH server must be configured to allow port forwarding:", - "gatewayPortsYes": "to bind remote ports to all interfaces", - "allowTcpForwardingYes": "to enable port forwarding", - "permitRootLoginYes": "if using root user for tunneling", - "editSshConfig": "Edit /etc/ssh/sshd_config and restart SSH: sudo systemctl restart sshd", - "upload": "Upload", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "credential": "Credential", - "none": "None", - "selectCredential": "Select Credential", - "selectCredentialPlaceholder": "Choose a credential...", - "credentialRequired": "Credential is required when using credential authentication", - "credentialDescription": "Selecting a credential will overwrite the current username and use the credential's authentication details.", - "cannotChangeAuthAsSharedUser": "Cannot change authentication as shared user", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "autoDetect": "Auto-detect", + "windows": "Окна", + "sshServerConfigRequired": "Требуется настройка SSH сервера", + "sshServerConfigDesc": "Для туннельных соединений SSH сервер должен быть настроен для проброса портов:", + "gatewayPortsYes": "привязка удаленных портов ко всем интерфейсам", + "allowTcpForwardingYes": "чтобы включить пересылку портов", + "permitRootLoginYes": "если пользователь root для туннелирования", + "editSshConfig": "Редактировать /etc/ssh/sshd_config и перезапустить SSH: sudo systemctl перезапустить sshd", + "upload": "Выгрузить", + "authentication": "Проверка подлинности", + "password": "Пароль", + "key": "Спецификация", + "credential": "Полномочия", + "none": "Нет", + "selectCredential": "Выберите учетные данные", + "selectCredentialPlaceholder": "Выберите учетные данные...", + "credentialRequired": "Учетные данные требуются при использовании аутентификации", + "credentialDescription": "Выбор учетных данных перезапишет текущее имя пользователя и использует данные проверки подлинности.", + "cannotChangeAuthAsSharedUser": "Невозможно изменить аутентификацию как общего пользователя", + "sshPrivateKey": "SSH закрытый ключ", + "keyPassword": "Пароль ключа", + "keyType": "Тип ключа", + "autoDetect": "Автоопределение", "rsa": "RSA", "ed25519": "ED25519", "ecdsaNistP256": "ECDSA NIST P-256", @@ -885,1015 +885,1015 @@ "dsa": "DSA", "rsaSha2256": "RSA SHA2-256", "rsaSha2512": "RSA SHA2-512", - "uploadFile": "Upload File", - "pasteKey": "Paste Key", - "updateKey": "Update Key", - "existingKey": "Existing Key (click to change)", - "existingCredential": "Existing Credential (click to change)", - "addTagsSpaceToAdd": "add tags (space to add)", - "terminalBadge": "Terminal", - "tunnelBadge": "Tunnel", - "fileManagerBadge": "File Manager", - "general": "General", - "terminal": "Terminal", - "tunnel": "Tunnel", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "hostViewer": "Host Viewer", - "enableServerStats": "Enable Server Stats", - "enableServerStatsDesc": "Enable/disable server statistics collection for this host", - "displayItems": "Display Items", - "displayItemsDesc": "Choose which metrics to display on the server stats page", - "enableCpu": "CPU Usage", - "enableMemory": "Memory Usage", - "enableDisk": "Disk Usage", - "enableNetwork": "Network Statistics (Coming Soon)", - "enableProcesses": "Process Count (Coming Soon)", - "enableUptime": "Uptime (Coming Soon)", - "enableHostname": "Hostname (Coming Soon)", - "enableOs": "Operating System (Coming Soon)", - "customCommands": "Custom Commands (Coming Soon)", - "customCommandsDesc": "Define custom shutdown and reboot commands for this server", - "shutdownCommand": "Shutdown Command", - "rebootCommand": "Reboot Command", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The host will be moved to \"No Folder\".", - "removedFromFolder": "Host \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove host from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "editFolderAppearance": "Edit Folder Appearance", - "editFolderAppearanceDesc": "Customize the color and icon for folder", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "folderAppearanceUpdated": "Folder appearance updated successfully", - "failedToUpdateFolderAppearance": "Failed to update folder appearance", - "deleteAllHostsInFolder": "Delete All Hosts in Folder", - "confirmDeleteAllHostsInFolder": "Are you sure you want to delete all {{count}} hosts in folder \"{{folder}}\"? This action cannot be undone.", - "allHostsInFolderDeleted": "Deleted {{count}} hosts from folder \"{{folder}}\" successfully", - "failedToDeleteHostsInFolder": "Failed to delete hosts in folder", - "movedToFolder": "Host \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move host to folder", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", - "removeFromFolder": "Remove from folder \"{{folder}}\"", - "editHostTooltip": "Edit host", - "deleteHostTooltip": "Delete host", - "exportHostTooltip": "Export host", - "cloneHostTooltip": "Clone host", - "clickToEditHost": "Click to edit host", - "dragToMoveBetweenFolders": "Drag to move between folders", - "exportedHostConfig": "Exported host configuration for {{name}}", - "openTerminal": "Open Terminal", - "openFileManager": "Open File Manager", - "openTunnels": "Open Tunnels", - "openServerDetails": "Open Server Details", - "statistics": "Statistics", - "enabledWidgets": "Enabled Widgets", - "openServerStats": "Open Server Stats", - "enabledWidgetsDesc": "Select which statistics widgets to display for this host", - "monitoringConfiguration": "Monitoring Configuration", - "monitoringConfigurationDesc": "Configure how often server statistics and status are checked", - "statusCheckEnabled": "Enable Status Monitoring", - "statusCheckEnabledDesc": "Check if the server is online or offline", - "statusCheckInterval": "Status Check Interval", - "statusCheckIntervalDesc": "How often to check if host is online (5s - 1h)", - "metricsEnabled": "Enable Metrics Monitoring", - "metricsEnabledDesc": "Collect CPU, RAM, disk, and other system statistics", - "metricsInterval": "Metrics Collection Interval", - "metricsIntervalDesc": "How often to collect server statistics (5s - 1h)", - "intervalSeconds": "seconds", - "intervalMinutes": "minutes", - "intervalValidation": "Monitoring intervals must be between 5 seconds and 1 hour (3600 seconds)", - "monitoringDisabled": "Server monitoring is disabled for this host", - "enableMonitoring": "Enable monitoring in Host Manager → Statistics tab", - "monitoringDisabledBadge": "Monitoring Off", - "statusMonitoring": "Status", - "metricsMonitoring": "Metrics", - "terminalCustomization": "Terminal Customization", - "appearance": "Appearance", - "behavior": "Behavior", - "advanced": "Advanced", - "themePreview": "Theme Preview", - "theme": "Theme", - "selectTheme": "Select theme", - "chooseColorTheme": "Choose a color theme for the terminal", - "fontFamily": "Font Family", + "uploadFile": "Загрузить файл", + "pasteKey": "Вставить ключ", + "updateKey": "Обновить ключ", + "existingKey": "Существующий ключ (нажмите для изменения)", + "existingCredential": "Существующие учетные данные (нажмите, чтобы изменить)", + "addTagsSpaceToAdd": "добавить теги (пробел для добавления)", + "terminalBadge": "Терминал", + "tunnelBadge": "Туннель", + "fileManagerBadge": "Файловый менеджер", + "general": "Общие положения", + "terminal": "Терминал", + "tunnel": "Туннель", + "fileManager": "Файловый менеджер", + "serverStats": "Статистика сервера", + "hostViewer": "Просмотр узлов", + "enableServerStats": "Включить статистику сервера", + "enableServerStatsDesc": "Включить/отключить сбор статистики сервера для этого хоста", + "displayItems": "Показать элементы", + "displayItemsDesc": "Выберите метрики для отображения на странице статистики сервера", + "enableCpu": "Загрузка ЦП", + "enableMemory": "Использование памяти", + "enableDisk": "Использование диска", + "enableNetwork": "Статистика сети (скоро)", + "enableProcesses": "Количество процессов (скоро)", + "enableUptime": "Время обновления (скоро)", + "enableHostname": "Имя хоста (скоро)", + "enableOs": "Операционная система (скоро)", + "customCommands": "Пользовательские команды (скоро)", + "customCommandsDesc": "Определить пользовательские команды выключения и перезагрузки для этого сервера", + "shutdownCommand": "Выключить команду", + "rebootCommand": "Перезагрузить команду", + "confirmRemoveFromFolder": "Вы уверены, что хотите удалить \"{{name}}\" из папки \"{{folder}}\"? Хост будет перемещен в \"Нет папки\".", + "removedFromFolder": "Хост \"{{name}}\" успешно удален из папки", + "failedToRemoveFromFolder": "Не удалось удалить узел из папки", + "folderRenamed": "Папка \"{{oldName}}\" успешно переименована в \"{{newName}}\"", + "failedToRenameFolder": "Не удалось переименовать папку", + "editFolderAppearance": "Изменить внешний вид папки", + "editFolderAppearanceDesc": "Настроить цвет и значок папки", + "folderColor": "Цвет папки", + "folderIcon": "Иконка папки", + "preview": "Предпросмотр", + "folderAppearanceUpdated": "Папка успешно обновлена", + "failedToUpdateFolderAppearance": "Не удалось обновить внешний вид папки", + "deleteAllHostsInFolder": "Удалить все узлы в папке", + "confirmDeleteAllHostsInFolder": "Вы уверены, что хотите удалить все {{count}} хосты в папке \"{{folder}}\"? Это действие не может быть отменено.", + "allHostsInFolderDeleted": "{{count}} хосты из папки \"{{folder}}\" успешно удалены", + "failedToDeleteHostsInFolder": "Не удалось удалить узлы в папке", + "movedToFolder": "Хост \"{{name}}\" успешно перемещен в \"{{folder}}\"", + "failedToMoveToFolder": "Не удалось переместить хост в папку", + "clickToRenameFolder": "Нажмите, чтобы переименовать папку", + "renameFolder": "Переименовать папку", + "removeFromFolder": "Удалить из папки \"{{folder}}\"", + "editHostTooltip": "Изменить узел", + "deleteHostTooltip": "Удалить узел", + "exportHostTooltip": "Экспорт узла", + "cloneHostTooltip": "Клонировать хост", + "clickToEditHost": "Нажмите, чтобы изменить узел", + "dragToMoveBetweenFolders": "Перетащите между папками", + "exportedHostConfig": "Экспортированная конфигурация хоста для {{name}}", + "openTerminal": "Открыть терминал", + "openFileManager": "Открыть файловый менеджер", + "openTunnels": "Открытые туннели", + "openServerDetails": "Открыть детали сервера", + "statistics": "Статистика", + "enabledWidgets": "Включенные виджеты", + "openServerStats": "Статистика открытого сервера", + "enabledWidgetsDesc": "Выберите, какие виджеты будут отображаться для этого узла", + "monitoringConfiguration": "Мониторинг конфигурации", + "monitoringConfigurationDesc": "Настройте как часто проверяется статистика и статус сервера", + "statusCheckEnabled": "Включить мониторинг состояния", + "statusCheckEnabledDesc": "Проверьте, включен ли сервер или оффлайн", + "statusCheckInterval": "Интервал проверки состояния", + "statusCheckIntervalDesc": "Как часто проверять, есть ли хост онлайн (5s - 1ч)", + "metricsEnabled": "Включить мониторинг метрик", + "metricsEnabledDesc": "Сбор статистики CPU, RAM, диска и другой системы", + "metricsInterval": "Интервал сбора метрик", + "metricsIntervalDesc": "Как часто собирать статистику сервера (5s - 1ч)", + "intervalSeconds": "секунд", + "intervalMinutes": "минуты", + "intervalValidation": "Интервал наблюдения должен быть от 5 секунд до 1 часа (3600 секунд)", + "monitoringDisabled": "Мониторинг сервера отключен для этого узла", + "enableMonitoring": "Включить мониторинг в Хост Менеджере → Статистика", + "monitoringDisabledBadge": "Мониторинг выкл", + "statusMonitoring": "Статус", + "metricsMonitoring": "Метрики", + "terminalCustomization": "Настройка терминала", + "appearance": "Внешний вид", + "behavior": "Поведение", + "advanced": "Расширенные", + "themePreview": "Предпросмотр темы", + "theme": "Тема", + "selectTheme": "Выберите тему", + "chooseColorTheme": "Выберите цвет темы для терминала", + "fontFamily": "Семейство шрифтов", "selectFont": "Select font", - "selectFontDesc": "Select the font to use in the terminal", + "selectFontDesc": "Выберите шрифт для использования в терминале", "fontSize": "Font Size", - "fontSizeValue": "Font Size: {{value}}px", - "adjustFontSize": "Adjust the terminal font size", - "letterSpacing": "Letter Spacing", - "letterSpacingValue": "Letter Spacing: {{value}}px", - "adjustLetterSpacing": "Adjust spacing between characters", - "lineHeight": "Line Height", - "lineHeightValue": "Line Height: {{value}}", - "adjustLineHeight": "Adjust spacing between lines", - "cursorStyle": "Cursor Style", - "selectCursorStyle": "Select cursor style", - "cursorStyleBlock": "Block", - "cursorStyleUnderline": "Underline", - "cursorStyleBar": "Bar", - "chooseCursorAppearance": "Choose the cursor appearance", - "cursorBlink": "Cursor Blink", - "enableCursorBlink": "Enable cursor blinking animation", - "scrollbackBuffer": "Scrollback Buffer", - "scrollbackBufferValue": "Scrollback Buffer: {{value}} lines", - "scrollbackBufferDesc": "Number of lines to keep in scrollback history", - "bellStyle": "Bell Style", - "selectBellStyle": "Select bell style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", - "bellStyleVisual": "Visual", - "bellStyleBoth": "Both", - "bellStyleDesc": "How to handle terminal bell (BEL character, \\x07). Programs trigger this when completing tasks, encountering errors, or for notifications. \"Sound\" plays an audio beep, \"Visual\" flashes the screen briefly, \"Both\" does both, \"None\" disables bell alerts.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordDesc": "Right-clicking selects the word under cursor", - "fastScrollModifier": "Fast Scroll Modifier", - "selectModifier": "Select modifier", + "fontSizeValue": "Размер шрифта: {{value}}px", + "adjustFontSize": "Изменить размер шрифта терминала", + "letterSpacing": "Интервал букв", + "letterSpacingValue": "Интервал букв: {{value}}px", + "adjustLetterSpacing": "Настройка интервала между символами", + "lineHeight": "Высота линии", + "lineHeightValue": "Высота строки: {{value}}", + "adjustLineHeight": "Настройка интервала между строками", + "cursorStyle": "Стиль курсора", + "selectCursorStyle": "Выберите стиль курсора", + "cursorStyleBlock": "Блок", + "cursorStyleUnderline": "Подчёркивание", + "cursorStyleBar": "Бар", + "chooseCursorAppearance": "Выберите внешний вид курсора", + "cursorBlink": "Ярлык курсора", + "enableCursorBlink": "Включить анимацию мигания курсора", + "scrollbackBuffer": "Буфер прокрутки", + "scrollbackBufferValue": "Буфер прокрутки: {{value}} строк", + "scrollbackBufferDesc": "Количество строк в истории прокрутки", + "bellStyle": "Стиль колокольни", + "selectBellStyle": "Выберите стиль звонка", + "bellStyleNone": "Нет", + "bellStyleSound": "Звук", + "bellStyleVisual": "Визуальный", + "bellStyleBoth": "Оба", + "bellStyleDesc": "Как работать с колокольчиком (символ BEL, \\x07). Программирует это при выполнении задач, встречаясь с ошибками или для уведомлений. \"Звук\" проигрывает звук, \"Визуальный\" мигает экран кратко, \"Оба делают\" и \"Нет\" отключает оповещения колокола.", + "rightClickSelectsWord": "Щелкните правой кнопкой мыши для выбора слова", + "rightClickSelectsWordDesc": "Щелчок правой кнопкой мыши выбирает слово под курсором", + "fastScrollModifier": "Модификатор быстрой прокрутки", + "selectModifier": "Выберите модификатор", "modifierAlt": "Alt", "modifierCtrl": "Ctrl", - "modifierShift": "Shift", - "fastScrollModifierDesc": "Modifier key for fast scrolling", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityValue": "Fast Scroll Sensitivity: {{value}}", - "fastScrollSensitivityDesc": "Scroll speed multiplier when modifier is held", - "minimumContrastRatio": "Minimum Contrast Ratio", - "minimumContrastRatioValue": "Minimum Contrast Ratio: {{value}}", - "minimumContrastRatioDesc": "Automatically adjust colors for better readability", - "sshAgentForwarding": "SSH Agent Forwarding", - "sshAgentForwardingDesc": "Forward SSH authentication agent to remote host", - "backspaceMode": "Backspace Mode", - "selectBackspaceMode": "Select backspace mode", - "backspaceModeNormal": "Normal (DEL)", - "backspaceModeControlH": "Control-H (^H)", - "backspaceModeDesc": "Backspace key behavior for compatibility", - "startupSnippet": "Startup Snippet", - "selectSnippet": "Select snippet", - "searchSnippets": "Search snippets...", - "snippetNone": "None", - "noneAuthTitle": "Keyboard-Interactive Authentication", - "noneAuthDescription": "This authentication method will use keyboard-interactive authentication when connecting to the SSH server.", - "noneAuthDetails": "Keyboard-interactive authentication allows the server to prompt you for credentials during connection. This is useful for servers that require multi-factor authentication or if you do not want to save credentials locally.", - "forceKeyboardInteractive": "Force Keyboard-Interactive", - "forceKeyboardInteractiveDesc": "Forces the use of keyboard-interactive authentication. This is sometimes required for servers that use Two-Factor Authentication (TOTP/2FA).", - "overrideCredentialUsername": "Override Credential Username", - "overrideCredentialUsernameDesc": "Use a different username than the one stored in the credential. This allows you to use the same credential with different usernames.", - "jumpHosts": "Jump Hosts", - "jumpHostsDescription": "Jump hosts (also known as bastion hosts) allow you to connect to a target server through one or more intermediate servers. This is useful for accessing servers behind firewalls or in private networks.", - "jumpHostChain": "Jump Host Chain", - "addJumpHost": "Add Jump Host", - "selectServer": "Select Server", - "searchServers": "Search servers...", - "noServerFound": "No server found", - "jumpHostsOrder": "Connections will be made in order: Jump Host 1 → Jump Host 2 → ... → Target Server", - "socks5Proxy": "SOCKS5 Proxy", - "socks5Description": "Configure SOCKS5 proxy for SSH connection. All traffic will be routed through the specified proxy server.", - "enableSocks5": "Enable SOCKS5 Proxy", - "enableSocks5Description": "Use SOCKS5 proxy for this SSH connection", - "socks5Host": "Proxy Host", - "socks5Port": "Proxy Port", - "socks5Username": "Proxy Username", - "socks5Password": "Proxy Password", - "socks5UsernameOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5PasswordOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5ProxyChain": "Proxy Chain", - "socks5ProxyChainDescription": "Configure a chain of SOCKS proxies. Each proxy in the chain will connect through the previous one.", - "socks5ProxyMode": "Proxy Mode", - "socks5UseSingleProxy": "Use Single Proxy", - "socks5UseProxyChain": "Use Proxy Chain", - "socks5UsePreset": "Use Saved Preset", - "socks5SelectPreset": "Select Preset", - "socks5ManagePresets": "Manage Presets", - "socks5ProxyNode": "Proxy {{number}}", - "socks5AddProxy": "Add Proxy to Chain", - "socks5RemoveProxy": "Remove Proxy", - "socks5ProxyType": "Proxy Type", - "socks5SaveAsPreset": "Save as Preset", - "socks5SavePresetTitle": "Save Proxy Chain as Preset", - "socks5SavePresetDescription": "Save the current proxy chain configuration as a reusable preset", - "socks5PresetName": "Preset Name", - "socks5PresetDescription": "Description (optional)", - "socks5PresetCreated": "Proxy chain preset created", - "socks5PresetUpdated": "Proxy chain preset updated", - "socks5PresetDeleted": "Proxy chain preset deleted", + "modifierShift": "Сдвиг", + "fastScrollModifierDesc": "Модификатор для быстрой прокрутки", + "fastScrollSensitivity": "Быстрая чувствительность прокрутки", + "fastScrollSensitivityValue": "Быстрая чувствительность к прокрутке: {{value}}", + "fastScrollSensitivityDesc": "Множитель скорости прокрутки при удерживании модификатора", + "minimumContrastRatio": "Минимальное соотношение контраста", + "minimumContrastRatioValue": "Минимальное соотношение контрастности: {{value}}", + "minimumContrastRatioDesc": "Автоматически настраивать цвета для лучшей читаемости", + "sshAgentForwarding": "Перенаправление SSH агента", + "sshAgentForwardingDesc": "Переслать агента аутентификации SSH на удаленный хост", + "backspaceMode": "Режим Backspace", + "selectBackspaceMode": "Выберите режим панели", + "backspaceModeNormal": "Нормальный (DEL)", + "backspaceModeControlH": "Контроль H (^H)", + "backspaceModeDesc": "Работа клавиш Backspace для совместимости", + "startupSnippet": "Сниппет запуска", + "selectSnippet": "Выбрать сниппет", + "searchSnippets": "Поиск сниппетов...", + "snippetNone": "Нет", + "noneAuthTitle": "Клавиатура - Интерактивная аутентификация", + "noneAuthDescription": "Этот метод аутентификации будет использовать интерактивную аутентификацию с клавиатурой при подключении к SSH серверу.", + "noneAuthDetails": "Интерактивная аутентификация на клавиатуре позволяет серверу запрашивать учетные данные во время подключения. Это полезно для серверов, которые требуют многофакторной аутентификации или если вы не хотите сохранять учетные данные локально.", + "forceKeyboardInteractive": "Интерактивная клавиатура", + "forceKeyboardInteractiveDesc": "Принудительно использовать интерактивную аутентификацию с клавиатуры. Иногда требуется для серверов, использующих двухфакторную аутентификацию (TOTP/2FA).", + "overrideCredentialUsername": "Переопределить имя пользователя", + "overrideCredentialUsernameDesc": "Используйте другое имя пользователя, чем тот, который хранится в учетных данных. Это позволяет использовать одни и те же учетные данные с разными именами.", + "jumpHosts": "Хосты прыжков", + "jumpHostsDescription": "Хосты перехода (также известные как хосты бастиона) позволяют подключаться к целевому серверу через один или несколько промежуточных серверов. Это полезно для доступа к серверам за брандмауэрами или в частных сетях.", + "jumpHostChain": "Цепь Прыжков", + "addJumpHost": "Добавить Прыжок", + "selectServer": "Выбрать сервер", + "searchServers": "Поиск серверов...", + "noServerFound": "Сервер не найден", + "jumpHostsOrder": "Соединения будут сделаны в порядке: Прыжок 1 → Прыжок Хост 2 → ... → Целевой сервер", + "socks5Proxy": "SOCKS5 прокси", + "socks5Description": "Настроить SOCKS5 прокси для SSH соединения. Весь трафик будет маршрутизирован через указанный прокси-сервер.", + "enableSocks5": "Включить SOCKS5 прокси", + "enableSocks5Description": "Использовать SOCKS5 прокси для этого SSH соединения", + "socks5Host": "Прокси хост", + "socks5Port": "Порт прокси", + "socks5Username": "Имя пользователя прокси", + "socks5Password": "Пароль прокси", + "socks5UsernameOptional": "Опционально: оставьте пустым, если прокси не требует аутентификации", + "socks5PasswordOptional": "Опционально: оставьте пустым, если прокси не требует аутентификации", + "socks5ProxyChain": "Цепочка прокси", + "socks5ProxyChainDescription": "Настройте цепочку SOCKS прокси. Каждый прокси в цепочке будет соединяться через предыдущий.", + "socks5ProxyMode": "Режим прокси", + "socks5UseSingleProxy": "Использовать один прокси", + "socks5UseProxyChain": "Использовать цепочку прокси", + "socks5UsePreset": "Использовать сохраненный пресет", + "socks5SelectPreset": "Выберите пресет", + "socks5ManagePresets": "Управление пресетами", + "socks5ProxyNode": "Прокси {{number}}", + "socks5AddProxy": "Добавить прокси в цепочку", + "socks5RemoveProxy": "Удалить прокси", + "socks5ProxyType": "Тип прокси", + "socks5SaveAsPreset": "Сохранить как пресет", + "socks5SavePresetTitle": "Сохранить цепочку прокси как пресет", + "socks5SavePresetDescription": "Сохранить текущую цепочку прокси как повторно используемый пресет", + "socks5PresetName": "Имя шаблона", + "socks5PresetDescription": "Описание (необязательно)", + "socks5PresetCreated": "Предустановка цепочки прокси создана", + "socks5PresetUpdated": "Предустановка цепочки прокси обновлена", + "socks5PresetDeleted": "Предустановка цепочки прокси удалена", "socks5PresetSaved": "Preset \"{{name}}\" saved successfully", - "socks5PresetSaveError": "Failed to save preset", - "socks5PresetNameRequired": "Preset name is required", - "socks5EmptyChainError": "Cannot save an empty proxy chain", - "socks5ProxyChainEmpty": "Add at least one proxy to the chain", - "socks5HostDescription": "Hostname or IP address of the SOCKS proxy server", - "socks5PortDescription": "Port number of the SOCKS proxy server (default: 1080)", - "addProxyNode": "Add Proxy Node", - "noProxyNodes": "No proxy nodes configured. Click 'Add Proxy Node' to add one.", - "proxyNode": "Proxy Node", - "proxyType": "Proxy Type", - "quickActions": "Quick Actions", - "quickActionsDescription": "Quick actions allow you to create custom buttons that execute SSH snippets on this server. These buttons will appear at the top of the Server Stats page for quick access.", - "quickActionsList": "Quick Actions List", - "addQuickAction": "Add Quick Action", - "quickActionName": "Action name", - "noSnippetFound": "No snippet found", - "quickActionsOrder": "Quick action buttons will appear in the order listed above on the Server Stats page", - "advancedAuthSettings": "Advanced Authentication Settings", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Automatically offer to insert SSH password when sudo prompts for password", - "sudoPassword": "Sudo Password", - "sudoPasswordDesc": "Optional password for sudo commands (useful with key authentication)", + "socks5PresetSaveError": "Не удалось сохранить пресет", + "socks5PresetNameRequired": "Требуется имя пресета", + "socks5EmptyChainError": "Не удается сохранить цепочку пустого прокси", + "socks5ProxyChainEmpty": "Добавьте хотя бы один прокси в цепочку", + "socks5HostDescription": "Имя хоста или IP-адрес SOCKS прокси-сервера", + "socks5PortDescription": "Порт SOCKS прокси-сервера (по умолчанию: 1080)", + "addProxyNode": "Добавить узел прокси", + "noProxyNodes": "Прокси-узлы не настроены. Нажмите 'Добавить прокси-узл', чтобы добавить его.", + "proxyNode": "Узел прокси", + "proxyType": "Тип прокси", + "quickActions": "Быстрые действия", + "quickActionsDescription": "Быстрые действия позволяют создавать пользовательские кнопки, выполняющие сниппеты SSH на этом сервере. Эти кнопки будут отображаться в верхней части страницы Статистики Сервера для быстрого доступа.", + "quickActionsList": "Список быстрых действий", + "addQuickAction": "Добавить Быстрое Действие", + "quickActionName": "Название действия", + "noSnippetFound": "Сниппет не найден", + "quickActionsOrder": "Кнопки быстрых действий появятся в порядке, указанном выше на странице Статистика сервера", + "advancedAuthSettings": "Расширенные настройки аутентификации", + "sudoPasswordAutoFill": "Автозаполнение пароля", + "sudoPasswordAutoFillDesc": "Автоматически предлагать вставить SSH пароль при запросах sudo к паролю", + "sudoPassword": "Sudo Пароль", + "sudoPasswordDesc": "Необязательный пароль для команд sudo (полезен с ключом аутентификации)", "socks4": "SOCKS4", "socks5": "SOCKS5", - "executeSnippetOnConnect": "Execute a snippet when the terminal connects", - "autoMosh": "Auto-MOSH", - "autoMoshDesc": "Automatically run MOSH command on connect", - "moshCommand": "MOSH Command", - "moshCommandDesc": "The MOSH command to execute", - "environmentVariables": "Environment Variables", - "environmentVariablesDesc": "Set custom environment variables for the terminal session", - "variableName": "Variable name", - "variableValue": "Value", - "addVariable": "Add Variable", - "docker": "Docker", - "openDocker": "Open Docker", - "notEnabled": "Docker is not enabled for this host. Enable it in Host Settings to use Docker features.", - "validating": "Validating Docker...", - "error": "Error", - "errorCode": "Error code: {{code}}", + "executeSnippetOnConnect": "Выполнить сниппет при подключении терминала", + "autoMosh": "Авто-MOSH", + "autoMoshDesc": "Автоматически запускать команду MOSH при подключении", + "moshCommand": "Команда MOSH", + "moshCommandDesc": "MOSH команда для выполнения", + "environmentVariables": "Переменные окружения", + "environmentVariablesDesc": "Установить пользовательские переменные окружения для терминального сеанса", + "variableName": "Имя переменной", + "variableValue": "Значение", + "addVariable": "Добавить переменную", + "docker": "Докер", + "openDocker": "Открыть докер", + "notEnabled": "Для этого узла Docker не включен. Включите его в настройках хоста, чтобы использовать функции Docker.", + "validating": "Проверка докера...", + "error": "Ошибка", + "errorCode": "Код ошибки: {{code}}", "version": "Docker v{{version}}", - "current": "Current", - "used_limit": "Used / Limit", - "percentage": "Percentage", + "current": "Текущее", + "used_limit": "Использовано / Лимит", + "percentage": "Процент", "input": "Input", - "output": "Output", - "read": "Read", - "write": "Write", + "output": "Вывод", + "read": "Чтение", + "write": "Написать", "pids": "PIDs", "id": "ID", - "state": "State", - "console": "Console", - "containerMustBeRunning": "Container must be running to connect to console", - "authenticationRequired": "Authentication required", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to console", - "disconnectedFromContainer": "Disconnected from container console.", - "containerNotRunning": "Container is not running", - "startContainerToAccess": "Start the container to access the console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "Sh", - "ash": "Ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click Connect to start an interactive shell", - "connectingTo": "Connecting to {{containerName}}...", - "containerMustBeRunningToViewStats": "Container must be running to view stats", - "failedToFetchStats": "Failed to fetch stats", - "noContainersFound": "No containers found", - "noContainersFoundHint": "Start by creating containers on your server", - "searchPlaceholder": "Search by name, image, or ID...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "state": "Область", + "console": "Консоль", + "containerMustBeRunning": "Контейнер должен быть запущен для подключения к консоли", + "authenticationRequired": "Требуется аутентификация", + "connectedTo": "Подключено к {{containerName}}", + "disconnected": "Отключено", + "consoleError": "Ошибка консоли", + "errorMessage": "Ошибка: {{message}}", + "failedToConnect": "Не удалось подключиться к консоли", + "disconnectedFromContainer": "Отключен от консоли контейнеров.", + "containerNotRunning": "Контейнер не запущен", + "startContainerToAccess": "Запустите контейнер для доступа к консоли", + "selectShell": "Выберите оболочку", + "bash": "Баш", + "sh": "Сч", + "ash": "Эш", + "connecting": "Подключение...", + "connect": "Подключиться", + "disconnect": "Отключиться", + "notConnected": "Не подключен", + "clickToConnect": "Нажмите Подключиться, чтобы запустить интерактивную оболочку", + "connectingTo": "Подключение к {{containerName}}...", + "containerMustBeRunningToViewStats": "Контейнер должен быть запущен для просмотра статистики", + "failedToFetchStats": "Не удалось получить статистику", + "noContainersFound": "Контейнеры не найдены", + "noContainersFoundHint": "Начните с создания контейнеров на вашем сервере", + "searchPlaceholder": "Поиск по имени, изображению или ID...", + "filterByStatusPlaceholder": "Фильтр по статусу", + "allContainersCount": "Все ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container: {{error}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container: {{error}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container: {{error}}", - "containerUnpaused": "Container {{name}} unpaused", - "containerPaused": "Container {{name}} paused", - "failedToTogglePauseContainer": "Failed to {{action}} container: {{error}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container: {{error}}", - "image": "Image:", + "noContainersMatchFilters": "Нет контейнеров, соответствующих вашим фильтрам", + "noContainersMatchFiltersHint": "Попробуйте изменить поиск или фильтр", + "containerStarted": "Запущен контейнер {{name}}", + "failedToStartContainer": "Не удалось запустить контейнер: {{error}}", + "containerStopped": "Контейнер {{name}} остановлен", + "failedToStopContainer": "Не удалось остановить контейнер: {{error}}", + "containerRestarted": "Контейнер {{name}} перезапущен", + "failedToRestartContainer": "Не удалось перезапустить контейнер: {{error}}", + "containerUnpaused": "Контейнер {{name}} снят на паузе", + "containerPaused": "Контейнер {{name}} приостановлен", + "failedToTogglePauseContainer": "Не удалось установить {{action}} контейнер: {{error}}", + "containerRemoved": "Контейнер {{name}} удален", + "failedToRemoveContainer": "Не удалось удалить контейнер: {{error}}", + "image": "Изображение:", "idLabel": "ID:", - "ports": "Ports:", - "noPorts": "None", - "created": "Created:", - "start": "Start", - "stop": "Stop", + "ports": "Порты:", + "noPorts": "Нет", + "created": "Создано:", + "start": "Начать", + "stop": "Остановить", "unpause": "Unpause", - "pause": "Pause", - "restart": "Restart", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove container \"{{name}}\"?", - "runningContainerWarning": "Warning: This container is currently running and will be force-removed.", - "removing": "Removing:", - "containerNotFound": "Container not found", - "backToList": "Back to list", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}", - "linesToShow": "Lines to show", - "last50Lines": "Last 50 lines", - "last100Lines": "Last 100 lines", - "last500Lines": "Last 500 lines", - "last1000Lines": "Last 1000 lines", - "allLogs": "All logs", - "showTimestamps": "Show Timestamps", - "autoRefresh": "Auto Refresh", - "filterLogsPlaceholder": "Filter logs...", - "noLogsAvailable": "No logs available" + "pause": "Пауза", + "restart": "Перезапустить", + "removeContainer": "Удалить контейнер", + "confirmRemoveContainer": "Вы уверены, что хотите удалить контейнер \"{{name}}\"?", + "runningContainerWarning": "Предупреждение: Этот контейнер запущен и будет принудительно удален.", + "removing": "Удаление:", + "containerNotFound": "Контейнер не найден", + "backToList": "Назад к списку", + "logs": "Логи", + "stats": "Статистика", + "consoleTab": "Консоль", + "failedToFetchLogs": "Не удалось получить журналы: {{error}}", + "failedToDownloadLogs": "Не удалось загрузить журналы: {{error}}", + "linesToShow": "Строки для показа", + "last50Lines": "Последние 50 строк", + "last100Lines": "Последние 100 строк", + "last500Lines": "Последние 500 строк", + "last1000Lines": "Последние 1000 строк", + "allLogs": "Все журналы", + "showTimestamps": "Показывать метки времени", + "autoRefresh": "Автообновление", + "filterLogsPlaceholder": "Фильтровать журналы...", + "noLogsAvailable": "Нет доступных журналов" }, "terminal": { - "title": "Terminal", - "connect": "Connect to Host", - "disconnect": "Disconnect", - "clear": "Clear", - "copy": "Copy", - "paste": "Paste", - "find": "Find", - "fullscreen": "Fullscreen", - "splitHorizontal": "Split Horizontal", - "splitVertical": "Split Vertical", - "closePanel": "Close Panel", - "reconnect": "Reconnect", - "sessionEnded": "Session Ended", - "connectionLost": "Connection Lost", - "error": "ERROR: {{message}}", - "disconnected": "Disconnected", - "connectionClosed": "Connection closed", - "connectionError": "Connection error: {{message}}", - "connected": "Connected", - "sshConnected": "SSH connection established", - "authError": "Authentication failed: {{message}}", - "unknownError": "Unknown error occurred", - "messageParseError": "Failed to parse server message", - "websocketError": "WebSocket connection error", - "connecting": "Connecting...", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "reconnected": "Reconnected successfully", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "connectionTimeout": "Connection timeout", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runTitle": "Running {{command}} - {{host}}", - "totpRequired": "Two-Factor Authentication Required", - "totpCodeLabel": "Verification Code", + "title": "Терминал", + "connect": "Подключиться к хосту", + "disconnect": "Отключиться", + "clear": "Очистить", + "copy": "Копировать", + "paste": "Вставить", + "find": "Найти", + "fullscreen": "Полноэкранный", + "splitHorizontal": "Разделить по горизонтали", + "splitVertical": "Разбить по вертикали", + "closePanel": "Закрыть панель", + "reconnect": "Переподключить", + "sessionEnded": "Сессия завершена", + "connectionLost": "Соединение потеряно", + "error": "ОШИБКА: {{message}}", + "disconnected": "Отключено", + "connectionClosed": "Соединение закрыто", + "connectionError": "Ошибка соединения: {{message}}", + "connected": "Подключено", + "sshConnected": "SSH соединение установлено", + "authError": "Ошибка аутентификации: {{message}}", + "unknownError": "Произошла неизвестная ошибка", + "messageParseError": "Не удалось разобрать сообщение сервера", + "websocketError": "Ошибка подключения к WebSocket", + "connecting": "Подключение...", + "reconnecting": "Переподключение... ({{attempt}}/{{max}})", + "reconnected": "Переподключено успешно", + "maxReconnectAttemptsReached": "Достигнуто максимальное число попыток восстановления соединения", + "connectionTimeout": "Таймаут подключения", + "terminalTitle": "Терминал - {{host}}", + "terminalWithPath": "Терминал - {{host}}:{{path}}", + "runTitle": "Запуск {{command}} - {{host}}", + "totpRequired": "Требуется двухфакторная аутентификация", + "totpCodeLabel": "Проверочный код", "totpPlaceholder": "000000", - "totpVerify": "Verify", - "sudoPasswordPopupTitle": "Insert Password?", - "sudoPasswordPopupHint": "Press Enter to insert, Esc to dismiss", + "totpVerify": "Подтвердить", + "sudoPasswordPopupTitle": "Вставить пароль?", + "sudoPasswordPopupHint": "Нажмите Enter для вставки, Esc для отключения", "sudoPasswordPopupConfirm": "Insert", - "sudoPasswordPopupDismiss": "Dismiss" + "sudoPasswordPopupDismiss": "Отклонить" }, "fileManager": { - "title": "File Manager", - "file": "File", - "folder": "Folder", - "connectToSsh": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "renameItem": "Rename Item", - "deleteItem": "Delete Item", - "currentPath": "Current Path", - "uploadFileTitle": "Upload File", - "maxFileSize": "Max: 1GB (JSON) / 5GB (Binary) - Large files supported", - "removeFile": "Remove File", - "clickToSelectFile": "Click to select a file", - "chooseFile": "Choose File", - "uploading": "Uploading...", - "downloading": "Downloading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingLargeFile": "Uploading large file {{name}} ({{size}})...", - "downloadingFile": "Downloading {{name}}...", - "creatingFile": "Creating {{name}}...", - "creatingFolder": "Creating {{name}}...", - "deletingItem": "Deleting {{type}} {{name}}...", - "renamingItem": "Renaming {{type}} {{oldName}} to {{newName}}...", - "createNewFile": "Create New File", - "fileName": "File Name", - "creating": "Creating...", - "createFile": "Create File", - "createNewFolder": "Create New Folder", - "folderName": "Folder Name", - "createFolder": "Create Folder", - "warningCannotUndo": "Warning: This action cannot be undone", - "itemPath": "Item Path", - "thisIsDirectory": "This is a directory (will delete recursively)", - "deleting": "Deleting...", - "currentPathLabel": "Current Path", - "newName": "New Name", - "thisIsDirectoryRename": "This is a directory", - "renaming": "Renaming...", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "noFileContent": "No file content received", - "filePath": "File Path", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "failedToCreateFile": "Failed to create file", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateFolder": "Failed to create folder", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemDeletedSuccessfully": "{{type}} deleted successfully", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "dragFilesToUpload": "Drop files here to upload", - "emptyFolder": "This folder is empty", - "itemCount": "{{count}} items", - "selectedCount": "{{count}} selected", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "enterFolderName": "Enter folder name:", - "enterFileName": "Enter file name:", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "uploadSuccess": "File uploaded successfully", - "uploadFailed": "File upload failed", - "downloadSuccess": "File downloaded successfully", - "downloadFailed": "File download failed", - "permissionDenied": "Permission denied", - "checkDockerLogs": "Check the Docker logs for detailed error information", - "internalServerError": "Internal server error occurred", - "serverError": "Server Error", - "error": "Error", - "requestFailed": "Request failed with status code", - "unknownFileError": "unknown", - "cannotReadFile": "Cannot read file", - "noSshSessionId": "No SSH session ID available", - "noFilePath": "No file path available", - "noCurrentHost": "No current host available", - "fileSavedSuccessfully": "File saved successfully", - "saveTimeout": "Save operation timed out. The file may have been saved successfully, but the operation took too long to complete. Check the Docker logs for confirmation.", - "failedToSaveFile": "Failed to save file", - "deletedSuccessfully": "deleted successfully", - "connectToServer": "Connect to a Server", - "selectServerToEdit": "Select a server from the sidebar to start editing files", - "fileOperations": "File Operations", - "confirmDeleteMessage": "Are you sure you want to delete {{name}}?", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "deleteDirectoryWarning": "This will delete the folder and all its contents.", - "actionCannotBeUndone": "This action cannot be undone.", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", - "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "noRecentFiles": "No recent files.", - "noPinnedFiles": "No pinned files.", - "enterFolderPath": "Enter folder path", - "noShortcuts": "No shortcuts.", - "searchFilesAndFolders": "Search files and folders...", - "noFilesOrFoldersFound": "No files or folders found.", - "failedToConnectSSH": "Failed to connect to SSH", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "failedToListFiles": "Failed to list files", - "fetchHomeDataTimeout": "Fetch home data timed out", - "sshStatusCheckTimeout": "SSH status check timed out", - "sshReconnectionTimeout": "SSH reconnection timed out", - "saveOperationTimeout": "Save operation timed out", - "cannotSaveFile": "Cannot save file", - "dragSystemFilesToUpload": "Drag system files here to upload", - "dragFilesToWindowToDownload": "Drag files outside window to download", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "saveToSystem": "Save as...", - "selectLocationToSave": "Select Location to Save", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", - "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "noHostSelected": "No host selected", - "starred": "Starred", - "shortcuts": "Shortcuts", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "saveFilesToSystem": "Save {{count}} files as...", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "downloadToDefaultLocation": "Download to default location", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "enterPath": "Enter path...", - "editPath": "Edit path", - "confirm": "Confirm", - "cancel": "Cancel", - "find": "Find...", - "replaceWith": "Replace with...", - "replace": "Replace", - "replaceAll": "Replace All", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", + "title": "Файловый менеджер", + "file": "Файл", + "folder": "Папка", + "connectToSsh": "Подключитесь к SSH для использования операций с файлами", + "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": "Переименовать", + "renameItem": "Переименовать элемент", + "deleteItem": "Удалить элемент", + "currentPath": "Текущий путь", + "uploadFileTitle": "Загрузить файл", + "maxFileSize": "Макс: 1 ГБ (JSON) / 5 Гб (Бинар) - Поддерживаются большие файлы", + "removeFile": "Удалить файл", + "clickToSelectFile": "Щелкните, чтобы выбрать файл", + "chooseFile": "Выберите файл", + "uploading": "Загрузка...", + "downloading": "Загрузка...", + "uploadingFile": "Загрузка {{name}}...", + "uploadingLargeFile": "Загрузка большого файла {{name}} ({{size}})...", + "downloadingFile": "Загрузка {{name}}...", + "creatingFile": "Создание {{name}}...", + "creatingFolder": "Создание {{name}}...", + "deletingItem": "Удаление {{type}} {{name}}...", + "renamingItem": "Переименование {{type}} {{oldName}} на {{newName}}...", + "createNewFile": "Создать новый файл", + "fileName": "Имя файла", + "creating": "Создание...", + "createFile": "Создать файл", + "createNewFolder": "Создать новую папку", + "folderName": "Имя папки", + "createFolder": "Создать папку", + "warningCannotUndo": "Внимание: Это действие не может быть отменено", + "itemPath": "Путь к предмету", + "thisIsDirectory": "Это каталог (будет удалять рекурсивно)", + "deleting": "Удаление...", + "currentPathLabel": "Текущий путь", + "newName": "Новое имя", + "thisIsDirectoryRename": "Это директория", + "renaming": "Переименование...", + "fileUploadedSuccessfully": "Файл \"{{name}}\" успешно загружен", + "failedToUploadFile": "Не удалось загрузить файл", + "fileDownloadedSuccessfully": "Файл \"{{name}}\" успешно загружен", + "failedToDownloadFile": "Не удалось загрузить файл", + "noFileContent": "Содержимое файла не получено", + "filePath": "Путь к файлу", + "fileCreatedSuccessfully": "Файл \"{{name}}\" успешно создан", + "failedToCreateFile": "Не удалось создать файл", + "folderCreatedSuccessfully": "Папка \"{{name}}\" успешно создана", + "failedToCreateFolder": "Не удалось создать папку", + "failedToCreateItem": "Не удалось создать элемент", + "operationFailed": "Ошибка операции {{operation}} для {{name}}: {{error}}", + "failedToResolveSymlink": "Не удалось разрешить символическую ссылку", + "itemDeletedSuccessfully": "{{type}} успешно удален", + "itemsDeletedSuccessfully": "{{count}} элементы успешно удалены", + "failedToDeleteItems": "Не удалось удалить элементы", + "dragFilesToUpload": "Перетащите файлы сюда, чтобы загрузить", + "emptyFolder": "Эта папка пуста", + "itemCount": "{{count}} элементов", + "selectedCount": "{{count}} выбран", + "searchFiles": "Поиск файлов...", + "upload": "Выгрузить", + "selectHostToStart": "Выберите хост для запуска управления файлами", + "failedToConnect": "Не удалось подключиться к SSH", + "failedToLoadDirectory": "Не удалось загрузить каталог", + "noSSHConnection": "Нет доступного SSH соединения", + "enterFolderName": "Введите имя папки:", + "enterFileName": "Введите имя файла:", + "copy": "Копировать", + "cut": "Вырезать", + "paste": "Вставить", + "copyPath": "Копировать путь", + "copyPaths": "Копировать пути", + "delete": "Удалить", + "properties": "Свойства", + "refresh": "Обновить", + "downloadFiles": "Скачать файлы {{count}} в браузер", + "copyFiles": "Копировать {{count}} элементов", + "cutFiles": "Вырезать {{count}} элементов", + "deleteFiles": "Удалить {{count}} элементов", + "filesCopiedToClipboard": "{{count}} элементов скопировано в буфер обмена", + "filesCutToClipboard": "{{count}} элементов вырезано в буфер обмена", + "pathCopiedToClipboard": "Путь скопирован в буфер обмена", + "pathsCopiedToClipboard": "{{count}} пути скопированы в буфер обмена", + "failedToCopyPath": "Не удалось скопировать путь в буфер обмена", + "movedItems": "Перемещено {{count}} элементов", + "failedToDeleteItem": "Не удалось удалить элемент", + "itemRenamedSuccessfully": "{{type}} успешно переименован", + "failedToRenameItem": "Не удалось переименовать элемент", + "download": "Скачать", + "permissions": "Права доступа", + "size": "Размер", + "modified": "Изменено", + "path": "Путь", + "confirmDelete": "Вы уверены, что хотите удалить {{name}}?", + "uploadSuccess": "Файл успешно загружен", + "uploadFailed": "Не удалось загрузить файл", + "downloadSuccess": "Файл успешно загружен", + "downloadFailed": "Ошибка загрузки файла", + "permissionDenied": "Отказано в доступе", + "checkDockerLogs": "Проверьте журналы Docker для получения подробной информации об ошибках", + "internalServerError": "Произошла внутренняя ошибка сервера", + "serverError": "Ошибка сервера", + "error": "Ошибка", + "requestFailed": "Запрос не удался с кодом статуса", + "unknownFileError": "неизвестно", + "cannotReadFile": "Не удается прочитать файл", + "noSshSessionId": "Идентификатор SSH не доступен", + "noFilePath": "Нет доступного пути к файлу", + "noCurrentHost": "Нет доступных узлов", + "fileSavedSuccessfully": "Файл успешно сохранен", + "saveTimeout": "Истекло время сохранения файла. Возможно, файл был успешно сохранен, но операция заняла слишком много времени, чтобы завершить. Проверьте журналы Docker для подтверждения.", + "failedToSaveFile": "Не удалось сохранить файл", + "deletedSuccessfully": "успешно удалено", + "connectToServer": "Подключиться к серверу", + "selectServerToEdit": "Выберите сервер из боковой панели, чтобы начать редактирование файлов", + "fileOperations": "Операции с файлами", + "confirmDeleteMessage": "Вы уверены, что хотите удалить {{name}}?", + "confirmDeleteSingleItem": "Вы уверены, что хотите навсегда удалить \"{{name}}\"?", + "confirmDeleteMultipleItems": "Вы уверены, что хотите навсегда удалить элементы {{count}}?", + "confirmDeleteMultipleItemsWithFolders": "Вы уверены, что хотите навсегда удалить {{count}} ? Включает в себя папки и их содержимое.", + "confirmDeleteFolder": "Вы уверены, что хотите навсегда удалить папку \"{{name}}\" и все ее содержимое?", + "deleteDirectoryWarning": "Это удалит папку и все ее содержимое.", + "actionCannotBeUndone": "Это действие нельзя отменить.", + "permanentDeleteWarning": "Это действие нельзя отменить. Элемент(ы) будут окончательно удалены с сервера.", + "recent": "Недавние", + "pinned": "Прикреплено", + "folderShortcuts": "Ярлыки папок", + "noRecentFiles": "Нет недавних файлов.", + "noPinnedFiles": "Нет прикрепленных файлов.", + "enterFolderPath": "Введите путь к папке", + "noShortcuts": "Нет ярлыков.", + "searchFilesAndFolders": "Поиск файлов и папок...", + "noFilesOrFoldersFound": "Файлы или папки не найдены.", + "failedToConnectSSH": "Не удалось подключиться к SSH", + "failedToReconnectSSH": "Не удалось переподключить SSH сеанс", + "failedToListFiles": "Не удалось перечислить файлы", + "fetchHomeDataTimeout": "Истекло время ожидания на получение данных дома", + "sshStatusCheckTimeout": "Время ожидания проверки статуса SSH истекло", + "sshReconnectionTimeout": "Время пересоединения SSH истекло", + "saveOperationTimeout": "Тайм-аут операции сохранения", + "cannotSaveFile": "Не удается сохранить файл", + "dragSystemFilesToUpload": "Перетащите системные файлы сюда для загрузки", + "dragFilesToWindowToDownload": "Перетащите файлы за пределы окна для загрузки", + "openTerminalHere": "Открыть терминал здесь", + "run": "Запустить", + "saveToSystem": "Сохранить как...", + "selectLocationToSave": "Выберите местоположение для сохранения", + "openTerminalInFolder": "Открыть терминал в этой папке", + "openTerminalInFileLocation": "Открыть терминал в расположении файла", + "terminalWithPath": "Терминал - {{host}}:{{path}}", + "runningFile": "Запуск - {{file}}", + "onlyRunExecutableFiles": "Можно запускать только исполняемые файлы", + "noHostSelected": "Хост не выбран", + "starred": "Помеченные", + "shortcuts": "Ярлыки", + "directories": "Каталоги", + "removedFromRecentFiles": "Удалено \"{{name}}\" из последних файлов", + "removeFailed": "Не удалось удалить", + "unpinnedSuccessfully": "Откреплено \"{{name}}\" успешно", + "unpinFailed": "Открепить не удалось", + "removedShortcut": "Удалён ярлык \"{{name}}\"", + "removeShortcutFailed": "Не удалось удалить ярлык", + "clearedAllRecentFiles": "Все недавние файлы удалены", + "clearFailed": "Сбой очистки", + "removeFromRecentFiles": "Удалить из недавних файлов", + "clearAllRecentFiles": "Очистить все недавние файлы", + "unpinFile": "Открепить файл", + "removeShortcut": "Удалить ярлык", + "saveFilesToSystem": "Сохранить файлы {{count}} как...", + "pinFile": "Закрепить файл", + "addToShortcuts": "Добавить в ярлыки", + "downloadToDefaultLocation": "Загрузить в местоположение по умолчанию", + "pasteFailed": "Ошибка вставки", + "noUndoableActions": "Нет невыполнимых действий", + "undoCopySuccess": "Операция отмены копии: удалено {{count}} скопированных файлов", + "undoCopyFailedDelete": "Не удалось отменить: Не удалось удалить скопированные файлы", + "undoCopyFailedNoInfo": "Ошибка отмены: Не удалось найти скопированную информацию о файле", + "undoMoveSuccess": "Операция отменена: Перемещение файлов {{count}} обратно в исходное место", + "undoMoveFailedMove": "Не удалось отменить: Не удалось переместить файлы обратно", + "undoMoveFailedNoInfo": "Не удалось отменить: информация о перемещенном файле не найдена", + "undoDeleteNotSupported": "Операция удаления не может быть отменена: файлы были навсегда удалены с сервера", + "undoTypeNotSupported": "Неподдерживаемый тип операции отмены", + "undoOperationFailed": "Не удалось отменить операцию", + "unknownError": "Неизвестная ошибка", + "enterPath": "Введите путь...", + "editPath": "Изменить путь", + "confirm": "Подтвердить", + "cancel": "Отмена", + "find": "Найти...", + "replaceWith": "Заменить на...", + "replace": "Заменить", + "replaceAll": "Заменить все", + "downloadInstead": "Загрузить вместо этого", + "keyboardShortcuts": "Горячие клавиши", + "searchAndReplace": "Поиск и замена", + "editing": "Редактирование", "navigation": "Navigation", - "code": "Code", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "goToLine": "Go to Line", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "indent": "Indent", - "outdent": "Outdent", + "code": "Код", + "search": "Искать", + "findNext": "Найти далее", + "findPrevious": "Найти предыдущий", + "save": "Сохранить", + "selectAll": "Выделить все", + "undo": "Отменить", + "redo": "Повторить", + "goToLine": "Перейти к линии", + "moveLineUp": "Переместить строку вверх", + "moveLineDown": "Переместить линию вниз", + "toggleComment": "Переключить комментарий", + "indent": "Отступ", + "outdent": "Отклонение", "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "rotate": "Rotate", - "originalSize": "Original Size", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", + "imageLoadError": "Не удалось загрузить изображение", + "rotate": "Повернуть", + "originalSize": "Исходный размер", + "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": "Ошибка загрузки", + "moveTo": "Переместить в {{name}}", + "diffCompareWith": "Сравнение разницы с {{name}}", + "dragOutsideToDownload": "Перетащите внешнее окно для загрузки (файлы{{count}})", + "newFolderDefault": "Новая папка", "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", + "successfullyMovedItems": "Успешно перемещено {{count}} элементов в {{target}}", + "move": "Переместить", + "searchInFile": "Поиск в файле (Ctrl+F)", + "showKeyboardShortcuts": "Показать горячие клавиши", + "startWritingMarkdown": "Начните писать ваше содержимое markdown...", + "loadingFileComparison": "Загрузка сравнения файлов...", "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "changePermissionsDesc": "Modify file permissions for", - "currentPermissions": "Current Permissions", - "newPermissions": "New Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions" + "compare": "Сравнить", + "sideBySide": "Грань по боку", + "inline": "Встроенный", + "fileComparison": "Сравнение файлов: {{file1}} против {{file2}}", + "fileTooLarge": "Файл слишком большой: {{error}}", + "sshConnectionFailed": "Не удалось подключиться к SSH. Пожалуйста, проверьте подключение к {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Не удалось загрузить файл: {{error}}", + "connectedSuccessfully": "Подключено успешно", + "totpVerificationFailed": "Ошибка проверки TOTP", + "verificationCodePrompt": "Код подтверждения:", + "changePermissions": "Изменить права доступа", + "changePermissionsDesc": "Изменение прав доступа к файлу для", + "currentPermissions": "Текущие разрешения", + "newPermissions": "Новые разрешения", + "owner": "Владелец", + "group": "Группа", + "others": "Другие", + "read": "Чтение", + "write": "Написать", + "execute": "Выполнить", + "permissionsChangedSuccessfully": "Права доступа успешно изменены", + "failedToChangePermissions": "Не удалось изменить права доступа" }, "tunnel": { - "noTunnelsConfigured": "No Tunnels Configured", - "configureTunnelsInHostSettings": "Configure tunnel connections in the Host Manager to get started" + "noTunnelsConfigured": "Туннели не настроены", + "configureTunnelsInHostSettings": "Настроить туннельные соединения в менеджере хостов для начала" }, "tunnels": { - "title": "SSH Tunnels", - "noSshTunnels": "No SSH Tunnels", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "connected": "Connected", - "disconnected": "Disconnected", - "connecting": "Connecting...", - "disconnecting": "Disconnecting...", - "unknownTunnelStatus": "Unknown", - "statusUnknown": "Unknown", - "unknown": "Unknown", - "error": "Error", - "failed": "Failed", - "retrying": "Retrying", - "waiting": "Waiting", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "canceling": "Canceling...", - "connect": "Connect", - "disconnect": "Disconnect", - "cancel": "Cancel", - "port": "Port", - "attempt": "Attempt {{current}} of {{max}}", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "checkDockerLogs": "Check your Docker logs for the error reason, join the", - "orCreate": "or create a ", - "noTunnelConnections": "No tunnel connections configured", - "tunnelConnections": "Tunnel Connections", - "addTunnel": "Add Tunnel", - "editTunnel": "Edit Tunnel", - "deleteTunnel": "Delete Tunnel", - "tunnelName": "Tunnel Name", - "localPort": "Local Port", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "autoStart": "Auto Start", - "status": "Status", - "active": "Active", - "inactive": "Inactive", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "connectionType": "Connection Type", - "local": "Local", - "remote": "Remote", - "dynamic": "Dynamic", - "unknownConnectionStatus": "Unknown", - "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "endpointHostNotFound": "Endpoint host not found", + "title": "SSH туннели", + "noSshTunnels": "Нет SSH туннелей", + "createFirstTunnelMessage": "Вы еще не создали SSH туннелей. Настройте туннельные соединения в менеджере хостов, чтобы начать.", + "connected": "Подключено", + "disconnected": "Отключено", + "connecting": "Подключение...", + "disconnecting": "Отключение...", + "unknownTunnelStatus": "Неизвестен", + "statusUnknown": "Неизвестен", + "unknown": "Неизвестен", + "error": "Ошибка", + "failed": "Неудачный", + "retrying": "Повторить", + "waiting": "Ожидание", + "waitingForRetry": "Ожидание повтора", + "retryingConnection": "Повторная попытка подключения", + "canceling": "Отмена...", + "connect": "Подключиться", + "disconnect": "Отключиться", + "cancel": "Отмена", + "port": "Порт", + "attempt": "Попытка {{current}} из {{max}}", + "nextRetryIn": "Следующая повтор через {{seconds}} секунд", + "checkDockerLogs": "Проверьте логи Docker по причине ошибки, присоединитесь", + "orCreate": "или создать ", + "noTunnelConnections": "туннельные соединения не настроены", + "tunnelConnections": "Туннель соединения", + "addTunnel": "Добавить Туннель", + "editTunnel": "Редактировать Туннель", + "deleteTunnel": "Удалить Туннель", + "tunnelName": "Название Туннеля", + "localPort": "Локальный порт", + "remoteHost": "Удаленный хост", + "remotePort": "Удаленный порт", + "autoStart": "Автозапуск", + "status": "Статус", + "active": "Активный", + "inactive": "Неактивный", + "start": "Начать", + "stop": "Остановить", + "restart": "Перезапустить", + "connectionType": "Тип соединения", + "local": "Локальный", + "remote": "Удалённый", + "dynamic": "Динамический", + "unknownConnectionStatus": "Неизвестен", + "portMapping": "Порт {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", + "endpointHostNotFound": "Хост конечной точки не найден", "discord": "Discord", - "githubIssue": "GitHub issue", - "forHelp": "for help" + "githubIssue": "Проблема с GitHub", + "forHelp": "за помощь" }, "serverStats": { - "title": "Server Statistics", - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", - "processes": "Processes", - "connections": "Connections", - "usage": "Usage", - "available": "Available", - "total": "Total", - "free": "Free", - "used": "Used", - "percentage": "Percentage", - "refreshStatusAndMetrics": "Refresh status and metrics", - "refreshStatus": "Refresh Status", - "fileManagerAlreadyOpen": "File Manager already open for this host", - "openFileManager": "Open File Manager", - "cpuCores_one": "{{count}} CPU", - "cpuCores_other": "{{count}} CPUs", - "naCpus": "N/A CPU(s)", - "loadAverageNA": "Avg: N/A", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "rootStorageSpace": "Root Storage Space", - "of": "of", - "feedbackMessage": "Have ideas for what should come next for server management? Share them on", - "failedToFetchHostConfig": "Failed to fetch host configuration", - "failedToFetchStatus": "Failed to fetch server status", - "failedToFetchMetrics": "Failed to fetch server metrics", - "failedToFetchHomeData": "Failed to fetch home data", - "loadingMetrics": "Loading metrics...", - "connecting": "Connecting...", - "refreshing": "Refreshing...", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpRequired": "TOTP Authentication Required", - "totpUnavailable": "Server Stats unavailable for TOTP-enabled servers", - "totpVerified": "TOTP verified, metrics collection started", - "totpFailed": "TOTP verification failed", - "totpInvalidCode": "Invalid verification code", - "totpCancelled": "Metrics collection cancelled", - "authenticationFailed": "Authentication failed", - "noneAuthNotSupported": "Server Stats does not support 'none' authentication type.", - "load": "Load", - "editLayout": "Edit Layout", - "cancelEdit": "Cancel", - "addWidget": "Add Widget", - "saveLayout": "Save Layout", - "unsavedChanges": "Unsaved changes", - "layoutSaved": "Layout saved successfully", - "failedToSaveLayout": "Failed to save layout", - "systemInfo": "System Information", + "title": "Статистика сервера", + "cpu": "ЦП", + "memory": "Память", + "disk": "Диск", + "network": "Сеть", + "uptime": "Время работы", + "loadAverage": "Средний: {{avg1}}, {{avg5}}, {{avg15}}", + "processes": "Процессы", + "connections": "Соединения", + "usage": "Использование", + "available": "Доступно", + "total": "Итого", + "free": "Бесплатно", + "used": "Использовано", + "percentage": "Процент", + "refreshStatusAndMetrics": "Обновить статус и метрики", + "refreshStatus": "Обновить статус", + "fileManagerAlreadyOpen": "Файловый менеджер уже открыт для этого узла", + "openFileManager": "Открыть файловый менеджер", + "cpuCores_one": "{{count}} ЦП", + "cpuCores_other": "{{count}} ядер", + "naCpus": "Н/А ЦП(и)", + "loadAverageNA": "Средний: Н/Д", + "cpuUsage": "Загрузка ЦП", + "memoryUsage": "Использование памяти", + "diskUsage": "Использование диска", + "rootStorageSpace": "Корневое хранилище", + "of": "из", + "feedbackMessage": "Есть идеи о том, что нужно сделать в будущем для управления сервером? Поделитесь ими на", + "failedToFetchHostConfig": "Не удалось получить конфигурацию узла", + "failedToFetchStatus": "Не удалось получить статус сервера", + "failedToFetchMetrics": "Не удалось получить метрики сервера", + "failedToFetchHomeData": "Не удалось получить данные о доме", + "loadingMetrics": "Загрузка метрик...", + "connecting": "Подключение...", + "refreshing": "Обновление...", + "serverOffline": "Сервер оффлайн", + "cannotFetchMetrics": "Не удается получить метрики с сервера оффлайн", + "totpRequired": "Требуется аутентификация TOTP", + "totpUnavailable": "Статистика сервера недоступна для серверов с поддержкой TOTP", + "totpVerified": "TOTP верифицирован, началась сбор метрик", + "totpFailed": "Ошибка проверки TOTP", + "totpInvalidCode": "Неверный код подтверждения", + "totpCancelled": "Коллекция метрик отменена", + "authenticationFailed": "Аутентификация не удалась", + "noneAuthNotSupported": "Статистика сервера не поддерживает тип аутентификации «нет».", + "load": "Нагрузка", + "editLayout": "Изменить макет", + "cancelEdit": "Отмена", + "addWidget": "Добавить виджет", + "saveLayout": "Сохранить макет", + "unsavedChanges": "Несохраненные изменения", + "layoutSaved": "Макет успешно сохранен", + "failedToSaveLayout": "Не удалось сохранить макет", + "systemInfo": "Информация о системе", "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "totalUptime": "Total Uptime", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "totalProcesses": "Total Processes", - "running": "Running", - "noProcessesFound": "No processes found", - "loginStats": "SSH Login Statistics", - "totalLogins": "Total Logins", - "uniqueIPs": "Unique IPs", - "recentSuccessfulLogins": "Recent Successful Logins", - "recentFailedAttempts": "Recent Failed Attempts", - "noRecentLoginData": "No recent login data", - "from": "from", - "quickActions": "Quick Actions", - "executeQuickAction": "Execute {{name}}", - "executingQuickAction": "Executing {{name}}...", - "quickActionSuccess": "{{name}} completed successfully", - "quickActionFailed": "{{name}} failed", - "quickActionError": "Failed to execute {{name}}" + "operatingSystem": "Операционная система", + "kernel": "Ядро", + "totalUptime": "Общее время обновления", + "seconds": "секунд", + "networkInterfaces": "Сетевые интерфейсы", + "noInterfacesFound": "Сетевых интерфейсов не найдено", + "totalProcesses": "Всего процессов", + "running": "Выполняется", + "noProcessesFound": "Процессы не найдены", + "loginStats": "Статистика входа SSH", + "totalLogins": "Всего входов", + "uniqueIPs": "Уникальные IP", + "recentSuccessfulLogins": "Последние Успешные Входы", + "recentFailedAttempts": "Недавние неудачные попытки", + "noRecentLoginData": "Нет последних данных для входа", + "from": "от", + "quickActions": "Быстрые действия", + "executeQuickAction": "Выполнить {{name}}", + "executingQuickAction": "Выполнение {{name}}...", + "quickActionSuccess": "{{name}} успешно завершен", + "quickActionFailed": "{{name}} не удалось", + "quickActionError": "Не удалось выполнить {{name}}" }, "auth": { - "tagline": "SSH SERVER MANAGER", - "description": "Secure, powerful, and intuitive SSH connection management", - "welcomeBack": "Welcome back to TERMIX", - "createAccount": "Create your TERMIX account", - "continueExternal": "Continue with external provider", - "loginTitle": "Login to Termix", - "registerTitle": "Create Account", - "loginButton": "Login", - "registerButton": "Register", - "forgotPassword": "Forgot Password?", - "rememberMe": "Remember Me", - "noAccount": "Don't have an account?", - "hasAccount": "Already have an account?", - "loginSuccess": "Login successful", - "loginFailed": "Login failed", - "registerSuccess": "Registration successful", - "registerFailed": "Registration failed", - "logoutSuccess": "Logged out successfully", - "invalidCredentials": "Invalid username or password", - "accountCreated": "Account created successfully", - "passwordReset": "Password reset link sent", - "twoFactorAuth": "Two-Factor Authentication", - "enterCode": "Enter verification code", - "backupCode": "Or use backup code", - "verifyCode": "Verify Code", - "redirectingToApp": "Redirecting to app...", - "enableTwoFactor": "Enable Two-Factor Authentication", - "disableTwoFactor": "Disable Two-Factor Authentication", - "scanQRCode": "Scan this QR code with your authenticator app", - "backupCodes": "Backup Codes", - "saveBackupCodes": "Save these backup codes in a safe place", - "twoFactorEnabledSuccess": "Two-factor authentication enabled successfully!", - "twoFactorDisabled": "Two-factor authentication disabled", - "newBackupCodesGenerated": "New backup codes generated", - "backupCodesDownloaded": "Backup codes downloaded", - "pleaseEnterSixDigitCode": "Please enter a 6-digit code", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes", - "enterPassword": "Enter your password", - "lockedOidcAuth": "Locked (OIDC Auth)", - "twoFactorTitle": "Two-Factor Authentication", - "twoFactorProtected": "Your account is protected with two-factor authentication", - "twoFactorActive": "Two-factor authentication is currently active on your account", - "disable2FA": "Disable 2FA", - "disableTwoFactorWarning": "Disabling two-factor authentication will make your account less secure", - "passwordOrTotpCode": "Password or TOTP Code", - "or": "Or", - "generateNewBackupCodesText": "Generate new backup codes if you've lost your existing ones", - "generateNewBackupCodes": "Generate New Backup Codes", - "yourBackupCodes": "Your Backup Codes", - "download": "Download", - "setupTwoFactorTitle": "Set Up Two-Factor Authentication", - "sshAuthenticationRequired": "SSH Authentication Required", - "sshNoKeyboardInteractive": "Keyboard-Interactive Authentication Unavailable", - "sshAuthenticationFailed": "Authentication Failed", - "sshAuthenticationTimeout": "Authentication Timeout", - "sshNoKeyboardInteractiveDescription": "The server does not support keyboard-interactive authentication. Please provide your password or SSH key.", - "sshAuthFailedDescription": "The provided credentials were incorrect. Please try again with valid credentials.", - "sshTimeoutDescription": "The authentication attempt timed out. Please try again.", - "sshProvideCredentialsDescription": "Please provide your SSH credentials to connect to this server.", - "sshPasswordDescription": "Enter the password for this SSH connection.", - "sshKeyPasswordDescription": "If your SSH key is encrypted, enter the passphrase here.", - "step1ScanQR": "Step 1: Scan the QR code with your authenticator app", - "manualEntryCode": "Manual Entry Code", - "cannotScanQRText": "If you can't scan the QR code, enter this code manually in your authenticator app", - "nextVerifyCode": "Next: Verify Code", - "verifyAuthenticator": "Verify Your Authenticator", - "step2EnterCode": "Step 2: Enter the 6-digit code from your authenticator app", - "verificationCode": "Verification Code", - "back": "Back", - "verifyAndEnable": "Verify and Enable", - "saveBackupCodesTitle": "Save Your Backup Codes", - "step3StoreCodesSecurely": "Step 3: Store these codes in a safe place", - "importantBackupCodesText": "Save these backup codes in a secure location. You can use them to access your account if you lose your authenticator device.", - "completeSetup": "Complete Setup", - "notEnabledText": "Two-factor authentication adds an extra layer of security by requiring a code from your authenticator app when signing in.", - "enableTwoFactorButton": "Enable Two-Factor Authentication", - "addExtraSecurityLayer": "Add an extra layer of security to your account", - "firstUser": "First User", - "firstUserMessage": "You are the first user and will be made an admin. You can view admin settings in the sidebar user dropdown. If you think this is a mistake, check the docker logs, or create a GitHub issue.", - "external": "External", - "loginWithExternal": "Login with External Provider", - "loginWithExternalDesc": "Login using your configured external identity provider", - "externalNotSupportedInElectron": "External authentication is not supported in the Electron app yet. Please use the web version for OIDC login.", - "resetPasswordButton": "Reset Password", - "sendResetCode": "Send Reset Code", - "resetCodeDesc": "Enter your username to receive a password reset code. The code will be logged in the docker container logs.", + "tagline": "УПРАВЛЕНИЕ СЕРВЕРА ССИ", + "description": "Управление безопасным, мощным и интуитивно понятным соединением SSH", + "welcomeBack": "Добро пожаловать на TERMIX", + "createAccount": "Создайте ваш аккаунт TERMIX", + "continueExternal": "Продолжить с внешним провайдером", + "loginTitle": "Войти в Термикс", + "registerTitle": "Создать Аккаунт", + "loginButton": "Логин", + "registerButton": "Регистрация", + "forgotPassword": "Забыли пароль?", + "rememberMe": "Запомнить меня", + "noAccount": "У вас нет учетной записи?", + "hasAccount": "Уже зарегистрированы?", + "loginSuccess": "Вход выполнен", + "loginFailed": "Вход не удался", + "registerSuccess": "Регистрация прошла успешно", + "registerFailed": "Регистрация не удалась", + "logoutSuccess": "Успешный выход из системы", + "invalidCredentials": "Неверное имя пользователя или пароль", + "accountCreated": "Учетная запись успешно создана", + "passwordReset": "Ссылка для сброса пароля отправлена", + "twoFactorAuth": "Двухфакторная аутентификация", + "enterCode": "Введите код подтверждения", + "backupCode": "Или используйте код резервной копии", + "verifyCode": "Проверить код", + "redirectingToApp": "Перенаправление на приложение...", + "enableTwoFactor": "Включить двухфакторную аутентификацию", + "disableTwoFactor": "Отключить двухфакторную аутентификацию", + "scanQRCode": "Сканируйте этот QR-код вашим приложением-аутентификатором", + "backupCodes": "Резервные коды", + "saveBackupCodes": "Сохраните эти резервные коды в безопасном месте", + "twoFactorEnabledSuccess": "Двухфакторная аутентификация успешно включена!", + "twoFactorDisabled": "Двухфакторная аутентификация отключена", + "newBackupCodesGenerated": "Новые резервные коды сгенерированы", + "backupCodesDownloaded": "Резервные коды загружены", + "pleaseEnterSixDigitCode": "Пожалуйста, введите 6-значный код", + "invalidVerificationCode": "Неверный код подтверждения", + "failedToDisableTotp": "Не удалось отключить TOTP", + "failedToGenerateBackupCodes": "Не удалось создать резервные коды", + "enterPassword": "Введите ваш пароль", + "lockedOidcAuth": "Заблокировано (OIDC Auth)", + "twoFactorTitle": "Двухфакторная аутентификация", + "twoFactorProtected": "Ваша учетная запись защищена двухфакторной аутентификацией", + "twoFactorActive": "Двухфакторная аутентификация в настоящее время активирована для вашей учетной записи", + "disable2FA": "Отключить 2FA", + "disableTwoFactorWarning": "Отключение двухфакторной аутентификации сделает ваш аккаунт менее защищенным", + "passwordOrTotpCode": "Пароль или код TOTP", + "or": "Или", + "generateNewBackupCodesText": "Сгенерировать новые резервные коды, если вы потеряли существующие", + "generateNewBackupCodes": "Создать новые резервные коды", + "yourBackupCodes": "Ваши резервные коды", + "download": "Скачать", + "setupTwoFactorTitle": "Настроить двухфакторную аутентификацию", + "sshAuthenticationRequired": "Требуется SSH аутентификация", + "sshNoKeyboardInteractive": "Клавиатура - Интерактивная аутентификация недоступна", + "sshAuthenticationFailed": "Ошибка аутентификации", + "sshAuthenticationTimeout": "Таймаут аутентификации", + "sshNoKeyboardInteractiveDescription": "Сервер не поддерживает интерактивную аутентификацию с клавиатуры. Пожалуйста, введите ваш пароль или SSH ключ.", + "sshAuthFailedDescription": "Предоставленные учетные данные неверны. Пожалуйста, попробуйте еще раз с действительными учетными данными.", + "sshTimeoutDescription": "Время попытки аутентификации истекло. Пожалуйста, попробуйте еще раз.", + "sshProvideCredentialsDescription": "Пожалуйста, предоставьте ваши учетные данные SSH для подключения к этому серверу.", + "sshPasswordDescription": "Введите пароль для этого SSH соединения.", + "sshKeyPasswordDescription": "Если ваш SSH ключ зашифрован, введите здесь ключевую фразу.", + "step1ScanQR": "Шаг 1: Отсканируйте QR-код с вашим приложением-аутентификатором", + "manualEntryCode": "Код входа вручную", + "cannotScanQRText": "Если вы не можете сканировать QR-код, введите этот код вручную в приложении для проверки подлинности", + "nextVerifyCode": "Далее: Проверить код", + "verifyAuthenticator": "Подтвердите ваш аутентификатор", + "step2EnterCode": "Шаг 2: Введите 6-значный код из вашего приложения-аутентификатора", + "verificationCode": "Проверочный код", + "back": "Назад", + "verifyAndEnable": "Проверить и включить", + "saveBackupCodesTitle": "Сохранить резервные коды", + "step3StoreCodesSecurely": "Шаг 3: Хранить эти коды в безопасном месте", + "importantBackupCodesText": "Сохраните эти резервные коды в безопасном месте. Вы можете использовать их для доступа к вашей учетной записи, если вы потеряете ваше устройство-аутентификатор.", + "completeSetup": "Завершить настройку", + "notEnabledText": "Двухфакторная аутентификация добавляет дополнительный уровень безопасности, требующий кода из вашего приложения-аутентификатора при входе.", + "enableTwoFactorButton": "Включить двухфакторную аутентификацию", + "addExtraSecurityLayer": "Добавьте дополнительный уровень безопасности в свой аккаунт", + "firstUser": "Первый пользователь", + "firstUserMessage": "Вы первый пользователь и будете созданы администратором. Вы можете просмотреть настройки администратора в раскрывающемся списке пользователя боковой панели. Если вы считаете, что это ошибка, проверьте логи docker или создайте GitHub.", + "external": "Внешний", + "loginWithExternal": "Войти через внешнего провайдера", + "loginWithExternalDesc": "Войти с помощью настроенного провайдера внешней идентификации", + "externalNotSupportedInElectron": "Внешняя аутентификация еще не поддерживается в приложении Electron. Пожалуйста, используйте веб-версию для входа в OIDC.", + "resetPasswordButton": "Сбросить пароль", + "sendResetCode": "Отправить код сброса", + "resetCodeDesc": "Введите имя пользователя для получения кода сброса пароля. Код будет вошел в журналы контейнера docker.", "resetCode": "Reset Code", - "verifyCodeButton": "Verify Code", - "enterResetCode": "Enter the 6-digit code from the docker container logs for user:", - "goToLogin": "Go to Login", - "newPassword": "New Password", - "confirmNewPassword": "Confirm Password", - "enterNewPassword": "Enter your new password for user:", - "signUp": "Sign Up", - "mobileApp": "Mobile App", - "loggingInToMobileApp": "Logging in to the mobile app", - "desktopApp": "Desktop App", - "loggingInToDesktopApp": "Logging in to the desktop app", - "loggingInToDesktopAppViaWeb": "Logging in to the desktop app via web interface", - "loadingServer": "Loading server...", - "authenticating": "Authenticating...", - "dataLossWarning": "Resetting your password this way will delete all your saved SSH hosts, credentials, and other encrypted data. This action cannot be undone. Only use this if you have forgotten your password and are not logged in.", - "authenticationDisabled": "Authentication Disabled", - "authenticationDisabledDesc": "All authentication methods are currently disabled. Please contact your administrator.", - "passwordResetSuccess": "Password Reset Successful", - "passwordResetSuccessDesc": "Your password has been reset successfully. You can now log in with your new password." + "verifyCodeButton": "Проверить код", + "enterResetCode": "Введите 6-значный код из журналов docker container для пользователя:", + "goToLogin": "Перейти к входу", + "newPassword": "Новый пароль", + "confirmNewPassword": "Подтверждение пароля", + "enterNewPassword": "Введите новый пароль для пользователя:", + "signUp": "Регистрация", + "mobileApp": "Мобильное приложение", + "loggingInToMobileApp": "Вход в мобильное приложение", + "desktopApp": "Приложение для рабочего стола", + "loggingInToDesktopApp": "Вход в приложение для компьютера", + "loggingInToDesktopAppViaWeb": "Вход в приложение для рабочего стола через веб-интерфейс", + "loadingServer": "Загрузка сервера...", + "authenticating": "Аутентификация...", + "dataLossWarning": "Сброс пароля таким образом удалит все сохраненные SSH хосты, учетные данные и другие зашифрованные данные. Это действие нельзя отменить. Используйте только если вы забыли пароль и не вошли в систему.", + "authenticationDisabled": "Аутентификация отключена", + "authenticationDisabledDesc": "Все методы аутентификации в настоящее время отключены. Обратитесь к администратору.", + "passwordResetSuccess": "Пароль успешно сброшен", + "passwordResetSuccessDesc": "Ваш пароль был успешно сброшен. Теперь вы можете войти с новым паролем." }, "errors": { - "notFound": "Page not found", - "unauthorized": "Unauthorized access", - "forbidden": "Access forbidden", - "serverError": "Server error", - "networkError": "Network error", - "databaseConnection": "Could not connect to the database", - "unknownError": "Unknown error", - "loginFailed": "Login failed", - "failedPasswordReset": "Failed to initiate password reset", - "failedVerifyCode": "Failed to verify reset code", - "failedCompleteReset": "Failed to complete password reset", + "notFound": "Страница не найдена", + "unauthorized": "Неавторизованный доступ", + "forbidden": "Доступ запрещен", + "serverError": "Ошибка сервера", + "networkError": "Ошибка сети", + "databaseConnection": "Не удалось подключиться к базе данных", + "unknownError": "Неизвестная ошибка", + "loginFailed": "Вход не удался", + "failedPasswordReset": "Не удалось сбросить пароль", + "failedVerifyCode": "Не удалось проверить код сброса", + "failedCompleteReset": "Не удалось завершить сброс пароля", "invalidTotpCode": "Invalid TOTP code", - "failedOidcLogin": "Failed to start OIDC login", - "failedUserInfo": "Failed to get user info after OIDC login", - "oidcAuthFailed": "OIDC authentication failed", - "noTokenReceived": "No token received from login", - "invalidAuthUrl": "Invalid authorization URL received from backend", + "failedOidcLogin": "Не удалось запустить вход OIDC", + "failedUserInfo": "Не удалось получить информацию о пользователе после входа в OIDC", + "oidcAuthFailed": "Ошибка аутентификации OIDC", + "noTokenReceived": "Нет токенов, полученных от логина", + "invalidAuthUrl": "Неправильный URL-адрес авторизации получен из бэкэнда", "invalidInput": "Invalid input", - "requiredField": "This field is required", - "minLength": "Minimum length is {{min}}", - "maxLength": "Maximum length is {{max}}", - "invalidEmail": "Invalid email address", - "passwordMismatch": "Passwords do not match", - "passwordLoginDisabled": "Username/password login is currently disabled", - "weakPassword": "Password is too weak", - "usernameExists": "Username already exists", - "emailExists": "Email already exists", - "loadFailed": "Failed to load data", - "saveError": "Failed to save", - "sessionExpired": "Session expired - please log in again" + "requiredField": "Это поле является обязательным", + "minLength": "Минимальная длина - {{min}}", + "maxLength": "Максимальная длина {{max}}", + "invalidEmail": "Неверный адрес электронной почты", + "passwordMismatch": "Пароли не совпадают", + "passwordLoginDisabled": "Имя пользователя/пароль в настоящее время отключены", + "weakPassword": "Пароль слишком слабый", + "usernameExists": "Имя пользователя уже существует", + "emailExists": "Адрес электронной почты уже существует", + "loadFailed": "Не удалось загрузить данные", + "saveError": "Не удалось сохранить", + "sessionExpired": "Истек срок действия сессии - пожалуйста, войдите снова" }, "messages": { - "saveSuccess": "Saved successfully", - "saveError": "Failed to save", - "deleteSuccess": "Deleted successfully", - "deleteError": "Failed to delete", - "updateSuccess": "Updated successfully", - "updateError": "Failed to update", - "copySuccess": "Copied to clipboard", - "copyError": "Failed to copy", - "copiedToClipboard": "{{item}} copied to clipboard", - "connectionEstablished": "Connection established", - "connectionClosed": "Connection closed", - "reconnecting": "Reconnecting...", - "processing": "Processing...", - "pleaseWait": "Please wait...", - "registrationDisabled": "New account registration is currently disabled by an admin. Please log in or contact an administrator.", - "databaseConnected": "Database connected successfully", - "databaseConnectionFailed": "Failed to connect to the database server", - "checkServerConnection": "Please check your server connection and try again", - "resetCodeSent": "Reset code sent to Docker logs", - "codeVerified": "Code verified successfully", - "passwordResetSuccess": "Password reset successfully", - "loginSuccess": "Login successful", - "registrationSuccess": "Registration successful" + "saveSuccess": "Сохранено успешно", + "saveError": "Не удалось сохранить", + "deleteSuccess": "Успешно удален", + "deleteError": "Не удалось удалить", + "updateSuccess": "Успешно обновлено", + "updateError": "Не удалось обновить", + "copySuccess": "Скопировано в буфер обмена", + "copyError": "Не удалось скопировать", + "copiedToClipboard": "{{item}} скопирован в буфер обмена", + "connectionEstablished": "Соединение установлено", + "connectionClosed": "Соединение закрыто", + "reconnecting": "Переподключение...", + "processing": "Обработка...", + "pleaseWait": "Подождите...", + "registrationDisabled": "Регистрация новой учетной записи отключена администратором. Пожалуйста, войдите в систему или свяжитесь с администратором.", + "databaseConnected": "База данных успешно подключена", + "databaseConnectionFailed": "Не удалось подключиться к серверу базы данных", + "checkServerConnection": "Пожалуйста, проверьте подключение к серверу и повторите попытку", + "resetCodeSent": "Код сброса отправлен в логи Docker", + "codeVerified": "Код успешно подтвержден", + "passwordResetSuccess": "Пароль успешно сброшен", + "loginSuccess": "Вход выполнен", + "registrationSuccess": "Регистрация прошла успешно" }, "profile": { - "title": "User Profile", - "description": "Manage your account settings and security", - "security": "Security", - "changePassword": "Change Password", - "twoFactorAuth": "Two-Factor Authentication", - "accountInfo": "Account Information", - "role": "Role", - "admin": "Administrator", - "user": "User", - "authMethod": "Authentication Method", - "local": "Local", - "external": "External (OIDC)", - "externalAndLocal": "Dual Auth", - "selectPreferredLanguage": "Select your preferred language for the interface", - "fileColorCoding": "File Color Coding", - "fileColorCodingDesc": "Color-code files by type: folders (red), files (blue), symlinks (green)", - "commandAutocomplete": "Command Autocomplete", - "commandAutocompleteDesc": "Enable Tab key autocomplete suggestions for terminal commands based on your command history", - "defaultSnippetFoldersCollapsed": "Collapse Snippet Folders by Default", - "defaultSnippetFoldersCollapsedDesc": "When enabled, all snippet folders will be collapsed when you open the snippets tab", - "terminalSyntaxHighlighting": "Terminal Syntax Highlighting", - "showHostTags": "Show Host Tags", - "showHostTagsDesc": "Display tags under each host in the sidebar. Disable to hide all tags.", - "account": "Account", - "appearance": "Appearance", - "languageLocalization": "Language & Localization", - "fileManagerSettings": "File Manager", - "terminalSettings": "Terminal", - "hostSidebarSettings": "Host & Sidebar", - "snippetsSettings": "Snippets", - "currentPassword": "Current Password", - "passwordChangedSuccess": "Password changed successfully! Please log in again.", - "failedToChangePassword": "Failed to change password. Please check your current password and try again.", - "theme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", - "themeSystem": "System", - "appearanceDesc": "Select the color theme for the application", - "terminalSyntaxHighlightingDesc": "Automatically highlight commands, paths, IPs, and log levels in terminal output" + "title": "Профиль пользователя", + "description": "Управляйте настройками учетной записи и безопасностью", + "security": "Безопасность", + "changePassword": "Изменить пароль", + "twoFactorAuth": "Двухфакторная аутентификация", + "accountInfo": "Информация об учетной записи", + "role": "Роль", + "admin": "Администратор", + "user": "Пользователь", + "authMethod": "Метод аутентификации", + "local": "Локальный", + "external": "Внешний (OIDC)", + "externalAndLocal": "Двойная авторизация", + "selectPreferredLanguage": "Выберите предпочитаемый язык интерфейса", + "fileColorCoding": "Кодировка цвета файла", + "fileColorCodingDesc": "Файлы с цветовым кодом по типу: папки (красный), файлы (синий), символьные ссылки (зеленый)", + "commandAutocomplete": "Автозаполнение команды", + "commandAutocompleteDesc": "Включите подсказки по автозаполнению клавиш Tab для команд терминалов на основе истории команд", + "defaultSnippetFoldersCollapsed": "Свернуть папки сниппетов по умолчанию", + "defaultSnippetFoldersCollapsedDesc": "Если включено, все папки сниппетов будут свернуты при открытии вкладки сниппетов", + "terminalSyntaxHighlighting": "Подсветка синтаксиса терминала", + "showHostTags": "Показать теги хоста", + "showHostTagsDesc": "Отображать теги под каждым хостом в боковой панели. Отключите, чтобы скрыть все теги.", + "account": "Аккаунт", + "appearance": "Внешний вид", + "languageLocalization": "Язык и локализация", + "fileManagerSettings": "Файловый менеджер", + "terminalSettings": "Терминал", + "hostSidebarSettings": "Узел и боковая панель", + "snippetsSettings": "Сниппеты", + "currentPassword": "Текущий пароль", + "passwordChangedSuccess": "Пароль успешно изменен! Пожалуйста, войдите снова.", + "failedToChangePassword": "Не удалось изменить пароль. Пожалуйста, проверьте ваш текущий пароль и повторите попытку.", + "theme": "Тема", + "themeLight": "Светлая", + "themeDark": "Тёмная", + "themeSystem": "Система", + "appearanceDesc": "Выберите цвет темы для приложения", + "terminalSyntaxHighlightingDesc": "Автоматически выделять команды, пути, IP-адреса и уровни журнала в выводе терминала" }, "user": { - "failedToLoadVersionInfo": "Failed to load version information" + "failedToLoadVersionInfo": "Не удалось загрузить информацию о версии" }, "placeholders": { "enterCode": "000000", @@ -1901,48 +1901,48 @@ "port": "22", "maxRetries": "3", "retryInterval": "10", - "language": "Language", - "username": "username", - "hostname": "host name", - "folder": "folder", - "password": "password", - "keyPassword": "key password", - "sudoPassword": "sudo password (optional)", - "notes": "add notes about this host...", - "expirationDate": "Select expiration date", - "pastePrivateKey": "Paste your private key here...", - "pastePublicKey": "Paste your public key here...", - "credentialName": "My SSH Server", - "description": "SSH credential description", - "searchCredentials": "Search credentials by name, username, or tags...", - "sshConfig": "endpoint ssh configuration", + "language": "Язык", + "username": "имя пользователя", + "hostname": "имя хоста", + "folder": "папка", + "password": "пароль", + "keyPassword": "пароль ключа", + "sudoPassword": "sudo пароль (необязательно)", + "notes": "добавить заметки об этом узле...", + "expirationDate": "Выберите дату окончания срока действия", + "pastePrivateKey": "Вставьте ваш закрытый ключ здесь...", + "pastePublicKey": "Вставьте ваш открытый ключ здесь...", + "credentialName": "Мой SSH сервер", + "description": "Описание учетных данных SSH", + "searchCredentials": "Поиск учётных данных по имени, имени пользователя или тегам...", + "sshConfig": "конфигурация endpoint ssh", "homePath": "/home", - "clientId": "your-client-id", - "clientSecret": "your-client-secret", + "clientId": "ваш идентификатор клиента", + "clientSecret": "ваш клиент-секрет", "authUrl": "https://your-provider.com/application/o/authorize/", "redirectUrl": "https://your-provider.com/application/o/termix/", "tokenUrl": "https://your-provider.com/application/o/token/", - "userIdField": "sub", - "usernameField": "name", - "scopes": "openid email profile", + "userIdField": "суб", + "usernameField": "имя", + "scopes": "профиль openid электронной почты", "userinfoUrl": "https://your-provider.com/application/o/userinfo/", - "enterUsername": "Enter username to make admin", - "searchHosts": "Search hosts by name, username, IP, folder, tags...", - "enterPassword": "Enter your password", + "enterUsername": "Введите имя пользователя для админа", + "searchHosts": "Поиск хостов по имени, имени пользователя, IP, папке, теги...", + "enterPassword": "Введите ваш пароль", "totpCode": "6-digit TOTP code", - "searchHostsAny": "Search hosts (try: tag:prod, user:root, ip:192.168)...", - "confirmPassword": "Enter your password to confirm", - "typeHere": "Type here", - "fileName": "Enter file name (e.g., example.txt)", - "folderName": "Enter folder name", - "fullPath": "Enter full path to item", - "currentPath": "Enter current path to item", - "newName": "Enter new name", + "searchHostsAny": "Хосы поиска (попытка: tag:prod, user:root, ip:192.168)...", + "confirmPassword": "Введите ваш пароль для подтверждения", + "typeHere": "Введите здесь", + "fileName": "Введите имя файла (например, example.txt)", + "folderName": "Введите имя папки", + "fullPath": "Введите полный путь к элементу", + "currentPath": "Введите текущий путь к элементу", + "newName": "Введите новое имя", "socks5Host": "127.0.0.1", - "socks5Username": "proxy username", - "socks5Password": "proxy password", - "socks5PresetName": "e.g., Work VPN Chain", - "socks5PresetDescription": "e.g., Proxy chain for accessing work servers", + "socks5Username": "имя прокси-сервера", + "socks5Password": "пароль прокси", + "socks5PresetName": "например, Рабочая цепочка VPN", + "socks5PresetDescription": "например, цепочка прокси для доступа к рабочим серверам", "moshCommand": "mosh user@server", "defaultPort": "22", "defaultEndpointPort": "224", @@ -1950,453 +1950,453 @@ "defaultRetryInterval": "10" }, "leftSidebar": { - "failedToLoadHosts": "Failed to load hosts", - "noFolder": "No Folder", - "passwordRequired": "Password is required", - "failedToDeleteAccount": "Failed to delete account", - "failedToMakeUserAdmin": "Failed to make user admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "removeAdminConfirm": "Are you sure you want to remove admin status from {{username}}?", - "deleteUserConfirm": "Are you sure you want to delete user {{username}}? This action cannot be undone.", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "deleteAccountWarning": "This action cannot be undone. This will permanently delete your account and all associated data.", - "deleteAccountWarningDetails": "Deleting your account will remove all your data including SSH hosts, configurations, and settings. This action is irreversible.", - "deleteAccountWarningShort": "This action is not reversible and will permanently delete your account.", - "cannotDeleteAccount": "Cannot Delete Account", - "lastAdminWarning": "You are the last admin user. You cannot delete your account as this would leave the system without any administrators. Please make another user an admin first, or contact system support.", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "cancel": "Cancel" + "failedToLoadHosts": "Не удалось загрузить хосты", + "noFolder": "Нет папки", + "passwordRequired": "Требуется пароль", + "failedToDeleteAccount": "Не удалось удалить аккаунт", + "failedToMakeUserAdmin": "Не удалось сделать администратора пользователя", + "userIsNowAdmin": "Пользователь {{username}} теперь является администратором", + "removeAdminConfirm": "Вы уверены, что хотите удалить статус администратора из {{username}}?", + "deleteUserConfirm": "Вы уверены, что хотите удалить пользователя {{username}}? Это действие не может быть отменено.", + "deleteAccount": "Удалить аккаунт", + "closeDeleteAccount": "Закрыть аккаунт", + "deleteAccountWarning": "Это действие нельзя отменить. Это действие окончательно удалит ваш аккаунт и все связанные с ним данные.", + "deleteAccountWarningDetails": "Удаление учетной записи удалит все ваши данные, включая SSH хосты, конфигурации и настройки. Это действие необратимо.", + "deleteAccountWarningShort": "Это действие необратимо и окончательно удалит ваш аккаунт.", + "cannotDeleteAccount": "Не удается удалить аккаунт", + "lastAdminWarning": "Вы являетесь последним пользователем администратора. Вы не можете удалить свою учетную запись, так как это покинет систему без каких-либо администраторов. Сначала сделайте другого пользователя администратором или обратитесь в службу поддержки.", + "confirmPassword": "Подтверждение пароля", + "deleting": "Удаление...", + "cancel": "Отмена" }, "interface": { "sidebar": "Sidebar", - "toggleSidebar": "Toggle Sidebar", - "close": "Close", - "online": "Online", - "offline": "Offline", - "maintenance": "Maintenance", - "degraded": "Degraded", - "noTunnelConnections": "No tunnel connections configured", + "toggleSidebar": "Переключить боковую панель", + "close": "Закрыть", + "online": "Онлайн", + "offline": "Оффлайн", + "maintenance": "Техническое обслуживание", + "degraded": "Ухудшение", + "noTunnelConnections": "туннельные соединения не настроены", "discord": "Discord", - "connectToSshForOperations": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "deleteItem": "Delete Item", - "createNewFile": "Create New File", - "createNewFolder": "Create New Folder", - "renameItem": "Rename Item", - "clickToSelectFile": "Click to select a file", - "noSshHosts": "No SSH Hosts", - "sshHosts": "SSH Hosts", - "importSshHosts": "Import SSH Hosts from JSON", - "clientId": "Client ID", - "clientSecret": "Client Secret", - "error": "Error", - "warning": "Warning", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "cannotDeleteAccount": "Cannot Delete Account", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "externalAuth": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "resetSplitSizes": "Reset split sizes", - "sshManagerAlreadyOpen": "SSH Manager already open", - "disabledDuringSplitScreen": "Disabled during split screen", - "unknown": "Unknown", - "connected": "Connected", - "disconnected": "Disconnected", - "maxRetriesExhausted": "Max retries exhausted", - "endpointHostNotFound": "Endpoint host not found", - "administrator": "Administrator", - "user": "User", - "external": "External", - "local": "Local", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", - "loading": "Loading...", - "refresh": "Refresh", - "adding": "Adding...", - "makeAdmin": "Make Admin", - "verifying": "Verifying...", - "verifyAndEnable": "Verify and Enable", - "secretKey": "Secret key", + "connectToSshForOperations": "Подключитесь к SSH для использования операций с файлами", + "uploadFile": "Загрузить файл", + "newFile": "Новый файл", + "newFolder": "Новая папка", + "rename": "Переименовать", + "deleteItem": "Удалить элемент", + "createNewFile": "Создать новый файл", + "createNewFolder": "Создать новую папку", + "renameItem": "Переименовать элемент", + "clickToSelectFile": "Щелкните, чтобы выбрать файл", + "noSshHosts": "Нет SSH хостов", + "sshHosts": "SSH хосты", + "importSshHosts": "Импорт хостов SSH из JSON", + "clientId": "ID клиента", + "clientSecret": "Секрет клиента", + "error": "Ошибка", + "warning": "Предупреждение", + "deleteAccount": "Удалить аккаунт", + "closeDeleteAccount": "Закрыть аккаунт", + "cannotDeleteAccount": "Не удается удалить аккаунт", + "confirmPassword": "Подтверждение пароля", + "deleting": "Удаление...", + "externalAuth": "Внешняя аутентификация (OIDC)", + "configureExternalProvider": "Настройка внешнего поставщика идентификации для", + "waitingForRetry": "Ожидание повтора", + "retryingConnection": "Повторная попытка подключения", + "resetSplitSizes": "Сбросить разделенные размеры", + "sshManagerAlreadyOpen": "SSH менеджер уже открыт", + "disabledDuringSplitScreen": "Отключено во время разделения экрана", + "unknown": "Неизвестен", + "connected": "Подключено", + "disconnected": "Отключено", + "maxRetriesExhausted": "Максимальное количество повторов исчерпано", + "endpointHostNotFound": "Хост конечной точки не найден", + "administrator": "Администратор", + "user": "Пользователь", + "external": "Внешний", + "local": "Локальный", + "saving": "Сохранение...", + "saveConfiguration": "Сохранить конфигурацию", + "loading": "Загрузка...", + "refresh": "Обновить", + "adding": "Добавление...", + "makeAdmin": "Сделать админом", + "verifying": "Проверка...", + "verifyAndEnable": "Проверить и включить", + "secretKey": "Секретный ключ", "totpQrCode": "TOTP QR Code", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "validSshConfigRequired": "Must select a valid SSH configuration from the list", - "updateHost": "Update Host", - "addHost": "Add Host", - "editHost": "Edit Host", - "pinConnection": "Pin Connection", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "enableTerminal": "Enable Terminal", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "defaultPath": "Default Path", - "tunnelConnections": "Tunnel Connections", - "maxRetries": "Max Retries", - "upload": "Upload", - "updateKey": "Update Key", - "productionFolder": "Production", - "databaseServer": "Database Server", - "developmentServer": "Development Server", - "developmentFolder": "Development", - "webServerProduction": "Web Server - Production", - "unknownError": "Unknown error", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", + "passwordRequired": "Пароль требуется при использовании аутентификации пароля", + "sshKeyRequired": "Приватный ключ SSH требуется при использовании аутентификации ключа", + "keyTypeRequired": "Тип ключа требуется при использовании аутентификации ключа", + "validSshConfigRequired": "Необходимо выбрать корректную конфигурацию SSH из списка", + "updateHost": "Обновить хост", + "addHost": "Добавить хост", + "editHost": "Изменить хост", + "pinConnection": "Прикрепить соединение", + "authentication": "Проверка подлинности", + "password": "Пароль", + "key": "Спецификация", + "sshPrivateKey": "SSH закрытый ключ", + "keyPassword": "Пароль ключа", + "keyType": "Тип ключа", + "enableTerminal": "Включить терминал", + "enableTunnel": "Включить Туннель", + "enableFileManager": "Включить Диспетчер файлов", + "defaultPath": "Путь по умолчанию", + "tunnelConnections": "Туннель соединения", + "maxRetries": "Макс. повторов", + "upload": "Выгрузить", + "updateKey": "Обновить ключ", + "productionFolder": "Производство", + "databaseServer": "Сервер базы данных", + "developmentServer": "Сервер разработки", + "developmentFolder": "Развитие", + "webServerProduction": "Веб сервер - Производство", + "unknownError": "Неизвестная ошибка", + "failedToInitiatePasswordReset": "Не удалось сбросить пароль", + "failedToVerifyResetCode": "Не удалось проверить код сброса", + "failedToCompletePasswordReset": "Не удалось завершить сброс пароля", "invalidTotpCode": "Invalid TOTP code", - "failedToStartOidcLogin": "Failed to start OIDC login", - "failedToGetUserInfoAfterOidc": "Failed to get user info after OIDC login", - "loginWithExternalProvider": "Login with external provider", - "loginWithExternal": "Login with External Provider", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", - "login": "Login", - "signUp": "Sign Up", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToMakeUserAdmin": "Failed to make user admin", - "failedToStartTotpSetup": "Failed to start TOTP setup", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes" + "failedToStartOidcLogin": "Не удалось запустить вход OIDC", + "failedToGetUserInfoAfterOidc": "Не удалось получить информацию о пользователе после входа в OIDC", + "loginWithExternalProvider": "Войти через внешнего провайдера", + "loginWithExternal": "Войти через внешнего провайдера", + "sendResetCode": "Отправить код сброса", + "verifyCode": "Проверить код", + "resetPassword": "Сбросить пароль", + "login": "Логин", + "signUp": "Регистрация", + "failedToUpdateOidcConfig": "Не удалось обновить конфигурацию OIDC", + "failedToMakeUserAdmin": "Не удалось сделать администратора пользователя", + "failedToStartTotpSetup": "Не удалось запустить настройку TOTP", + "invalidVerificationCode": "Неверный код подтверждения", + "failedToDisableTotp": "Не удалось отключить TOTP", + "failedToGenerateBackupCodes": "Не удалось создать резервные коды" }, "mobile": { - "selectHostToStart": "Select a host to start your terminal session", - "limitedSupportMessage": "Website mobile support is still in progress. Use the mobile app for a better experience.", - "mobileAppInProgress": "Mobile app is in progress", - "mobileAppInProgressDesc": "We're working on a dedicated mobile app to provide a better experience on mobile devices.", - "viewMobileAppDocs": "Install Mobile App", - "mobileAppDocumentation": "Mobile App Documentation" + "selectHostToStart": "Выберите хост для запуска терминального сеанса", + "limitedSupportMessage": "Мобильная поддержка сайта продолжается. Используйте мобильное приложение для лучшей работы.", + "mobileAppInProgress": "Выполняется мобильное приложение", + "mobileAppInProgressDesc": "Мы работаем над выделенным мобильным приложением для улучшения работы на мобильных устройствах.", + "viewMobileAppDocs": "Установить мобильное приложение", + "mobileAppDocumentation": "Документация по мобильному приложению" }, "dashboard": { - "title": "Dashboard", + "title": "Панель", "github": "GitHub", - "support": "Support", + "support": "Поддержка", "discord": "Discord", - "donate": "Donate", - "serverOverview": "Server Overview", - "version": "Version", - "upToDate": "Up to Date", - "updateAvailable": "Update Available", - "uptime": "Uptime", - "database": "Database", - "healthy": "Healthy", - "error": "Error", - "totalServers": "Total Servers", - "totalTunnels": "Total Tunnels", - "totalCredentials": "Total Credentials", - "recentActivity": "Recent Activity", + "donate": "Пожертвовать", + "serverOverview": "Обзор сервера", + "version": "Версии", + "upToDate": "Актуально", + "updateAvailable": "Доступно обновление", + "uptime": "Время работы", + "database": "База данных", + "healthy": "Здоровые", + "error": "Ошибка", + "totalServers": "Всего серверов", + "totalTunnels": "Всего туннелей", + "totalCredentials": "Полномочия", + "recentActivity": "Недавняя активность", "reset": "Reset", - "loadingRecentActivity": "Loading recent activity...", - "noRecentActivity": "No recent activity", - "quickActions": "Quick Actions", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "serverStats": "Server Stats", - "loadingServerStats": "Loading server stats...", - "noServerData": "No server data available", - "cpu": "CPU", + "loadingRecentActivity": "Загрузка недавней активности...", + "noRecentActivity": "Нет недавних действий", + "quickActions": "Быстрые действия", + "addHost": "Добавить хост", + "addCredential": "Добавить учетные данные", + "adminSettings": "Админ настройки", + "userProfile": "Профиль пользователя", + "serverStats": "Статистика сервера", + "loadingServerStats": "Загрузка статистики сервера...", + "noServerData": "Нет доступных данных сервера", + "cpu": "ЦП", "ram": "RAM", - "notAvailable": "N/A" + "notAvailable": "Н/Д" }, "rbac": { - "shareHost": "Share Host", - "shareHostTitle": "Share Host Access", - "shareHostDescription": "Grant temporary or permanent access to this host", - "targetUser": "Target User", - "selectUser": "Select a user to share with", - "duration": "Duration", - "durationHours": "Duration (hours)", - "neverExpires": "Never expires", - "permissionLevel": "Permission Level", + "shareHost": "Поделиться хостом", + "shareHostTitle": "Поделиться доступом к хосту", + "shareHostDescription": "Предоставить временный или постоянный доступ к этому узлу", + "targetUser": "Целевой пользователь", + "selectUser": "Выберите пользователя для отправки", + "duration": "Продолжительность", + "durationHours": "Продолжительность (часы)", + "neverExpires": "Никогда не истекает", + "permissionLevel": "Уровень разрешений", "permissionLevels": { - "readonly": "Read-Only", - "readonlyDesc": "Can view only, no command input", - "restricted": "Restricted", - "restrictedDesc": "Blocks dangerous commands (passwd, rm -rf, etc.)", - "monitored": "Monitored", - "monitoredDesc": "Records all commands but doesn't block (Recommended)", - "full": "Full Access", - "fullDesc": "No restrictions (Not recommended)" + "readonly": "Только чтение", + "readonlyDesc": "Можно просматривать только без ввода команды", + "restricted": "Ограничено", + "restrictedDesc": "Блокирует опасные команды (passwd, rm -rf и т. д.)", + "monitored": "Мониторинг", + "monitoredDesc": "Записывает все команды, но не блокирует (Рекомендуется)", + "full": "Полный доступ", + "fullDesc": "Без ограничений (не рекомендуется)" }, - "blockedCommands": "Blocked Commands", - "blockedCommandsPlaceholder": "Enter commands to block, e.g., passwd, rm, dd", - "maxSessionDuration": "Max Session Duration (minutes)", - "createTempUser": "Create Temporary User", - "createTempUserDesc": "Creates a restricted user on the server instead of sharing your credentials. Requires sudo access. Most secure option.", - "expiresAt": "Expires At", + "blockedCommands": "Заблокированные команды", + "blockedCommandsPlaceholder": "Введите команды для блокировки, например, passwd, rm, dd", + "maxSessionDuration": "Максимальная длительность сессии (минуты)", + "createTempUser": "Создать временного пользователя", + "createTempUserDesc": "Создает ограниченного пользователя на сервере вместо того, чтобы делиться вашими учетными данными. Требуется sudo доступ. Самая безопасная опция.", + "expiresAt": "Истекает", "expiresIn": "Expires in {{hours}} hours", - "expired": "Expired", - "grantedBy": "Granted By", - "accessLevel": "Access Level", - "lastAccessed": "Last Accessed", - "accessCount": "Access Count", - "revokeAccess": "Revoke Access", - "confirmRevokeAccess": "Are you sure you want to revoke access for {{username}}?", - "hostSharedSuccessfully": "Host shared successfully with {{username}}", - "hostAccessUpdated": "Host access updated", - "failedToShareHost": "Failed to share host", - "accessRevokedSuccessfully": "Access revoked successfully", - "failedToRevokeAccess": "Failed to revoke access", - "shared": "Shared", - "sharedHosts": "Shared Hosts", - "sharedWithMe": "Shared With Me", - "noSharedHosts": "No hosts shared with you", - "owner": "Owner", - "viewAccessList": "View Access List", - "accessList": "Access List", - "noAccessGranted": "No access has been granted for this host", - "noAccessGrantedMessage": "No users have been granted access to this host yet", - "manageAccessFor": "Manage access for", - "totalAccessRecords": "{{count}} access record(s)", - "neverAccessed": "Never", + "expired": "Истёк", + "grantedBy": "Предоставлено", + "accessLevel": "Уровень доступа", + "lastAccessed": "Последний доступ", + "accessCount": "Счетчик доступа", + "revokeAccess": "Отозвать доступ", + "confirmRevokeAccess": "Вы уверены, что хотите отозвать доступ для {{username}}?", + "hostSharedSuccessfully": "Хост успешно поделился с {{username}}", + "hostAccessUpdated": "Доступ к хосту обновлен", + "failedToShareHost": "Не удалось поделиться узлом", + "accessRevokedSuccessfully": "Доступ успешно отозван", + "failedToRevokeAccess": "Не удалось отменить доступ", + "shared": "Общий доступ", + "sharedHosts": "Общие хосты", + "sharedWithMe": "Поделиться со мной", + "noSharedHosts": "Нет узлов с вами", + "owner": "Владелец", + "viewAccessList": "Просмотр списка доступа", + "accessList": "Список доступа", + "noAccessGranted": "Нет доступа для этого узла", + "noAccessGrantedMessage": "Пользователям пока не предоставлен доступ к этому узлу", + "manageAccessFor": "Управление доступом для", + "totalAccessRecords": "{{count}} доступ к записи(ям)", + "neverAccessed": "Никогда", "timesAccessed": "{{count}} time(s)", "daysRemaining": "{{days}} day(s)", "hoursRemaining": "{{hours}} hour(s)", - "failedToFetchAccessList": "Failed to fetch access list", - "currentAccess": "Current Access", - "securityWarning": "Security Warning", - "securityWarningMessage": "Sharing credentials gives the user full access to perform any operations on the server, including changing passwords and deleting files. Only share with trusted users.", - "tempUserRecommended": "We recommend enabling 'Create Temporary User' for better security.", - "roleManagement": "Role Management", - "manageRoles": "Manage Roles", - "manageRolesFor": "Manage roles for {{username}}", - "assignRole": "Assign Role", - "removeRole": "Remove Role", - "userRoles": "User Roles", - "permissions": "Permissions", - "systemRole": "System Role", - "customRole": "Custom Role", - "roleAssignedSuccessfully": "Role assigned to {{username}} successfully", - "failedToAssignRole": "Failed to assign role", - "roleRemovedSuccessfully": "Role removed from {{username}} successfully", - "failedToRemoveRole": "Failed to remove role", - "cannotRemoveSystemRole": "Cannot remove system role", - "cannotShareWithSelf": "Cannot share host with yourself", - "noCustomRolesToAssign": "No custom roles available. System roles are auto-assigned.", - "credentialSharingWarning": "Credential Authentication Not Supported for Sharing", - "credentialRequired": "Credential is required when sharing a host", - "credentialRequiredDescription": "This host does not use credential-based authentication. In order to share hosts, due to per-user-encryption, the host must use credential based authentication.", - "auditLogs": "Audit Logs", - "viewAuditLogs": "View Audit Logs", - "action": "Action", - "resourceType": "Resource Type", - "resourceName": "Resource Name", - "timestamp": "Timestamp", - "ipAddress": "IP Address", + "failedToFetchAccessList": "Не удалось получить список доступа", + "currentAccess": "Текущий доступ", + "securityWarning": "Предупреждение о безопасности", + "securityWarningMessage": "Совместное использование учетных данных дает пользователю полный доступ для выполнения любых операций на сервере, включая изменение паролей и удаление файлов. Делится только доверенными пользователями.", + "tempUserRecommended": "Мы рекомендуем включить опцию «Создать временного пользователя» для повышения безопасности.", + "roleManagement": "Управление ролями", + "manageRoles": "Управление ролями", + "manageRolesFor": "Управление ролями {{username}}", + "assignRole": "Назначить роль", + "removeRole": "Удалить роль", + "userRoles": "Роли пользователей", + "permissions": "Права доступа", + "systemRole": "Системная роль", + "customRole": "Настраиваемая роль", + "roleAssignedSuccessfully": "Роль назначена {{username}} успешно", + "failedToAssignRole": "Не удалось назначить роль", + "roleRemovedSuccessfully": "Роль удалена из {{username}} успешно", + "failedToRemoveRole": "Не удалось удалить роль", + "cannotRemoveSystemRole": "Невозможно удалить системную роль", + "cannotShareWithSelf": "Невозможно поделиться узлом с самим собой", + "noCustomRolesToAssign": "Пользовательские роли недоступны. Системные роли назначаются автоматически.", + "credentialSharingWarning": "Аутентификация учетных данных не поддерживается для общего доступа", + "credentialRequired": "Полномочия требуются при совместном использовании узла", + "credentialRequiredDescription": "Этот хост не использует аутентификацию на основе учётных данных. Чтобы поделиться хостами из-за шифрования для каждого пользователя, хост должен использовать аутентификацию на основе учетных данных.", + "auditLogs": "Журнал аудита", + "viewAuditLogs": "Просмотр журналов аудита", + "action": "Действие", + "resourceType": "Тип ресурса", + "resourceName": "Название ресурса", + "timestamp": "Отметка времени", + "ipAddress": "IP-адрес", "userAgent": "User Agent", - "success": "Success", - "failed": "Failed", - "details": "Details", - "noAuditLogs": "No audit logs available", - "sessionRecordings": "Session Recordings", - "viewRecording": "View Recording", - "downloadRecording": "Download Recording", - "dangerousCommand": "Dangerous Command Detected", - "commandBlocked": "Command Blocked", - "terminateSession": "Terminate Session", - "sessionTerminated": "Session terminated by host owner", - "sharedAccessExpired": "Your shared access to this host has expired", - "sharedAccessExpiresIn": "Shared access expires in {{hours}} hours", + "success": "Успешно", + "failed": "Неудачный", + "details": "Детали", + "noAuditLogs": "Нет доступных журналов аудита", + "sessionRecordings": "Записи сессий", + "viewRecording": "Просмотр записи", + "downloadRecording": "Загрузить запись", + "dangerousCommand": "Опасные команды обнаружены", + "commandBlocked": "Команда заблокирована", + "terminateSession": "Завершить сеанс", + "sessionTerminated": "Сеанс завершен владельцем узла", + "sharedAccessExpired": "Ваш общий доступ к этому узлу истек", + "sharedAccessExpiresIn": "Общий доступ истекает через {{hours}} часов", "roles": { - "label": "Roles", - "admin": "Administrator", - "user": "User" + "label": "Роли", + "admin": "Администратор", + "user": "Пользователь" }, - "createRole": "Create Role", - "editRole": "Edit Role", - "roleName": "Role Name", - "displayName": "Display Name", - "description": "Description", - "assignRoles": "Assign Roles", - "userRoleAssignment": "User-Role Assignment", - "selectUserPlaceholder": "Select a user", - "searchUsers": "Search users...", - "noUserFound": "No user found", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role", - "selectRolePlaceholder": "Select a role", - "searchRoles": "Search roles...", - "noRoleFound": "No role found", - "assign": "Assign", - "roleCreatedSuccessfully": "Role created successfully", - "roleUpdatedSuccessfully": "Role updated successfully", - "roleDeletedSuccessfully": "Role deleted successfully", - "failedToLoadRoles": "Failed to load roles", - "failedToSaveRole": "Failed to save role", - "failedToDeleteRole": "Failed to delete role", - "roleDisplayNameRequired": "Role display name is required", - "roleNameRequired": "Role name is required", - "roleNameHint": "Use lowercase letters, numbers, underscores, and hyphens only", - "displayNamePlaceholder": "Developer", - "descriptionPlaceholder": "Software developers and engineers", - "confirmDeleteRole": "Delete Role", + "createRole": "Создать роль", + "editRole": "Изменить роль", + "roleName": "Название роли", + "displayName": "Показать имя", + "description": "Описание", + "assignRoles": "Назначить роли", + "userRoleAssignment": "Назначение роли пользователя", + "selectUserPlaceholder": "Выберите пользователя", + "searchUsers": "Поиск пользователей...", + "noUserFound": "Пользователь не найден", + "currentRoles": "Текущие роли", + "noRolesAssigned": "Роли не назначены", + "assignNewRole": "Назначить новую роль", + "selectRolePlaceholder": "Выберите роль", + "searchRoles": "Поиск ролей...", + "noRoleFound": "Роль не найдена", + "assign": "Назначить", + "roleCreatedSuccessfully": "Роль успешно создана", + "roleUpdatedSuccessfully": "Роль успешно обновлена", + "roleDeletedSuccessfully": "Роль успешно удалена", + "failedToLoadRoles": "Не удалось загрузить роли", + "failedToSaveRole": "Не удалось сохранить роль", + "failedToDeleteRole": "Не удалось удалить роль", + "roleDisplayNameRequired": "Требуется отображаемое имя роли", + "roleNameRequired": "Требуется название роли", + "roleNameHint": "Использовать только строчные буквы, цифры, подчеркивания и дефисы", + "displayNamePlaceholder": "Разработчик", + "descriptionPlaceholder": "Разработчики и инженеры ПО", + "confirmDeleteRole": "Удалить роль", "confirmDeleteRoleDescription": "Are you sure you want to delete the role '{{name}}'? This action cannot be undone.", - "confirmRemoveRole": "Remove Role", - "confirmRemoveRoleDescription": "Are you sure you want to remove this role from the user?", - "editRoleDescription": "Update role information", - "createRoleDescription": "Create a new custom role for grouping users", - "assignRolesDescription": "Manage role assignments for users", - "noRoles": "No roles found", - "selectRole": "Select Role", - "type": "Type", - "user": "User", - "role": "Role", - "saveHostFirst": "Save Host First", - "saveHostFirstDescription": "Please save the host before configuring sharing settings.", - "shareWithUser": "Share with User", - "shareWithRole": "Share with Role", - "share": "Share", + "confirmRemoveRole": "Удалить роль", + "confirmRemoveRoleDescription": "Вы уверены, что хотите удалить эту роль у пользователя?", + "editRoleDescription": "Обновить информацию о роли", + "createRoleDescription": "Создать новую роль для группировки пользователей", + "assignRolesDescription": "Управление назначением ролей для пользователей", + "noRoles": "Роли не найдены", + "selectRole": "Выберите роль", + "type": "Тип", + "user": "Пользователь", + "role": "Роль", + "saveHostFirst": "Сохранить хост сначала", + "saveHostFirstDescription": "Пожалуйста, сохраните узел перед настройкой параметров общего доступа.", + "shareWithUser": "Поделиться с пользователем", + "shareWithRole": "Поделиться с ролью", + "share": "Поделиться", "target": "Target", - "expires": "Expires", - "never": "Never", - "noAccessRecords": "No access records found", - "sharedSuccessfully": "Shared successfully", - "failedToShare": "Failed to share", - "confirmRevokeAccessDescription": "Are you sure you want to revoke this access?", - "hours": "hours", - "sharing": "Sharing", - "selectUserAndRole": "Please select both a user and a role", - "view": "View Only", - "viewDesc": "Due to the Termix encryption system, other permission levels will come at a later date" + "expires": "Истекает", + "never": "Никогда", + "noAccessRecords": "Не найдено записей доступа", + "sharedSuccessfully": "Успешно поделились", + "failedToShare": "Не удалось поделиться", + "confirmRevokeAccessDescription": "Вы уверены, что хотите отменить этот доступ?", + "hours": "часов", + "sharing": "Поделиться", + "selectUserAndRole": "Пожалуйста, выберите пользователя и роль", + "view": "Только просмотр", + "viewDesc": "Из-за системы шифрования Termix другие уровни прав доступа появятся позднее." }, "commandPalette": { - "searchPlaceholder": "Search for hosts or quick actions...", - "recentActivity": "Recent Activity", + "searchPlaceholder": "Поиск узлов или быстрых действий...", + "recentActivity": "Недавняя активность", "navigation": "Navigation", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "updateLog": "Update Log", - "hosts": "Hosts", - "openServerDetails": "Open Server Details", - "openFileManager": "Open File Manager", - "edit": "Edit", - "links": "Links", + "addHost": "Добавить хост", + "addCredential": "Добавить учетные данные", + "adminSettings": "Админ настройки", + "userProfile": "Профиль пользователя", + "updateLog": "Обновить журнал", + "hosts": "Узлы", + "openServerDetails": "Открыть детали сервера", + "openFileManager": "Открыть файловый менеджер", + "edit": "Редактирование", + "links": "Ссылки", "github": "GitHub", - "support": "Support", + "support": "Поддержка", "discord": "Discord", - "donate": "Donate", - "press": "Press", - "toToggle": "to toggle", - "close": "Close", - "hostManager": "Host Manager", - "pressToToggle": "Press Left Shift twice to open the command palette" + "donate": "Пожертвовать", + "press": "Пресса", + "toToggle": "переключить", + "close": "Закрыть", + "hostManager": "Менеджер хостов", + "pressToToggle": "Чтобы открыть командную палитру дважды нажмите левый Shift" }, "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connectingToHost": "Connecting to host...", - "error": "Error", - "errorCode": "Error code: {{code}}", - "version": "Docker {{version}}", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", + "notEnabled": "Docker не включен для этого узла", + "validating": "Проверка докера...", + "connectingToHost": "Подключение к хосту...", + "error": "Ошибка", + "errorCode": "Код ошибки: {{code}}", + "version": "Докер {{version}}", + "containerStarted": "Запущен контейнер {{name}}", + "failedToStartContainer": "Не удалось запустить контейнер {{name}}", + "containerStopped": "Контейнер {{name}} остановлен", + "failedToStopContainer": "Не удалось остановить контейнер {{name}}", + "containerRestarted": "Контейнер {{name}} перезапущен", + "failedToRestartContainer": "Не удалось перезапустить контейнер {{name}}", + "containerPaused": "Контейнер {{name}} приостановлен", + "containerUnpaused": "Контейнер {{name}} снят на паузе", + "failedToTogglePauseContainer": "Не удалось переключить состояние паузы для контейнера {{name}}", + "containerRemoved": "Контейнер {{name}} удален", + "failedToRemoveContainer": "Не удалось удалить контейнер {{name}}", + "image": "Изображение", "idLabel": "ID", - "ports": "Ports", - "noPorts": "No ports", - "created": "Created", - "start": "Start", - "stop": "Stop", - "pause": "Pause", + "ports": "Порты", + "noPorts": "Нет портов", + "created": "Создано", + "start": "Начать", + "stop": "Остановить", + "pause": "Пауза", "unpause": "Unpause", - "restart": "Restart", - "remove": "Remove", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "removing": "Removing...", - "loadingContainers": "Loading containers...", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "restart": "Перезапустить", + "remove": "Удалить", + "removeContainer": "Удалить контейнер", + "confirmRemoveContainer": "Вы уверены, что хотите удалить контейнер '{{name}}'? Это действие нельзя отменить.", + "runningContainerWarning": "Предупреждение: Этот контейнер в настоящее время запущен. Удаление его сначала остановит контейнер.", + "removing": "Удаление...", + "loadingContainers": "Загрузка контейнеров...", + "noContainersFound": "Контейнеры не найдены", + "noContainersFoundHint": "На этом узле нет доступных контейнеров Docker", + "searchPlaceholder": "Поиск контейнеров...", + "filterByStatusPlaceholder": "Фильтр по статусу", + "allContainersCount": "Все ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "containerMustBeRunningToViewStats": "Container must be running to view statistics", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "usedLimit": "Used / Limit", - "percentage": "Percentage", - "networkIo": "Network I/O", + "noContainersMatchFilters": "Нет контейнеров, соответствующих вашим фильтрам", + "noContainersMatchFiltersHint": "Попробуйте изменить критерии поиска или фильтра", + "containerMustBeRunningToViewStats": "Контейнер должен быть запущен для просмотра статистики", + "failedToFetchStats": "Не удалось получить статистику контейнера", + "containerNotRunning": "Контейнер не запущен", + "startContainerToViewStats": "Запустите контейнер для просмотра статистики", + "loadingStats": "Загрузка статистики...", + "errorLoadingStats": "Ошибка загрузки статистики", + "noStatsAvailable": "Нет доступной статистики", + "cpuUsage": "Загрузка ЦП", + "current": "Текущее", + "memoryUsage": "Использование памяти", + "usedLimit": "Использовано / Лимит", + "percentage": "Процент", + "networkIo": "Сеть I/O", "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", + "output": "Вывод", + "blockIo": "Блок I/O", + "read": "Чтение", + "write": "Написать", "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", + "containerInformation": "Информация о контейнере", + "name": "Наименование", "id": "ID", - "state": "State", - "disconnectedFromContainer": "Disconnected from container", - "containerMustBeRunning": "Container must be running to access console", - "authenticationRequired": "Authentication required", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", - "bash": "Bash", - "sh": "sh", - "ash": "ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console" + "state": "Область", + "disconnectedFromContainer": "Отключено от контейнера", + "containerMustBeRunning": "Контейнер должен быть запущен для доступа к консоли", + "authenticationRequired": "Требуется аутентификация", + "verificationCodePrompt": "Введите код подтверждения", + "totpVerificationFailed": "Ошибка проверки TOTP. Пожалуйста, попробуйте еще раз.", + "connectedTo": "Подключено к {{containerName}}", + "disconnected": "Отключено", + "consoleError": "Ошибка консоли", + "errorMessage": "Ошибка: {{message}}", + "failedToConnect": "Не удалось подключиться к контейнеру", + "console": "Консоль", + "selectShell": "Выберите оболочку", + "bash": "Баш", + "sh": "сч", + "ash": "пепел", + "connecting": "Подключение...", + "connect": "Подключиться", + "disconnect": "Отключиться", + "notConnected": "Не подключен", + "clickToConnect": "Нажмите \"Подключиться\", чтобы начать сеанс оболочки", + "connectingTo": "Подключение к {{containerName}}...", + "containerNotFound": "Контейнер не найден", + "backToList": "Назад к списку", + "logs": "Логи", + "stats": "Статистика", + "consoleTab": "Консоль", + "startContainerToAccess": "Запустите контейнер для доступа к консоли" }, "theme": { - "switchToLight": "Switch to Light", - "switchToDark": "Switch to Dark" + "switchToLight": "Переключиться на светлый", + "switchToDark": "Переключиться на темную" } }