ErrInvalidParams: "Ошибка параметра запроса: {{ .detail }}"
ErrTokenParse: "Ошибка генерации токена: {{ .detail }}"
ErrInitialPassword: "Ошибка исходного пароля"
ErrInternalServer: "Внутренняя ошибка сервиса: {{ .detail }}"
ErrRecordExist: "Запись уже существует"
ErrRecordNotFound: "Записи не найдены"
ErrStructTransform: "Ошибка преобразования типа: {{ .detail }}"
ErrNotLogin: "Пользователь не вошел в систему: {{ .detail }}"
ErrPasswordExpired: "Текущий пароль истек: {{ .detail }}"
ErrNotSupportType: "Система не поддерживает текущий тип: {{ .detail }}"
ErrApiConfigStatusInvalid: "Доступ к API интерфейсу запрещен: {{ .detail }}"
ErrApiConfigKeyInvalid: "Ошибка ключа API интерфейса: {{ .detail }}"
ErrApiConfigIPInvalid: "IP API интерфейса отсутствует в белом списке: {{ .detail }}"
ErrApiConfigDisable: "Этот интерфейс запрещает использование вызовов API интерфейса: {{ .detail }}"
ErrApiConfigKeyTimeInvalid: "Ошибка временной метки интерфейса API: {{ .detail }}"

#common
ErrNameIsExist: "Имя уже существует"
ErrDemoEnvironment: "Демо-сервер, операция запрещена!"
ErrCmdTimeout: "Время выполнения команды истекло!"
ErrCmdIllegal: "Команда содержит недопустимые символы. Пожалуйста, измените и попробуйте снова!"
ErrPortExist: "{{ .port }} порт уже занят {{ .type }} [{{ .name }}]"
TYPE_APP: "Приложение"
TYPE_RUNTIME: "Среда выполнения"
TYPE_DOMAIN: "Доменное имя"
ErrTypePort: "Ошибка формата порта {{ .name }}"
ErrTypePortRange: "Диапазон портов должен быть между 1-65535"
Success: "Успех"
Failed: "Неудача"
SystemRestart: "Перезагрузка системы приводит к прерыванию задачи"

#app
ErrPortInUsed: "Порт {{ .detail }} уже используется"
ErrAppLimit: "Превышен лимит установки приложения"
ErrAppRequired: "Требуется приложение {{ .detail }}"
ErrNotInstall: "Приложение не установлено"
ErrPortInOtherApp: "Порт {{ .port }} уже используется приложением {{ .apps }}"
ErrDbUserNotValid: "База данных акций, имя пользователя и пароль не совпадают!"
ErrDockerComposeNotValid: "Ошибка формата файла docker-compose!"
ErrUpdateBuWebsite: "Приложение успешно обновлено, но изменение конфигурационного файла веб-сайта не удалось, пожалуйста, проверьте конфигурацию!"
Err1PanelNetworkFailed: "Не удалось создать сеть контейнера по умолчанию! {{ .detail }}"
ErrFileParse: "Не удалось разобрать файл docker-compose приложения!"
ErrInstallDirNotFound: "Директория установки не существует"
AppStoreIsUpToDate: "Обновлено"
LocalAppVersionNull: "Приложение {{.name}} не синхронизировано с версией! Невозможно добавить в список приложений"
LocalAppVersionErr: "{{.name}} не удалось синхронизировать версию {{.version}}! {{.err}}"
ErrFileNotFound: "Файл {{.name}} не существует"
ErrFileParseApp: "Не удалось проанализировать файл {{.name}} {{.err}}"
ErrAppDirNull: "Папка версии не существует"
LocalAppErr: "Синхронизация приложения {{.name}} не удалась! {{.err}}"
ErrContainerName: "Имя контейнера уже существует"
ErrAppSystemRestart: "Перезапуск 1Panel приводит к завершению задачи"
ErrCreateHttpClient: "Не удалось создать HTTP-запрос {{.err}}"
ErrHttpReqTimeOut: "Превышено время ожидания запроса {{.err}}"
ErrHttpReqFailed: "Запрос не выполнен {{.err}}"
ErrHttpReqNotFound: "Файл не существует"
ErrNoSuchHost: "Сбой сетевого подключения"
ErrImagePullTimeOut: "Тайм-аут загрузки образа"
ErrContainerNotFound: "Контейнер {{ .name }} не существует"
ErrContainerMsg: "Контейнер {{ .name }} работает ненормально, пожалуйста, проверьте журнал на странице контейнера для подробностей"
ErrAppBackup: "Резервное копирование приложения {{ .name }} не удалось, ошибка {{.err}}"
ErrImagePull: "Не удалось загрузить образ {{ .name }}, ошибка {{.err}}"
ErrVersionTooLow: "Текущая версия 1Panel слишком стара для обновления магазина приложений, пожалуйста, обновите версию"
ErrAppNameExist: "Имя приложения уже существует"
AppStoreIsSyncing: "Магазин приложений синхронизируется, пожалуйста, попробуйте позже"
ErrGetCompose: "Не удалось получить файл docker-compose.yml! {{ .detail }}"
ErrAppWarn: "Аномальный статус, пожалуйста, проверьте журнал"
ErrAppParamKey: "Исключение в поле параметра {{ .name }}"
ErrAppUpgrade: "Не удалось обновить приложение {{ .name }} {{ .err }}"
AppRecover: "Приложение {{ .name }} откатилось "
PullImageStart: "Начало загрузки образа {{ .name }}"
PullImageSuccess: "Образ успешно загружен"
UpgradeAppStart: "Начало обновления приложения {{ .name }}"
UpgradeAppSuccess: "Приложение {{ .name }} успешно обновлено"

