Files
Termix/src/locales/ru/translation.json
ZacharyZcR 5fc2ec3dc0 feat: Enhanced security, UI improvements, and animations (#432)
* fix: Remove empty catch blocks and add error logging

* refactor: Modularize server stats widget collectors

* feat: Add i18n support for terminal customization and login stats

- Add comprehensive terminal customization translations (60+ keys) for appearance, behavior, and advanced settings across all 4 languages
- Add SSH login statistics translations
- Update HostManagerEditor to use i18n for all terminal customization UI elements
- Update LoginStatsWidget to use i18n for all UI text
- Add missing logger imports in backend files for improved debugging

* feat: Add keyboard shortcut enhancements with Kbd component

- Add shadcn kbd component for displaying keyboard shortcuts
- Enhance file manager context menu to display shortcuts with Kbd component
- Add 5 new keyboard shortcuts to file manager:
  - Ctrl+D: Download selected files
  - Ctrl+N: Create new file
  - Ctrl+Shift+N: Create new folder
  - Ctrl+U: Upload files
  - Enter: Open/run selected file
- Add keyboard shortcut hints to command palette footer
- Create helper function to parse and render keyboard shortcuts

* feat: Add i18n support for command palette

- Add commandPalette translation section with 22 keys to all 4 languages
- Update CommandPalette component to use i18n for all UI text
- Translate search placeholder, group headings, menu items, and shortcut hints
- Support multilingual command palette interface

* feat: Add smooth transitions and animations to UI

- Add fade-in/fade-out transition to command palette (200ms)
- Add scale animation to command palette on open/close
- Add smooth popup animation to context menu (150ms)
- Add visual feedback for file selection with ring effect
- Add hover scale effect to file grid items
- Add transition-all to list view items for consistent behavior
- Zero JavaScript overhead, pure CSS transitions
- All animations under 200ms for instant feel

* feat: Add button active state and dashboard card animations

- Add active:scale-95 to all buttons for tactile click feedback
- Add hover border effect to dashboard cards (150ms transition)
- Add pulse animation to dashboard loading states
- Pure CSS transitions with zero JavaScript overhead
- Improves enterprise-level feel of UI

* feat: Add smooth macOS-style page transitions

- Add fullscreen crossfade transition for login/logout (300ms fade-out + 400ms fade-in)
- Add slide-in-from-right animation for all page switches (Dashboard, Terminal, SSH Manager, Admin, Profile)
- Fix TypeScript compilation by adding esModuleInterop to tsconfig.node.json
- Pass handleLogout from DesktopApp to LeftSidebar for consistent transition behavior

All page transitions now use Tailwind animate-in utilities with 300ms duration for smooth, native-feeling UX

* fix: Add key prop to force animation re-trigger on tab switch

Each page container now has key={currentTab} to ensure React unmounts and remounts the element on every tab switch, properly triggering the slide-in animation

* revert: Remove page transition animations

Page switching animations were not noticeable enough and felt unnecessary.
Keep only the login/logout fullscreen crossfade transitions which provide clear visual feedback for authentication state changes

* feat: Add ripple effect to login/logout transitions

Add three-layer expanding ripple animation during fadeOut phase:
- Ripples expand from screen center using primary theme color
- Each layer has staggered delay (0ms, 150ms, 300ms) for wave effect
- Ripples fade out as they expand to create elegant visual feedback
- Uses pure CSS keyframe animation, no external libraries

Total animation: 800ms ripple + 300ms screen fade

* feat: Add smooth TERMIX logo animation to transitions

Changes:
- Extend transition duration from 300ms/400ms to 800ms/600ms for more elegant feel
- Reduce ripple intensity from /20,/15,/10 to /8,/5 for subtlety
- Slow down ripple animation from 0.8s to 2s with cubic-bezier easing
- Add centered TERMIX logo with monospace font and subtitle
- Logo fades in from 80% scale, holds, then fades out at 110% scale
- Total effect: 1.2s logo animation synced with 2s ripple waves

Creates a premium, branded transition experience

* feat: Enhance transition animation with premium details

Timing adjustments:
- Extend fadeOut from 800ms to 1200ms
- Extend fadeIn from 600ms to 800ms
- Slow background fade to 700ms for elegance

Visual enhancements:
- Add 4-layer ripple waves (10%, 7%, 5%, 3% opacity) with staggered delays
- Ripple animation extended to 2.5s with refined opacity curve
- Logo blur effect: starts at 8px, sharpens to 0px, exits at 4px
- Logo glow effect: triple-layer text-shadow using primary theme color
- Increase logo size from text-6xl to text-7xl
- Subtitle delayed fade-in from bottom with smooth slide animation

Creates a cinematic, polished brand experience

* feat: Redesign login page with split-screen cinematic layout

Major redesign of authentication page:

Left Side (40% width):
- Full-height gradient background using primary theme color
- Large TERMIX logo with glow effect
- Subtitle and tagline
- Infinite animated ripple waves (3 layers)
- Hidden on mobile, shows brand identity

Right Side (60% width):
- Centered glassmorphism card with backdrop blur
- Refined tab switcher with pill-style active state
- Enlarged title with gradient text effect
- Added welcome subtitles for better UX
- Card slides in from bottom on load
- All existing functionality preserved

Visual enhancements:
- Tab navigation: segmented control style in muted container
- Active tab: white background with subtle shadow
- Smooth 200ms transitions on all interactions
- Card: rounded-2xl, shadow-xl, semi-transparent border

Creates premium, modern login experience matching transition animations

* feat: Update login page theme colors and add i18n support

- Changed login page gradient from blue to match dark theme colors
- Updated ripple effects to use theme primary color
- Added i18n translation keys for login page (auth.tagline, auth.description, auth.welcomeBack, auth.createAccount, auth.continueExternal)
- Updated all language files (en, zh, de, ru, pt-BR) with new translations
- Fixed TypeScript compilation issues by clearing build cache

* refactor: Use shadcn Tabs component and fix modal styling

- Replace custom tab navigation with shadcn Tabs component
- Restore border-2 border-dark-border for modal consistency
- Remove circular icon from login success message
- Simplify authentication success display

* refactor: Remove ripple effects and gradient from login page

- Remove animated ripple background effects
- Remove gradient background, use solid color (bg-dark-bg-darker)
- Remove text-shadow glow effect from logo
- Simplify brand showcase to clean, minimal design

* feat: Add decorative slash and remove subtitle from login page

- Add decorative slash divider with gradient lines below TERMIX logo
- Remove subtitle text (welcomeBack and createAccount)
- Simplify page title to show only the main heading

* feat: Add diagonal line pattern background to login page

- Replace decorative slash with subtle diagonal line pattern background
- Use repeating-linear-gradient at 45deg angle
- Set very low opacity (0.03) for subtle effect
- Pattern uses theme primary color

* fix: Display diagonal line pattern on login background

- Combine background color and pattern in single style attribute
- Use white semi-transparent lines (rgba 0.03 opacity)
- 45deg angle, 35px spacing, 2px width
- Remove separate overlay div to ensure pattern visibility

* security: Fix user enumeration vulnerability in login

- Unify error messages for invalid username and incorrect password
- Both return 401 status with 'Invalid username or password'
- Prevent attackers from enumerating valid usernames
- Maintain detailed logging for debugging purposes
- Changed from 404 'User not found' to generic auth failure message

* security: Add login rate limiting to prevent brute force attacks

- Implement LoginRateLimiter with IP and username-based tracking
- Block after 5 failed attempts within 15 minutes
- Lock account/IP for 15 minutes after threshold
- Automatic cleanup of expired entries every 5 minutes
- Track remaining attempts in logs for monitoring
- Return 429 status with remaining time on rate limit
- Reset counters on successful login
- Dual protection: both IP-based and username-based limits
2025-11-08 19:48:32 -06:00

1690 lines
123 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"credentials": {
"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",
"updateCredential": "Обновить учетные данные",
"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": "Сохранение...",
"overview": "Обзор",
"security": "Безопасность",
"usage": "Использование",
"securityDetails": "Детали безопасности",
"securityDetailsDescription": "Просмотр зашифрованной информации учетных данных",
"credentialSecured": "Учетные данные защищены",
"credentialSecuredDescription": "Все конфиденциальные данные зашифрованы с помощью AES-256",
"passwordAuthentication": "Аутентификация по паролю",
"keyAuthentication": "Аутентификация по ключу",
"keyType": "Тип ключа",
"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",
"keyPairGeneratedSuccessfully": "Пара ключей {{keyType}} успешно сгенерирована",
"failedToGenerateKeyPair": "Не удалось сгенерировать пару ключей",
"generateKeyPairNote": "Сгенерировать новую пару SSH-ключей напрямую. Это заменит любые существующие ключи в форме.",
"invalidKey": "Неверный ключ",
"detectionError": "Ошибка определения",
"unknown": "Неизвестно"
},
"dragIndicator": {
"error": "Ошибка: {{error}}",
"dragging": "Перетаскивание {{fileName}}",
"preparing": "Подготовка {{fileName}}",
"readySingle": "Готово к скачиванию {{fileName}}",
"readyMultiple": "Готово к скачиванию {{count}} файлов",
"batchDrag": "Перетащите {{count}} файлов на рабочий стол",
"dragToDesktop": "Перетащите на рабочий стол",
"canDragAnywhere": "Вы можете перетаскивать файлы в любое место на рабочем столе"
},
"sshTools": {
"title": "SSH-инструменты",
"closeTools": "Закрыть SSH-инструменты",
"keyRecording": "Запись клавиш",
"startKeyRecording": "Начать запись клавиш",
"stopKeyRecording": "Остановить запись клавиш",
"selectTerminals": "Выберите терминалы:",
"typeCommands": "Введите команды (поддерживаются все клавиши):",
"commandsWillBeSent": "Команды будут отправлены в {{count}} выбранных терминалов.",
"settings": "Настройки",
"enableRightClickCopyPaste": "Включить копирование/вставку по правому клику",
"shareIdeas": "Есть идеи, что должно быть следующим для SSH-инструментов? Поделитесь ими на"
},
"snippets": {
"title": "Сниппеты",
"new": "Новый сниппет",
"create": "Создать сниппет",
"edit": "Редактировать сниппет",
"run": "Выполнить",
"empty": "Сниппетов пока нет",
"emptyHint": "Создайте сниппет для сохранения часто используемых команд",
"name": "Название",
"description": "Описание",
"content": "Команда",
"namePlaceholder": "например, Перезапуск Nginx",
"descriptionPlaceholder": "Опциональное описание",
"contentPlaceholder": "например, sudo systemctl restart nginx",
"nameRequired": "Требуется название",
"contentRequired": "Требуется команда",
"createDescription": "Создать новый сниппет команды для быстрого выполнения",
"editDescription": "Редактировать этот сниппет команды",
"deleteConfirmTitle": "Удалить сниппет",
"deleteConfirmDescription": "Вы уверены, что хотите удалить \"{{name}}\"?",
"createSuccess": "Сниппет успешно создан",
"updateSuccess": "Сниппет успешно обновлен",
"deleteSuccess": "Сниппет успешно удален",
"createFailed": "Не удалось создать сниппет",
"updateFailed": "Не удалось обновить сниппет",
"deleteFailed": "Не удалось удалить сниппет",
"failedToFetch": "Не удалось загрузить сниппеты",
"executeSuccess": "Выполняется: {{name}}",
"copySuccess": "Сниппет \"{{name}}\" скопирован в буфер обмена",
"runTooltip": "Выполнить этот сниппет в терминале",
"copyTooltip": "Скопировать сниппет в буфер обмена",
"editTooltip": "Редактировать этот сниппет",
"deleteTooltip": "Удалить этот сниппет"
},
"homepage": {
"loggedInTitle": "Вы вошли в систему!",
"loggedInMessage": "Вы вошли в систему! Используйте боковую панель для доступа ко всем доступным инструментам. Чтобы начать, создайте SSH-хост в разделе SSH-менеджера. После создания вы можете подключиться к этому хосту, используя другие приложения на боковой панели.",
"failedToLoadAlerts": "Не удалось загрузить оповещения",
"failedToDismissAlert": "Не удалось закрыть оповещение"
},
"serverConfig": {
"title": "Конфигурация сервера",
"description": "Настройте URL сервера Termix для подключения к вашим серверным службам",
"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)"
},
"versionCheck": {
"error": "Ошибка проверки версии",
"checkFailed": "Не удалось проверить наличие обновлений",
"upToDate": "Приложение обновлено",
"currentVersion": "Вы используете версию {{version}}",
"updateAvailable": "Доступно обновление",
"newVersionAvailable": "Доступна новая версия! Вы используете {{current}}, но доступна {{latest}}.",
"releasedOn": "Выпущена {{date}}",
"downloadUpdate": "Скачать обновление",
"dismiss": "Закрыть",
"checking": "Проверка обновлений...",
"checkUpdates": "Проверить обновления",
"checkingUpdates": "Проверка обновлений...",
"refresh": "Обновить",
"updateRequired": "Требуется обновление",
"updateDismissed": "Уведомление об обновлении закрыто",
"noUpdatesFound": "Обновления не найдены"
},
"common": {
"close": "Закрыть",
"minimize": "Свернуть",
"online": "В сети",
"offline": "Не в сети",
"continue": "Продолжить",
"maintenance": "Обслуживание",
"degraded": "Снижена производительность",
"discord": "Discord",
"error": "Ошибка",
"warning": "Предупреждение",
"info": "Информация",
"success": "Успех",
"loading": "Загрузка",
"required": "Обязательно",
"optional": "Опционально",
"clear": "Очистить",
"toggleSidebar": "Переключить боковую панель",
"sidebar": "Боковая панель",
"home": "Главная",
"expired": "Истек",
"expiresToday": "Истекает сегодня",
"expiresTomorrow": "Истекает завтра",
"expiresInDays": "Истекает через {{days}} дней",
"updateAvailable": "Доступно обновление",
"sshPath": "SSH-путь",
"localPath": "Локальный путь",
"loading": "Загрузка...",
"noAuthCredentials": "Нет учетных данных аутентификации для этого SSH-хоста",
"noReleases": "Нет выпусков",
"updatesAndReleases": "Обновления и выпуски",
"newVersionAvailable": "Доступна новая версия ({{version}}).",
"failedToFetchUpdateInfo": "Не удалось загрузить информацию об обновлениях",
"preRelease": "Предварительный выпуск",
"loginFailed": "Ошибка входа",
"noReleasesFound": "Выпуски не найдены.",
"yourBackupCodes": "Ваши резервные коды",
"sendResetCode": "Отправить код сброса",
"verifyCode": "Проверить код",
"resetPassword": "Сбросить пароль",
"resetCode": "Код сброса",
"newPassword": "Новый пароль",
"sshPath": "SSH-путь",
"localPath": "Локальный путь",
"folder": "Папка",
"file": "Файл",
"renamedSuccessfully": "успешно переименован",
"deletedSuccessfully": "успешно удален",
"noAuthCredentials": "Нет учетных данных аутентификации для этого SSH-хоста",
"noTunnelConnections": "Нет настроенных туннельных подключений",
"sshTools": "SSH-инструменты",
"english": "Английский",
"russia": "Русский",
"chinese": "Китайский",
"german": "Немецкий",
"cancel": "Отмена",
"username": "Имя пользователя",
"name": "Имя",
"login": "Войти",
"logout": "Выйти",
"register": "Зарегистрироваться",
"username": "Имя пользователя",
"password": "Пароль",
"version": "Версия",
"confirmPassword": "Подтвердите пароль",
"back": "Назад",
"email": "Email",
"submit": "Отправить",
"cancel": "Отмена",
"change": "Изменить",
"save": "Сохранить",
"delete": "Удалить",
"edit": "Редактировать",
"add": "Добавить",
"search": "Поиск",
"loading": "Загрузка...",
"error": "Ошибка",
"success": "Успех",
"warning": "Предупреждение",
"info": "Информация",
"confirm": "Подтвердить",
"yes": "Да",
"no": "Нет",
"ok": "OK",
"close": "Закрыть",
"enabled": "Включено",
"disabled": "Отключено",
"important": "Важно",
"notEnabled": "Не включено",
"settingUp": "Настройка...",
"back": "Назад",
"next": "Далее",
"previous": "Назад",
"refresh": "Обновить",
"settings": "Настройки",
"profile": "Профиль",
"help": "Помощь",
"about": "О программе",
"language": "Язык",
"autoDetect": "Автоопределение",
"changeAccountPassword": "Изменить пароль вашей учетной записи",
"passwordResetTitle": "Сброс пароля",
"passwordResetDescription": "Вы собираетесь сбросить пароль. Это приведет к выходу из всех активных сеансов.",
"enterSixDigitCode": "Введите 6-значный код из логов docker-контейнера для пользователя:",
"enterNewPassword": "Введите новый пароль для пользователя:",
"passwordsDoNotMatch": "Пароли не совпадают",
"passwordMinLength": "Пароль должен содержать не менее 6 символов",
"passwordResetSuccess": "Пароль успешно сброшен! Теперь вы можете войти с новым паролем.",
"failedToInitiatePasswordReset": "Не удалось инициировать сброс пароля",
"failedToVerifyResetCode": "Не удалось проверить код сброса",
"failedToCompletePasswordReset": "Не удалось завершить сброс пароля",
"documentation": "Документация",
"retry": "Повторить",
"checking": "Проверка...",
"checkingDatabase": "Проверка подключения к базе данных..."
},
"nav": {
"home": "Главная",
"hosts": "Хосты",
"credentials": "Учетные данные",
"terminal": "Терминал",
"tunnels": "Туннели",
"fileManager": "Файловый менеджер",
"serverStats": "Статистика сервера",
"admin": "Администрирование",
"userProfile": "Профиль пользователя",
"tools": "Инструменты",
"snippets": "Сниппеты",
"newTab": "Новая вкладка",
"splitScreen": "Разделить экран",
"closeTab": "Закрыть вкладку",
"sshManager": "SSH-менеджер",
"hostManager": "Менеджер хостов",
"cannotSplitTab": "Невозможно разделить эту вкладку",
"tabNavigation": "Навигация по вкладкам"
},
"admin": {
"title": "Настройки администратора",
"oidc": "OIDC",
"users": "Пользователи",
"userManagement": "Управление пользователями",
"makeAdmin": "Сделать администратором",
"removeAdmin": "Убрать администратора",
"deleteUser": "Удалить пользователя",
"allowRegistration": "Разрешить регистрацию",
"oidcSettings": "Настройки OIDC",
"clientId": "Client ID",
"clientSecret": "Client Secret",
"issuerUrl": "Issuer URL",
"authorizationUrl": "Authorization URL",
"tokenUrl": "Token URL",
"updateSettings": "Обновить настройки",
"confirmDelete": "Вы уверены, что хотите удалить этого пользователя?",
"confirmMakeAdmin": "Вы уверены, что хотите сделать этого пользователя администратором?",
"confirmRemoveAdmin": "Вы уверены, что хотите убрать права администратора у этого пользователя?",
"externalAuthentication": "Внешняя аутентификация (OIDC)",
"configureExternalProvider": "Настройте внешнего провайдера идентификации для аутентификации OIDC/OAuth2.",
"userIdentifierPath": "Путь к идентификатору пользователя",
"displayNamePath": "Путь к отображаемому имени",
"scopes": "Области действия",
"saving": "Сохранение...",
"saveConfiguration": "Сохранить конфигурацию",
"reset": "Сбросить",
"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": "Не удалось убрать статус администратора",
"deleteUser": "Удалить пользователя {{username}}? Это нельзя отменить.",
"userDeletedSuccessfully": "Пользователь {{username}} успешно удален",
"failedToDeleteUser": "Не удалось удалить пользователя",
"overrideUserInfoUrl": "Переопределить User Info URL (не требуется)",
"databaseSecurity": "Безопасность базы данных",
"encryptionStatus": "Статус шифрования",
"encryptionEnabled": "Шифрование включено",
"enabled": "Включено",
"disabled": "Отключено",
"keyId": "ID ключа",
"created": "Создано",
"migrationStatus": "Статус миграции",
"migrationCompleted": "Миграция завершена",
"migrationRequired": "Требуется миграция",
"deviceProtectedMasterKey": "Мастер-ключ, защищенный средой",
"legacyKeyStorage": "Устаревшее хранилище ключей",
"masterKeyEncryptedWithDeviceFingerprint": "Мастер-ключ зашифрован с помощью отпечатка среды (защита KEK активна)",
"keyNotProtectedByDeviceBinding": "Ключ не защищен привязкой к среде (рекомендуется обновление)",
"valid": "Действителен",
"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=\"your-key\" на новом сервере, 3) Восстановите файлы базы данных",
"environmentProtection": "Защита среды",
"environmentProtectionDesc": "Защищает ключи шифрования на основе информации о серверной среде (имя хоста, пути и т.д.), мигрируемы через переменные окружения",
"verificationCompleted": "Проверка совместимости завершена - данные не изменялись",
"verificationInProgress": "Проверка завершена",
"dataMigrationCompleted": "Миграция данных успешно завершена!",
"migrationCompleted": "Миграция завершена",
"verificationFailed": "Проверка совместимости не удалась",
"migrationFailed": "Миграция не удалась",
"runningVerification": "Выполняется проверка совместимости...",
"startingMigration": "Начало миграции...",
"hardwareFingerprintSecurity": "Безопасность отпечатка оборудования",
"hardwareBoundEncryption": "Активно шифрование, привязанное к оборудованию",
"masterKeysNowProtectedByHardwareFingerprint": "Мастер-ключи теперь защищены реальным отпечатком оборудования вместо переменных окружения",
"cpuSerialNumberDetection": "Обнаружение серийного номера CPU",
"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": "Экспортировать базу данных SQLite",
"exporting": "Экспорт...",
"exportCreated": "Экспорт SQLite создан",
"exportContainsDecryptedData": "Экспорт SQLite содержит расшифрованные данные - храните безопасно!",
"databaseExportedSuccessfully": "База данных SQLite успешно экспортирована",
"databaseExportFailed": "Не удалось экспортировать базу данных SQLite",
"importFromMigration": "Импорт из миграции",
"importDatabaseFromAnotherSystem": "Импортировать базу данных SQLite из другой системы или оборудования",
"importDatabase": "Импортировать базу данных SQLite",
"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": "КРИТИЧЕСКИ: Вход по паролю отключен. Если вы сбросите или неправильно настроите OIDC, вы потеряете весь доступ к Termix и заблокируете свой экземпляр. Продолжайте только если вы абсолютно уверены.",
"confirmDisableOIDCWarning": "ПРЕДУПРЕЖДЕНИЕ: Вы собираетесь отключить OIDC, пока вход по паролю также отключен. Это заблокирует ваш экземпляр Termix, и вы потеряете весь доступ. Вы абсолютно уверены, что хотите продолжить?"
},
"hosts": {
"title": "Менеджер хостов",
"sshHosts": "SSH-хосты",
"noHosts": "Нет SSH-хостов",
"noHostsMessage": "Вы еще не добавили SSH-хосты. Нажмите \"Добавить хост\", чтобы начать.",
"loadingHosts": "Загрузка хостов...",
"failedToLoadHosts": "Не удалось загрузить хосты",
"retry": "Повторить",
"refresh": "Обновить",
"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 должен содержать массив \"hosts\" или быть массивом хостов",
"noHostsInJson": "В JSON-файле не найдено хостов",
"maxHostsAllowed": "Разрешено максимум 100 хостов за импорт",
"importCompleted": "Импорт завершен: {{success}} успешно, {{failed}} не удалось",
"importFailed": "Импорт не удался",
"importError": "Ошибка импорта",
"failedToImportJson": "Не удалось импортировать JSON-файл",
"connectionDetails": "Детали подключения",
"organization": "Организация",
"ipAddress": "IP-адрес",
"port": "Порт",
"name": "Имя",
"username": "Имя пользователя",
"folder": "Папка",
"tags": "Теги",
"pin": "Закрепить",
"passwordRequired": "Пароль требуется при использовании аутентификации по паролю",
"sshKeyRequired": "Приватный SSH-ключ требуется при использовании аутентификации по ключу",
"keyTypeRequired": "Тип ключа требуется при использовании аутентификации по ключу",
"mustSelectValidSshConfig": "Необходимо выбрать допустимую SSH-конфигурацию из списка",
"addHost": "Добавить хост",
"editHost": "Редактировать хост",
"cloneHost": "Клонировать хост",
"updateHost": "Обновить хост",
"hostUpdatedSuccessfully": "Хост \"{{name}}\" успешно обновлен!",
"hostAddedSuccessfully": "Хост \"{{name}}\" успешно добавлен!",
"hostDeletedSuccessfully": "Хост \"{{name}}\" успешно удален!",
"failedToSaveHost": "Не удалось сохранить хост. Пожалуйста, попробуйте снова.",
"enableTerminal": "Включить терминал",
"enableTerminalDesc": "Включить/отключить видимость хоста во вкладке Терминал",
"enableTunnel": "Включить туннель",
"enableTunnelDesc": "Включить/отключить видимость хоста во вкладке Туннель",
"enableFileManager": "Включить файловый менеджер",
"enableFileManagerDesc": "Включить/отключить видимость хоста во вкладке Файловый менеджер",
"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-сервера",
"sshServerConfigDesc": "Для туннельных подключений SSH-сервер должен быть настроен для разрешения переадресации портов:",
"gatewayPortsYes": "для привязки удаленных портов ко всем интерфейсам",
"allowTcpForwardingYes": "для включения переадресации портов",
"permitRootLoginYes": "если используется пользователь root для туннелирования",
"editSshConfig": "Отредактируйте /etc/ssh/sshd_config и перезапустите SSH: sudo systemctl restart sshd",
"upload": "Загрузить",
"authentication": "Аутентификация",
"password": "Пароль",
"key": "Ключ",
"credential": "Учетные данные",
"none": "Нет",
"selectCredential": "Выбрать учетные данные",
"selectCredentialPlaceholder": "Выберите учетные данные...",
"credentialRequired": "Учетные данные требуются при использовании аутентификации по учетным данным",
"credentialDescription": "Выбор учетных данных перезапишет текущее имя пользователя и будет использовать детали аутентификации учетных данных.",
"sshPrivateKey": "Приватный SSH-ключ",
"keyPassword": "Пароль ключа",
"keyType": "Тип ключа",
"autoDetect": "Автоопределение",
"rsa": "RSA",
"ed25519": "ED25519",
"ecdsaNistP256": "ECDSA NIST P-256",
"ecdsaNistP384": "ECDSA NIST P-384",
"ecdsaNistP521": "ECDSA NIST P-521",
"dsa": "DSA",
"rsaSha2256": "RSA SHA2-256",
"rsaSha2512": "RSA SHA2-512",
"uploadFile": "Загрузить файл",
"pasteKey": "Вставить ключ",
"updateKey": "Обновить ключ",
"existingKey": "Существующий ключ (нажмите для изменения)",
"existingCredential": "Существующие учетные данные (нажмите для изменения)",
"addTagsSpaceToAdd": "добавить теги (пробел для добавления)",
"terminalBadge": "Терминал",
"tunnelBadge": "Туннель",
"fileManagerBadge": "Файловый менеджер",
"general": "Общее",
"terminal": "Терминал",
"tunnel": "Туннель",
"fileManager": "Файловый менеджер",
"serverStats": "Статистика сервера",
"hostViewer": "Просмотрщик хостов",
"enableServerStats": "Включить статистику сервера",
"enableServerStatsDesc": "Включить/отключить сбор статистики сервера для этого хоста",
"displayItems": "Элементы отображения",
"displayItemsDesc": "Выберите, какие метрики отображать на странице статистики сервера",
"enableCpu": "Использование CPU",
"enableMemory": "Использование памяти",
"enableDisk": "Использование диска",
"enableNetwork": "Сетевая статистика (Скоро)",
"enableProcesses": "Количество процессов (Скоро)",
"enableUptime": "Время работы (Скоро)",
"enableHostname": "Имя хоста (Скоро)",
"enableOs": "Операционная система (Скоро)",
"customCommands": "Пользовательские команды (Скоро)",
"customCommandsDesc": "Определите пользовательские команды выключения и перезагрузки для этого сервера",
"shutdownCommand": "Команда выключения",
"rebootCommand": "Команда перезагрузки",
"confirmRemoveFromFolder": "Вы уверены, что хотите удалить \"{{name}}\" из папки \"{{folder}}\"? Хост будет перемещен в \"Без папки\".",
"removedFromFolder": "Хост \"{{name}}\" успешно удален из папки",
"failedToRemoveFromFolder": "Не удалось удалить хост из папки",
"folderRenamed": "Папка \"{{oldName}}\" успешно переименована в \"{{newName}}\"",
"failedToRenameFolder": "Не удалось переименовать папку",
"movedToFolder": "Хост \"{{name}}\" успешно перемещен в \"{{folder}}\"",
"failedToMoveToFolder": "Не удалось переместить хост в папку",
"statistics": "Статистика",
"enabledWidgets": "Включенные виджеты",
"enabledWidgetsDesc": "Выберите, какие виджеты статистики отображать для этого хоста",
"monitoringConfiguration": "Конфигурация мониторинга",
"monitoringConfigurationDesc": "Настройте, как часто проверяются статистика и статус сервера",
"statusCheckEnabled": "Включить мониторинг статуса",
"statusCheckEnabledDesc": "Проверять, находится ли сервер в сети или вне сети",
"statusCheckInterval": "Интервал проверки статуса",
"statusCheckIntervalDesc": "Как часто проверять, находится ли хост в сети (5с - 1ч)",
"metricsEnabled": "Включить мониторинг метрик",
"metricsEnabledDesc": "Собирать статистику CPU, RAM, диска и другую системную статистику",
"metricsInterval": "Интервал сбора метрик",
"metricsIntervalDesc": "Как часто собирать статистику сервера (5с - 1ч)",
"intervalSeconds": "секунд",
"intervalMinutes": "минут",
"intervalValidation": "Интервалы мониторинга должны быть между 5 секундами и 1 часом (3600 секунд)",
"monitoringDisabled": "Мониторинг сервера отключен для этого хоста",
"enableMonitoring": "Включите мониторинг в Менеджере хостов → вкладка Статистика",
"monitoringDisabledBadge": "Мониторинг выключен",
"statusMonitoring": "Статус",
"metricsMonitoring": "Метрики",
"terminalCustomizationNotice": "Примечание: Настройки терминала работают только на рабочем столе (веб-сайт и Electron-приложение). Мобильные приложения и мобильный веб-сайт используют системные настройки терминала по умолчанию.",
"terminalCustomization": "Настройка терминала",
"appearance": "Внешний вид",
"behavior": "Поведение",
"advanced": "Расширенные",
"themePreview": "Предпросмотр темы",
"theme": "Тема",
"selectTheme": "Выбрать тему",
"chooseColorTheme": "Выберите цветовую тему для терминала",
"fontFamily": "Семейство шрифтов",
"selectFont": "Выбрать шрифт",
"selectFontDesc": "Выберите шрифт для использования в терминале",
"fontSize": "Размер шрифта",
"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": "Клавиша-модификатор для быстрой прокрутки",
"fastScrollSensitivity": "Чувствительность быстрой прокрутки",
"fastScrollSensitivityValue": "Чувствительность быстрой прокрутки: {{value}}",
"fastScrollSensitivityDesc": "Множитель скорости прокрутки при удержании модификатора",
"minimumContrastRatio": "Минимальная контрастность",
"minimumContrastRatioValue": "Минимальная контрастность: {{value}}",
"minimumContrastRatioDesc": "Автоматически настраивать цвета для лучшей читаемости",
"sshAgentForwarding": "Переадресация SSH-агента",
"sshAgentForwardingDesc": "Переадресовать агент SSH-аутентификации на удаленный хост",
"backspaceMode": "Режим Backspace",
"selectBackspaceMode": "Выбрать режим Backspace",
"backspaceModeNormal": "Обычный (DEL)",
"backspaceModeControlH": "Control-H (^H)",
"backspaceModeDesc": "Поведение клавиши Backspace для совместимости",
"startupSnippet": "Сниппет запуска",
"selectSnippet": "Выбрать сниппет",
"searchSnippets": "Поиск сниппетов...",
"snippetNone": "Нет",
"noneAuthTitle": "Интерактивная аутентификация по клавиатуре",
"noneAuthDescription": "Этот метод аутентификации будет использовать интерактивную аутентификацию по клавиатуре при подключении к SSH-серверу.",
"noneAuthDetails": "Интерактивная аутентификация по клавиатуре позволяет серверу запрашивать у вас учетные данные во время подключения. Это полезно для серверов, которые требуют многофакторную аутентификацию или динамический ввод пароля."
},
"terminal": {
"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": "Проверить"
},
"fileManager": {
"title": "Файловый менеджер",
"file": "Файл",
"folder": "Папка",
"connectToSsh": "Подключитесь к SSH для использования файловых операций",
"uploadFile": "Загрузить файл",
"downloadFile": "Скачать",
"edit": "Редактировать",
"preview": "Просмотр",
"previous": "Предыдущий",
"next": "Следующий",
"pageXOfY": "Страница {{current}} из {{total}}",
"zoomOut": "Уменьшить",
"zoomIn": "Увеличить",
"newFile": "Новый файл",
"newFolder": "Новая папка",
"rename": "Переименовать",
"renameItem": "Переименовать элемент",
"deleteItem": "Удалить элемент",
"currentPath": "Текущий путь",
"uploadFileTitle": "Загрузить файл",
"maxFileSize": "Макс: 1GB (JSON) / 5GB (Binary) - Поддерживаются большие файлы",
"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": "Вставить",
"delete": "Удалить",
"properties": "Свойства",
"preview": "Просмотр",
"refresh": "Обновить",
"downloadFiles": "Скачать {{count}} файлов в браузер",
"copyFiles": "Копировать {{count}} элементов",
"cutFiles": "Вырезать {{count}} элементов",
"deleteFiles": "Удалить {{count}} элементов",
"filesCopiedToClipboard": "{{count}} элементов скопировано в буфер обмена",
"filesCutToClipboard": "{{count}} элементов вырезано в буфер обмена",
"movedItems": "Перемещено {{count}} элементов",
"failedToDeleteItem": "Не удалось удалить элемент",
"itemRenamedSuccessfully": "{{type}} успешно переименован",
"failedToRenameItem": "Не удалось переименовать элемент",
"upload": "Загрузить",
"download": "Скачать",
"newFile": "Новый файл",
"newFolder": "Новая папка",
"rename": "Переименовать",
"delete": "Удалить",
"permissions": "Права доступа",
"size": "Размер",
"modified": "Изменен",
"path": "Путь",
"fileName": "Имя файла",
"folderName": "Имя папки",
"confirmDelete": "Вы уверены, что хотите удалить {{name}}?",
"uploadSuccess": "Файл успешно загружен",
"uploadFailed": "Не удалось загрузить файл",
"downloadSuccess": "Файл успешно скачан",
"downloadFailed": "Не удалось скачать файл",
"permissionDenied": "Доступ запрещен",
"checkDockerLogs": "Проверьте логи Docker для получения подробной информации об ошибке",
"internalServerError": "Произошла внутренняя ошибка сервера",
"serverError": "Ошибка сервера",
"error": "Ошибка",
"requestFailed": "Запрос завершился с кодом состояния",
"unknownFileError": "неизвестно",
"cannotReadFile": "Невозможно прочитать файл",
"noSshSessionId": "Нет доступного ID SSH-сессии",
"noFilePath": "Нет доступного пути к файлу",
"noCurrentHost": "Нет текущего хоста",
"fileSavedSuccessfully": "Файл успешно сохранен",
"saveTimeout": "Операция сохранения превысила время ожидания. Файл мог быть успешно сохранен, но операция заняла слишком много времени для завершения. Проверьте логи Docker для подтверждения.",
"failedToSaveFile": "Не удалось сохранить файл",
"folder": "Папка",
"file": "Файл",
"deletedSuccessfully": "успешно удален",
"failedToDeleteItem": "Не удалось удалить элемент",
"connectToServer": "Подключиться к серверу",
"selectServerToEdit": "Выберите сервер на боковой панели, чтобы начать редактирование файлов",
"fileOperations": "Файловые операции",
"confirmDeleteMessage": "Вы уверены, что хотите удалить <strong>{{name}}</strong>?",
"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}} файлов как...",
"saveToSystem": "Сохранить как...",
"pinFile": "Закрепить файл",
"addToShortcuts": "Добавить в ярлыки",
"selectLocationToSave": "Выберите место для сохранения",
"downloadToDefaultLocation": "Скачать в место по умолчанию",
"pasteFailed": "Вставка не удалась",
"noUndoableActions": "Нет действий для отмены",
"undoCopySuccess": "Операция копирования отменена: Удалено {{count}} скопированных файлов",
"undoCopyFailedDelete": "Отмена не удалась: Не удалось удалить скопированные файлы",
"undoCopyFailedNoInfo": "Отмена не удалась: Не удалось найти информацию о скопированных файлах",
"undoMoveSuccess": "Операция перемещения отменена: Перемещено {{count}} файлов обратно в исходное расположение",
"undoMoveFailedMove": "Отмена не удалась: Не удалось переместить файлы обратно",
"undoMoveFailedNoInfo": "Отмена не удалась: Не удалось найти информацию о перемещенных файлах",
"undoDeleteNotSupported": "Операцию удаления нельзя отменить: Файлы окончательно удалены с сервера",
"undoTypeNotSupported": "Неподдерживаемый тип операции отмены",
"undoOperationFailed": "Операция отмены не удалась",
"unknownError": "Неизвестная ошибка",
"enterPath": "Введите путь...",
"editPath": "Редактировать путь",
"confirm": "Подтвердить",
"cancel": "Отмена",
"folderName": "Имя папки",
"find": "Найти...",
"replaceWith": "Заменить на...",
"replace": "Заменить",
"replaceAll": "Заменить все",
"downloadInstead": "Скачать вместо этого",
"keyboardShortcuts": "Горячие клавиши",
"searchAndReplace": "Поиск и замена",
"editing": "Редактирование",
"navigation": "Навигация",
"code": "Код",
"search": "Поиск",
"findNext": "Найти следующее",
"findPrevious": "Найти предыдущее",
"save": "Сохранить",
"selectAll": "Выделить все",
"undo": "Отменить",
"redo": "Повторить",
"goToLine": "Перейти к строке",
"moveLineUp": "Переместить строку вверх",
"moveLineDown": "Переместить строку вниз",
"toggleComment": "Закомментировать/раскомментировать",
"indent": "Увеличить отступ",
"outdent": "Уменьшить отступ",
"autoComplete": "Автозавершение",
"imageLoadError": "Не удалось загрузить изображение",
"zoomIn": "Увеличить",
"zoomOut": "Уменьшить",
"rotate": "Повернуть",
"originalSize": "Оригинальный размер",
"startTyping": "Начните печатать...",
"unknownSize": "Неизвестный размер",
"fileIsEmpty": "Файл пуст",
"modified": "Изменен",
"largeFileWarning": "Предупреждение о большом файле",
"largeFileWarningDesc": "Этот файл имеет размер {{size}}, что может вызвать проблемы с производительностью при открытии как текста.",
"fileNotFoundAndRemoved": "Файл \"{{name}}\" не найден и был удален из недавних/закрепленных файлов",
"failedToLoadFile": "Не удалось загрузить файл: {{error}}",
"serverErrorOccurred": "Произошла ошибка сервера. Пожалуйста, попробуйте позже.",
"fileSavedSuccessfully": "Файл успешно сохранен",
"autoSaveFailed": "Автосохранение не удалось",
"fileAutoSaved": "Файл автосохранен",
"fileDownloadedSuccessfully": "Файл успешно скачан",
"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": "НовыйФайл.txt",
"successfullyMovedItems": "Успешно перемещено {{count}} элементов в {{target}}",
"move": "Переместить",
"searchInFile": "Поиск в файле (Ctrl+F)",
"showKeyboardShortcuts": "Показать горячие клавиши",
"startWritingMarkdown": "Начните писать ваш markdown-контент...",
"loadingFileComparison": "Загрузка сравнения файлов...",
"reload": "Перезагрузить",
"compare": "Сравнить",
"sideBySide": "Рядом",
"inline": "Встроенное",
"fileComparison": "Сравнение файлов: {{file1}} vs {{file2}}",
"fileTooLarge": "Файл слишком большой: {{error}}",
"sshConnectionFailed": "SSH-подключение не удалось. Пожалуйста, проверьте ваше подключение к {{name}} ({{ip}}:{{port}})",
"loadFileFailed": "Не удалось загрузить файл: {{error}}",
"connectedSuccessfully": "Успешно подключено",
"totpVerificationFailed": "Проверка TOTP не удалась"
},
"tunnels": {
"title": "SSH-туннели",
"noSshTunnels": "Нет SSH-туннелей",
"createFirstTunnelMessage": "Вы еще не создали SSH-туннели. Настройте туннельные подключения в Менеджере хостов, чтобы начать.",
"connected": "Подключено",
"disconnected": "Отключено",
"connecting": "Подключение...",
"disconnecting": "Отключение...",
"unknownTunnelStatus": "Неизвестно",
"unknown": "Неизвестно",
"error": "Ошибка",
"failed": "Не удалось",
"retrying": "Повторная попытка",
"waiting": "Ожидание",
"waitingForRetry": "Ожидание повторной попытки",
"retryingConnection": "Повторное подключение",
"canceling": "Отмена...",
"connect": "Подключить",
"disconnect": "Отключить",
"cancel": "Отмена",
"port": "Порт",
"attempt": "Попытка {{current}} из {{max}}",
"nextRetryIn": "Следующая попытка через {{seconds}} секунд",
"checkDockerLogs": "Проверьте ваши логи Docker для выяснения причины ошибки, присоединяйтесь к",
"noTunnelConnections": "Нет настроенных туннельных подключений",
"tunnelConnections": "Туннельные подключения",
"addTunnel": "Добавить туннель",
"editTunnel": "Редактировать туннель",
"deleteTunnel": "Удалить туннель",
"tunnelName": "Имя туннеля",
"localPort": "Локальный порт",
"remoteHost": "Удаленный хост",
"remotePort": "Удаленный порт",
"autoStart": "Автозапуск",
"status": "Статус",
"active": "Активно",
"inactive": "Неактивно",
"start": "Запустить",
"stop": "Остановить",
"restart": "Перезапустить",
"connectionType": "Тип подключения",
"local": "Локальный",
"remote": "Удаленный",
"dynamic": "Динамический",
"noSshTunnels": "Нет SSH-туннелей",
"createFirstTunnelMessage": "Создайте ваш первый SSH-туннель, чтобы начать. Используйте SSH-менеджер для добавления хостов с туннельными подключениями.",
"unknownConnectionStatus": "Неизвестно",
"connected": "Подключено",
"connecting": "Подключение...",
"disconnecting": "Отключение...",
"disconnected": "Отключено",
"portMapping": "Порт {{sourcePort}} → {{endpointHost}}:{{endpointPort}}",
"disconnect": "Отключить",
"connect": "Подключить",
"canceling": "Отмена...",
"endpointHostNotFound": "Хост конечной точки не найден",
"discord": "Discord",
"githubIssue": "Проблема на GitHub",
"forHelp": "для помощи"
},
"serverStats": {
"title": "Статистика сервера",
"cpu": "CPU",
"memory": "Память",
"disk": "Диск",
"network": "Сеть",
"uptime": "Время работы",
"loadAverage": "Средняя загрузка",
"processes": "Процессы",
"connections": "Подключения",
"usage": "Использование",
"available": "Доступно",
"total": "Всего",
"free": "Свободно",
"used": "Использовано",
"percentage": "Процент",
"refreshStatusAndMetrics": "Обновить статус и метрики",
"refreshStatus": "Обновить статус",
"fileManagerAlreadyOpen": "Файловый менеджер уже открыт для этого хоста",
"openFileManager": "Открыть файловый менеджер",
"cpuCores_one": "{{count}} CPU",
"cpuCores_other": "{{count}} CPU",
"naCpus": "N/A CPU",
"loadAverage": "Средняя: {{avg1}}, {{avg5}}, {{avg15}}",
"loadAverageNA": "Средняя: N/A",
"cpuUsage": "Использование CPU",
"memoryUsage": "Использование памяти",
"diskUsage": "Использование диска",
"rootStorageSpace": "Место в корневом хранилище",
"of": "из",
"feedbackMessage": "Есть идеи, что должно быть следующим для управления сервером? Поделитесь ими на",
"failedToFetchHostConfig": "Не удалось загрузить конфигурацию хоста",
"failedToFetchStatus": "Не удалось загрузить статус сервера",
"failedToFetchMetrics": "Не удалось загрузить метрики сервера",
"failedToFetchHomeData": "Не удалось загрузить домашние данные",
"loadingMetrics": "Загрузка метрик...",
"refreshing": "Обновление...",
"serverOffline": "Сервер не в сети",
"cannotFetchMetrics": "Невозможно получить метрики с отключенного сервера",
"totpRequired": "Требуется TOTP-аутентификация",
"totpUnavailable": "Статистика сервера недоступна для серверов с включенным TOTP",
"load": "Загрузка",
"free": "Свободно",
"available": "Доступно",
"editLayout": "Редактировать макет",
"cancelEdit": "Отмена",
"addWidget": "Добавить виджет",
"saveLayout": "Сохранить макет",
"unsavedChanges": "Несохраненные изменения",
"layoutSaved": "Макет успешно сохранен",
"failedToSaveLayout": "Не удалось сохранить макет",
"systemInfo": "Системная информация",
"hostname": "Имя хоста",
"operatingSystem": "Операционная система",
"kernel": "Ядро",
"totalUptime": "Общее время работы",
"seconds": "секунд",
"networkInterfaces": "Сетевые интерфейсы",
"noInterfacesFound": "Сетевые интерфейсы не найдены",
"totalProcesses": "Всего процессов",
"running": "Запущено",
"noProcessesFound": "Процессы не найдены",
"loginStats": "Статистика входов SSH",
"totalLogins": "Всего входов",
"uniqueIPs": "Уникальные IP",
"recentSuccessfulLogins": "Последние успешные входы",
"recentFailedAttempts": "Последние неудачные попытки",
"noRecentLoginData": "Нет данных о недавних входах",
"from": "с"
},
"auth": {
"tagline": "SSH ТЕРМИНАЛ МЕНЕДЖЕР",
"description": "Безопасное, мощное и интуитивное управление SSH-соединениями",
"welcomeBack": "Добро пожаловать обратно в TERMIX",
"createAccount": "Создайте вашу учетную запись TERMIX",
"continueExternal": "Продолжить с внешним провайдером",
"loginTitle": "Вход в Termix",
"registerTitle": "Создать учетную запись",
"loginButton": "Войти",
"registerButton": "Зарегистрироваться",
"forgotPassword": "Забыли пароль?",
"rememberMe": "Запомнить меня",
"noAccount": "Нет учетной записи?",
"hasAccount": "Уже есть учетная запись?",
"loginSuccess": "Вход выполнен успешно",
"loginFailed": "Ошибка входа",
"registerSuccess": "Регистрация успешна",
"registerFailed": "Ошибка регистрации",
"logoutSuccess": "Выход выполнен успешно",
"invalidCredentials": "Неверное имя пользователя или пароль",
"accountCreated": "Учетная запись успешно создана",
"passwordReset": "Ссылка для сброса пароля отправлена",
"twoFactorAuth": "Двухфакторная аутентификация",
"enterCode": "Введите код проверки",
"backupCode": "Или используйте резервный код",
"verifyCode": "Проверить код",
"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": "Настройка двухфакторной аутентификации",
"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": "Код сброса",
"verifyCodeButton": "Проверить код",
"enterResetCode": "Введите 6-значный код из логов docker-контейнера для пользователя:",
"goToLogin": "Перейти ко входу",
"newPassword": "Новый пароль",
"confirmNewPassword": "Подтвердите пароль",
"enterNewPassword": "Введите ваш новый пароль для пользователя:",
"signUp": "Зарегистрироваться",
"dataLossWarning": "Сброс пароля этим способом удалит все ваши сохраненные SSH-хосты, учетные данные и другие зашифрованные данные. Это действие нельзя отменить. Используйте это только если вы забыли пароль и не вошли в систему.",
"authenticationDisabled": "Аутентификация отключена",
"authenticationDisabledDesc": "Все методы аутентификации в настоящее время отключены. Пожалуйста, свяжитесь с вашим администратором."
},
"errors": {
"notFound": "Страница не найдена",
"unauthorized": "Неавторизованный доступ",
"forbidden": "Доступ запрещен",
"serverError": "Ошибка сервера",
"networkError": "Сетевая ошибка",
"databaseConnection": "Не удалось подключиться к базе данных.",
"unknownError": "Неизвестная ошибка",
"loginFailed": "Ошибка входа",
"failedPasswordReset": "Не удалось инициировать сброс пароля",
"failedVerifyCode": "Не удалось проверить код сброса",
"failedCompleteReset": "Не удалось завершить сброс пароля",
"invalidTotpCode": "Неверный TOTP-код",
"failedOidcLogin": "Не удалось начать вход через OIDC",
"failedUserInfo": "Не удалось получить информацию о пользователе после входа через OIDC",
"oidcAuthFailed": "OIDC-аутентификация не удалась",
"noTokenReceived": "Токен не получен при входе",
"invalidAuthUrl": "Получен неверный URL авторизации от бэкенда",
"invalidInput": "Неверный ввод",
"requiredField": "Это поле обязательно",
"minLength": "Минимальная длина {{min}}",
"maxLength": "Максимальная длина {{max}}",
"invalidEmail": "Неверный адрес email",
"passwordMismatch": "Пароли не совпадают",
"passwordLoginDisabled": "Вход по имени пользователя/паролю в настоящее время отключен",
"weakPassword": "Пароль слишком слабый",
"usernameExists": "Имя пользователя уже существует",
"emailExists": "Email уже существует",
"loadFailed": "Не удалось загрузить данные",
"saveError": "Не удалось сохранить",
"sessionExpired": "Сеанс истек - пожалуйста, войдите снова"
},
"messages": {
"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": "Профиль пользователя",
"description": "Управление настройками учетной записи и безопасностью",
"security": "Безопасность",
"changePassword": "Изменить пароль",
"twoFactorAuth": "Двухфакторная аутентификация",
"accountInfo": "Информация об учетной записи",
"role": "Роль",
"admin": "Администратор",
"user": "Пользователь",
"authMethod": "Метод аутентификации",
"local": "Локальный",
"external": "Внешний (OIDC)",
"selectPreferredLanguage": "Выберите предпочитаемый язык интерфейса",
"currentPassword": "Текущий пароль",
"passwordChangedSuccess": "Пароль успешно изменен! Пожалуйста, войдите снова.",
"failedToChangePassword": "Не удалось изменить пароль. Пожалуйста, проверьте ваш текущий пароль и попробуйте снова."
},
"user": {
"failedToLoadVersionInfo": "Не удалось загрузить информацию о версии"
},
"placeholders": {
"enterCode": "000000",
"ipAddress": "127.0.0.1",
"port": "22",
"maxRetries": "3",
"retryInterval": "10",
"language": "Язык",
"username": "имя пользователя",
"hostname": "имя хоста",
"folder": "папка",
"password": "пароль",
"keyPassword": "пароль ключа",
"pastePrivateKey": "Вставьте ваш приватный ключ здесь...",
"pastePublicKey": "Вставьте ваш публичный ключ здесь...",
"credentialName": "Мой SSH-сервер",
"description": "Описание SSH-учетных данных",
"searchCredentials": "Поиск учетных данных по имени, имени пользователя или тегам...",
"sshConfig": "конфигурация ssh конечной точки",
"homePath": "/home",
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"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",
"userinfoUrl": "https://your-provider.com/application/o/userinfo/",
"enterUsername": "Введите имя пользователя, чтобы сделать администратором",
"searchHosts": "Поиск хостов по имени, имени пользователя, IP, папке, тегам...",
"enterPassword": "Введите ваш пароль",
"totpCode": "6-значный TOTP-код",
"searchHostsAny": "Поиск хостов по любой информации...",
"confirmPassword": "Введите ваш пароль для подтверждения",
"typeHere": "Введите здесь",
"fileName": "Введите имя файла (например, example.txt)",
"folderName": "Введите имя папки",
"fullPath": "Введите полный путь к элементу",
"currentPath": "Введите текущий путь к элементу",
"newName": "Введите новое имя"
},
"leftSidebar": {
"failedToLoadHosts": "Не удалось загрузить хосты",
"noFolder": "Без папки",
"passwordRequired": "Требуется пароль",
"failedToDeleteAccount": "Не удалось удалить учетную запись",
"failedToMakeUserAdmin": "Не удалось сделать пользователя администратором",
"userIsNowAdmin": "Пользователь {{username}} теперь администратор",
"removeAdminConfirm": "Вы уверены, что хотите убрать статус администратора у {{username}}?",
"deleteUserConfirm": "Вы уверены, что хотите удалить пользователя {{username}}? Это действие нельзя отменить.",
"deleteAccount": "Удалить учетную запись",
"closeDeleteAccount": "Закрыть удаление учетной записи",
"deleteAccountWarning": "Это действие нельзя отменить. Это окончательно удалит вашу учетную запись и все связанные данные.",
"deleteAccountWarningDetails": "Удаление вашей учетной записи удалит все ваши данные, включая SSH-хосты, конфигурации и настройки. Это действие необратимо.",
"cannotDeleteAccount": "Невозможно удалить учетную запись",
"lastAdminWarning": "Вы последний пользователь-администратор. Вы не можете удалить свою учетную запись, так как это оставит систему без администраторов. Пожалуйста, сначала сделайте другого пользователя администратором или свяжитесь с поддержкой системы.",
"confirmPassword": "Подтвердите пароль",
"deleting": "Удаление...",
"cancel": "Отмена"
},
"interface": {
"sidebar": "Боковая панель",
"toggleSidebar": "Переключить боковую панель",
"close": "Закрыть",
"online": "В сети",
"offline": "Не в сети",
"maintenance": "Обслуживание",
"degraded": "Снижена производительность",
"noTunnelConnections": "Нет настроенных туннельных подключений",
"discord": "Discord",
"connectToSshForOperations": "Подключитесь к SSH для использования файловых операций",
"uploadFile": "Загрузить файл",
"newFile": "Новый файл",
"newFolder": "Новая папка",
"rename": "Переименовать",
"deleteItem": "Удалить элемент",
"createNewFile": "Создать новый файл",
"createNewFolder": "Создать новую папку",
"deleteItem": "Удалить элемент",
"renameItem": "Переименовать элемент",
"clickToSelectFile": "Нажмите для выбора файла",
"noSshHosts": "Нет SSH-хостов",
"sshHosts": "SSH-хосты",
"importSshHosts": "Импорт SSH-хостов из JSON",
"clientId": "Client ID",
"clientSecret": "Client Secret",
"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-код",
"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": "Неверный TOTP-код",
"failedToStartOidcLogin": "Не удалось начать вход через OIDC",
"failedToGetUserInfoAfterOidc": "Не удалось получить информацию о пользователе после OIDC-входа",
"loginWithExternalProvider": "Войти через внешнего провайдера",
"loginWithExternal": "Войти через внешнего провайдера",
"sendResetCode": "Отправить код сброса",
"verifyCode": "Проверить код",
"resetPassword": "Сбросить пароль",
"login": "Войти",
"signUp": "Зарегистрироваться",
"failedToUpdateOidcConfig": "Не удалось обновить конфигурацию OIDC",
"failedToMakeUserAdmin": "Не удалось сделать пользователя администратором",
"failedToStartTotpSetup": "Не удалось начать настройку TOTP",
"invalidVerificationCode": "Неверный код проверки",
"failedToDisableTotp": "Не удалось отключить TOTP",
"failedToGenerateBackupCodes": "Не удалось сгенерировать резервные коды"
},
"mobile": {
"selectHostToStart": "Выберите хост для начала сеанса терминала",
"limitedSupportMessage": "Поддержка мобильного веб-сайта все еще в разработке. Используйте мобильное приложение для лучшего опыта.",
"mobileAppInProgress": "Мобильное приложение в разработке",
"mobileAppInProgressDesc": "Мы работаем над специальным мобильным приложением, чтобы обеспечить лучший опыт на мобильных устройствах.",
"viewMobileAppDocs": "Установить мобильное приложение",
"mobileAppDocumentation": "Документация мобильного приложения"
},
"dashboard": {
"title": "Панель управления",
"github": "GitHub",
"support": "Поддержка",
"discord": "Discord",
"donate": "Пожертвовать",
"serverOverview": "Обзор сервера",
"version": "Версия",
"upToDate": "Обновлено",
"updateAvailable": "Доступно обновление",
"uptime": "Время работы",
"database": "База данных",
"healthy": "Работает",
"error": "Ошибка",
"totalServers": "Всего серверов",
"totalTunnels": "Всего туннелей",
"totalCredentials": "Всего учетных данных",
"recentActivity": "Недавняя активность",
"reset": "Сбросить",
"loadingRecentActivity": "Загрузка недавней активности...",
"noRecentActivity": "Нет недавней активности",
"quickActions": "Быстрые действия",
"addHost": "Добавить хост",
"addCredential": "Добавить учетные данные",
"adminSettings": "Настройки администратора",
"userProfile": "Профиль пользователя",
"serverStats": "Статистика сервера",
"loadingServerStats": "Загрузка статистики сервера...",
"noServerData": "Данные сервера недоступны",
"cpu": "CPU",
"ram": "RAM",
"notAvailable": "N/A"
},
"commandPalette": {
"searchPlaceholder": "Поиск хостов или быстрых действий...",
"recentActivity": "Недавняя активность",
"navigation": "Навигация",
"addHost": "Добавить хост",
"addCredential": "Добавить учетные данные",
"adminSettings": "Настройки администратора",
"userProfile": "Профиль пользователя",
"updateLog": "Журнал обновлений",
"hosts": "Хосты",
"openServerDetails": "Открыть детали сервера",
"openFileManager": "Открыть файловый менеджер",
"edit": "Редактировать",
"links": "Ссылки",
"github": "GitHub",
"support": "Поддержка",
"discord": "Discord",
"donate": "Пожертвовать",
"press": "Нажмите",
"toToggle": "для переключения",
"close": "Закрыть",
"hostManager": "Менеджер хостов"
}
}