ErrInvalidParams: 'Ошибка параметра запроса: {{ .detail }}' ErrTokenParse: 'Ошибка генерации токена: {{ .detail }}' ErrInitialPassword: 'Исходный пароль неверный' ErrInternalServer: 'Внутренняя ошибка сервера: {{ .detail }}' ErrRecordExist: 'Запись уже существует' ErrRecordNotFound: 'Запись не найдена' ErrStructTransform: 'Не удалось преобразовать тип: {{ .err }}' ErrNotLogin: 'Пользователь не вошел в систему: {{ .detail }}' ErrPasswordExpired: 'Срок действия текущего пароля истек: {{ .detail }}' ErrNotSupportType: 'Система не поддерживает текущий тип: {{ .name }}' ErrProxy: 'Ошибка запроса, проверьте статус узла: {{ .detail }}' ErrApiConfigStatusInvalid: 'Доступ к интерфейсу API запрещен: {{ .detail }}' ErrApiConfigKeyInvalid: 'Ошибка ключа интерфейса API: {{ .detail }}' ErrApiConfigIPInvalid: 'IP-адрес, используемый для вызова интерфейса API, отсутствует в белом списке: {{ .detail }}' ErrApiConfigDisable: 'Этот интерфейс запрещает использование вызовов интерфейса API: {{ .detail }}' ErrApiConfigKeyTimeInvalid: 'Ошибка временной метки интерфейса API: {{ .detail }}' StartPushSSLToNode: "Начало отправки сертификата на узел" PushSSLToNodeFailed: "Не удалось отправить сертификат на узел: {{ .err }}" PushSSLToNodeSuccess: "Сертификат успешно отправлен на узел" ErrShutDown: "Команда завершена вручную!" ErrMinQuickJump: "Пожалуйста, установите хотя бы одну запись быстрого перехода!" ErrMaxQuickJump: "Можно установить до четырех записей быстрого перехода!" #общий ErrUsernameIsExist: 'Имя пользователя уже существует' ErrNameIsExist: 'Имя уже существует' ErrDemoEnvironment: 'Демо-сервер, эта операция запрещена!' ErrCmdTimeout: 'Время выполнения команды истекло!' ErrCmdIllegal: 'В команде выполнения есть недопустимые символы. Измените ее и повторите попытку!' ErrPortExist: 'Порт {{ .port }} уже занят {{ .type }} [{{ .name }}]' TYPE_APP: 'Приложение' TYPE_RUNTIME: 'Среда выполнения' TYPE_DOMAIN: 'Доменное имя' ErrTypePort: 'Формат порта {{ .name }} неверен' ErrTypePortRange: 'Диапазон портов должен быть в пределах 1-65535' Success: 'Успех' Failed: 'Не удалось' SystemRestart: 'Задача прервана из-за перезапуска системы' ErrGroupIsDefault: 'Группа по умолчанию, не может быть удалена' ErrGroupIsInWebsiteUse: 'Группа используется другим веб-сайтом и не может быть удалена.' Decrypt: "Расшифровать" #резервное копирование Localhost: 'Локальная машина' ErrBackupInUsed: 'Учетная запись резервного копирования использовалась в запланированной задаче и не может быть удалена.' ErrBackupCheck: 'Проверка подключения к резервной копии учетной записи не удалась {{ .err }}' ErrBackupLocalDelete: 'Удаление учетной записи резервного копирования локального сервера пока не поддерживается' ErrBackupLocalCreate: 'Создание учетных записей резервного копирования локального сервера пока не поддерживается' #приложение ErrPortInUsed: '{{ .detail }} порт уже занят!' ErrAppLimit: 'Количество установленных приложений превысило лимит' ErrNotInstall: 'Приложение не установлено' ErrPortInOtherApp: 'Порт {{ .port }} уже занят приложением {{ .apps }}!' ErrDbUserNotValid: 'Существующая база данных, имя пользователя и пароль не совпадают!' ErrUpdateBuWebsite: 'Приложение успешно обновлено, но изменение файла конфигурации веб-сайта не удалось. Пожалуйста, проверьте конфигурацию! ' Err1PanelNetworkFailed: 'Создание сети контейнеров по умолчанию не удалось! {{ .detail }}' ErrFileParse: 'Ошибка анализа файла docker-compose приложения!' ErrInstallDirNotFound: 'Каталог установки не существует. Если вам необходимо удалить, выберите Принудительное удаление.' AppStoreIsUpToDate: 'В магазине приложений уже установлена последняя версия' LocalAppVersionNull: 'Приложение {{ .name }} не синхронизировано с версией! Невозможно добавить в список приложений.' LocalAppVersionErr: 'Синхронизация версии {{ .version }} {{ .name }} не удалась! {{ .err }}' ErrFileNotFound: 'Файл {{ .name }} не существует' ErrFileParseApp: '{{ .name }} анализ файла не удался {{ .err }}' ErrAppDirNull: 'Папка версии не существует' LocalAppErr: 'Синхронизация приложения {{ .name }} не удалась! {{ .err }}' ErrContainerName: 'Имя контейнера уже существует' ErrCreateHttpClient: 'Не удалось создать запрос {{ .err }}' ErrHttpReqTimeOut: 'Истекло время ожидания запроса {{ .err }}' ErrHttpReqFailed: 'Запрос не выполнен {{ .err }}' ErrNoSuchHost: 'Не удалось найти запрошенный сервер {{ .err }}' ErrHttpReqNotFound: 'Запрошенный ресурс {{ .err }} не найден' ErrContainerNotFound: 'Контейнер {{ .name }} не существует' ErrContainerMsg: 'Контейнер {{ .name }} ненормален. Подробности смотрите в журнале на странице контейнера.' ErrAppBackup: '{{ .name }} резервное копирование приложения не удалось {{ .err }}' ErrVersionTooLow: 'Текущая версия 1Panel слишком низкая для обновления App Store. Пожалуйста, обновите версию перед началом работы.' ErrAppNameExist: 'Имя приложения уже существует' AppStoreIsSyncing: 'App Store синхронизируется, повторите попытку позже' ErrGetCompose: 'Не удалось получить файл docker-compose.yml! {{ .detail }}' ErrAppWarn: 'Ненормальное состояние, проверьте журнал' ErrAppParamKey: 'Поле параметра {{ .name }} ненормально' ErrAppUpgrade: 'Обновление приложения {{ .name }} не удалось {{ .err }}' AppRecover: 'Откатить приложение {{ .name }}' PullImageStart: 'Начать извлечение изображения [{{ .name }}]' PullImageSuccess: 'Изображение извлечено успешно' AppStoreIsLastVersion: 'В App Store уже установлена последняя версия' AppStoreSyncSuccess: 'Синхронизация с App Store прошла успешно' SyncAppDetail: 'Синхронизировать конфигурацию приложения' AppVersionNotMatch: 'Приложению {{ .name }} требуется более высокая версия 1Panel, синхронизация пропускается' MoveSiteDir: "Обнаружено изменение каталога сайта. Необходимо перенести каталог сайта OpenResty в {{ .name }}" MoveSiteDirSuccess: 'Успешная миграция каталога веб-сайта' DeleteRuntimePHP: 'Удалить среду выполнения PHP' CustomAppStoreFileValid: 'Пакеты магазина приложений должны быть в формате .tar.gz' PullImageTimeout: 'Истекло время ожидания извлечения изображения. Попробуйте увеличить ускорение изображения или выбрать другое ускорение изображения' ErrAppIsDown: '{{ .name }} статус приложения ненормальный, проверьте' ErrCustomApps: 'Установлено приложение. Сначала удалите его' ErrCustomRuntimes: 'Установлена среда выполнения. Сначала удалите ее' ErrAppVersionDeprecated: "Приложение {{ .name }} несовместимо с текущей версией 1Panel, пропущено" ErrDockerFailed: "Состояние Docker аномально, проверьте состояние сервиса" ErrDockerComposeCmdNotFound: "Команда Docker Compose отсутствует, пожалуйста, установите эту команду на хост-машине сначала" UseExistImage: 'Не удалось загрузить образ, используется существующий образ' #ssh ExportIP: "IP входа" ExportArea: "Местоположение" ExportPort: "Порт" ExportAuthMode: "Способ входа" ExportUser: "Пользователь" ExportStatus: "Статус входа" ExportDate: "Время" #файл ErrFileCanNotRead: 'Этот файл не поддерживает предварительный просмотр' ErrFileToLarge: 'Файл больше 10 МБ и не может быть открыт' ErrPathNotFound: 'Каталог не существует' ErrMovePathFailed: 'Целевой путь не может содержать исходный путь!' ErrLinkPathNotFound: 'Целевой путь не существует!' ErrFileIsExist: 'Файл или папка уже существует!' ErrFileUpload: '{{ .name }} не удалось загрузить файл {{ .detail }}' ErrFileDownloadDir: 'Папка загрузки не поддерживается' ErrCmdNotFound: 'Команда {{ .name }} не существует, сначала установите эту команду на хосте' ErrSourcePathNotFound: 'Исходный каталог не существует' ErrFavoriteExist: 'Этот путь уже добавлен в избранное' ErrInvalidChar: 'Недопустимые символы не допускаются' ErrPathNotDelete: 'Выбранный каталог не может быть удален' ErrLogFileToLarge: "Файл журнала превышает 500MB и не может быть открыт" FileDropFailed: "Не удалось очистить файл {{ .name }}: {{ .err }}" FileDropSuccess: "Файл {{ .name }} успешно очищен, удалено {{ .count }} файлов, освобождено {{ .size }} дискового пространства" FileDropSum: "Очистка файлов завершена успешно, всего удалено {{ .count }} файлов, освобождено {{ .size }} дискового пространства" ErrBadDecrypt: "Ошибка пароля расшифровки сжатого пакета, распаковка не удалась, проверьте и повторите попытку!" #веб-сайт ErrAliasIsExist: 'Псевдоним уже существует' ErrBackupMatch: 'Файл резервной копии не соответствует некоторым текущим данным веб-сайта {{ .detail }}' ErrBackupExist: 'Соответствующая часть исходных данных в файле резервной копии не существует {{ .detail }}' ErrPHPResource: 'Локальная операционная среда не поддерживает переключение!' ErrPathPermission: 'В каталоге index обнаружена папка с разрешениями, отличными от 1000:1000, что может привести к ошибке Отказано в доступе на веб-сайте. Пожалуйста, нажмите кнопку Сохранить выше.' ErrDomainIsUsed: 'Доменное имя уже используется веб-сайтом [{{ .name }}]' ErrDomainFormat: 'Неверный формат доменного имени {{ .name }}' ErrDefaultAlias: 'по умолчанию зарезервирован код, используйте другой код' ErrParentWebsite: 'Сначала вам необходимо удалить дочерний сайт {{ .name }}' ErrBuildDirNotFound: 'Каталог сборки не существует' ErrImageNotExist: 'Образ операционной среды {{ .name }} не существует, пожалуйста, отредактируйте операционную среду заново' ErrProxyIsUsed: "Балансировка нагрузки используется обратным прокси, невозможно удалить" ErrSSLValid: 'Файл сертификата аномален, проверьте статус сертификата!' ErrWebsiteDir: "Пожалуйста, выберите директорию внутри директории сайта." ErrComposerFileNotFound: "Файл composer.json не существует" ErrRuntimeNoPort: "Среда выполнения не настроена с портом, сначала отредактируйте среду выполнения." Status: 'Статус' start: 'Запустить' stop: 'Остановить' restart: 'Перезапустить' kill: 'Принудительно Остановить' pause: 'Приостановить' unpause: 'Возобновить' remove: 'Удалить' delete: 'Удалить' ErrDefaultWebsite: 'Веб-сайт по умолчанию уже установлен, отмените его перед настройкой!' SSL: 'Сертификат' Set: 'Настройки' #ssl ErrSSLCannotDelete: 'Сертификат {{ .name }} используется веб-сайтом и не может быть удален' ErrAccountCannotDelete: 'Учетная запись связана с сертификатом и не может быть удалена' ErrSSLApply: 'Обновление сертификата прошло успешно, перезагрузка OpenResty не удалась, проверьте конфигурацию!' ErrEmailIsExist: 'Почтовый ящик уже существует' ErrSSLKeyNotFound: 'Файл закрытого ключа не существует' ErrSSLCertificateNotFound: 'Файл сертификата не существует' ErrSSLKeyFormat: 'Проверка файла закрытого ключа не удалась' ErrSSLCertificateFormat: 'Неверный формат файла сертификата, используйте формат pem' ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid или EabHmacKey не могут быть пустыми' ErrOpenrestyNotFound: 'Для режима HTTP необходимо сначала установить Openresty' ApplySSLStart: 'Начать подачу заявки на сертификат, доменное имя [{{ .domain }}], метод подачи заявки [{{ .type }}]' dnsAccount: 'DNS Авто' dnsManual: 'Руководство по DNS' http: 'HTTP' ApplySSLFailed: 'Заявка на сертификат [{{ .domain }}] не выполнена, {{ .detail }}' ApplySSLSuccess: 'Заявка на сертификат [{{ .domain }}] успешно подана! ' DNSAccountName: 'DNS-аккаунт [{{ .name }}] поставщик [{{ .type }}]' PushDirLog: 'Сертификат перемещен в каталог [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'Текущая организация имеет сертификат, который был выдан и не может быть удален.' ErrDeleteWithPanelSSL: 'Конфигурация SSL панели использует этот сертификат и не может быть удалена' ErrDefaultCA: 'Невозможно удалить полномочия по умолчанию' ApplyWebSiteSSLLog: 'Начинается обновление сертификата веб-сайта {{ .name }}' ErrUpdateWebsiteSSL: 'Обновление сертификата веб-сайта {{ .name }} не удалось: {{ .err }}' ApplyWebSiteSSLSuccess: 'Сертификат веб-сайта успешно обновлен' ErrExecShell: 'Не удалось выполнить скрипт {{ .err }}' ExecShellStart: 'Начать выполнение скрипта' ExecShellSuccess: 'Скрипт выполнен успешно' StartUpdateSystemSSL: 'Начать обновление системного сертификата' UpdateSystemSSLSuccess: 'Сертификат системы обновлен успешно' ErrWildcardDomain: 'Невозможно подать заявку на получение подстановочного сертификата доменного имени в режиме HTTP' ErrApplySSLCanNotDelete: "Нельзя удалить сертификат {{.name}}, который находится в процессе выпуска. Пожалуйста, попробуйте позже." #mysql ErrUserIsExist: 'Текущий пользователь уже существует, пожалуйста, введите еще раз' ErrDatabaseIsExist: 'Текущая база данных уже существует, пожалуйста, введите ее повторно' ErrExecTimeOut: 'Время выполнения SQL истекло, проверьте базу данных' ErrRemoteExist: 'Удаленная база данных с таким именем уже существует. Измените его и повторите попытку' ErrLocalExist: 'Имя уже существует в локальной базе данных, измените его и повторите попытку' RemoteBackup: "Для резервного копирования удаленной базы данных необходимо сначала запустить службу базы данных локального контейнера с помощью образа {{ .name }}, пожалуйста, подождите..." RemoteRecover: "Для восстановления удаленной базы данных необходимо сначала запустить службу базы данных локального контейнера с помощью образа {{ .name }}, пожалуйста, подождите..." Arg: "Аргумент" #редис ErrTypeOfRedis: 'Тип файла восстановления не соответствует текущему методу сохранения. Измените его и повторите попытку' #контейнер ErrInUsed: "{{ .detail }} используется и не может быть удалено!" ErrObjectInUsed: "Этот объект используется и не может быть удален!" ErrObjectBeDependent: "Этот образ зависит от других образов и не может быть удален!" ErrPortRules: 'Номер порта не совпадает, введите заново!' ErrPgImagePull: 'Время извлечения изображения истекло. Настройте ускорение изображения или вручную извлеките изображение {{ .name }} и повторите попытку' PruneHelper: "Эта очистка {{ .name }} освободила дисковое пространство {{ .size }}" ImageRemoveHelper: "Удалён образ {{ .name }}, освобождено {{ .size }} дискового пространства" BuildCache: "Кэш сборки" Volume: "Том хранилища" Network: "Сеть" PruneStart: "Очистка выполняется, пожалуйста, подождите..." #время выполнения ErrFileNotExist: 'Файл {{ .detail }} не существует! Проверьте целостность исходного файла!' ErrImageBuildErr: 'Сборка образа не удалась' ErrImageExist: "Изображение уже существует! Пожалуйста, измените имя изображения." ErrDelWithWebsite: 'Операционная среда уже связана с веб-сайтом и не может быть удалена' ErrRuntimeStart: 'Запуск не удался' ErrPackageJsonNotFound: 'файл package.json не существует' ErrScriptsNotFound: 'Элемент конфигурации скриптов не найден в package.json' ErrContainerNameNotFound: 'Не удалось получить имя контейнера, проверьте файл .env' ErrNodeModulesNotFound: 'Папка node_modules не существует! Измените среду выполнения или дождитесь ее успешного запуска' ErrContainerNameIsNull: 'Имя контейнера не существует' ErrPHPPortIsDefault: "A porta 9000 é a porta padrão, por favor, modifique e tente novamente" ErrPHPRuntimePortFailed: "A porta {{ .name }} já está sendo usada pelo ambiente de tempo de execução atual, por favor, modifique e tente novamente" #инструмент ErrConfigNotFound: 'Файл конфигурации не существует' ErrConfigParse: 'Неверный формат файла конфигурации' ErrConfigIsNull: 'Файл конфигурации не может быть пустым' ErrConfigDirNotFound: 'Рабочий каталог не существует' ErrConfigAlreadyExist: 'Файл конфигурации с таким именем уже существует' ErrUserFindErr: 'Поиск пользователя {{ .name }} не удался {{ .err }}' #cronjob CutWebsiteLogSuccess: 'Журнал веб-сайта {{ .name }} успешно вырезан, путь к резервной копии {{ .path }}' HandleShell: 'Выполнить скрипт {{ .name }}' HandleCurl: "Доступ к URL {{ .name }}" HandleNtpSync: 'Синхронизация системного времени' HandleSystemClean: 'Очистка системного кэша' SystemLog: 'Системный лог' CutWebsiteLog: 'Ротация логов сайта' FileOrDir: 'Каталог / Файл' UploadFile: 'Загрузка файла резервной копии {{ .file }} в {{ .backup }}' Upload: "Загрузить" IgnoreBackupErr: "Ошибка резервного копирования: {{ .detail }}, игнорируем эту ошибку..." IgnoreUploadErr: "Ошибка загрузки: {{ .detail }}, игнорируем эту ошибку..." LoadBackupFailed: "Не удалось получить подключение к учетной записи резервной копии, ошибка: {{ .detail }}" InExecuting: "Текущая задача выполняется, не повторяйте выполнение!" NoSuchResource: "В базе данных не найдено содержимое резервной копии, пропускаем..." CleanLog: "Очистить журнал" CleanLogByName: "Очистить журнал {{.name}}" WafIpGroupNotFound: "Группа IP WAF не найдена. Пожалуйста, перейдите в [Расширенные функции - WAF - Черный/Белый список - Группа IP], чтобы добавить группу IP с помощью метода удаленной загрузки." #ящик для инструментов ErrNotExistUser: 'Текущий пользователь не существует, измените его и повторите попытку!' ErrBanAction: 'Настройка не удалась. Текущая служба {{ .name }} недоступна. Проверьте и повторите попытку!' ErrClamdscanNotFound: 'Команда clamdscan не обнаружена, обратитесь к документации, чтобы установить ее!' TaskSwapSet: "Настройка Swap" SetSwap: "Настроить Swap {{ .path }} - {{ .size }}" CreateSwap: "Создать Файл Swap" FormatSwap: "Форматировать Файл Swap" EnableSwap: "Включить Swap" #tamper CleanTamperSetting: "Очистить исторические настройки защиты" SetTamperWithRules: "Запустить защиту каталога согласно правилам" ProtectDir: "Защитить каталог {{ .name }}" IgnoreFile: "Защитить файл {{ .name }}" TamperSetSuccessful: "Настройки защиты завершены, начинаю мониторинг следующих каталогов:" #ваф ErrScope: 'Изменение этой конфигурации не поддерживается' ErrStateChange: 'He удалось изменить состояние' ErrRuleExist: 'Правило уже существует' ErrRuleNotExist: 'Правило не существует' ErrParseIP: 'Неправильный формат IP' ErrDefaultIP: 'по умолчанию это зарезервированное имя, пожалуйста, измените его на другое имя' ErrGroupInUse: 'IP-группа используется черным/белым списком и не может быть удалена' ErrIPGroupAclUse: "Группа IP используется пользовательскими правилами сайта {{ .name }}, невозможно удалить" ErrGroupExist: 'Имя группы IP уже существует' ErrIPRange: 'Неверный диапазон IP-адресов' ErrIPExist: 'IP-адрес уже существует' urlDefense: 'Правила URL' urlHelper: 'Запрещенный URL' dirFilter: 'Фильтр каталогов' xss: 'XSS' phpExec: 'Выполнение PHP-скрипта' oneWordTrojan: 'Троян из одного слова' appFilter: 'Применить фильтрацию опасных каталогов' webshell: 'Be6-оболочка' args: 'Правила параметров' protocolFilter: 'Фильтрация протоколов' javaFileter: 'Фильтр опасных файлов Java' scannerFilter: 'Фильтр сканера' escapeFilter: 'фильтр побега' customRule: 'Пользовательское правило' httpMethod: 'Фильтрация метода HTTP' fileExt: 'Ограничения на загрузку файлов' defaultIpBlack: 'Вредоносная группа IP' cookie: 'Правила использования файлов cookie' urlBlack: 'Черный список URL' uaBlack: 'Черный список User-Agent' attackCount: 'Ограничение частоты атак' fileExtCheck: 'Ограничения на загрузку файлов' geoRestrict: 'Региональные ограничения доступа' unknownWebsite: 'Несанкционированный доступ к доменному имени' notFoundCount: 'Ограничение скорости 404' headerDefense: 'Правила заголовка' defaultUaBlack: 'Правила User-Agent' methodWhite: 'Правила HTTP' captcha: 'человеко-машинная верификация' fiveSeconds: '5 секунд проверки' vulnCheck: 'Дополнительные правила' acl: 'Пользовательские правила' sql: 'SQL-инъекция' cc: 'Ограничение частоты доступа' defaultUrlBlack: 'Правила URL' sqlInject: 'SQL-инъекция' ErrDBNotExist: 'База данных не существует' allow: 'разрешить' deny: 'отрицать' OpenrestyNotFound: 'Openresty не установлен' remoteIpIsNull: "Список IP пуст" OpenrestyVersionErr: "Версия Openresty слишком низкая, пожалуйста, обновите Openresty до 1.27.1.2-2-2-focal" #задача TaskStart: '{{ .name }} Задача начинается [START]' TaskEnd: '{{ .name }} Задача выполнена [ЗАВЕРШЕНО]' TaskFailed: 'Задача {{ .name }} не выполнена' TaskTimeout: '{{ .name }} истекло время ожидания' TaskSuccess: '{{ .name }} Задача выполнена успешно' TaskRetry: 'Начать {{ .name }}-ю повторную попытку' SubTaskSuccess: '{{ .name }} выполнено успешно' SubTaskFailed: '{{ .name }} не удалось: {{ .err }}' TaskInstall: 'Установить' TaskUninstall: 'Удалить' TaskCreate: 'Создать' TaskDelete: 'Удалить' TaskUpgrade: 'Обновить' TaskUpdate: 'Обновить' TaskRestart: 'Перезапуск' TaskProtect: "Защита" TaskBackup: 'Резервное копирование' TaskRecover: 'Восстановить' TaskRollback: 'Откат' TaskPull: 'Вытянуть' TaskCommit: 'Kоммит' ЗадачаСборка: 'Сборка' TaskPush: 'Push' TaskClean: "Очистка" TaskHandle: 'Выполнить' TaskImport: "Импорт" TaskExport: "Экспорт" Website: 'Be6-сайт' App: 'Приложение' Runtime: 'Среда выполнения' Database: 'База данных' ConfigFTP: 'Создать пользователя FTP {{ .name }}' ConfigOpenresty: 'Создать файл конфигурации Openresty' InstallAppSuccess: 'Приложение {{ .name }} успешно установлено' ConfigRuntime: 'Настройка среды выполнения' ConfigApp: 'Приложение конфигурации' SuccessStatus: '{{ .name }} успешно' FailedStatus: '{{ .name }} не удалось {{ .err }}' HandleLink: 'Обработка ассоциации приложений' HandleDatabaseApp: 'Обработка параметров приложения' ExecShell: 'Выполнить скрипт {{ .name }}' PullImage: 'Вытянуть изображение' Start: 'Старт' Run: 'Старт' Stop: 'Стоп' Image: 'Зеркало' Compose: 'Оркестровка' Container: 'Контейнер' AppLink: 'Связанное приложение' EnableSSL: 'Включить HTTPS' AppStore: 'Магазин приложений' TaskSync: 'Синхронизировать' LocalApp: 'Локальное приложение' SubTask: 'Подзадача' RuntimeExtension: 'Расширение среды выполнения' TaskIsExecuting: 'Задача выполняется' CustomAppstore: 'Хранилище пользовательских приложений' TaskExec: 'Выполнить' TaskBatch: "Пакетная операция" FileConvert: 'Преобразование формата файла' # task - clam Clamscan: "Сканировать {{ .name }}" TaskScan: "Сканировать" # задача - ай OllamaModelPull: 'Вытянуть модель Ollama {{ .name }}' OllamaModelSize: 'Получить размер модели Ollama {{ .name }}' # снимок задачи Snapshot: 'Снимок' SnapDBInfo: 'Запись информации о базе данных 1Panel' SnapCopy: 'Копировать файлы и каталоги {{ .name }}' SnapNewDB: 'Инициализировать соединение с базой данных {{ .name }}' SnapDeleteOperationLog: 'Удалить журнал операций' SnapDeleteLoginLog: 'Удалить журнал доступа' SnapDeleteMonitor: 'Удалить данные мониторинга' SnapRemoveSystemIP: 'Удалить системный IP' SnapBaseInfo: 'Записать основную информацию 1Panel' SnapInstallAppImageEmpty: 'Образы приложений не выбраны, пропускаем...' SnapInstallApp: 'Резервное копирование приложений, установленных в 1Panel' SnapDockerSave: 'Сжать установленные приложения' SnapLocalBackup: 'Резервное копирование локального каталога резервных копий 1Panel' SnapCompressBackup: 'Сжать локальный каталог резервных копий' SnapPanelData: 'Резервное копирование каталога данных 1Panel' SnapCompressPanel: 'Каталог сжатых данных' SnapWebsite: 'Резервное копирование каталога веб-сайта 1Panel' SnapCloseDBConn: 'Закрыть соединение с базой данных' SnapCompress: 'Создание файлов моментальных снимков' SnapCompressFile: 'Сжать файл моментального снимка' SnapCheckCompress: 'Проверить файл сжатия снимка' SnapCompressSize: 'Размер файла снимка {{ .name }}' SnapUpload: 'Загрузить файл снимка' SnapUploadTo: 'Загрузить файл снимка в {{ .name }}' SnapUploadRes: 'Загрузить файл снимка в {{ .name }}' SnapshotRecover: 'Восстановление моментального снимка' RecoverDownload: 'Загрузить файл снимка' Download: 'Скачать' RecoverDownloadAccount: 'Получить резервную копию учетной записи для загрузки моментального снимка {{ .name }}' RecoverDecompress: 'Распаковка сжатых файлов моментальных снимков' Decompress: 'Декомпрессия' BackupBeforeRecover: 'Резервное копирование системных данных перед созданием снимка' Readjson: 'Прочитать файл JSON в снимке' ReadjsonPath: 'Получить путь к файлу JSON в снимке' ReadjsonContent: 'Прочитать файл Json' ReadjsonMarshal: 'Обработка Json escape' RecoverApp: 'Восстановить установленные приложения' RecoverWebsite: 'Восстановить каталог веб-сайта' RecoverAppImage: 'Восстановить резервную копию образа снимка' RecoverCompose: 'Восстановить содержимое другого композитора' RecoverComposeList: 'Восстановить всех композиторов' RecoverComposeItem: 'Восстановить сообщение {{ .name }}' RecoverAppEmpty: 'В файле снимка не найдено резервной копии образа приложения' RecoverBaseData: 'Восстановить базовые данные и файлы' RecoverDaemonJsonEmpty: 'Ни файл снимка, ни текущая машина не имеют файла конфигурации контейнера daemon.json' RecoverDaemonJson: 'Восстановить файл конфигурации контейнера daemon.json' RecoverDBData: 'Восстановить данные базы данных' RecoverBackups: 'Восстановить локальный каталог резервных копий' RecoverPanelData: 'Каталог данных восстановления' # задача - контейнер ContainerNewCliet: 'Инициализировать Docker-клиент' ContainerImagePull: 'Извлечь изображение контейнера {{ .name }}' ContainerRemoveOld: 'Удалить исходный контейнер {{ .name }}' ContainerImageCheck: 'Проверьте, нормально ли извлекается изображение' ContainerLoadInfo: 'Получить основную информацию о контейнере' ContainerRecreate: 'Обновление контейнера не удалось, сейчас начну восстанавливать исходный контейнер' ContainerCreate: 'Создать новый контейнер {{ .name }}' ContainerCreateFailed: 'Создание контейнера не удалось, удалите неудавшийся контейнер' ContainerStartCheck: 'Проверить, запущен ли контейнер' # задача - изображение ImageBuild: 'Создание изображения' ImageBuildStdoutCheck: 'Анализ содержимого выходного изображения' ImageBuildRes: 'Выходные данные сборки образа: {{ .name }}' ImagePull: 'Вытащить изображение' ImageRepoAuthFromDB: 'Получить информацию об аутентификации репозитория из базы данных' ImaegPullRes: 'Выход извлечения изображения: {{ .name }}' ImagePush: 'Отправить изображение' ImageRenameTag: 'Изменить тег изображения' ImageNewTag: 'Новый тег изображения {{ .name }}' ImaegPushRes: 'Вывод push-изображения: {{ .name }}' ComposeCreate: 'Создать композицию' ComposeCreateRes: 'Составить вывод создания: {{ .name }}' # задача - веб-сайт BackupNginxConfig: 'Резервное копирование файла конфигурации OpenResty веб-сайта' CompressFileSuccess: 'Каталог успешно сжат, сжат в {{ .name }}' CompressDir: 'Каталог сжатия' DeCompressFile: 'Распаковать файл {{ .name }}' ErrCheckValid: 'Проверка файла резервной копии не удалась, {{ .name }}' Rollback: 'Откат' websiteDir: 'Каталог веб-сайтов' RecoverFailedStartRollBack: 'Восстановление не удалось, начать откат' AppBackupFileIncomplete: 'Файл резервной копии неполный и в нем отсутствуют файлы app.json или app.tar.gz' AppAttributesNotMatch: 'Тип или имя приложения не совпадают' #тревога ErrAlert: 'Формат предупреждающего сообщения неверен, проверьте и повторите попытку!' ErrAlertPush: 'Ошибка при отправке оповещения. Проверьте и повторите попытку!' ErrAlertSave: 'Ошибка сохранения информации о тревоге, проверьте и повторите попытку!' ErrAlertSync: 'Ошибка синхронизации информации о тревоге, проверьте и повторите попытку!' ErrAlertRemote: 'Ошибка удаленного сообщения об ошибке, проверьте и повторите попытку!' #task - runtime ErrInstallExtension: "Уже выполняется задача установки, подождите, пока задача завершится" # alert mail template PanelAlertTitle: "Уведомление панели" TestAlertTitle: "Тестовое письмо - проверка подключения" TestAlert: "Это тестовое письмо для проверки правильности настройки отправки писем." LicenseExpirationAlert: "Ваш панель {{ .node }}{{ .ip }}, лицензия истечет через {{ .day }} дней. Войдите в панель для получения деталей." CronJobFailedAlert: "Ваш панель {{ .node }}{{ .ip }}, выполнение запланированной задачи {{ .name }} не удалось. Войдите в панель для получения деталей." ClamAlert: "Ваш панель {{ .node }}{{ .ip }}, задача сканирования на вирусы обнаружила {{ .num }} зараженных файлов. Войдите в панель для получения деталей." WebSiteAlert: "Ваш панель {{ .node }}{{ .ip }}, {{ .num }} веб-сайтов истечут через {{ .day }} дней. Войдите в панель для получения деталей." SSLAlert: "Ваш панель {{ .node }}{{ .ip }}, {{ .num }} сертификатов SSL истечут через {{ .day }} дней. Войдите в панель для получения деталей." DiskUsedAlert: "Ваш панель {{ .node }}{{ .ip }}, использование диска {{ .name }} достигло {{ .used }}. Войдите в панель для получения деталей." ResourceAlert: "Ваш панель {{ .node }}{{ .ip }}, средний уровень использования {{ .name }} за {{ .time }} минут составляет {{ .used }}. Войдите в панель для получения деталей." PanelVersionAlert: "Ваш панель {{ .node }}{{ .ip }}, доступна последняя версия панели для обновления. Войдите в панель для получения деталей." PanelPwdExpirationAlert: "Ваш панель {{ .node }}{{ .ip }}, пароль панели истечет через {{ .day }} дней. Войдите в панель для получения деталей." CommonAlert: "Ваш панель {{ .node }}{{ .ip }}, {{ .msg }}. Войдите в панель для получения деталей." NodeExceptionAlert: "Ваш панель {{ .node }}{{ .ip }}, {{ .num }} узлов работают с ошибками. Войдите в панель для получения деталей." LicenseExceptionAlert: "Ваш панель {{ .node }}{{ .ip }}, {{ .num }} лицензий имеют ошибки. Войдите в панель для получения деталей." SSHAndPanelLoginAlert: "Ваш панель {{ .node }}{{ .ip }}, вход {{ .name }} с адреса {{ .loginIp }} является аномальным. Войдите в панель для получения деталей." #disk DeviceNotFound: "Устройство {{ .name }} не найдено" DeviceIsMounted: "Устройство {{ .name }} подключено, сначала отключите" PartitionDiskErr: "Не удалось разделить, {{ .err }}" FormatDiskErr: "Не удалось отформатировать диск, {{ .err }}" MountDiskErr: "Не удалось подключить диск, {{ .err }}" UnMountDiskErr: "Не удалось отключить диск, {{ .err }}" XfsNotFound: "Файловая система xfs не обнаружена, сначала установите xfsprogs"