#file
ErrFileCanNotRead: "Файл недоступен для чтения"
ErrFileToLarge: "Файл слишком большой"
ErrPathNotFound: "Путь не найден"
ErrMovePathFailed: "Целевой путь не может содержать исходный путь!"
ErrLinkPathNotFound: "Целевой путь не существует!"
ErrFileIsExist: "Файл или каталог уже существует!"
ErrFileUpload: "Не удалось загрузить файл {{.name}} {{.detail}}"
ErrFileDownloadDir: "Скачивание папки не поддерживается"
ErrCmdNotFound: "Команда {{ .name}} не существует, пожалуйста, сначала установите эту команду на хосте"
ErrSourcePathNotFound: "Исходный каталог не существует"
ErrFavoriteExist: "Этот путь уже в избранном"
ErrInvalidChar: "Недопустимые символы запрещены"
ErrPathNotDelete: "Выбранный каталог не может быть удален"

#website
ErrDomainIsExist: "Доменное имя уже существует"
ErrAliasIsExist: "Псевдоним уже существует"
ErrAppDelete: "Другой веб-сайт использует это приложение"
ErrGroupIsUsed: "Группа используется и не может быть удалена"
ErrBackupMatch: "файл резервной копии не соответствует текущим данным части сайта: {{ .detail}}"
ErrBackupExist: "файл резервной копии соответствует части исходных данных, которая не существует: {{ .detail}}"
ErrPHPResource: "Локальная среда выполнения не поддерживает переключение!"
ErrPathPermission: "Обнаружена папка с правами доступа не 1000:1000 в каталоге индекса, что может вызвать ошибку отказа в доступе при доступе к веб-сайту. Пожалуйста, нажмите кнопку сохранения выше"
ErrDomainIsUsed: "Домен уже используется веб-сайтом {{ .name }}"
ErrDomainFormat: "Ошибка формата домена {{ .name }}"
ErrDefaultAlias: "default — зарезервированное кодовое имя, пожалуйста, используйте другое кодовое имя"
ErrImageNotExist: "Образ рабочей среды {{.name}} не существует, пожалуйста, перенастройте рабочую среду"

#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: "Системный сертификат успешно обновлен"

