# erros básicos ErrInvalidParams: 'Requisição inválida: {{ .detail }}' ErrMcpGatewayArgsParse: 'Formato inválido dos argumentos personalizados do MCP' ErrMcpGatewayArgsConflict: 'O argumento {{ .name }} é gerenciado pelo 1Panel e não pode ser definido nos argumentos personalizados' ErrTokenParse: 'Erro de token: {{ .detail }}' ErrInitialPassword: 'Senha original incorreta' ErrInternalServer: 'Erro interno: {{ .detail }}' ErrRecordExist: 'Registro já existe' ErrRecordNotFound: 'Registro não encontrado' WafLogExport: 'Exportação de logs do WAF' MonitorLogExport: 'Exportação de logs de monitoramento de sites' LogExportNoData: 'Nenhum log corresponde aos filtros selecionados' LogExportDiskSpace: 'Há menos de 1 GiB disponível; a exportação foi interrompida' LogExportRetentionInvalid: 'A retenção dos registros de exportação deve ser de 1 a 30 dias' ErrSystemLogKeywordFilterUnsupported: 'A versão atual do sistema não oferece suporte à filtragem de logs do sistema por palavra-chave (requer systemd 237 ou posterior)' ErrStructTransform: 'Erro de conversão: {{ .err }}' ErrNotSupportType: 'Tipo não suportado: {{ .name }}' # IA de arquivos ErrFileAINotEnabled: 'A pesquisa com IA de arquivos está desativada ou sem conta. Em Gerenciamento de arquivos, use Conta de IA, ative e escolha uma conta.' ErrFileAISearchBadPattern: 'Padrão de busca inválido (regex ou opção): {{ .detail }}' FileAISearchEmptyDir: 'Nenhum arquivo ou pasta encontrado neste caminho (ou todos foram filtrados).' # download remoto ErrWgetRemoteFailed: 'Falha no download remoto ou URL inacessível: {{ .detail }}' ErrWgetInvalidContentType: 'A URL remota não retornou um arquivo (possivelmente uma página de erro), {{ .detail }}' ErrWgetProxyNotConfigured: 'Configure primeiro um servidor proxy nas configurações do painel' ErrWgetProxyInvalid: 'Endereço do servidor proxy inválido: {{ .detail }}' # login e segurança ErrNotLogin: 'Sem sessão: {{ .detail }}' ErrPasswordExpired: 'Senha expirada: {{ .detail }}' # requisição e API ErrProxy: 'Requisição falhou: {{ .detail }}' ErrApiConfigStatusInvalid: 'API desativada: {{ .detail }}' ErrApiConfigKeyInvalid: 'Chave API inválida: {{ .detail }}' ErrApiConfigIPInvalid: 'IP sem permissão: {{ .detail }}' ErrApiConfigDisable: 'API bloqueada: {{ .detail }}' ErrApiConfigKeyTimeInvalid: 'Timestamp inválido: {{ .detail }}' ErrCreateHttpClient: 'Falha ao criar solicitação {{ .err }}' ErrHttpReqTimeOut: 'Tempo limite da solicitação esgotado {{ .err }}' ErrHttpReqFailed: 'Falha na solicitação {{ .err }}' ErrNoSuchHost: 'Não foi possível encontrar o servidor solicitado {{ .err }}' ErrHttpReqNotFound: 'O recurso solicitado {{ .err }} não pôde ser encontrado' # atalho rápido ErrMinQuickJump: 'Adicione pelo menos um atalho rápido' ErrMaxQuickJump: 'Máximo 4 atalhos rápidos' # comum ErrShutDown: 'Comando parado manualmente' ErrUsernameIsExist: 'Usuário já existe' ErrNameIsExist: 'Nome já existe' ErrDemoEnvironment: 'Indisponível em demo' ErrCmdTimeout: 'Comando expirou' ErrCmdIllegal: 'Comando tem caracteres inválidos' ErrPortExist: 'Porta {{ .port }} já ocupada por {{ .type }} [{{ .name }}]' TYPE_APP: 'Aplicativo' TYPE_RUNTIME: 'Ambiente de tempo de execução' TYPE_DOMAIN: 'Nome de domínio' ErrTypePort: 'O formato da porta {{ .name }} está incorreto' ErrTypePortRange: 'O intervalo de portas precisa estar entre 1-65535' Success: 'Sucesso' Failed: 'Falhou' SystemRestart: 'Tarefa interrompida devido à reinicialização do sistema' ErrGroupIsDefault: 'Grupo padrão, não pode ser excluído' ErrGroupIsInWebsiteUse: 'O grupo está sendo usado por outro site e não pode ser excluído.' Decrypt: 'Descriptografar' # agente ErrAgentAccountBound: 'Conta vinculada a agente' ErrTerminalAIAccountInUse: 'Esta conta de modelo esta sendo usada pelo Terminal AI. Troque a conta nas configuracoes do Terminal AI ou desative o Terminal AI e tente novamente.' ErrFileAIAccountInUse: 'Esta conta de modelo está sendo usada pela IA do gerenciador de arquivos. Troque a conta nas configurações ou desative a IA e tente novamente.' ErrAgentAccountUnavailable: 'Conexão da conta indisponível: {{ .err }}' ErrAgentProviderNotSupported: 'Provedor de agente não suportado' ErrAgentAccountRequired: 'Selecione uma conta de agente primeiro' ErrAgentAccountNotVerified: 'Conta de agente não verificada' ErrAgentAccountModelsRequired: 'Configure pelo menos um modelo' ErrAgentAccountSingleInitialModel: 'Apenas um modelo inicial pode ser configurado ao criar a conta' ErrAgentModelNotInAccount: 'O modelo não está configurado na conta selecionada' ErrAgentVerifyModelInUse: 'Este modelo é usado para verificar a conta. Selecione outro modelo de verificação antes de excluí-lo' ErrAgentFallbackModelDuplicate: 'Os modelos de fallback não podem ser duplicados' ErrAgentFallbackModelPrimary: 'O modelo de fallback não pode ser igual ao modelo principal' ErrAgentModelInUse: 'Ainda há um agente vinculado usando este modelo: {{ .name }}' ErrAgentBaseURLRequired: 'URL base obrigatória' ErrAgentApiKeyRequired: 'Chave API obrigatória' ErrAgentComposeRequired: 'Conteúdo de compose obrigatório' ErrAgentIDRequired: 'ID do agente obrigatório' ErrAgentAccountIDRequired: 'ID da conta obrigatório' ErrAgentLimitReached: 'A edição Community suporta até {{ .max }} agentes de IA. Faça upgrade para a edição Business para usar agentes ilimitados' ErrAgentWebsiteBound: 'Este agente já está vinculado a um site' ErrAgentWebsiteTypeUnsupported: 'Somente sites proxy ou estáticos podem ser vinculados' ErrAgentWebsiteInUse: 'Este site já está vinculado a outro agente' ErrAgentWebsiteUnbindUnsupported: 'Sites implantados em um clique não podem ser desvinculados manualmente' ErrQwenPawAuthRequest: 'Falha ao atualizar as credenciais do QwenPaw: {{ .err }}' ErrQwenPawAuthOutOfSync: 'As credenciais atuais do QwenPaw não correspondem ao registro do 1Panel. Redefina a senha do QwenPaw ou restaure as credenciais no arquivo .env do aplicativo' ErrQwenPawAuthDisabled: 'A autenticação de login não está ativada no QwenPaw' ErrHermesPairingCodeUnavailable: 'O código de pareamento está temporariamente indisponível no Hermes, possivelmente por causa de rede. Tente novamente mais tarde.' ErrHermesFeishuGroupAllowlistRequiresAllowlist: 'Quando a política de grupo do Feishu é Lista de permissões, a política de DM não pode ser Código de pareamento.' # backup e configurações de alerta Localhost: 'Máquina Local' ErrBackupInUsed: 'Conta de backup em uso por tarefa' ErrBackupCheck: 'Teste de conexão falhou: {{ .err }}' ErrBackupLocalDelete: 'Não é permitido excluir contas locais' ErrBackupLocalCreate: 'Não é permitido criar contas locais' ErrAlertConfigInUse: 'A configuração de alerta está em uso e não pode ser excluída' ErrAlertConfigPhoneExist: 'O numero de telefone ja existe' # aplicativo ErrPortInUsed: 'A porta {{ .detail }} já está ocupada' ErrAppLimit: 'O número de aplicativos instalados excedeu o limite' ErrNotInstall: 'Aplicativo não instalado' ErrPortInOtherApp: 'A porta {{ .port }} já está ocupada pelo aplicativo {{ .apps }}' ErrDbUserNotValid: 'Banco de dados existente, nome de usuário e senha não correspondem' ErrMysqlUserUsedByApps: 'Este usuário do banco de dados está sendo usado por [{{ .detail }}]; seu host não pode ser alterado, e ele não pode ser excluído nem ter sua autorização revogada' ErrUpdateBuWebsite: 'O aplicativo foi atualizado com sucesso, mas a modificação do arquivo de configuração do site falhou., verifique a configuração' Err1PanelNetworkFailed: 'Falha na criação da rede de contêiner padrão {{ .detail }}' ErrFileParse: 'Falha na análise do arquivo docker-compose do aplicativo' ErrInstallDirNotFound: 'O diretório de instalação não existe. Se precisar desinstalar, selecione Forçar desinstalação' AppStoreIsUpToDate: 'A loja de aplicativos já é a versão mais recente' LocalAppVersionNull: 'O aplicativo {{ .name }} não está sincronizado com a versão Não é possível adicionar à lista de aplicativos' LocalAppVersionErr: '{{ .name }} sincronização da versão {{ .version }} falhou {{ .err }}' ErrFileNotFound: 'arquivo {{ .name }} não existe' ErrFileParseApp: 'Falha na análise do arquivo {{ .name }} {{ .err }}' ErrAppDirNull: 'A pasta da versão não existe' LocalAppErr: 'Falha na sincronização do aplicativo {{ .name }} {{ .err }}' ErrContainerName: 'O nome do contêiner já existe' ErrContainerNotFound: '{{ .name }} container não existe' ErrContainerMsg: 'O contêiner {{ .name }} está anormal., verifique o log na página do contêiner para obter detalhes.' ErrAppBackup: '{{ .name }} falha no backup do aplicativo {{ .err }}' ErrVersionTooLow: 'A versão atual do 1Panel é muito antiga para atualizar a App Store., atualize a versão antes de operar.' ErrAppNameExist: 'O nome do aplicativo já existe' ErrAppInstallNameExist: 'O nome de instalação do aplicativo {{ .name }} já existe' AppStoreIsSyncing: 'A App Store está sincronizando mais tarde' ErrGetCompose: 'Falha ao obter o arquivo docker-compose.yml {{ .detail }}' ErrComposeProjectNameParse: 'Falha ao analisar o nome do projeto na saída de configuração do Docker Compose: {{ .detail }}' ErrComposeProjectNameEmpty: 'Não foi possível derivar um nome de projeto da configuração do Docker Compose nem do diretório pai do arquivo. Informe um nome e tente novamente.' ErrComposeNameInvalid: 'Nome de projeto Compose inválido: deve começar com uma letra minúscula ou número, conter apenas letras minúsculas, números, hífens e sublinhados e ter de 1 a 256 caracteres.' ErrAppVersionUnavailable: 'Esta versão do aplicativo foi removida do serviço remoto. Selecione outra versão e tente novamente.' ErrAppWarn: 'Status anormal, verifique o log' ErrAppParamKey: 'O campo de parâmetro {{ .name }} está anormal' ErrAppUpgrade: 'Falha na atualização do aplicativo {{ .name }} {{ .err }}' AppRecover: 'Reverter aplicativo {{ .name }}' PullImageStart: 'Comece a extrair a imagem [{{ .name }}]' PullImageSuccess: 'Imagem retirada com sucesso' AppStoreSyncSuccess: 'Sincronização da App Store bem-sucedida' SyncAppDetail: 'Sincronizar configuração do aplicativo' AppVersionNotMatch: 'o aplicativo {{ .name }} requer uma versão superior do 1Panel, ignorando a sincronização' MoveSiteDir: 'Detecção de alteração no diretório do site. É necessário migrar o diretório do site OpenResty para {{ .name }}' MoveSiteDirSuccess: 'Migração bem-sucedida do diretório do site' DeleteRuntimePHP: 'Excluir tempo de execução do PHP' CustomAppStoreFileValid: 'Os pacotes da App Store precisam estar no formato.tar.gz' PullImageTimeout: 'Tempo limite para puxar imagem, tente aumentar a aceleração da imagem ou altere para outra aceleração de imagem' ErrAppIsDown: 'O status do aplicativo {{ .name }} é anormal, verifique' ErrCustomApps: 'Há um aplicativo instalado, desinstale-o primeiro' ErrCustomRuntimes: 'Há um ambiente de execução instalado, exclua-o primeiro' ErrAppVersionDeprecated: 'O aplicativo {{ .name }} não é compatível com a versão atual do 1Panel, ignorado' ErrDockerFailed: 'O estado do Docker está anormal, verifique o status do serviço' ErrDockerComposeCmdNotFound: 'O comando Docker Compose não existe, instale este comando na máquina host primeiro' UseExistImage: 'A imagem já existe, usando imagem existente' UpgradePrepare: 'Preparar atualização do aplicativo' UpgradeStop: 'Parar aplicativo original' UpgradeWaitReady: 'Aguardar o aplicativo ficar pronto' UpgradeBackupDisabled: 'O backup de atualização está desativado; alterações de dados feitas pelos scripts não podem ser totalmente revertidas' UpgradeRollbackFailed: 'Falha na reversão' ErrDatabaseNotFound: 'O banco de dados {{ .name }} não existe' # SSH ExportIP: 'IP de Login' ExportArea: 'Localização' ExportPort: 'Porta' ExportAuthMode: 'Método de Login' ExportUser: 'Usuário' ExportStatus: 'Status de Login' ExportDate: 'Hora' # arquivo ErrFileCanNotRead: 'Este arquivo não suporta visualização' ErrSensitiveFileRead: 'A leitura de arquivos sensíveis não é permitida' ErrFileToLarge: 'O arquivo é maior que 10M e não pode ser aberto' ErrPathNotFound: 'O diretório não existe' ErrMovePathFailed: 'O caminho de destino não pode conter o caminho original' ErrLinkPathNotFound: 'O caminho de destino não existe' ErrFileIsExist: 'O arquivo ou pasta já existe' ErrFileUpload: '{{ .name }} falhou ao carregar o arquivo {{ .detail }}' ErrFileDownloadDir: 'A pasta de download não é suportada' ErrFileSharePath: 'Caminho inválido ou o destino não é um arquivo' ErrFileShareInvalid: 'Link de compartilhamento inválido ou expirado' ErrFileShareExpired: 'O link de compartilhamento expirou' ErrFileSharePassword: 'Senha de compartilhamento incorreta' ErrFileShareExhausted: 'O limite de downloads deste compartilhamento foi atingido' ErrFileSharePasswordPolicy: 'A senha deve ter pelo menos 4 caracteres' ErrFileShareRateLimit: 'Muitas solicitações, tente novamente mais tarde' ErrCmdNotFound: 'O comando {{ .name }} não existe, instale este comando no host primeiro' ErrSourcePathNotFound: 'O diretório de origem não existe' ErrFavoriteExist: 'Este caminho já foi favorito' ErrInvalidChar: 'Caracteres ilegais não são permitidos' ErrPathNotDelete: 'O diretório selecionado não pode ser excluído' ErrLogFileToLarge: 'O arquivo de log excede 500 MB e não pode ser aberto' FileDropFailed: 'Falha ao limpar arquivo {{ .name }}: {{ .err }}' FileDropSuccess: 'Arquivo {{ .name }} limpo com sucesso, {{ .count }} arquivos removidos, {{ .size }} de espaço em disco liberado' FileDropSum: 'Limpeza de arquivos concluída com sucesso, total de {{ .count }} arquivos removidos, total de {{ .size }} de espaço em disco liberado' ErrBadDecrypt: 'Erro de senha de descriptografia do pacote compactado, descompactação falhou, verifique e' # site ErrAliasIsExist: 'Alias já existe' ErrBackupMatch: 'O arquivo de backup não corresponde a alguns dados atuais do site {{ .detail }}' ErrBackupExist: 'A parte correspondente dos dados de origem no arquivo de backup não existe {{ .detail }}' ErrPHPResource: 'O ambiente operacional local não suporta comutação' ErrPathPermission: 'Uma pasta com permissões diferentes de 1000:1000 foi detectada no diretório de índice, o que pode causar um erro de acesso negado no site. Clique no botão Salvar acima' ErrDomainIsUsed: 'O nome de domínio já está sendo usado pelo site [{{ .name }}]' ErrDomainFormat: 'o formato do nome de domínio {{ .name }} está incorreto' ErrDefaultAlias: 'padrão é um código reservado, use outro código' ErrParentWebsite: 'Você precisa excluir o subsite {{ .name }} primeiro' ErrBuildDirNotFound: 'O diretório de compilação não existe' ErrImageNotExist: 'A imagem do ambiente operacional {{ .name }} não existe, edite novamente o ambiente operacional' ErrProxyIsUsed: 'Balanceamento de carga foi usado por proxy reverso, não pode ser excluído' ErrSSLValid: 'O arquivo do certificado está anormal, verifique o status do certificado' ErrWebsiteDir: ', selecione um diretório dentro do diretório do site.' ErrComposerFileNotFound: 'O arquivo composer.json não existe' ErrRuntimeNoPort: 'O ambiente de tempo de execução não está configurado com uma porta, edite o ambiente de tempo de execução primeiro.' ErrRuntimeProjectDirContainsCodeDir: 'O diretório de execução inclui o diretório de projeto selecionado. Escolha outro diretório de projeto e crie novamente.' Status: 'Estado' start: 'Iniciar' stop: 'Parar' restart: 'Reiniciar' kill: 'Parar Forçadamente' pause: 'Pausar' unpause: 'Retomar' remove: 'Excluir' delete: 'Excluir' ErrDefaultWebsite: 'O site padrão já foi definido, cancele-o antes de definir' SSL: 'Certificado' Set: 'Configurações' # certificado SSL ErrSSLCannotDelete: 'O certificado {{ .name }} está sendo usado por um site e não pode ser excluído' ErrAccountCannotDelete: 'A conta está associada a um certificado e não pode ser excluída' ErrSSLApply: 'Renovação do certificado concluída, mas a recarga do OpenResty falhou. Verifique a configuração' ErrEmailIsExist: 'A caixa de correio já existe' ErrSSLKeyNotFound: 'O arquivo de chave privada não existe' ErrSSLCertificateNotFound: 'O arquivo de certificado não existe' ErrSSLKeyFormat: 'Falha na verificação do arquivo de chave privada' ErrSSLCertificateFormat: 'O formato do arquivo de certificado está incorreto, use o formato pem' ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid ou EabHmacKey não podem estar em branco' ErrOpenrestyNotFound: 'O modo HTTP requer o OpenResty instalado' ApplySSLStart: 'Comece a solicitar um certificado, nome de domínio [{{ .domain }}] método de solicitação [{{ .type }}]' dnsAccount: 'DNS Automático' dnsManual: 'Manual DNS' http: 'HTTP' ApplySSLFailed: 'Falha na solicitação de certificado [{{ .domain }}], {{ .detail }}' ApplySSLSuccess: 'Solicitação de certificado [{{ .domain }}] realizada com sucesso' DNSAccountName: 'Conta DNS [{{ .name }}] fornecedor [{{ .type }}]' PushDirLog: 'Certificado enviado para o diretório [{{ .path }}] {{ .status }}' ErrDeleteCAWithSSL: 'A organização atual tem um certificado que foi emitido e não pode ser excluído.' ErrDeleteWithPanelSSL: 'A configuração SSL do painel usa este certificado e não pode ser excluída' ErrDefaultCA: 'A autoridade padrão não pode ser excluída' ApplyWebSiteSSLLog: 'Iniciando a renovação do certificado do site {{ .name }}' ErrUpdateWebsiteSSL: 'Falha na atualização do certificado do site {{ .name }}: {{ .err }}' ApplyWebSiteSSLSuccess: 'Atualizar certificado do site com sucesso' ErrExecShell: 'Falha ao executar o script {{ .err }}' ExecShellStart: 'Iniciar execução do script' ExecShellSuccess: 'Execução do script bem-sucedida' StartUpdateSystemSSL: 'Iniciar atualização do certificado do sistema' UpdateSystemSSLSuccess: 'Atualizar certificado do sistema com sucesso' ErrWildcardDomain: 'Não é possível solicitar certificado de nome de domínio curinga no modo HTTP' ErrApplySSLCanNotDelete: 'O certificado {{ .name }} que está sendo solicitado não pode ser excluído mais tarde.' StartPushSSLToNode: 'Iniciando o envio do certificado para o nó' PushSSLToNodeFailed: 'Falha ao enviar o certificado para o nó: {{ .err }}' PushSSLToNodeSuccess: 'Certificado enviado com sucesso para o nó' # MySQL ErrUserIsExist: 'O usuário atual já existe, digite novamente' ErrDatabaseIsExist: 'O banco de dados atual já existe, digite novamente' ErrExecTimeOut: 'Tempo limite de execução do SQL expirou, verifique o banco de dados' ErrRemoteExist: 'O banco de dados remoto já existe com este nome, modifique-o e' ErrLocalExist: 'O nome já existe no banco de dados local, modifique-o e' RemoteBackup: 'Para fazer backup do banco de dados remoto, o serviço de banco de dados do contêiner local precisa ser iniciado primeiro usando a imagem {{ .name }} aguarde...' RemoteRecover: 'Para restaurar o banco de dados remoto, o serviço de banco de dados do contêiner local precisa ser iniciado primeiro usando a imagem {{ .name }} aguarde...' Arg: 'Argumento' # Redis ErrTypeOfRedis: 'O tipo de arquivo de recuperação não corresponde ao método de persistência atual, modifique-o e' # contêiner ErrInUsed: '{{ .detail }} está em uso e não pode ser excluído' ErrObjectInUsed: 'Este objeto está em uso e não pode ser excluído' ErrObjectBeDependent: 'Esta imagem é dependida por outras imagens e não pode ser excluída' ErrPortRules: 'O número da porta não corresponde, digite novamente' ErrPgImagePull: 'Tempo limite para extração de imagem. Configure a aceleração de imagem ou extraia manualmente a imagem {{ .name }} e' PruneHelper: 'Esta limpeza {{ .name }} liberou espaço em disco {{ .size }}' ImageRemoveHelper: 'Excluída a imagem {{ .name }}, liberando {{ .size }} de espaço em disco' BuildCache: 'Cache de construção' Volume: 'Volume de armazenamento' Network: 'Rede' PruneStart: 'Limpando em andamento aguarde...' ContainerBackupPrepare: 'Preparar área de backup do contêiner' ContainerBackupStop: 'Parar contêiner antes do backup' ContainerBackupInspect: 'Fazer backup do inspect e rede do contêiner' ContainerBackupMounts: 'Fazer backup dos mounts do contêiner' ContainerBackupMeta: 'Escrever metadados do backup do contêiner' ContainerBackupStart: 'Iniciar contêiner após o backup' ContainerRecoverPrepare: 'Preparar área de restauração do contêiner' ContainerRecoverExtract: 'Extrair arquivo de backup do contêiner' ContainerRecoverParse: 'Carregar metadados do backup do contêiner' ContainerRecoverCreate: 'Recriar contêiner' ContainerRecoverMounts: 'Restaurar mounts do contêiner' ContainerRecoverStart: 'Iniciar contêiner restaurado' ContainerRecoverCleanup: 'Limpar área de restauração do contêiner' ComposeBackupPrepare: 'Preparar área de backup do compose' ComposeBackupStop: 'Parar compose antes do backup' ComposeBackupFiles: 'Fazer backup dos arquivos do compose' ComposeBackupContainers: 'Fazer backup dos contêineres do compose' ComposeBackupMeta: 'Escrever metadados do backup do compose' ComposeBackupStart: 'Iniciar compose após o backup' ComposeBackupCleanup: 'Limpar área de backup do compose' ComposeRecoverPrepare: 'Preparar área de restauração do compose' ComposeRecoverExtract: 'Extrair arquivo de backup do compose' ComposeRecoverMeta: 'Carregar metadados do backup do compose' ComposeRecoverMetaLogName: 'Metadados da restauracao do compose: nome={{ .name }}' ComposeRecoverMetaLogPath: 'Metadados da restauracao do compose: caminhoBackup={{ .backupPath }} caminhoDestino={{ .targetDir }}' ComposeRecoverMetaLogCount: 'Metadados da restauracao do compose: arquivos={{ .files }} containers={{ .containers }}' ComposeRecoverFiles: 'Restaurar arquivos do compose' ComposeRecoverContainers: 'Restaurar contêineres do compose' ComposeRecoverRecord: 'Salvar registro do compose' ComposeRecoverCleanup: 'Limpar área de restauração do compose' # runtime ErrFileNotExist: 'O arquivo {{ .detail }} não existe Verifique a integridade do arquivo de origem' ErrImageBuildErr: 'Falha na criação da imagem' ErrImageExist: 'A imagem já existe, modifique o nome da imagem.' ErrDelWithWebsite: 'O ambiente operacional já está associado a um site e não pode ser excluído' ErrRuntimeStart: 'Falha na inicialização' ErrPackageJsonNotFound: 'o arquivo package.json não existe' ErrScriptsNotFound: 'O item de configuração de scripts não foi encontrado em package.json' ErrContainerNameNotFound: 'Não foi possível obter o nome do contêiner, verifique o arquivo.env' ErrNodeModulesNotFound: 'A pasta node_modules não existe Edite o ambiente de execução ou aguarde até que o ambiente de execução inicie com sucesso' ErrContainerNameIsNull: 'O nome do contêiner não existe' ErrPHPPortIsDefault: 'A porta 9000 é a porta padrão. Altere-a e tente novamente' ErrPHPRuntimePortFailed: 'A porta {{ .name }} já está em uso neste runtime. Altere-a e tente novamente' # ferramenta ErrConfigNotFound: 'O arquivo de configuração não existe' ErrConfigParse: 'O formato do arquivo de configuração está incorreto' ErrConfigIsNull: 'O arquivo de configuração não pode estar vazio' ErrConfigDirNotFound: 'O diretório de execução não existe' ErrConfigAlreadyExist: 'Um arquivo de configuração com o mesmo nome já existe' ErrUserFindErr: 'Falha na pesquisa do usuário {{ .name }} {{ .err }}' # tarefa cron CutWebsiteLogSuccess: '{{ .name }} registro do site cortado com sucesso, caminho de backup {{ .path }}' HandleShell: 'Executar script {{ .name }}' HandleCurl: 'Acessar URL {{ .name }}' HandleNtpSync: 'Sincronização de hora do sistema' HandleSystemClean: 'Limpeza de cache do sistema' SystemLog: 'Log do Sistema' CutWebsiteLog: 'Rotacionar Log do Website' FileOrDir: 'Diretório / Arquivo' UploadFile: 'Enviando arquivo de backup {{ .file }} para {{ .backup }}' Upload: 'Enviar' IgnoreBackupErr: 'Backup falhou, erro: {{ .detail }}, ignorando este erro...' IgnoreUploadErr: 'Upload falhou, erro: {{ .detail }}, ignorando este erro...' LoadBackupFailed: 'Falha ao obter conexão da conta de backup, erro: {{ .detail }}' InExecuting: 'A tarefa atual está sendo executada, não repita a execução' NoSuchResource: 'Nenhum conteúdo de backup encontrado no banco de dados, ignorando...' CleanLog: 'Limpar log' CleanLogByName: 'Limpar log de {{ .name }}' WafIpGroupNotFound: 'Grupo de IP do WAF não encontrado., vá para [Recursos Avançados - WAF - Lista Branca/Preta - Grupo de IP] para adicionar um grupo de IP via método de download remoto.' # caixa de ferramentas ErrNotExistUser: 'O usuário atual não existe, modifique e' ErrBanAction: 'Falha na configuração. O serviço atual {{ .name }} não está disponível. Verifique e' ErrClamdscanNotFound: 'O comando clamdscan não foi detectado, consulte a documentação para instalá-lo' TaskSwapSet: 'Configurar Swap' SetSwap: 'Configurar Swap {{ .path }} - {{ .size }}' CreateSwap: 'Criar Arquivo Swap' FormatSwap: 'Formatar Arquivo Swap' EnableSwap: 'Ativar Swap' # proteção contra adulteração CleanTamperSetting: 'Limpar configurações de proteção históricas' SetTamperWithRules: 'Iniciar proteção de diretório de acordo com as regras' ProtectDir: 'Proteger diretório {{ .name }}' IgnoreFile: 'Proteger arquivo {{ .name }}' TamperSetSuccessful: 'Configurações de proteção concluídas, iniciando monitoramento dos seguintes diretórios:' # WAF ErrScope: 'A modificação desta configuração não é suportada' ErrStateChange: 'Falha na alteração de estado' ErrRuleExist: 'A regra já existe' ErrRuleNotExist: 'A regra não existe' ErrParseIP: 'Formato de IP errado' ErrDefaultIP: 'padrão é um nome reservado, altere-o para outro nome' ErrGroupInUse: 'O grupo de IP é usado pela lista negra/lista branca e não pode ser excluído' ErrIPGroupAclUse: 'O grupo de IP está sendo usado por regras personalizadas do site {{ .name }}, não pode ser excluído' ErrIPGroupOriginProtectionUse: 'O grupo de IP está sendo usado pela proteção de origem CDN do site {{ .name }}' ErrOriginProtectionIPGroupRequired: 'Selecione pelo menos um grupo de IP não vazio antes de ativar a proteção de origem' ErrOriginProtectionIPGroupInvalid: 'O grupo de IP {{ .name }} não existe ou está vazio' ErrGroupExist: 'O nome do grupo IP já existe' ErrIPRange: 'Intervalo de IP errado' ErrIPExist: 'IP já existe' urlDefense: 'regras de URL' urlHelper: 'URL proibido' dirFilter: 'Filtro de diretório' xss: 'XSS' phpExec: 'Execução de script PHP' oneWordTrojan: 'Cavalo de Tróia de Uma Palavra' appFilter: 'Aplicar filtragem de diretório perigosa' webShell: 'Webshell' args: 'Regras de parâmetros' protocolFilter: 'Filtragem de protocolo' javaFilter: 'Filtro de arquivo perigoso Java' scannerFilter: 'Filtro do scanner' escapeFilter: 'filtro de escape' customRule: 'Regra personalizada' httpMethod: 'Filtragem de método HTTP' fileExt: 'Restrições de upload de arquivo' defaultIpBlack: 'Grupo de IP malicioso' cookie: 'Regras de cookies' urlBlack: 'lista negra de URLs' uaBlack: 'Lista negra de agentes do usuário' attackCount: 'Limite de frequência de ataque' fileExtCheck: 'Restrições de upload de arquivo' geoRestrict: 'Restrições de acesso regionais' unknownWebsite: 'Acesso não autorizado ao nome de domínio' notFoundCount: 'Limite de taxa 404' headerDefense: 'Regras de cabeçalho' defaultUaBlack: 'Regras do agente do usuário' methodWhite: 'regras HTTP' captcha: 'verificação homem-máquina' fiveSeconds: 'verificação de 5 segundos' vulnCheck: 'Regras suplementares' acl: 'Regras personalizadas' sql: 'injeção de SQL' cc: 'Limite de frequência de acesso' defaultUrlBlack: 'regras de URL' sqlInject: 'injeção de SQL' ErrDBNotExist: 'O banco de dados não existe' allow: 'permitir' deny: 'negar' OpenrestyNotFound: 'OpenResty não está instalado' remoteIpIsNull: 'A lista de IP está vazia' OpenrestyVersionErr: 'A versão do OpenResty é muito antiga. Atualize para 1.27.1.2-2-2-focal' ErrFileTooLarge: 'O arquivo excede 1 MB e não pode ser enviado' # tarefa TaskStart: '{{ .name }} A tarefa inicia [START]' TaskEnd: '{{ .name }} Tarefa concluída [CONCLUÍDA]' TaskFailed: '{{ .name }} tarefa falhou' TaskTimeout: '{{ .name }} expirou' TaskSuccess: '{{ .name }} Tarefa bem-sucedida' TaskRetry: 'Iniciar {{ .name }}ª nova tentativa' SubTaskSuccess: '{{ .name }} bem-sucedido' SubTaskFailed: '{{ .name }} falhou: {{ .err }}' TaskInstall: 'Instalar' TaskUninstall: 'Desinstalar' TaskCreate: 'Criar' TaskDelete: 'Excluir' TaskUpgrade: 'Atualizar' TaskUpdate: 'Atualizar' AgentPluginInstall: 'Instalar plugin' AgentPluginEnable: 'Ativar plugin' AgentPluginDisable: 'Desativar plugin' AgentPluginUpdate: 'Atualizar plugin' AgentPluginUninstall: 'Desinstalar plugin' TaskRestart: 'Reiniciar' TaskProtect: 'Proteger' TaskBackup: 'Fazer cópia de segurança' TaskRecover: 'Recuperar' TaskRollback: 'Reverter' TaskPull: 'Puxar' TaskCommit: 'Criar imagem' TaskBuild: 'Construir' TaskPush: 'Enviar' TaskClean: 'Limpeza' TaskHandle: 'Executar' TaskImport: 'Importar' TaskExport: 'Exportar' Website: 'Site' App: 'Aplicativo' Runtime: 'Ambiente de tempo de execução' Database: 'Banco de dados' ConfigFTP: 'Criar usuário FTP {{ .name }}' ConfigOpenresty: 'Criar arquivo de configuração do OpenResty' InstallAppSuccess: 'Aplicativo {{ .name }} instalado com sucesso' ConfigRuntime: 'Configurar o ambiente de tempo de execução' ConfigApp: 'Aplicativo de configuração' SuccessStatus: '{{ .name }} bem-sucedido' FailedStatus: '{{ .name }} falhou {{ .err }}' HandleLink: 'Manipular associação de aplicativos' HandleDatabaseApp: 'Manipulando parâmetros do aplicativo' ExecShell: 'Executar script {{ .name }}' PullImage: 'Puxar imagem' Start: 'Iniciar' Run: 'Iniciar' Stop: 'Pare' Image: 'Espelho' Compose: 'Orquestração' Container: 'Recipiente' AppLink: 'Aplicativo vinculado' EnableSSL: 'Habilitar HTTPS' AppStore: 'Loja de aplicativos' Firewall: 'Firewall' FirewallSyncStep: 'Sincronizar regras com {{ .name }}' FirewallSyncResult: 'Resultado da sincronização: {{ .succeeded }} com sucesso, {{ .existing }} existentes, {{ .failed }} com falha' FirewallSyncFailed: '{{ .failed }} regras de firewall falharam na sincronização' FirewallSyncFailedResetSkipped: '{{ .failed }} regras falharam na sincronização; o firewall de origem não foi redefinido' FirewallResetSourceStep: 'Redefinir e desativar o firewall de origem {{ .name }}' FirewallResetSourceResult: 'Firewall de origem redefinido; {{ .removed }} regras do banco de dados foram excluídas' FirewallVerifyTargetStep: 'Verificar regras do firewall de destino' FirewallTargetRuleIneffective: 'A regra de destino não está mais efetiva' FirewallVerifyRuleFailed: 'Falha ao verificar a regra sincronizada {{ .name }}: {{ .detail }}' TaskSync: 'Sincronizar' LocalApp: 'Aplicativo local' SubTask: 'Subtarefa' RuntimeExtension: 'Extensão do ambiente de tempo de execução' TaskIsExecuting: 'A tarefa está em execução' CustomAppstore: 'Armazém de aplicativos personalizados' TaskExec: 'Executar' TaskBatch: 'Operação em Lote' FileConvert: 'Conversão de Formato de Arquivo' # tarefa - ClamAV Clamscan: 'Escanear {{ .name }}' TaskScan: 'Escanear' # tarefa - IA OllamaModelPull: 'Puxar modelo Ollama {{ .name }}' OllamaModelSize: 'Obtenha o tamanho do modelo Ollama {{ .name }}' AIBenchmarkRun: "Executar benchmark de IA" # tarefa - snapshot Snapshot: 'Instantâneo' SnapDBInfo: 'Escrever informações do banco de dados 1Panel' SnapCopy: 'Copiar arquivos e diretórios {{ .name }}' SnapNewDB: 'Inicializar conexão com o banco de dados {{ .name }}' SnapDeleteOperationLog: 'Excluir log de operação' SnapDeleteLoginLog: 'Excluir log de acesso' SnapDeleteMonitor: 'Excluir dados de monitoramento' SnapRemoveSystemIP: 'Remover IP do sistema' SnapBaseInfo: 'Escreva informações básicas do 1Panel' SnapInstallAppImageEmpty: 'Nenhuma imagem de aplicativo selecionada, pulando...' SnapInstallApp: 'Backup dos aplicativos instalados do 1Panel' SnapDockerSave: 'Compactar aplicativos instalados' SnapLocalBackup: 'Backup do diretório de backup local do 1Panel' SnapCompressBackup: 'Compactar diretório de backup local' SnapPanelData: 'Backup do diretório de dados do 1Panel' SnapCompressPanel: 'Diretório de dados compactados' SnapWebsite: 'Backup do diretório do site 1Panel' SnapCloseDBConn: 'Fechar a conexão com o banco de dados' SnapCompress: 'Criar arquivos de instantâneos' SnapCompressFile: 'Compactar arquivo de instantâneo' SnapCheckCompress: 'Verificar arquivo de compactação de instantâneo' SnapCompressSize: 'Tamanho do arquivo de instantâneo {{ .name }}' SnapUpload: 'Carregar arquivo de instantâneo' SnapUploadTo: 'Carregar arquivo de instantâneo para {{ .name }}' SnapUploadRes: 'Carregar arquivo de instantâneo para {{ .name }}' SnapshotRecover: 'Restauração de instantâneo' RecoverDownload: 'Baixar arquivo de instantâneo' Download: 'Baixar' RecoverDownloadAccount: 'Obter conta de backup de download de instantâneo {{ .name }}' RecoverDecompress: 'Descompacte arquivos compactados de instantâneos' Decompress: 'Descompressão' BackupBeforeRecover: 'Fazer backup de dados relacionados ao sistema antes do snapshot' ReadJson: 'Ler o arquivo Json no snapshot' ReadJsonPath: 'Obtenha o caminho do arquivo Json no snapshot' ReadJsonContent: 'Ler arquivo Json' ReadJsonMarshal: 'Processamento de escape JSON' RecoverApp: 'Restaurar aplicativos instalados' RecoverWebsite: 'Recuperar diretório de sites' RecoverAppImage: 'Restaurar backup de imagem instantânea' RecoverCompose: 'Restaurar outro conteúdo do compositor' RecoverComposeList: 'Obter todos os compositores para serem restaurados' RecoverComposeItem: 'Recuperar composição {{ .name }}' RecoverAppEmpty: 'Nenhum backup de imagem de aplicativo foi encontrado no arquivo de instantâneo' RecoverBaseData: 'Recuperar dados e arquivos básicos' RecoverDaemonJsonEmpty: 'O arquivo de instantâneo e a máquina atual não têm o arquivo daemon.json de configuração do contêiner' RecoverDaemonJson: 'Restaurar arquivo daemon.json de configuração do contêiner' RecoverDBData: 'Recuperar dados do banco de dados' RecoverBackups: 'Restaurar diretório de backup local' RecoverPanelData: 'Diretório de dados de recuperação' # tarefa - contêiner ContainerImagePull: 'Puxar imagem do contêiner {{ .name }}' ContainerRemoveOld: 'Remover o contêiner original {{ .name }}' ContainerImageCheck: 'Verifique se a imagem é extraída normalmente' ContainerLoadInfo: 'Obter informações básicas do contêiner' ContainerRecreate: 'A atualização do contêiner falhou, agora iniciando a restauração do contêiner original' ContainerCreate: 'Criar um novo contêiner {{ .name }}' ContainerCreateFailed: 'Falha na criação do contêiner, exclua o contêiner com falha' ContainerStartCheck: 'Verifique se o contêiner foi iniciado' ContainerAcquireLock: 'Aguardar o bloqueio de operação do contêiner {{ .name }}' ContainerUpgradeItem: 'Atualizar o contêiner {{ .name }}' ContainerUpgradeSummary: 'Resumir os resultados da atualização de contêineres' ContainerCleanupWarning: 'A atualização foi concluída, mas não foi possível remover o contêiner de backup {{ .name }}. Depois de confirmar que o novo contêiner está funcionando, remova manualmente o contêiner de backup. Erro: {{ .err }}' ContainerStopOld: 'Parar o contêiner original {{ .name }}' ContainerRenameOld: 'Renomear o contêiner original {{ .name }} para reversão' ContainerDisconnectOld: 'Liberar os endereços de rede do contêiner original {{ .name }}' ContainerCreateReplacement: 'Criar o contêiner substituto {{ .name }}' ContainerStartReplacement: 'Iniciar o contêiner substituto {{ .name }}' ContainerWaitReplacement: 'Verificar se o contêiner substituto {{ .name }} está pronto' ContainerStartupDiagnostic: 'Diagnóstico da falha de inicialização do contêiner substituto {{ .name }}' ContainerRecentLogs: 'Logs recentes do contêiner (últimas 200 linhas)' ContainerDiagnosticLogsFailed: 'Falha ao obter os logs do contêiner com falha {{ .name }}: {{ .err }}' ContainerDiagnosticLogsEmpty: 'Não há logs de contêiner disponíveis' ContainerRollbackRestartOld: 'Reiniciar o contêiner original {{ .name }}' ContainerRollbackRemoveReplacement: 'Remover o contêiner substituto com falha {{ .name }}' ContainerRollbackRenameOld: 'Restaurar o nome do contêiner original {{ .name }}' ContainerRollbackReconnectOld: 'Restaurar as redes do contêiner original {{ .name }}' # tarefa - imagem ImageBuild: 'Construção de imagem' ImagePull: 'Puxar imagem' ImageRepoAuthFromDB: 'Obter informações de autenticação do repositório do banco de dados' ImagePush: 'Enviar imagem' ImageRenameTag: 'Modificar tag de imagem' ImageNewTag: 'Nova tag de imagem {{ .name }}' ComposeCreate: 'Criar uma composição' # tarefa - site BackupNginxConfig: 'Fazer backup do arquivo de configuração do OpenResty do site' CompressFileSuccess: 'Diretório compactado com sucesso, compactado para {{ .name }}' CompressDir: 'Diretório de compressão' DeCompressFile: 'Descompacte o arquivo {{ .name }}' ErrCheckValid: 'Falha na verificação do arquivo de backup, {{ .name }}' Rollback: 'Reversão' websiteDir: 'Diretório de sites' RecoverFailedStartRollBack: 'Falha na recuperação, iniciar reversão' AppBackupFileIncomplete: 'O arquivo de backup está incompleto e não contém os arquivos app.json ou app.tar.gz' AppAttributesNotMatch: 'O tipo ou nome do aplicativo não corresponde' # alerta ErrAlertMethodNotSupported: 'Esta versão não oferece suporte a este método de alerta' ErrAlertSync: 'Erro de sincronização de informações de alarme, verifique e' # tarefa - runtime ErrInstallExtension: 'Já existe uma tarefa de instalação em andamento, aguarde a conclusão da tarefa' # modelo de e-mail de alerta PanelAlertTitle: 'Notificação de Alerta do Painel' TestAlertTitle: 'E-mail de Teste - Verificar Conectividade de E-mail' TestAlert: 'Este é um e-mail de teste para verificar se sua configuração de envio de e-mails está correta.' LicenseExpirationAlert: 'Seu Painel {{ .node }}{{ .ip }}, a licença expirará em {{ .day }} dias. Faça login no painel para obter detalhes.' CronJobFailedAlert: 'Seu Painel {{ .node }}{{ .ip }}, a execução da tarefa agendada {{ .name }} falhou. Faça login no painel para obter detalhes.' ClamAlert: 'Seu Painel {{ .node }}{{ .ip }}, a tarefa de verificação de vírus detectou {{ .num }} arquivos infectados. Faça login no painel para obter detalhes.' WebSiteAlert: 'Seu Painel {{ .node }}{{ .ip }}, {{ .num }} sites expirarão em {{ .day }} dias. Faça login no painel para obter detalhes.' SSLAlert: 'Seu Painel {{ .node }}{{ .ip }}, {{ .num }} certificados SSL expirarão em {{ .day }} dias. Faça login no painel para obter detalhes.' DiskUsedAlert: 'Seu Painel {{ .node }}{{ .ip }}, o uso do disco {{ .name }} atingiu {{ .used }}. Faça login no painel para obter detalhes.' ResourceAlert: 'Seu Painel {{ .node }}{{ .ip }}, a taxa de uso médio do {{ .name }} nos últimos {{ .time }} minutos é {{ .used }}. Faça login no painel para obter detalhes.' PanelVersionAlert: 'Seu Painel {{ .node }}{{ .ip }}, a versão mais recente do painel está disponível para atualização. Faça login no painel para obter detalhes.' PanelPwdExpirationAlert: 'Seu Painel {{ .node }}{{ .ip }}, a senha do painel expirará em {{ .day }} dias. Faça login no painel para obter detalhes.' CommonAlert: 'Seu Painel {{ .node }}{{ .ip }}, {{ .msg }}. Faça login no painel para obter detalhes.' NodeExceptionAlert: 'Seu Painel {{ .node }}{{ .ip }}, {{ .num }} nós estão anormais. Faça login no painel para obter detalhes.' LicenseExceptionAlert: 'Seu Painel {{ .node }}{{ .ip }}, {{ .num }} licenças estão anormais. Faça login no painel para obter detalhes.' SSHAndPanelLoginAlert: 'Seu Painel {{ .node }}{{ .ip }}, o login {{ .name }} a partir de {{ .loginIp }} é anormal. Faça login no painel para obter detalhes.' # disco DeviceNotFound: 'Dispositivo {{ .name }} não encontrado' DeviceIsMounted: 'Dispositivo {{ .name }} está montado desmonte primeiro' PartitionDiskErr: 'Falha ao particionar, {{ .err }}' FormatDiskErr: 'Falha ao formatar disco, {{ .err }}' MountDiskErr: 'Falha ao montar disco, {{ .err }}' XfsNotFound: 'Sistema de arquivos xfs não detectado instale xfsprogs primeiro' # terminal TerminalAIBlockedRiskyCommand: 'Comando de risco bloqueado: {{ .command }}' TerminalAIThinking: 'A IA está pensando...' TerminalAIReadyToExecute: 'Pensamento concluído, pressione Enter para executar (duração: {{ .duration }}, token: {{ .tokens }})' TerminalAIRequestFailed: 'Falha na solicitação de AI: {{ .err }}' # gateway de IA ErrAIProxyServiceNotInstalled: 'O serviço {{ .name }} não está instalado' ErrAIProxyModelAccountNotFound: 'Conta de modelo {{ .id }} não encontrada' ErrAIProxyModelMapRequired: 'Este campo é obrigatório.' ErrAIProxyModelMapInvalid: 'O mapeamento de modelos deve ser um objeto JSON válido: {{ .err }}' ErrAIProxyModelMapEmpty: 'O mapeamento de modelos não pode estar vazio' ErrAIProxyModelMapEmptyExternalModel: 'O mapeamento de modelos contém um modelo solicitado vazio' ErrAIProxyModelMapEmptyUpstreamModel: 'O modelo upstream de {{ .model }} não pode estar vazio' AIProxyUserFallback: 'Usuário excluído (ID: {{ .id }})' AIProviderBailian: 'Alibaba Cloud Model Studio' AIProviderBailianCodingPlan: 'Alibaba Cloud Model Studio Coding Plan' AIProviderArk: 'Volcengine Ark' AIProviderArkCodingPlan: 'Volcengine Ark Coding Plan'