# базовые ошибки ErrInvalidParams: 'Неверный запрос: {{ .detail }}' ErrTokenParse: 'Ошибка токена: {{ .detail }}' ErrInitialPassword: 'Исходный пароль неверен' ErrInternalServer: 'Внутренняя ошибка: {{ .detail }}' ErrInternalServerKey: "Внутренняя ошибка сервера:" ErrRecordExist: 'Запись уже существует' ErrRecordNotFound: 'Запись не найдена' ErrStructTransform: 'Ошибка преобразования: {{ .detail }}' ErrNotSupportType: 'Тип не поддерживается: {{ .name }}' ErrDemoEnvironment: 'Недоступно в демо' ErrCmdTimeout: 'Команда завершилась по тайм-ауту' ErrPortInUsed: "Порт {{ .name }} уже используется" ErrFileNotFound: "Файл {{ .name }} не найден" ErrReqFailed: "{{.name}} запрос не удался: {{ .err }}" # запрос и вход безопасности ErrNoSuchHost: "Не удалось найти запрашиваемый сервер {{ .err }}" ErrHttpReqNotFound: "Не удалось найти запрашиваемый ресурс {{ .err }}" ErrHttpReqFailed: "Ошибка запроса {{ .err }}" ErrHttpReqTimeOut: "Время ожидания запроса истекло {{ .err }}" ErrCreateHttpClient: "Ошибка создания запроса {{ .err }}" ErrProxy: 'Запрос не удался: {{ .detail }}' ErrProxySetting: "Информация о прокси-сервере недоступна {{ .err }}, проверьте и повторите попытку" ErrEntrance: "Ошибка информации о безопасном входе, проверьте и повторите попытку" ErrEntranceFormat: "Защищенный вход {{ .name }} в настоящее время не поддерживается. Пожалуйста, проверьте и повторите попытку" # вход и безопасность ErrNotLogin: 'Не авторизован: {{ .detail }}' ErrSessionDataNotFound: "Текущая сессия истекла" ErrSessionDataFormat: "Ненормальный формат данных текущей сессии" ErrPasswordExpired: 'Пароль истёк: {{ .detail }}' ErrLoginLocked: "Слишком много неудачных попыток. Вход временно заблокирован на 5 минут." ErrApiConfigStatusInvalid: 'API отключено: {{ .detail }}' ErrApiConfigKeyInvalid: 'Неверный API-ключ: {{ .detail }}' ErrApiConfigIPInvalid: 'IP не в списке: {{ .detail }}' ErrApiConfigDisable: 'Доступ по API запрещён: {{ .detail }}' ErrApiConfigKeyTimeInvalid: 'Неверная метка времени: {{ .detail }}' ErrApiConfigKeyExpired: "Срок действия API-ключа истёк. Измените срок действия или замените ключ в разделе управления API-ключами панели." ErrPasskeyDisabled: "Для Passkey требуется включить HTTPS" ErrPasskeyNotConfigured: "Passkey не настроен" ErrPasskeyLimit: "Достигнут лимит Passkey (максимум 5)" ErrPasskeySession: "Сеанс Passkey истек или недействителен" ErrPasskeyDuplicate: "Passkey уже существует" ErrPasskeyVerify: "Не удалось проверить Passkey" ErrOIDCNotEnabled: "Аутентификация OIDC не включена" ErrOIDCConfigInvalid: "Конфигурация OIDC недействительна" ErrOIDCConfigChanged: "Конфигурация OIDC изменилась; запустите аутентификацию заново" ErrOIDCDiscoveryFailed: "Не удалось обнаружить конфигурацию Provider OIDC" ErrOIDCIssuerMismatch: "Issuer OIDC не совпадает с настроенным Issuer" ErrOIDCUnsupportedPKCE: "Provider OIDC не поддерживает требуемый метод PKCE" ErrOIDCUnsupportedSigningAlgorithm: "Алгоритм подписи OIDC не поддерживается" ErrOIDCInvalidState: "Состояние входа OIDC недействительно или уже использовано" ErrOIDCLoginExpired: "Срок действия запроса на вход OIDC истёк; повторите попытку" ErrOIDCTokenExchange: "Не удалось обменять код авторизации OIDC" ErrOIDCTokenValidation: "Не удалось проверить Token OIDC" ErrOIDCUserInfoValidation: "Не удалось проверить сведения о пользователе OIDC" ErrOIDCNameClaimMissing: "Настроенный Claim имени пользователя OIDC отсутствует или недействителен" ErrOIDCNameConflictLocal: "Имя пользователя OIDC конфликтует с локальным пользователем" ErrOIDCNameConflictLDAP: "Имя пользователя OIDC конфликтует с пользователем LDAP" ErrOIDCNameConflictOIDC: "Имя пользователя OIDC конфликтует с другой идентичностью OIDC" ErrOIDCDefaultRoleInvalid: "Роль по умолчанию, настроенная для OIDC, недоступна" ErrOIDCPrivateAddressDenied: "Адрес Endpoint OIDC запрещён политикой сетевой безопасности" ErrOIDCTLSValidation: "Не удалось проверить сертификат TLS OIDC" ErrOIDCTestExpired: "Срок действия браузерного теста OIDC истёк; запустите тест снова" ErrOIDCLocalCredentialsReadonly: "Имена пользователей и пароли OIDC управляются Provider идентификации и не могут быть изменены локально." ErrOIDCPasswordExpirationUnsupported: "Для пользователей OIDC не применяется локальная политика истечения срока действия пароля." ErrOIDCInternal: "Во время аутентификации OIDC произошла внутренняя ошибка. Повторите попытку позже." # пользователь и права ErrNoSuchUser: "Информация о пользователе не найдена. Проверьте и повторите попытку." ErrToMaster: "У этого пользователя нет прав для выполнения этой операции на основном узле. Проверьте и повторите попытку." ErrToNode: "У этого пользователя нет прав для выполнения этой операции на этом узле. Проверьте и повторите попытку." ErrRBAC: "Недостаточно прав пользователя. Операция не может быть выполнена. Проверьте и повторите попытку." ErrNoneNode: "У этого пользователя нет прав ни на один узел. Обратитесь к администратору или проверьте и повторите попытку." ErrOnlySuperAdmin: "Эта функция доступна только супер администраторам." ErrRolePresetCannotDelete: "Системные предустановленные роли нельзя удалять" ErrRolePresetCannotUpdate: "Системные предустановленные роли нельзя обновлять" ErrRoleBoundToUser: "Эта роль уже привязана к пользователям и не может быть удалена" ErrRolePresetCannotBind: "Системные предустановленные роли нельзя назначать пользователям" ErrNodeAdminMasterForbidden: "Права администратора узла нельзя добавить к главному узлу" ErrSuperAdminCannotDelete: "Пользователей супер-администратора нельзя удалять" ErrGroupIsDefault: "Группу по умолчанию нельзя удалить" ErrGroupIsInUse: "Группа используется и не может быть удалена." # лицензия LicenseCheck: 'Проверить доступность лицензии' ErrLicenseInUsed: 'Лицензия уже привязана. Пожалуйста, проверьте и повторите попытку' ErrLicenseExpired: 'Срок действия лицензии истек. Пожалуйста, проверьте и повторите попытку' ErrLicense: "Неверный формат лицензии, проверьте и повторите попытку" ErrLicenseCheck: "Ошибка проверки лицензии, проверьте и повторите попытку" ErrXpackVersion: "Ошибка проверки лицензии, лицензия ограничена по версии, проверьте и повторите попытку" ErrLicenseSave: "Ошибка сохранения информации о лицензии {{ .err }}, повторите попытку" ErrLicenseSync: "Ошибка синхронизации информации о лицензии, информация не найдена в базе данных" ErrLicenseExist: "Данная лицензия уже существует. Вы можете перейти на страницу лицензий для привязки узлов." ErrXpackNotFound: "Этот раздел доступен в Business Edition. Импортируйте лицензию в Настройки панели > Лицензия" ErrXpackExceptional: "Этот раздел доступен в Business Edition. Синхронизируйте статус лицензии в Настройки панели > Лицензия" ErrXpackLost: "Достигнут лимит повторных попыток по лицензии. Перейдите в Настройки панели > Лицензия и выполните ручную синхронизацию" ErrEnterpriseLicenseRequired: "Лицензия Enterprise Edition не импортирована. Сначала импортируйте лицензию." ErrDeviceLost: "Необходимые файлы для проверки лицензии отсутствуют, пожалуйста, проверьте и попробуйте снова" ErrDeviceErr: "Текущая среда не соответствует среде импорта лицензии. Отредактируйте лицензию и повторите импорт" ErrXpackTimeout: "Время ожидания запроса истекло, возможно нестабильное сетевое соединение, повторите попытку позже" ErrUnbindMaster: "В управлении узлами обнаружены узлы, сначала удалите их и повторите попытку" ErrFreeNodeLimit: "Достигнут лимит количества узлов, которые можно добавить. Приобретите лицензию и повторите попытку." ErrNodeBound: "Эта лицензия уже связана с другим узлом, проверьте и повторите попытку" ErrNodeBoundDelete: "Эта лицензия привязана и не поддерживает операции удаления. Пожалуйста, проверьте и попробуйте снова" ErrNodeBoundLimit: "Текущий бесплатный узел достиг предела, пожалуйста, проверьте и попробуйте снова" ErrLicenseFree: "Бесплатные узлы доступны только при правильной привязке лицензии к узлу. Проверьте и повторите попытку" ErrLicenseUnbind: "К этой лицензии всё ещё привязаны узлы Community Edition. Отвяжите их в Настройки панели > Лицензия и повторите попытку" ErrLicenseBindCount: "Количество бесплатных узлов в новой лицензии меньше текущего количества привязанных узлов Community Edition. Проверьте и повторите попытку" ErrNoSuchNode: "Информация об узле не найдена, проверьте и повторите попытку" ErrNodeUnbind: "Обнаружен узел вне области действия лицензии, проверьте и повторите попытку" ErrNodeBind: "Этот узел уже связан с лицензией, проверьте и повторите попытку" ErrNodeLocalRollback: "Прямой откат на основном узле не поддерживается. Выполните '1pctl restore' вручную для отката" ErrIntlLicense: "Текущая версия пока не поддерживает импорт международной лицензии. Скоро будет доступно" InvalidRequestBodyType: "Неверный формат тела запроса. Проверьте, соответствует ли содержимое требуемому формату, и повторите попытку" InvalidLicenseCodeType: "Указан неверный формат лицензионного кода. Проверьте и повторите попытку" LicenseNotFoundType: "Лицензия не найдена. В системе нет записей, соответствующих указанной лицензии. Проверьте и повторите попытку" LicenseRevokedType: "Запрошенная лицензия аннулирована и больше не может быть использована. Проверьте и повторите попытку" LicenseExpiredType: "Срок действия лицензии истек. Продлите ее или повторно импортируйте в разделе Настройки панели - Лицензия перед повторной попыткой" LicenseProductMismatchType: "Лицензия не соответствует запрошенному продукту или услуге" InvalidAssigneeType: "Некорректная информация о целевом пользователе или устройстве для назначения лицензии. Проверьте и повторите попытку" LicenseUsageNotFoundType: "Записи об использовании отсутствуют. Эта лицензия еще не активирована или не использовалась. Проверьте и повторите попытку" LicenseUsageLimitExceededType: "Эта лицензия уже привязана к другому узлу. Проверьте и повторите попытку" # узел и кластер MasterNode: "Главный узел" Node: "Узел" ErrLocalDelete: "Локальный узел нельзя удалить" ErrMasterDelete: "Невозможно удалить основной узел, сначала удалите подчиненные узлы." ClusterNameIsExist: "Имя кластера уже существует." AppStatusUnHealthy: "Получение статуса приложения аномально, пожалуйста, проверьте статус узлов установки в списке узлов." MasterNodePortNotAvailable: "Проверка подключения порта {{ .port }} узла {{ .name }} не удалась, пожалуйста, проверьте настройки брандмауэра/группы безопасности и статус главного узла." ClusterMasterNotExist: "Основной узел кластера отключен, пожалуйста, удалите дочерние узлы." # приложение CustomAppStoreFileValid: "Пакет магазина приложений должен быть в формате .tar.gz" AppBackup: 'Резервная копия приложения' AppBackupPush: 'Передать файл резервной копии приложения {{.file}} на узел {{ .name }}' ErrSourceTargetSame: 'Исходный узел и целевой узел не могут быть одинаковыми' AppInstall: 'Установить приложение {{ .name }} на узел {{ .targetNode }}' AppInstallCheck: 'Проверить среду установки приложения' # резервное копирование ErrBackupInUsed: 'Аккаунт бэкапа занят задачей' ErrBackupCheck: 'Проверка подключения не удалась: {{ .err }}' ErrBackupLocal: "Локальная учетная запись резервного копирования не поддерживает эту операцию" ErrBackupPublic: "Обнаружено, что эта учетная запись резервного копирования не является публичной, проверьте и повторите попытку" ErrOSSConn: "Не удалось получить последнюю версию, проверьте подключение сервера к внешней сети." MvBackup: "Переместить данные в резервный каталог" # оповещение ErrAlertSync: "Ошибка синхронизации информации об оповещениях, пожалуйста, проверьте и повторите попытку" # AI-шлюз ErrAIProxyUserGroupIsDefault: "Группу пользователей по умолчанию нельзя удалить." ErrAIProxyUserGroupInUse: "Группа пользователей используется и не может быть удалена." ErrAIProxyUserGroupExists: "Имя группы пользователей уже существует." ErrAIProxyBackendAccountExists: "Этот сервис модели уже импортирован в пул аккаунтов AI Gateway." ErrAIProxyModelGroupInUse: "Группа моделей используется и не может быть удалена." ErrAIProxyModelGroupExists: "Имя группы моделей уже существует." ErrAIProxySensitiveGroupInUse: "Группа чувствительных слов используется и не может быть удалена." ErrAIProxySensitiveGroupExists: "Имя группы чувствительных слов уже существует." AIProxyContentPolicyViolation: "К сожалению, я не могу обработать этот запрос: его содержимое может не соответствовать политике в отношении контента. Измените запрос и повторите попытку." AIBenchmarkRun: "Выполнить тест производительности AI" # задача TaskStart: "{{ .name }} задача начата [START]" TaskEnd: "{{ .name }} задача завершена [COMPLETED]" TaskFailed: "{{ .name }} задача не выполнена" TaskTimeout: "{{ .name }} истекло время" TaskSuccess: "{{ .name }} задача выполнена успешно" TaskRetry: "Начало повторной попытки {{ .name }}" SubTaskSuccess: "{{ .name }} успешно" SubTaskFailed: "{{ .name }} не удалось: {{ .err }}" TaskInstall: "Установить" TaskUpgrade: "Обновить" TaskSync: 'Синхронизация' TaskSyncForNode: "Синхронизировать Данные Узла" TaskBackup: "Резервная копия" TaskPush: "Отправить" TaskRsync: "Синхронизация" SuccessStatus: "{{ .name }} успешно" FailedStatus: "{{ .name }} не удалось {{ .err }}" Start: "Начать" SubTask: "Подзадача" Skip: "Пропустить ошибки и продолжить..." Success: "Успешно" # задачи умной маршрутизации AI-шлюза AIProxySmartRouteCreateTask: "Создание образцов умной маршрутизации AI-шлюза" AIProxySmartRouteCreateSubTask: "Создание образцов и генерация векторов" AIProxySmartRouteCreateStart: "Начато создание образцов, всего: {{ .total }}" AIProxySmartRouteCreateFailed: "[{{ .current }}/{{ .total }}] Ошибка создания: type={{ .type }} label={{ .label }} error={{ .err }}" AIProxySmartRouteCreateSuccess: "[{{ .current }}/{{ .total }}] Создано: sampleID={{ .id }} type={{ .type }} label={{ .label }}" AIProxySmartRouteCreateComplete: "Создание завершено: успешно {{ .success }}, с ошибкой {{ .failed }}" AIProxySmartRouteCreateError: "Не удалось создать образцы: ошибок {{ .failed }}, последняя ошибка" AIProxySmartRouteRebuildTask: "Перестроение векторов образцов умной маршрутизации AI-шлюза" AIProxySmartRouteRebuildSubTask: "Перестроение векторов образцов" AIProxySmartRouteEmbeddingRequired: "Требуются endpoint и модель Embedding" AIProxySmartRouteRebuildStart: "Начато перестроение векторов образцов, всего: {{ .total }}" AIProxySmartRouteRebuildFailed: "[{{ .current }}/{{ .total }}] Ошибка перестроения: sampleID={{ .id }} type={{ .type }} label={{ .label }} error={{ .err }}" AIProxySmartRouteRebuildSuccess: "[{{ .current }}/{{ .total }}] Перестроено: sampleID={{ .id }} type={{ .type }} label={{ .label }}" AIProxySmartRouteRebuildComplete: "Перестроение завершено: успешно {{ .success }}, с ошибкой {{ .failed }}" AIProxySmartRouteRebuildError: "Не удалось перестроить векторы образцов: ошибок {{ .failed }}, последняя ошибка" # пакетная задача агента BatchInstallAgent: "Пакетная установка агентов" DispatchAgentInstallTasks: "Отправить задачи установки агентов" BatchUpgradeAgent: "Пакетное обновление агентов" DispatchAgentUpgradeTasks: "Отправить задачи обновления агентов" BatchAgentInstallDispatchFailed: "Узел {{ .node }} не смог отправить задачу установки {{ .agentType }} Message: {{ .err }}" BatchAgentInstallSubmitted: "Узел {{ .node }} успешно отправил задачу установки {{ .agentType }}!" BatchAgentUpgradeDispatchFailed: "Узел {{ .node }} не смог отправить задачу обновления {{ .agentType }} Message: {{ .err }}" BatchAgentUpgradeAlreadyLatest: "Узел {{ .node }} {{ .agent }} уже на целевой версии, пропущено" BatchAgentUpgradeSubmitted: "Узел {{ .node }} успешно отправил задачу обновления {{ .agent }}!" BatchAgentUpgradeFailed: "Узел {{ .node }} не смог отправить задачу обновления {{ .agent }} Message: {{ .err }}" BatchInstallAgentSkill: "Пакетная отправка Skill" DispatchAgentSkillInstallTasks: "Отправить задачи установки Skill" BatchAgentSkillDispatchFailed: "Узел {{ .node }} не смог отправить {{ .skill }} в {{ .target }} Message: {{ .err }}" BatchAgentNoAgentsFound: "Узел {{ .node }} не нашел агентов {{ .agentType }}, пропущено" BatchAgentSkillSkipped: "Узел {{ .node }} {{ .agent }} пропущен Message: {{ .msg }}" BatchAgentSkillInstallSubmitted: "Узел {{ .node }} успешно отправил задачу установки {{ .skill }} в {{ .agent }}!" BatchAgentSkillInstallFailed: "Узел {{ .node }} не смог отправить задачу установки {{ .skill }} в {{ .agent }} Message: {{ .err }}" BatchAgentOperateDispatchFailed: "Узел {{ .node }} не смог отправить задачу {{ .operate }} для {{ .agentType }} Message: {{ .err }}" BatchAgentOperateSkipped: "Узел {{ .node }} {{ .agent }} пропущен Message: {{ .msg }}" BatchAgentOperateSubmitted: "Узел {{ .node }} успешно отправил задачу {{ .operate }} для {{ .agent }}!" BatchAgentOperateFailed: "Узел {{ .node }} не смог отправить задачу {{ .operate }} для {{ .agent }} Message: {{ .err }}" BatchStartAgent: "Пакетный запуск агентов" DispatchAgentStartTasks: "Отправить задачи запуска агентов" BatchStopAgent: "Пакетная остановка агентов" DispatchAgentStopTasks: "Отправить задачи остановки агентов" BatchRestartAgent: "Пакетный перезапуск агентов" DispatchAgentRestartTasks: "Отправить задачи перезапуска агентов" BatchDeleteAgent: "Пакетное удаление агентов" DispatchAgentDeleteTasks: "Отправить задачи удаления агентов" AgentOperateStart: "Запустить" AgentOperateStop: "Остановить" AgentOperateRestart: "Перезапустить" AgentOperateDelete: "Удалить" # задача приложения и навыка PushAppInstallTaskToNode: "Отправить задачу установки приложения на узел [{{ .name }}]" AppInstallTask: "Задача установки приложения" PushAppFailed: "Не удалось отправить задачу установки приложения" SkillHubInstallTask: "Установить навык [{{ .name }}]" SkillHubInstallToTarget: "Установить навык [{{ .name }}] в цель [{{ .target }}]" # библиотека скриптов ScriptLibrary: "Библиотека скриптов" RemoteScriptLibrary: "Удаленная Библиотека Скриптов" ScriptSyncSkip: "Текущая библиотека скриптов уже является последней версией" DownloadData: "Загрузка файла библиотеки скриптов data.yaml" DownloadPackage: "Загрузка архива библиотеки скриптов" AnalyticCompletion: "Анализ завершён, начинается синхронизация с базой данных..." # синхронизация узла SyncNode: "Синхронизировать данные с узлом {{ .name }}" LocalName: "Имя 'local' используется только для локальной идентификации в системе" SyncPackageData: "Упаковка данных синхронизации" SyncPackageEncrypt: "Шифрование пакета данных" SyncRequest: "Запрос API синхронизации узла" SyncFailedRetry: "Таймаут синхронизации данных узла (попытка {{ .index }}), повторная попытка..." SyncFailed: "Ошибка синхронизации, выполните ручную синхронизацию в списке узлов" SyncSystemProxy: "Настройки системного прокси" SyncScripts: "Библиотека скриптов" SyncBackupAccounts: "Резервные аккаунты" SyncAlertSetting: "Настройки оповещений" SyncCustomApp: "Пользовательское приложение" SyncLanguage: "Язык системы" SyncEdition: "Регион работы" # обновление узла NodeUpgrade: "Обновление узла {{ .name }}" UpgradeCheck: "Проверить обновления узла" UpgradeCheckLocal: "Локальные узлы не поддерживают массовое обновление, пропуск..." UpgradeCheckLatest: "Узел уже имеет последнюю версию, пропуск..." NewSSHClient: "Инициализация SSH-соединения" BackupBeforeUpgrade: "Резервное копирование данных перед обновлением" UploadUpgradeFile: "Распределение файлов обновления" RestartAfterUpgrade: "Запуск службы после обновления" LoadAutoUpgradeNodesFailed: "Не удалось загрузить узлы автообновления, ошибка: {{ .err }}" AutoUpgradeNodes: "Узлы автообновления: {{ .nodes }}" UpdateAutoUpgradeNodesStatusFailed: "Не удалось обновить статус узлов автообновления, ошибка: {{ .err }}" # добавление узла MasterData: "Данные главного узла" LoadSftpClient: "Загрузить SFTP-клиент" PackageMasterData: "Создать архив резервной копии главного узла" UploadBackup: "Загрузить резервные данные" TaskAddNode: "Добавить узел" LoadNodeArch: "Получить информацию об архитектуре узла" LoadNodeArchDetail: "Обнаружена архитектура главного узла: {{ .local }}, архитектура дочернего узла: {{ .node }}" LoadNodeUpgradeDetail: "Используется каталог установки исторической версии v1: {{ .baseDir }}, порт прослушивания службы: {{ .port }}" SyncAgentBaseInfo: "Синхронизировать базовую информацию узла" GenerateSSLInfo: "Сгенерировать SSL информацию узла" ConnInfoNotMatch: "Информация о соединении не совпадает" MakeAgentPackage: "Сгенерировать установочный пакет узла" PrepareNodePackage: "Подготовка готового пакета на дочернем узле" PrepareNodePackageDetail: "Использование готового пакета на дочернем узле: {{ .name }}" SyncNodeConfig: "Синхронизация конфигурации узла" ErrNodePackagePath: "Укажите абсолютный путь к файлу пакета на дочернем узле" ErrNodePackageFile: "Не удалось обработать файл пакета {{ .name }}: {{ .err }}" ErrNodePackageMember: "Пакет содержит недопустимую или повторяющуюся запись: {{ .name }}" ErrNodePackageMismatch: "Пакет должен соответствовать версии главного узла {{ .version }} и архитектуре дочернего узла {{ .arch }}" ErrNodePackageMissing: "В пакете отсутствует обязательный файл: {{ .name }}" ErrNodePackageVersion: "Версия пакета {{ .version }} не совпадает с версией главного узла {{ .expected }}" ErrNodePackageArch: "Архитектура исполняемого файла Agent не совпадает с архитектурой дочернего узла {{ .arch }}" SendAgent: "Отправить установочный пакет узла" StartService: "Запустить сервис" NoBackupNode: "Резервный узел в настоящее время пуст. Выберите резервный узел для сохранения и повторите попытку" # синхронизация файлов и образов узла LocalNodeIpFailed: "Не удалось получить IP главного узла. Измените главный узел и добавьте IP-адрес и данные аутентификации SSH." HandlePrivateKey: "Обработать закрытый ключ узла" HandlePublicKey: "Обработать открытый ключ узла" ExchangeFile: "Начать синхронизацию {{ .sourcePath }} с узла {{ .source }} на узел {{ .dest }}:{{ .destPath }}" NodeFile: "Файл узла" ImageSyncTaskName: "Синхронизировать образы: {{ .count }}" SSLSyncTaskName: "Синхронизировать сертификаты: {{ .count }}" AppSyncTaskName: "Синхронизировать приложение {{ .name }}" SSLSyncToNode: "Отправить сертификат [{{ .cert }}] на узел [{{ .node }}]" ImageSyncSave: "Сохранить образ {{ .image }}" ImageSyncSaveTags: "Сохранить теги образа {{ .tags }}" ImageSyncToNode: "Синхронизировать образ {{ .image }} с узлом {{ .node }}" ImageSyncLoad: "Загрузить образ {{ .image }} на узел {{ .node }}" ImageSyncClean: "Очистить временные файлы образа {{ .image }}" ImageSyncNoTag: "У образа {{ .image }} нет тега, поэтому он будет сохранён по ID образа" ImageSyncFrontendTagsIgnored: "На исходном узле не найдены теги образа {{ .image }}. Теги из frontend проигнорированы." ImageSyncHandlePrivateKey: "Обработать закрытый ключ узла синхронизации образов" ImageSyncHandlePublicKey: "Обработать открытый ключ узла синхронизации образов" ImageSyncTransfer: "Начать передачу временного файла образа: {{ .source }}:{{ .sourcePath }} -> {{ .dest }}:{{ .destPath }}" # командная строка SudoHelper: "Пожалуйста, используйте {{ .cmd }} или переключитесь на пользователя root" UsernameNeed: "Для Enterprise-версии необходимо указать --username" DBConnErr: "Ошибка: не удалось инициализировать соединение с базой данных, {{ .err }}" SystemVersion: "Версия:" SystemMode: "Режим:" # командная строка - приложение AppVersion: "Версия приложения" AppCommands: "Команды приложения" AppInit: "Инициализация приложения" AppKeyVal: "Ключ приложения (поддерживаются только английские символы)" AppCreateFileErr: "Не удалось создать файл {{ .name }} {{ .err }}" AppCreateDirErr: "Не удалось создать папку {{ .name }} {{ .err }}" AppMissKey: "Отсутствует ключ приложения, используйте -k для указания" AppMissVersion: "Отсутствует версия приложения, используйте -v для указания" AppVersionExist: "Версия уже существует" AppCreateSuccessful: "Успешно создано" AppWriteErr: "Не удалось записать файл {{ .name }} {{ .err }}" # командная строка - IP прослушивания ListenIPCommands: "Переключить IP для прослушивания" ListenIPv4: "Прослушивание IPv4" ListenIPv6: "Прослушивание IPv6" ListenChangeSuccessful: "Переключено успешно Теперь прослушиваем {{ .value }}" # командная строка - сброс ResetCommands: "Сбросить информацию о системе" ResetMFA: "Отменить двухфакторную аутентификацию 1Panel" ResetHttps: "Отменить вход в 1Panel через https" ResetEntrance: "Отменить безопасный вход 1Panel" ResetIPs: "Отменить ограничения авторизованных IP для 1Panel" ResetDomain: "Отменить привязку домена доступа 1Panel" ResetPasskey: "Сбросить passkey 1Panel" # командная строка - пользователь UserList: "Получить список пользователей 1Panel" UserTableName: "Имя" UserTableMFAStatus: "Статус MFA" UserTableSuperAdmin: "Суперадмин" UserTableCreatedAt: "Создано" UserEmptyList: "Пользователи не найдены" UserInfo: "Получить информацию о панели" UserInfoAddr: "Адрес панели:" UserInfoPassHelp: "Подсказка: для изменения пароля можно выполнить команду:" # командная строка - восстановление 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: "Откат завершён. Возвращено к версии {{ .version }}. Перезапускаем сервис..." # командная строка - обновление 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 }}, пожалуйста, вручную перезагрузите фаервол." # мобильное приложение ErrVerifyToken: 'шибка проверки токена, пожалуйста, сбросьте и отсканируйте снова.' ErrInvalidToken: 'Неверный токен, пожалуйста, сбросьте и отсканируйте снова.' ErrExpiredToken: 'QR-код недействителен. Создайте новый и отсканируйте его снова.' # экспорт команд Name: "Название" Command: "Команда" # LDAP ErrLDAPConnectionTest: "Не удалось выполнить проверку подключения LDAP. Проверьте адрес сервера, учетную запись привязки и настройки сети." ErrLDAPLoginTest: "Не удалось выполнить проверку входа LDAP. Проверьте имя пользователя и пароль." LDAPConnectionTestSuccess: "Проверка подключения LDAP выполнена успешно." ErrLDAPDirectorySearch: "Не удалось прочитать пользователей LDAP. Проверьте подключение и настройки поиска." ErrLDAPConfigLoad: "Не удалось загрузить конфигурацию LDAP." ErrLDAPConfigSave: "Не удалось сохранить конфигурацию LDAP." ErrLDAPURLInvalid: "Адрес сервера LDAP должен использовать ldap:// или ldaps:// и содержать допустимый хост." ErrLDAPBindDNRequired: "Требуется DN привязки." ErrLDAPBindPasswordRequired: "Требуется пароль привязки." ErrLDAPUserOURequired: "Требуется OU пользователей." ErrLDAPConnectTimeoutRange: "Время ожидания подключения должно быть от 1 до 120 секунд." ErrLDAPSearchPageSizeRange: "Размер страницы запроса LDAP должен быть от 1 до 10000." ErrLDAPResultPageSizeRange: "Размер страницы результатов не может превышать 200." ErrLDAPAttributeMapOnlyName: "Сопоставление атрибутов поддерживает только поле name." ErrLDAPNameAttributeRequired: "Требуется атрибут LDAP, сопоставленный с name." ErrLDAPAttributeNameInvalid: "Сопоставление содержит недопустимое имя атрибута LDAP." ErrLDAPUserFilterRequired: "Требуется фильтр пользователей." ErrLDAPUserFilterInvalid: "Фильтр пользователей не является допустимым фильтром LDAP." ErrLDAPAttributeMapObject: "Сопоставление атрибутов должно быть допустимым объектом JSON." ErrLDAPImportModeInvalid: "Режим импорта должен включать выбранных или всех пользователей." ErrLDAPImportSelectionRequired: "Выберите хотя бы одного пользователя LDAP для импорта." ErrLDAPImportSelectionInvalid: "Выбранные пользователи LDAP недействительны или больше не существуют. Повторно прочитайте каталог." ErrLDAPConfigChanged: "Конфигурация LDAP изменилась. Повторно прочитайте каталог и просмотрите импорт." ErrLDAPRoleRequired: "Выберите роль для новых пользователей LDAP." ErrLDAPImportPlanIncomplete: "Неполный план импорта LDAP нельзя выполнить." ErrLDAPQueryTokenInvalid: "Результат запроса LDAP истек. Повторно прочитайте каталог." ErrLDAPPlanTokenInvalid: "Предварительный просмотр импорта LDAP истек. Выполните его повторно." ErrLDAPOperationFailed: "Операция LDAP завершилась ошибкой. Повторите попытку." ErrLDAPEntryIdentityMissing: "В записи LDAP отсутствует стабильный идентификатор или имя пользователя." ErrLDAPDuplicateExternalID: "LDAP вернул повторяющиеся идентификаторы пользователей." ErrLDAPUsernameConflict: "Имя пользователя уже используется другим пользователем." ErrLDAPUsernameSourceConflict: "Имя пользователя уже используется локальным пользователем или другим источником аутентификации." ErrLDAPUsernameConcurrentConflict: "Во время импорта имя пользователя было занято другим пользователем." ErrLDAPLocalCredentialsReadonly: "Имена и пароли пользователей LDAP управляются LDAP и не могут быть изменены локально." ErrLDAPPasswordExpirationUnsupported: "Для пользователей LDAP не применяется локальная политика срока действия пароля." ErrLDAPSyncSourceDisabled: "Включите AD/LDAP перед включением или запуском синхронизации." ErrLDAPSyncConfigSave: "Не удалось сохранить настройки синхронизации LDAP." ErrLDAPSyncSchedule: "Не удалось обновить расписание синхронизации LDAP." ErrLDAPSyncCronInvalid: "Введите корректное пятикомпонентное выражение Cron." ErrLDAPSyncWeekdayInvalid: "Выберите корректный день недели." ErrLDAPSyncCronRequired: "Введите выражение Cron." ErrLDAPSyncScheduleTypeInvalid: "Выберите корректный тип расписания синхронизации." ErrLDAPSyncTimeInvalid: "Введите корректное время выполнения." ErrLDAPSyncRunning: "Задача синхронизации LDAP уже выполняется." ErrLDAPSyncDirectoryIncomplete: "LDAP вернул неполный результат полного запроса. Статусы пользователей не были изменены." ErrLDAPSyncFailed: "Не удалось синхронизировать пользователей LDAP." LDAPSyncSuccess: "Синхронизация пользователей LDAP успешно завершена." ErrSAML2NotEnabled: "Аутентификация SAML2 не включена." ErrSAML2ConfigInvalid: "Конфигурация SAML2 недействительна." ErrSAML2ConfigChanged: "Конфигурация SAML2 изменилась. Запустите аутентификацию заново." ErrSAML2PanelOriginMissing: "Введите корректный публичный URL 1Panel, содержащий только схему, хост и необязательный порт." ErrSAML2MetadataInvalid: "Метаданные IdP отсутствуют или недействительны." ErrSAML2MetadataURLInvalid: "URL метаданных IdP или одна из конечных точек в метаданных не разрешены." ErrSAML2MetadataFetch: "Не удалось загрузить метаданные IdP." ErrSAML2MetadataCertificate: "Метаданные IdP не содержат подходящего сертификата подписи." ErrSAML2KeyPairInvalid: "Закрытый ключ и сертификат SP недействительны или не соответствуют друг другу." ErrSAML2NameAttributeMissing: "Настроенный атрибут имени пользователя SAML2 отсутствует или недействителен." ErrSAML2DefaultRoleInvalid: "Роль по умолчанию, настроенная для SAML2, недоступна." ErrSAML2SLOUnavailable: "IdP не предоставляет поддерживаемую службу единого выхода." ErrSAML2TestExpired: "Срок действия теста SAML2 истек. Запустите его снова." ErrSAML2LoginExpired: "Срок действия запроса на вход SAML2 истек. Повторите попытку." ErrSAML2InvalidState: "Состояние входа SAML2 недействительно или уже использовано." ErrSAML2RequestBuild: "Не удалось сформировать запрос SAML2." ErrSAML2ResponseInvalid: "Ответ SAML2 недействителен." ErrSAML2SignatureInvalid: "Подпись SAML2 недействительна." ErrSAML2Replay: "Сообщение SAML2 уже было использовано." ErrSAML2NameIDMissing: "NameID SAML2 отсутствует или недействителен." ErrSAML2SessionIndexMissing: "SessionIndex SAML2 отсутствует или недействителен." ErrSAML2NameConflictLocal: "Имя пользователя SAML2 конфликтует с локальным пользователем." ErrSAML2NameConflictLDAP: "Имя пользователя SAML2 конфликтует с пользователем LDAP." ErrSAML2NameConflictOIDC: "Имя пользователя SAML2 конфликтует с пользователем OIDC." ErrSAML2NameConflictSAML2: "Имя пользователя SAML2 конфликтует с другой учетной записью SAML2." ErrSAML2Internal: "Во время аутентификации SAML2 произошла внутренняя ошибка. Повторите попытку позже." ErrSAML2LogoutExpired: "Срок действия запроса на выход SAML2 истек." ErrSAML2LogoutInvalid: "Сообщение выхода SAML2 недействительно." ErrSAML2LocalCredentialsReadonly: "Имена пользователей и пароли SAML2 управляются поставщиком удостоверений и не могут быть изменены локально." ErrSAML2PasswordExpirationUnsupported: "Для пользователей SAML2 не применяется локальная политика срока действия паролей." # API key management ErrAPIKeyConflict: "Ключ API изменён. Обновите данные и повторите попытку; при повторном создании используйте исходные параметры" ErrAPIKeyNameExists: "Неотозванный ключ API с таким именем уже существует" ErrAPIKeyNotFound: "Ключ API не существует или не принадлежит текущему пользователю" ErrAPIKeyAppBindingDisabled: "Для этого ключа API привязка приложения через QR-код запрещена" ErrAPIKeyTerminalUpgradeRequired: "Не удалось проверить поддержку авторизации терминала по ключу API. Проверьте подключение узла, обновите его Agent и повторите попытку." LocalAppSyncDispatch: "Отправка запросов синхронизации локальных приложений" LocalAppSyncDispatchNode: "Отправка запроса синхронизации узлу {{.node}} (задача узла: {{.taskID}})" ErrLocalAppSyncDisabled: "Синхронизация локальных приложений между узлами отключена" # MCP connection document MCPDocumentTitle: "Инструкция для настройки подключения 1Panel MCP" MCPDocumentIntro: "Передайте этот файл ИИ-агенту и попросите выполнить настройку по инструкции. Файл содержит полный Token; храните его конфиденциально." MCPDocumentTaskTitle: "Задача настройки для ИИ-агента" MCPDocumentTask: "Настройте 1Panel MCP в текущей среде для указанного ниже клиента, затем проверьте подключение и обнаружение инструментов. Используйте параметры подключения из приведённого ниже блока конфигурации." MCPDocumentClientCodex: "Целевой клиент: Codex. Сначала уточните область действия конфигурации и фактический CODEX_HOME. Используйте действующий config.toml (по умолчанию ~/.codex/config.toml) и объедините приведённый ниже TOML с соответствующей записью mcp_servers." MCPDocumentClientClaude: "Целевой клиент: Claude. Сначала уточните фактическую версию клиента. Приведённый ниже JSON предназначен для клиентов с поддержкой настройки MCP по HTTP. Используйте место хранения или способ управления конфигурацией, поддерживаемые этой версией; не добавляйте удалённую конфигурацию HTTP в раздел, предназначенный только для stdio." MCPDocumentClientGeneric: "Целевой клиент: универсальный MCP-клиент. Сначала определите используемый клиент и область действия конфигурации. Если это неясно, спросите пользователя; не угадывайте расположение файла. Объедините параметры подключения ниже согласно синтаксису клиента." MCPDocumentSteps: |- 1. Убедитесь, что целевой клиент поддерживает Streamable HTTP и заголовки запросов Bearer. Если версия их не поддерживает, объясните причину. 2. Прочитайте существующую конфигурацию и создайте резервную копию. Добавьте единственную запись сервера ниже, сохранив остальные настройки MCP и клиента. Если такое имя уже существует, обновите только эту запись. 3. Запишите URL и Authorization без изменения значений. Не создавайте новый Token и не меняйте права панели или состояние службы. Не помещайте Token в историю команд, журналы, ответы или Git. 4. Не отключайте проверку сертификатов HTTPS. Для частного CA запросите у пользователя доверенный CA; не доверяйте сертификату сервера автоматически и не отключайте проверку TLS. Используйте HTTP только в доверенных сетях; перед передачей через недоверенную сеть настройте HTTPS. 5. Перезагрузите конфигурацию средствами клиента и проверьте инициализацию MCP и tools/list. Не выполняйте tools/call или операции записи. Если перезагрузка недоступна, сообщите о необходимости нового сеанса или перезапуска. Сохранение файла само по себе не означает успешного подключения. 6. Укажите клиент, расположение конфигурации, имя сервера, результаты подключения и обнаружения инструментов, а также нерешённые вопросы. Скройте Token. MCPDocumentConfigTitle: "Конфигурация подключения" MCPDocumentNotes: "Сервер панели проверяет текущие права на инструменты, узлы и права владельца учётных данных при каждом запросе. После создания нового Token обновите конфигурацию клиента. Доступ отклоняется, если учётные данные отключены, отозваны или просрочены." MCPDocumentHTTPWarning: "Этот адрес использует незашифрованный HTTP. Перед использованием в недоверенной сети настройте HTTPS." # MCP management ErrMCPConflict: "Конфликт данных MCP. Обновите и проверьте." ErrMCPSettingsChanged: "Настройки службы изменились. Обновите и проверьте перед сохранением." ErrMCPCredentialChanged: "Учётные данные изменились. Обновите и проверьте перед отправкой." ErrMCPCredentialRevoked: "Учётные данные отозваны. Создайте новые." ErrMCPCredentialNameExists: "Имя учётных данных уже существует. Выберите другое." ErrMCPRequestReused: "Конфликт параметров запроса. Закройте и снова откройте окно." ErrMCPInstallationRunning: "Идёт установка. Проверьте журнал установки." ErrMCPServiceOperationRunning: "Выполняется операция службы. Обновите после её завершения." ErrMCPEndpointManagedByWebsite: "Адрес управляется сайтом. Измените его в настройках сайта." ErrMCPWebsiteConfigurationExists: "Есть привязка или незавершённая операция. Отключите «Привязать сайт после установки»." ErrMCPWebsiteAlreadyBound: "Сайт уже привязан. Измените или удалите текущую привязку." ErrMCPWebsiteNotBound: "Нет привязанного сайта. Обновите перед привязкой." ErrMCPWebsiteMissing: "Исходный сайт отсутствует. Удалите недействительную привязку и привяжите снова." ErrMCPWebsiteOperationPending: "Операция сайта не подтверждена. Обновите и повторите исходную операцию." ErrMCPWebsiteDomainConflict: "Сочетание домена и порта занято. Измените домен или порт." ErrMCPWebsiteOwnershipChanged: "Владелец сайта изменился. Проверьте сайт и настройки привязки." ErrMCPWebsiteDomainChanged: "Домен сайта изменился. Проверьте его и обновите статус привязки." ErrMCPWebsiteDirectoryChanged: "Каталог сайта или права изменились. Восстановите их перед повторной попыткой." ErrMCPWebsiteProxyModified: "Конфликт конфигурации прокси. Восстановите настройки прокси MCP." ErrMCPWebsiteModified: "Протокол или настройки сайта изменились. Проверьте и обновите." ErrMCPWebsiteRequestChanged: "Запись операции не совпадает. Обновите и проверьте результат перед новой операцией." ErrMCPWebsiteProxyNotLoaded: "Прокси MCP не загружен. Проверьте настройки сайта и OpenResty." ErrMCPWebsiteStateUnconfirmed: "Статус сайта не подтверждён. Проверьте сайт и OpenResty, затем обновите." ErrMCPPolicyChanged: "Каталог инструментов или права изменились. Обновите и проверьте перед сохранением." ErrMCPCatalogUnavailable: "Каталог инструментов недоступен. Проверьте статус службы." ErrMCPDisabled: "Служба MCP не включена." ErrMCPSecretKeyUnavailable: "Шифрование учётных данных недоступно. Повторите позже." ErrMCPSecretInvalid: "Не удалось расшифровать Token. Создайте его заново." ErrMCPCredentialInactive: "Учётные данные отключены, просрочены или отозваны." ErrMCPAuditUnavailable: "Аудит операций недоступен. Сначала проверьте результат операции." ErrMCPEndpointUnavailable: "Сначала настройте корректный адрес MCP." ErrMCPWebsitePending: "Результат операции сайта не подтверждён. Обновите и повторите исходную операцию." ErrMCPWebsiteUnavailable: "Привязка сайта недоступна. Проверьте сайт и OpenResty." ErrMCPWebsiteServiceRequired: "Сначала установите службу 1Panel MCP." ErrMCPWebsiteHTTPPortRequired: "Для привязки HTTPS используйте HTTP-порт OpenResty." # MCP installation tasks PanelMCP: "1Panel MCP" MCPInstallPrepare: "Проверить текущую службу MCP" MCPInstallPullImage: "Проверить и загрузить образ" MCPInstallCatalog: "Проверить контракт инструментов" MCPInstallStarting: "Запустить контейнер и проверить его работоспособность" MCPInstallSaving: "Сохранить конфигурацию службы" MCPInstallCompleted: "Установка службы MCP завершена" MCPInstallRollback: "Установка не удалась; восстановить предыдущую службу MCP" MCPInstallBindWebsite: "Создать привязанный сайт" MCPInstallWebsiteFailed: "Служба установлена, привязка сайта не удалась. Исправьте её в настройках службы." MCPInstallInterrupted: "Перезапуск панели прервал установку. Проверьте статус службы." MCPInstallFailed: "Установка не удалась. Проверьте Docker, образ и журналы панели." MCPInstallRecoveryFailed: "Установка не удалась, служба восстановлена не полностью. Проверьте её статус." MCPInstallLocalImage: "Образ уже есть локально; пропустить загрузку" MCPInstallVerifyImage: "Проверить версию образа и контракт управляемой службы" MCPInstallVerifiedImage: "Образ успешно проверен" PHPExtensionsNoTargets: "После исключения исходного узла не осталось целевых узлов" PHPExtensionsSyncTask: "Синхронизация шаблона расширений PHP [{{ .name }}]" PHPExtensionsSyncSkipped: "На узле [{{ .node }}] уже есть идентичный шаблон; пропущено" MCPInstallCleanup: "Очистка предыдущего контейнера" MCPInstallOldContainerRemoved: "Предыдущий контейнер удалён" MCPInstallOldImageRemoved: "Предыдущий образ удалён" MCPInstallOldImageKept: "Предыдущий образ сохранён" MCPInstallOldImageRetained: "Предыдущий образ используется или имеет другие теги; он сохранён." MCPInstallCleanupSkipped: "Предыдущий контейнер отсутствует; удаление образа пропущено." MCPInstallCleanupFailed: "Служба MCP обновлена, но старые ресурсы очищены не полностью. Проверьте их вручную."