#mysql
ErrUserIsExist: "Текущий пользователь уже существует. Пожалуйста, введите нового пользователя"
ErrDatabaseIsExist: "Текущая база данных уже существует. Пожалуйста, введите новую базу данных"
ErrExecTimeOut: "Время выполнения SQL запроса истекло, пожалуйста, проверьте базу данных"
ErrRemoteExist: "Удаленная база данных с таким именем уже существует, пожалуйста, измените и попробуйте снова"
ErrLocalExist: "Локальная база данных с таким именем уже существует, пожалуйста, измените и попробуйте снова"

#redis
ErrTypeOfRedis: "Тип восстановленного файла не соответствует текущему режиму сохранения. Измените тип файла и попробуйте снова"

#container
ErrInUsed: "{{ .detail }} используется и не может быть удален"
ErrObjectInUsed: "Этот объект используется и не может быть удален"
ErrObjectBeDependent: "Этот образ зависит от других образов и не может быть удален"
ErrPortRules: "Количество портов не совпадает, пожалуйста, введите заново!"
ErrPgImagePull: "Тайм-аут загрузки образа. Пожалуйста, настройте ускорение загрузки образа или вручную загрузите образ postgres:16.0-alpine и попробуйте снова"

#runtime
ErrDirNotFound: "Папка сборки не существует! Пожалуйста, проверьте целостность файла!"
ErrFileNotExist: "Файл {{ .detail }} не существует! Пожалуйста, проверьте целостность исходного файла!"
ErrImageBuildErr: "Не удалось создать образ"
ErrImageExist: "Образ уже существует!"
ErrDelWithWebsite: "Рабочая среда уже связана с веб-сайтом и не может быть удалена"
ErrRuntimeStart: "Не удалось запустить"
ErrPackageJsonNotFound: "Файл package.json не существует"
ErrScriptsNotFound: "Конфигурационный элемент scripts не найден в package.json"
ErrContainerNameNotFound: "Не удалось получить имя контейнера, пожалуйста, проверьте файл .env"
ErrNodeModulesNotFound: "Папка node_modules не существует! Пожалуйста, отредактируйте среду выполнения или дождитесь успешного запуска среды выполнения"

#setting
ErrBackupInUsed: "Учетная запись резервного копирования уже используется в cronjob и не может быть удалена."
ErrBackupCheck: "Проверка подключения учетной записи резервного копирования не выполнена {{ .err}}"
ErrOSSConn: "Не удалось получить последнюю версию, пожалуйста, проверьте возможность подключения сервера к внешней сети."
ErrEntrance: "Информация о безопасном входе неверна. Пожалуйста, проверьте и попробуйте снова!"

#tool
ErrConfigNotFound: "Конфигурационный файл не существует"
ErrConfigParse: "Ошибка формата конфигурационного файла"
ErrConfigIsNull: "Конфигурационный файл не может быть пустым"
ErrConfigDirNotFound: "Каталог выполнения не существует"
ErrConfigAlreadyExist: "Конфигурационный файл с таким именем уже существует"
ErrUserFindErr: "Не удалось найти пользователя {{ .name }} {{ .err }}"

#ssh
ErrFirewallNone: "На системе не обнаружен сервис firewalld или ufw. Пожалуйста, проверьте и попробуйте снова!"
ErrFirewallBoth: "На системе обнаружены оба сервиса firewalld и ufw. Чтобы избежать конфликтов, удалите один и попробуйте снова!"

#cronjob
ErrBashExecute: "Ошибка выполнения скрипта, пожалуйста, проверьте конкретную информацию в области вывода задачи."
ErrCutWebsiteLog: "Не удалось разрезать лог веб-сайта {{ .name }}, ошибка {{ .err }}"
CutWebsiteLogSuccess: "Лог веб-сайта {{ .name }} успешно разрезан, путь к резервной копии {{ .path }}"

#toolbox
ErrNotExistUser: "Текущий пользователь не существует. Пожалуйста, измените и попробуйте снова!"
ErrBanAction: "Установка не выполнена, текущий сервис {{ .name }} недоступен, пожалуйста, проверьте и попробуйте снова!"
ErrClamdscanNotFound: "Команда clamdscan не обнаружена, пожалуйста, обратитесь к документации для установки!"

#waf
ErrScope: "Изменение этой конфигурации не поддерживается"
ErrStateChange: "Не удалось изменить состояние"
ErrRuleExist: "Правило уже существует"
ErrRuleNotExist: "Правило не существует"
ErrParseIP: "Ошибка формата IP"
ErrDefaultIP: "default — зарезервированное имя, пожалуйста, измените на другое имя"
ErrGroupInUse: "IP-группа используется в черно/белом списке и не может быть удалена"
ErrGroupExist: "Имя IP-группы уже существует"
ErrIPRange: "Неверный диапазон IP"
ErrIPExist: "IP уже существует"

#license
ErrLicense: "Ошибка формата лицензии, пожалуйста, проверьте и попробуйте снова!"
ErrLicenseCheck: "Проверка лицензии не выполнена, пожалуйста, проверьте и попробуйте снова!"
ErrXpackVersion: "Ошибка проверки лицензии, эта лицензия ограничена по версии и не может быть успешно импортирована. Пожалуйста, проверьте и попробуйте снова!"
ErrLicenseSave: "Не удалось сохранить информацию о лицензии, ошибка {{ .err }}, пожалуйста, попробуйте снова!"
ErrLicenseSync: "Не удалось синхронизировать информацию о лицензии, в базе данных не обнаружена информация о лицензии!"
ErrXpackNotFound: "Этот раздел является функцией профессионального издания, пожалуйста, сначала импортируйте лицензию в интерфейсе Настройки панели — Лицензия"
ErrXpackNotActive: "Этот раздел является функцией профессионального издания, пожалуйста, сначала синхронизируйте статус лицензии в интерфейсе Настройки панели — Лицензия"
ErrXpackOutOfDate: "Текущая лицензия истекла, пожалуйста, повторно импортируйте лицензию в интерфейсе Настройки панели — Лицензия"
ErrXpackLost: "Лицензия достигла максимального числа попыток повторной попытки. Пожалуйста, перейдите на страницу [Настройки] [Лицензия] и вручную нажмите кнопку синхронизации, чтобы обеспечить корректную работу функций профессиональной версии."
ErrXpackTimeout: "Превышено время ожидания запроса, возможно, нестабильное сетевое соединение, пожалуйста, повторите попытку позже!"

#license
ErrAlert: "Ошибка формата информации об оповещении, пожалуйста, проверьте и попробуйте снова!"
ErrAlertPush: "Ошибка отправки оповещения, пожалуйста, проверьте и попробуйте снова!"
ErrAlertSave: "Ошибка сохранения оповещения, пожалуйста, проверьте и попробуйте снова!"
ErrAlertSync: "Ошибка синхронизации оповещения, пожалуйста, проверьте и попробуйте снова!"
ErrAlertRemote: "Ошибка удаленного оповещения, пожалуйста, проверьте и попробуйте снова!"

#cmd
AppVersion: "Версия приложения"
AppCommands: "Команды, связанные с приложением"
AppInit: "Инициализировать приложение"
AppKeyVal: "Ключ приложения (поддерживает только английский)"
AppCreateFileErr: "Не удалось создать файл {{ .name }} {{ .err }}"
AppCreateDirErr: "Не удалось создать папку {{ .name }} {{ .err }}"
AppMissKey: "Отсутствует ключ приложения, используйте -k для указания"
AppMissVersion: "Отсутствует версия приложения, используйте -v для указания"
AppVersionExist: "Версия уже существует!"
AppCreateSuccessful: "Создание прошло успешно!"
AppWriteErr: "Ошибка записи файла {{ .name }} {{ .err }}"
SudoHelper: "Пожалуйста, используйте {{ .cmd }} или переключитесь на пользователя root"
ListenIPCommands: "Переключить IP прослушивания"
ListenIPv4: "Прослушивать IPv4"
ListenIPv6: "Прослушивать IPv6"
ListenChangeSuccessful: "Переключение успешно! Теперь прослушивается {{ .value }}"
ResetCommands: "Сбросить информацию системы"
ResetMFA: "Отменить двухфакторную аутентификацию 1Panel"
ResetHttps: "Отменить вход в 1Panel по https"
ResetEntrance: "Отменить безопасный вход в 1Panel"
ResetIPs: "Отменить авторизованные IP-ограничения 1Panel"
ResetDomain: "Отменить привязку домена 1Panel"
RestoreCommands: "Откатить сервис и данные 1Panel"
RestoreNoSuchFile: "Нет доступных файлов для отката"
RestoreStep1: "(1/5) Начало отката сервиса и данных 1Panel из каталога {{ .name }}..."
RestoreStep2: "(2/5) Откат бинарного файла 1Panel успешен"
RestoreStep3: "(3/5) Откат скрипта 1Panel успешен"
RestoreStep4: "(4/5) Откат сервиса 1Panel успешен"
RestoreStep5: "(5/5) Откат данных 1Panel успешен"
RestoreSuccessful: "Откат успешен! Перезапуск службы, пожалуйста, подождите..."
UpdateCommands: "Обновить информацию панели"
UpdateUser: "Обновить пользователя панели"
UpdatePassword: "Обновить пароль панели"
UpdatePort: "Обновить порт панели"
UpdateUserNull: "Ошибка: пользователь панели пуст!"
UpdateUserBlank: "Ошибка: пользователь панели содержит пробелы!"
UpdateUserFormat: "Ошибка: неверный формат пользователя панели! Поддерживаются только английский, китайский, цифры и , длина 3-30"
UpdateUserErr: "Ошибка: не удалось обновить пользователя панели, {{ .err }}"
UpdateSuccessful: "Обновление успешно!"
UpdateUserResult: "Пользователь панели: {{ .name }}"
UpdatePasswordRead: "Ошибка: не удалось прочитать информацию о пароле панели, {{ .err }}"
UpdatePasswordNull: "Ошибка: пароль панели пуст!"
UpdateUPasswordBlank: "Ошибка: пароль панели содержит пробелы!"
UpdatePasswordFormat: "Ошибка: пароль панели поддерживает только буквы, цифры, специальные символы !@#$%* ,., длина 8-30!"
UpdatePasswordLen: "Ошибка: Пожалуйста, введите пароль длиной более 6 символов!"
UpdatePasswordRe: "Подтвердите пароль:"
UpdatePasswordErr: "Ошибка: не удалось обновить пароль панели, {{ .err }}"
UpdatePasswordSame: "Ошибка: два пароля не совпадают, пожалуйста, проверьте и попробуйте снова!"
UpdatePasswordResult: "Пароль панели: {{ .name }}"
UpdatePortFormat: "Ошибка: введенный номер порта должен быть между 1 и 65535!"
UpdatePortUsed: "Ошибка: номер порта уже используется, пожалуйста, проверьте и попробуйте снова!"
UpdatePortErr: "Ошибка: не удалось обновить порт панели, {{ .err }}"
UpdatePortResult: "Порт панели: {{ .name }}"
UpdatePortFirewallAdd: "Не удалось добавить правило порта брандмауэра, {{ .err }}, пожалуйста, вручную добавьте порт {{ .name }} в правила брандмауэра."
UpdatePortFirewallDel: "Ошибка: не удалось удалить порт брандмауэра, {{ .err }}"
UpdatePortFirewallReload: "Не удалось перезагрузить брандмауэр, {{ .err }}, пожалуйста, вручную перезагрузите брандмауэр."
UserInfo: "Получить информацию панели"
UserInfoAddr: "Адрес панели: "
UserInfoPassHelp: "Подсказка: чтобы изменить пароль, вы можете выполнить команду: "
DBConnErr: "Ошибка: не удалось инициализировать подключение к базе данных, {{ .err }}"
SystemVersion: "версия: "
SystemMode: "режим: "
