Files
1Panel/core/i18n/lang/pt-BR.yaml
Yuki Guoandssongliu d658395188 feat(sync): sync php extended template (#14299)
* feat(sync): sync php extended template

* fix(i18n): complete resource sync translations

---------

Co-authored-by: ssongliu <sloooop1x@gmail.com>
2026-11-05 15:06:12 +08:00

601 lines
44 KiB
YAML

# erros básicos
ErrInvalidParams: 'Requisição inválida: {{ .detail }}'
ErrTokenParse: 'Erro de token: {{ .detail }}'
ErrInitialPassword: 'Senha original incorreta'
ErrInternalServer: 'Erro interno: {{ .detail }}'
ErrInternalServerKey: "Erro interno do servidor:"
ErrRecordExist: 'Registro já existe'
ErrRecordNotFound: 'Registro não encontrado'
ErrStructTransform: 'Erro de conversão: {{ .detail }}'
ErrNotSupportType: 'Tipo não suportado: {{ .name }}'
ErrDemoEnvironment: 'Indisponível em demo'
ErrCmdTimeout: 'Comando expirou'
ErrPortInUsed: "A porta {{ .name }} já está em uso"
ErrFileNotFound: "Arquivo {{ .name }} não encontrado"
ErrReqFailed: "{{.name}} solicitação falhou: {{ .err }}"
# requisição e entrada de segurança
ErrNoSuchHost: "Servidor solicitado não encontrado {{ .err }}"
ErrHttpReqNotFound: "Recurso solicitado não encontrado {{ .err }}"
ErrHttpReqFailed: "Falha na requisição {{ .err }}"
ErrHttpReqTimeOut: "Tempo de requisição esgotado {{ .err }}"
ErrCreateHttpClient: "Falha ao criar a requisição {{ .err }}"
ErrProxy: 'Requisição falhou: {{ .detail }}'
ErrProxySetting: "Informação do servidor proxy indisponível {{ .err }}, verifique e tente novamente"
ErrEntrance: "Erro nas informações de entrada de segurança, por favor, verifique e tente novamente"
ErrEntranceFormat: "A entrada de segurança {{ .name }} não é suportada atualmente. Por favor verifique e tente novamente"
# login e segurança
ErrNotLogin: 'Sem sessão: {{ .detail }}'
ErrSessionDataNotFound: "A sessão atual expirou"
ErrSessionDataFormat: "O formato dos dados da sessão atual está anormal"
ErrPasswordExpired: 'Senha expirada: {{ .detail }}'
ErrLoginLocked: "Muitas tentativas falharam. O login foi bloqueado temporariamente por 5 minutos."
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 }}'
ErrApiConfigKeyExpired: "A chave API expirou. Ajuste sua data de expiração ou substitua a chave no gerenciamento de chaves API do painel."
ErrPasskeyDisabled: "Passkey requer HTTPS habilitado"
ErrPasskeyNotConfigured: "Nenhum Passkey configurado"
ErrPasskeyLimit: "Limite de Passkeys atingido (máximo 5)"
ErrPasskeySession: "Sessão do Passkey expirada ou inválida"
ErrPasskeyDuplicate: "Passkey já existe"
ErrPasskeyVerify: "Falha na verificação do Passkey"
ErrOIDCNotEnabled: "A autenticação OIDC não está habilitada"
ErrOIDCConfigInvalid: "A configuração OIDC é inválida"
ErrOIDCConfigChanged: "A configuração OIDC foi alterada; inicie a autenticação novamente"
ErrOIDCDiscoveryFailed: "Falha ao descobrir a configuração do Provider OIDC"
ErrOIDCIssuerMismatch: "O Issuer OIDC não corresponde ao Issuer configurado"
ErrOIDCUnsupportedPKCE: "O Provider OIDC não oferece suporte ao método PKCE necessário"
ErrOIDCUnsupportedSigningAlgorithm: "O algoritmo de assinatura OIDC não é suportado"
ErrOIDCInvalidState: "O estado de login OIDC é inválido ou já foi utilizado"
ErrOIDCLoginExpired: "A solicitação de login OIDC expirou; tente novamente"
ErrOIDCTokenExchange: "Falha ao trocar o código de autorização OIDC"
ErrOIDCTokenValidation: "Falha ao validar o Token OIDC"
ErrOIDCUserInfoValidation: "Falha ao validar as informações do usuário OIDC"
ErrOIDCNameClaimMissing: "O Claim de nome de usuário OIDC configurado está ausente ou é inválido"
ErrOIDCNameConflictLocal: "O nome de usuário OIDC entra em conflito com um usuário local"
ErrOIDCNameConflictLDAP: "O nome de usuário OIDC entra em conflito com um usuário LDAP"
ErrOIDCNameConflictOIDC: "O nome de usuário OIDC entra em conflito com outra identidade OIDC"
ErrOIDCDefaultRoleInvalid: "A função padrão configurada para OIDC não está disponível"
ErrOIDCPrivateAddressDenied: "O endereço do Endpoint OIDC não é permitido pela política de segurança de rede"
ErrOIDCTLSValidation: "Falha na validação do certificado TLS OIDC"
ErrOIDCTestExpired: "O teste OIDC no navegador expirou; execute-o novamente"
ErrOIDCLocalCredentialsReadonly: "Os nomes de usuário e as senhas OIDC são gerenciados pelo Provider de identidade e não podem ser alterados localmente."
ErrOIDCPasswordExpirationUnsupported: "Os usuários OIDC não utilizam a política local de expiração de senha."
ErrOIDCInternal: "Ocorreu um erro interno na autenticação OIDC. Tente novamente mais tarde."
# usuário e permissão
ErrNoSuchUser: "Informações do usuário não encontradas. Verifique e tente novamente."
ErrToMaster: "Este usuário não tem permissão para executar esta operação no nó principal. Verifique e tente novamente."
ErrToNode: "Este usuário não tem permissão para executar esta operação neste nó. Verifique e tente novamente."
ErrRBAC: "Permissões de usuário insuficientes. Não é possível executar esta operação. Verifique e tente novamente."
ErrNoneNode: "Este usuário não tem permissões de nenhum nó. Contate o administrador ou verifique e tente novamente."
ErrOnlySuperAdmin: "Somente superadministradores podem usar este recurso."
ErrRolePresetCannotDelete: "Funções predefinidas do sistema não podem ser excluídas"
ErrRolePresetCannotUpdate: "Funções predefinidas do sistema não podem ser atualizadas"
ErrRoleBoundToUser: "Esta função já está vinculada a usuários e não pode ser excluída"
ErrRolePresetCannotBind: "Funções predefinidas do sistema não podem ser atribuídas a usuários"
ErrNodeAdminMasterForbidden: "Permissões de administrador de nó não podem ser adicionadas ao nó principal"
ErrSuperAdminCannotDelete: "Usuários superadministradores não podem ser excluídos"
ErrGroupIsDefault: "Grupo padrão não pode ser excluído"
ErrGroupIsInUse: "O grupo está em uso e não pode ser excluído."
# licença
LicenseCheck: 'Verificar se a licença está disponível'
ErrLicenseInUsed: 'Esta licença já está vinculada. Por favor, verifique e tente novamente'
ErrLicenseExpired: 'Esta licença expirou. Por favor, verifique e tente novamente'
ErrLicense: "Formato de licença inválido, por favor verifique e tente novamente"
ErrLicenseCheck: "Falha na verificação da licença, por favor verifique e tente novamente"
ErrXpackVersion: "Falha na verificação da licença, esta licença é restrita a uma versão específica, por favor verifique e tente novamente"
ErrLicenseSave: "Falha ao salvar as informações da licença {{ .err }}, por favor tente novamente"
ErrLicenseSync: "Falha ao sincronizar as informações da licença, nenhuma informação foi encontrada no banco de dados"
ErrLicenseExist: "Este registro de licença já existe. Você pode ir diretamente para a página de licenças para vincular nós."
ErrXpackNotFound: "Este recurso requer a edição Business. Importe uma licença em Configurações do Painel > Licença."
ErrXpackExceptional: "Este recurso requer a edição Business. Sincronize o status da licença em Configurações do Painel > Licença."
ErrXpackLost: "A licença atingiu o limite de tentativas. Acesse Configurações do Painel > Licença e execute uma sincronização manual."
ErrEnterpriseLicenseRequired: "A licença da edição Enterprise não foi importada. Importe uma licença primeiro."
ErrDeviceLost: "Arquivos necessários para a verificação da licença estão faltando, por favor verifique e tente novamente"
ErrDeviceErr: "O ambiente atual não corresponde ao ambiente de importação da licença. Por favor, edite a licença e reimporte"
ErrXpackTimeout: "Requisição expirou, a conexão de rede pode estar instável, por favor tente novamente mais tarde"
ErrUnbindMaster: "Foram encontrados nós na gestão de nós, remova-os primeiro e tente novamente"
ErrFreeNodeLimit: "O limite de nós que podem ser adicionados foi atingido. Compre e tente novamente."
ErrNodeBound: "Esta licença já está vinculada a outro nó, por favor verifique e tente novamente"
ErrNodeBoundDelete: "Esta licença está vinculada e não suporta operações de exclusão. Por favor, verifique e tente novamente"
ErrNodeBoundLimit: "O nó gratuito atual atingiu seu limite, por favor verifique e tente novamente"
ErrLicenseFree: "Nós gratuitos só podem ser usados quando a licença está devidamente vinculada a um nó. Por favor verifique e tente novamente"
ErrLicenseUnbind: "Ainda há nós da edição Community vinculados a esta licença. Desvincule-os em Configurações do Painel > Licença e tente novamente."
ErrLicenseBindCount: "A quantidade de nós gratuitos da nova licença é menor que a quantidade de nós da edição Community vinculados atualmente. Verifique e tente novamente."
ErrNoSuchNode: "As informações deste nó não foram encontradas, por favor verifique e tente novamente"
ErrNodeUnbind: "Nó fora do escopo da licença detectado, por favor verifique e tente novamente"
ErrNodeBind: "Este nó já está vinculado a uma licença, por favor verifique e tente novamente"
ErrNodeLocalRollback: "O nó principal não suporta rollback direto. Por favor, execute manualmente o comando '1pctl restore' para fazer o rollback"
ErrIntlLicense: "A versão atual ainda não oferece suporte à importação de licença da edição internacional. Em breve"
InvalidRequestBodyType: "Formato do corpo da requisição inválido. Verifique se o conteúdo está no formato correto e tente novamente"
InvalidLicenseCodeType: "Formato do código de licença inválido. Verifique e tente novamente"
LicenseNotFoundType: "Licença não encontrada. Não há registros correspondentes no sistema para a licença fornecida. Verifique e tente novamente"
LicenseRevokedType: "A licença solicitada foi revogada e não pode mais ser usada. Verifique e tente novamente"
LicenseExpiredType: "A licença expirou. Renove-a ou reimporte-a na seção Configurações do Painel - Licença antes de tentar novamente"
LicenseProductMismatchType: "A licença não corresponde ao produto ou serviço solicitado"
InvalidAssigneeType: "Informações do usuário ou dispositivo alvo para atribuição de licença inválidas. Verifique e tente novamente"
LicenseUsageNotFoundType: "Nenhum registro de uso encontrado. Esta licença ainda não foi ativada ou usada. Verifique e tente novamente"
LicenseUsageLimitExceededType: "Esta licença já está vinculada a outro nó. Verifique e tente novamente"
# nó e cluster
MasterNode: "Nó Mestre"
Node: "Nó"
ErrLocalDelete: "O nó local não pode ser excluído"
ErrMasterDelete: "Não é possível excluir o nó mestre, exclua os nós escravos primeiro."
ClusterNameIsExist: "O nome do cluster já existe."
AppStatusUnHealthy: "A aquisição do status do aplicativo está anormal, verifique o status dos nós de instalação na lista de nós."
MasterNodePortNotAvailable: "A verificação de conectividade da porta {{ .port }} do nó {{ .name }} falhou, verifique as configurações de firewall/grupo de segurança e o status do nó mestre."
ClusterMasterNotExist: "O nó mestre do cluster está desconectado, por favor, exclua os nós filhos."
# aplicativo
CustomAppStoreFileValid: "O pacote da loja de aplicativos deve estar no formato .tar.gz"
AppBackup: 'Backup de aplicação'
AppBackupPush: 'Transferir arquivo de backup de aplicação {{.file}} para o nó {{ .name }}'
ErrSourceTargetSame: 'O nó de origem e o nó de destino não podem ser os mesmos'
AppInstall: 'Instalar aplicação {{ .name }} no nó {{ .targetNode }}'
AppInstallCheck: 'Verificar ambiente de instalação da aplicação'
# backup
ErrBackupInUsed: 'Conta de backup em uso por tarefa'
ErrBackupCheck: 'Teste de conexão falhou: {{ .err }}'
ErrBackupLocal: "A conta de backup do servidor local não suporta essa operação"
ErrBackupPublic: "A conta de backup detectada não é pública, por favor verifique e tente novamente"
ErrOSSConn: "Não foi possível obter a versão mais recente, verifique a conectividade externa do servidor."
MvBackup: "Mover dados para diretório de backup"
# alerta
ErrAlertSync: "Erro na sincronização das informações de alerta, verifique e tente novamente"
# gateway de IA
ErrAIProxyUserGroupIsDefault: "O grupo de usuários padrão não pode ser excluído."
ErrAIProxyUserGroupInUse: "O grupo de usuários está em uso e não pode ser excluído."
ErrAIProxyUserGroupExists: "O nome do grupo de usuários já existe."
ErrAIProxyBackendAccountExists: "Este serviço de modelo já foi importado para o pool de contas do AI Gateway."
ErrAIProxyModelGroupInUse: "O grupo de modelos está em uso e não pode ser excluído."
ErrAIProxyModelGroupExists: "O nome do grupo de modelos já existe."
ErrAIProxySensitiveGroupInUse: "O grupo de palavras sensíveis está em uso e não pode ser excluído."
ErrAIProxySensitiveGroupExists: "O nome do grupo de palavras sensíveis já existe."
AIProxyContentPolicyViolation: "Desculpe, não posso processar esta solicitação porque o conteúdo pode não estar de acordo com a política de conteúdo. Revise-o e tente novamente."
AIBenchmarkRun: "Executar benchmark de IA"
# tarefa
TaskStart: "{{ .name }} tarefa iniciada [START]"
TaskEnd: "{{ .name }} tarefa finalizada [COMPLETED]"
TaskFailed: "{{ .name }} tarefa falhou"
TaskTimeout: "{{ .name }} tempo esgotado"
TaskSuccess: "{{ .name }} tarefa bem-sucedida"
TaskRetry: "Iniciando tentativa {{ .name }}"
SubTaskSuccess: "{{ .name }} bem-sucedido"
SubTaskFailed: "{{ .name }} falhou: {{ .err }}"
TaskInstall: "Instalar"
TaskUpgrade: "Atualizar"
TaskSync: 'Sincronizar'
TaskSyncForNode: "Sincronizar Dados do Nó"
TaskBackup: "Fazer cópia de segurança"
TaskPush: "Enviar"
TaskRsync: "Sincronizar"
SuccessStatus: "{{ .name }} bem-sucedido"
FailedStatus: "{{ .name }} falhou {{ .err }}"
Start: "Iniciar"
SubTask: "Subtarefa"
Skip: "Ignorar erros e continuar..."
Success: "Sucesso"
# tarefas de roteamento inteligente do gateway de IA
AIProxySmartRouteCreateTask: "Criar amostras de roteamento inteligente do gateway de IA"
AIProxySmartRouteCreateSubTask: "Criar amostras e gerar vetores"
AIProxySmartRouteCreateStart: "Iniciando a criação de amostras, {{ .total }} no total"
AIProxySmartRouteCreateFailed: "[{{ .current }}/{{ .total }}] Falha na criação: type={{ .type }} label={{ .label }} error={{ .err }}"
AIProxySmartRouteCreateSuccess: "[{{ .current }}/{{ .total }}] Criada: sampleID={{ .id }} type={{ .type }} label={{ .label }}"
AIProxySmartRouteCreateComplete: "Criação concluída: {{ .success }} com sucesso, {{ .failed }} com falha"
AIProxySmartRouteCreateError: "Falha ao criar amostras: {{ .failed }} com falha, último erro"
AIProxySmartRouteRebuildTask: "Reconstruir vetores de amostras de roteamento inteligente do gateway de IA"
AIProxySmartRouteRebuildSubTask: "Reconstruir vetores de amostras"
AIProxySmartRouteEmbeddingRequired: "O endpoint e o modelo de Embedding são obrigatórios"
AIProxySmartRouteRebuildStart: "Iniciando a reconstrução dos vetores, {{ .total }} no total"
AIProxySmartRouteRebuildFailed: "[{{ .current }}/{{ .total }}] Falha na reconstrução: sampleID={{ .id }} type={{ .type }} label={{ .label }} error={{ .err }}"
AIProxySmartRouteRebuildSuccess: "[{{ .current }}/{{ .total }}] Reconstruída: sampleID={{ .id }} type={{ .type }} label={{ .label }}"
AIProxySmartRouteRebuildComplete: "Reconstrução concluída: {{ .success }} com sucesso, {{ .failed }} com falha"
AIProxySmartRouteRebuildError: "Falha ao reconstruir vetores de amostras: {{ .failed }} com falha, último erro"
# tarefa em lote do agente
BatchInstallAgent: "Instalar agentes em lote"
DispatchAgentInstallTasks: "Distribuir tarefas de instalação de agentes"
BatchUpgradeAgent: "Atualizar agentes em lote"
DispatchAgentUpgradeTasks: "Distribuir tarefas de atualização de agentes"
BatchAgentInstallDispatchFailed: "Nó {{ .node }} falhou ao distribuir a tarefa de instalação de {{ .agentType }} Message: {{ .err }}"
BatchAgentInstallSubmitted: "Nó {{ .node }} distribuiu a tarefa de instalação de {{ .agentType }} com sucesso!"
BatchAgentUpgradeDispatchFailed: "Nó {{ .node }} falhou ao distribuir a tarefa de atualização de {{ .agentType }} Message: {{ .err }}"
BatchAgentUpgradeAlreadyLatest: "Nó {{ .node }} {{ .agent }} já está na versão de destino, ignorado"
BatchAgentUpgradeSubmitted: "Nó {{ .node }} distribuiu a tarefa de atualização de {{ .agent }} com sucesso!"
BatchAgentUpgradeFailed: "Nó {{ .node }} falhou ao distribuir a tarefa de atualização de {{ .agent }} Message: {{ .err }}"
BatchInstallAgentSkill: "Distribuir Skill em lote"
DispatchAgentSkillInstallTasks: "Distribuir tarefas de instalação de Skill"
BatchAgentSkillDispatchFailed: "Nó {{ .node }} falhou ao distribuir {{ .skill }} para {{ .target }} Message: {{ .err }}"
BatchAgentNoAgentsFound: "Nó {{ .node }} não encontrou agentes {{ .agentType }}, ignorado"
BatchAgentSkillSkipped: "Nó {{ .node }} {{ .agent }} ignorado Message: {{ .msg }}"
BatchAgentSkillInstallSubmitted: "Nó {{ .node }} distribuiu a tarefa de instalação de {{ .skill }} para {{ .agent }} com sucesso!"
BatchAgentSkillInstallFailed: "Nó {{ .node }} falhou ao distribuir a tarefa de instalação de {{ .skill }} para {{ .agent }} Message: {{ .err }}"
BatchAgentOperateDispatchFailed: "Nó {{ .node }} falhou ao distribuir a tarefa {{ .operate }} de {{ .agentType }} Message: {{ .err }}"
BatchAgentOperateSkipped: "Nó {{ .node }} {{ .agent }} ignorado Message: {{ .msg }}"
BatchAgentOperateSubmitted: "Nó {{ .node }} distribuiu a tarefa {{ .operate }} de {{ .agent }} com sucesso!"
BatchAgentOperateFailed: "Nó {{ .node }} falhou ao distribuir a tarefa {{ .operate }} de {{ .agent }} Message: {{ .err }}"
BatchStartAgent: "Iniciar agentes em lote"
DispatchAgentStartTasks: "Distribuir tarefas de início de agentes"
BatchStopAgent: "Parar agentes em lote"
DispatchAgentStopTasks: "Distribuir tarefas de parada de agentes"
BatchRestartAgent: "Reiniciar agentes em lote"
DispatchAgentRestartTasks: "Distribuir tarefas de reinício de agentes"
BatchDeleteAgent: "Excluir agentes em lote"
DispatchAgentDeleteTasks: "Distribuir tarefas de exclusão de agentes"
AgentOperateStart: "Iniciar"
AgentOperateStop: "Parar"
AgentOperateRestart: "Reiniciar"
AgentOperateDelete: "Excluir"
# tarefa de aplicativo e habilidade
PushAppInstallTaskToNode: "Enviar tarefa de instalação de aplicativo para o nó [{{ .name }}]"
AppInstallTask: "Tarefa de instalação de aplicativo"
PushAppFailed: "Falha ao enviar tarefa de instalação de aplicativo"
SkillHubInstallTask: "Instalar skill [{{ .name }}]"
SkillHubInstallToTarget: "Instalar skill [{{ .name }}] no destino [{{ .target }}]"
# biblioteca de scripts
ScriptLibrary: "Biblioteca de Scripts"
RemoteScriptLibrary: "Biblioteca de Scripts Remota"
ScriptSyncSkip: "A biblioteca de scripts atual já é a versão mais recente"
DownloadData: "Baixando arquivo data.yaml da biblioteca de scripts"
DownloadPackage: "Baixando pacote da biblioteca de scripts"
AnalyticCompletion: "Análise concluída, agora sincronizando com o banco de dados..."
# sincronização de nós
SyncNode: "Sincronizar dados para o nó {{ .name }}"
LocalName: "O nome 'local' é usado apenas para identificação local do sistema"
SyncPackageData: "Empacotar dados de sincronização"
SyncPackageEncrypt: "Criptografia de pacote de dados"
SyncRequest: "Solicitar API de sincronização de nó"
SyncFailedRetry: "Tempo esgotado na sincronização de dados do nó (tentativa {{ .index }}), tentando novamente..."
SyncFailed: "Falha na sincronização, por favor sincronize manualmente na lista de nós"
SyncSystemProxy: "Configurações de Proxy do Sistema"
SyncScripts: "Biblioteca de Scripts"
SyncBackupAccounts: "Contas de Backup"
SyncAlertSetting: "Configurações de Alerta"
SyncCustomApp: "Aplicativo Personalizado"
SyncLanguage: "Idioma do Sistema"
SyncEdition: "Região de Operação"
# atualização de nós
NodeUpgrade: "Atualizar nó {{ .name }}"
UpgradeCheck: "Verificar atualizações do nó"
UpgradeCheckLocal: "Nós locais não suportam atualização em lote, pulando..."
UpgradeCheckLatest: "O nó já está na versão mais recente, pulando..."
NewSSHClient: "Inicializando a conexão SSH"
BackupBeforeUpgrade: "Fazer backup dos dados antes da atualização"
UploadUpgradeFile: "Distribuir arquivos necessários para a atualização"
RestartAfterUpgrade: "Iniciar serviço após a atualização"
LoadAutoUpgradeNodesFailed: "Falha ao carregar nós de atualização automática, erro: {{ .err }}"
AutoUpgradeNodes: "Nós de atualização automática: {{ .nodes }}"
UpdateAutoUpgradeNodesStatusFailed: "Falha ao atualizar o status dos nós de atualização automática, erro: {{ .err }}"
# adicionar nó
MasterData: "Dados do Nó Mestre"
LoadSftpClient: "Carregar Cliente SFTP"
PackageMasterData: "Gerar pacote de backup do nó mestre"
UploadBackup: "Carregar dados de backup"
TaskAddNode: "Adicionar nó"
LoadNodeArch: "Obter informações de arquitetura do nó"
LoadNodeArchDetail: "Arquitetura do nó mestre detectada: {{ .local }}, arquitetura do nó filho: {{ .node }}"
LoadNodeUpgradeDetail: "Usando o diretório de instalação histórico da versão v1: {{ .baseDir }}, porta de escuta do serviço: {{ .port }}"
SyncAgentBaseInfo: "Sincronizando dados básicos do nó"
GenerateSSLInfo: "Gerando informações SSL do nó"
ConnInfoNotMatch: "As informações de conexão não coincidem"
MakeAgentPackage: "Gerando pacote de instalação do nó"
PrepareNodePackage: "Preparar o pacote existente no nó secundário"
PrepareNodePackageDetail: "Usar o pacote existente no nó secundário: {{ .name }}"
SyncNodeConfig: "Sincronizar a configuração do nó"
ErrNodePackagePath: "Informe o caminho absoluto do arquivo do pacote no nó secundário"
ErrNodePackageFile: "Falha ao processar o arquivo do pacote {{ .name }}: {{ .err }}"
ErrNodePackageMember: "O pacote contém uma entrada inválida ou duplicada: {{ .name }}"
ErrNodePackageMismatch: "O pacote deve corresponder à versão {{ .version }} do nó principal e à arquitetura {{ .arch }} do nó secundário"
ErrNodePackageMissing: "Arquivo necessário ausente no pacote: {{ .name }}"
ErrNodePackageVersion: "A versão {{ .version }} do pacote não corresponde à versão {{ .expected }} do nó principal"
ErrNodePackageArch: "A arquitetura do executável Agent não corresponde à arquitetura {{ .arch }} do nó secundário"
SendAgent: "Enviando pacote de instalação do nó"
StartService: "Iniciando serviço"
NoBackupNode: "O nó de backup está vazio atualmente. Selecione um nó de backup para salvar e tente novamente"
# sincronização de arquivos e imagens do nó
LocalNodeIpFailed: "Falha ao obter o IP do nó mestre. Edite o nó mestre e adicione o endereço IP e as informações de autenticação SSH."
HandlePrivateKey: "Processar a chave privada do nó"
HandlePublicKey: "Processar a chave pública do nó"
ExchangeFile: "Iniciar a sincronização de {{ .sourcePath }} do nó {{ .source }} para o nó {{ .dest }}:{{ .destPath }}"
NodeFile: "Arquivo do nó"
ImageSyncTaskName: "Sincronizar {{ .count }} imagens"
SSLSyncTaskName: "Sincronizar {{ .count }} certificados"
AppSyncTaskName: "Sincronizar o aplicativo {{ .name }}"
SSLSyncToNode: "Enviar o certificado [{{ .cert }}] para o nó [{{ .node }}]"
ImageSyncSave: "Salvar a imagem {{ .image }}"
ImageSyncSaveTags: "Salvar as tags da imagem {{ .tags }}"
ImageSyncToNode: "Sincronizar a imagem {{ .image }} com o nó {{ .node }}"
ImageSyncLoad: "Carregar a imagem {{ .image }} no nó {{ .node }}"
ImageSyncClean: "Limpar os arquivos temporários da imagem {{ .image }}"
ImageSyncNoTag: "A imagem {{ .image }} não tem tag e será salva pelo ID da imagem"
ImageSyncFrontendTagsIgnored: "Nenhuma tag foi encontrada para a imagem {{ .image }} no nó de origem. As tags do frontend foram ignoradas."
ImageSyncHandlePrivateKey: "Processar a chave privada do nó de sincronização de imagens"
ImageSyncHandlePublicKey: "Processar a chave pública do nó de sincronização de imagens"
ImageSyncTransfer: "Iniciar a transferência do arquivo temporário da imagem: {{ .source }}:{{ .sourcePath }} -> {{ .dest }}:{{ .destPath }}"
# linha de comando
SudoHelper: "Por favor, use {{ .cmd }} ou altere para o usuário root"
UsernameNeed: "A edição Enterprise deve especificar --username"
DBConnErr: "Erro: Falha ao inicializar a conexão com o banco de dados, {{ .err }}"
SystemVersion: "versão: "
SystemMode: "modo: "
# linha de comando - aplicativo
AppVersion: "Versão do aplicativo"
AppCommands: "Comandos relacionados ao aplicativo"
AppInit: "Inicializar aplicativo"
AppKeyVal: "Chave do aplicativo (somente suporta inglês)"
AppCreateFileErr: "Falha ao criar o arquivo {{ .name }} {{ .err }}"
AppCreateDirErr: "Falha ao criar a pasta {{ .name }} {{ .err }}"
AppMissKey: "Chave do aplicativo ausente, use -k para especificar"
AppMissVersion: "Versão do aplicativo ausente, use -v para especificar"
AppVersionExist: "A versão já existe"
AppCreateSuccessful: "Criação bem-sucedida"
AppWriteErr: "Falha ao escrever no arquivo {{ .name }} {{ .err }}"
# linha de comando - IP de escuta
ListenIPCommands: "Trocar IP de escuta"
ListenIPv4: "Escutando em IPv4"
ListenIPv6: "Escutando em IPv6"
ListenChangeSuccessful: "Troca bem-sucedida Agora escutando em {{ .value }}"
# linha de comando - redefinir
ResetCommands: "Redefinir informações do sistema"
ResetMFA: "Cancelar autenticação de dois fatores do 1Panel"
ResetHttps: "Cancelar login https do 1Panel"
ResetEntrance: "Cancelar entrada segura do 1Panel"
ResetIPs: "Cancelar restrições de IP autorizado do 1Panel"
ResetDomain: "Cancelar vinculação de domínio do 1Panel"
ResetPasskey: "Redefinir passkeys do 1Panel"
# linha de comando - usuário
UserList: "Obter a lista de usuários do 1Panel"
UserTableName: "Nome"
UserTableMFAStatus: "Status MFA"
UserTableSuperAdmin: "Superadministrador"
UserTableCreatedAt: "Criado em"
UserEmptyList: "Nenhum usuário encontrado"
UserInfo: "Obter informações do painel"
UserInfoAddr: "Endereço do painel: "
UserInfoPassHelp: "Dica: Para alterar a senha, você pode executar o comando: "
# linha de comando - restaurar
RestoreCommands: "Fazer rollback do serviço e dos dados do 1Panel"
RestoreNoSuchFile: "Nenhum arquivo de rollback encontrado"
RestoreStep1: "(1/5) Iniciando o rollback do serviço e dos dados do 1Panel a partir do diretório {{ .name }}..."
RestoreStep2: "(2/5) Rollback do binário do 1Panel concluído"
RestoreStep3: "(3/5) Rollback dos scripts do 1Panel concluído"
RestoreStep4: "(4/5) Rollback do serviço do 1Panel concluído"
RestoreStep5: "(5/5) Rollback dos dados do 1Panel concluído"
RestoreSuccessful: "Rollback concluído. Revertido para {{ .version }}. Reiniciando o serviço..."
# linha de comando - atualizar
UpdateCommands: "Atualizar informações do painel"
UpdateUser: "Atualizar informações do usuário"
UpdatePassword: "Atualizar senha do usuário"
UpdatePort: "Atualizar porta do painel"
UpdateUserNull: "Erro: usuário está vazio"
UpdateUserBlank: "Erro: o usuário contém espaços"
UpdateUserFormat: "Erro: Formato de usuário inválido Apenas suporta inglês, chinês, números e _, comprimento de 3-30."
UpdateUserErr: "Erro: Falha ao atualizar o usuário, {{ .err }}"
UpdateSuccessful: "Atualização bem-sucedida"
UpdateUserResult: "Usuário: {{ .name }}"
UpdatePasswordRead: "Erro: Falha ao ler as informações da senha do usuário, {{ .err }}"
UpdatePasswordNull: "Erro: A senha do usuário está vazia"
UpdateUPasswordBlank: "Erro: A senha do usuário contém espaços"
UpdatePasswordFormat: "Erro: A senha do usuário suporta apenas letras, números e caracteres especiais (@#$%*_,.?), com comprimento de 8-30."
UpdatePasswordLen: "Erro: Por favor, insira uma senha com mais de 6 caracteres"
UpdatePasswordRe: "Confirmar senha:"
UpdatePasswordErr: "Erro: Falha ao atualizar a senha do usuário, {{ .err }}"
UpdatePasswordSame: "Erro: As duas senhas não correspondem, por favor, verifique e tente novamente"
UpdatePasswordResult: "Senha do usuário: {{ .name }}"
UpdatePortFormat: "Erro: O número da porta deve estar entre 1 e 65535"
UpdatePortUsed: "Erro: O número da porta já está em uso, por favor, verifique e tente novamente"
UpdatePortErr: "Erro: Falha ao atualizar a porta do painel, {{ .err }}"
UpdatePortResult: "Porta do painel: {{ .name }}"
UpdatePortFirewallAdd: "Falha ao adicionar regra de porta ao firewall, {{ .err }}, por favor, adicione manualmente a porta {{ .name }} às regras do firewall."
UpdatePortFirewallDel: "Erro: Falha ao excluir a porta do firewall, {{ .err }}"
UpdatePortFirewallReload: "Falha ao recarregar o firewall, {{ .err }}, por favor, recarregue o firewall manualmente."
# aplicativo móvel
ErrVerifyToken: 'Erro de verificação do token, por favor, reinicie e escaneie novamente.'
ErrInvalidToken: 'Token inválido, por favor, reinicie e escaneie novamente.'
ErrExpiredToken: 'O código QR não é mais válido. Gere um novo e escaneie novamente.'
# exportação de comandos
Name: "Nome"
Command: "Comando"
# LDAP
ErrLDAPConnectionTest: "Falha no teste de conexão LDAP. Verifique o endereço do servidor, a conta de vinculação e as configurações de rede."
ErrLDAPLoginTest: "Falha no teste de login LDAP. Verifique o nome de usuário e a senha."
LDAPConnectionTestSuccess: "Teste de conexão LDAP concluído com sucesso."
ErrLDAPDirectorySearch: "Falha ao ler os usuários LDAP. Verifique as configurações de conexão e pesquisa."
ErrLDAPConfigLoad: "Falha ao carregar a configuração LDAP."
ErrLDAPConfigSave: "Falha ao salvar a configuração LDAP."
ErrLDAPURLInvalid: "O endereço do servidor LDAP deve usar ldap:// ou ldaps:// e incluir um host válido."
ErrLDAPBindDNRequired: "O DN de vinculação é obrigatório."
ErrLDAPBindPasswordRequired: "A senha de vinculação é obrigatória."
ErrLDAPUserOURequired: "A OU de usuários é obrigatória."
ErrLDAPConnectTimeoutRange: "O tempo limite da conexão deve estar entre 1 e 120 segundos."
ErrLDAPSearchPageSizeRange: "O tamanho da página da consulta LDAP deve estar entre 1 e 10000."
ErrLDAPResultPageSizeRange: "O tamanho da página de resultados não pode exceder 200."
ErrLDAPAttributeMapOnlyName: "O mapeamento de atributos aceita apenas o campo name."
ErrLDAPNameAttributeRequired: "O atributo LDAP mapeado para name é obrigatório."
ErrLDAPAttributeNameInvalid: "O mapeamento contém um nome de atributo LDAP inválido."
ErrLDAPUserFilterRequired: "O filtro de usuários é obrigatório."
ErrLDAPUserFilterInvalid: "O filtro de usuários não é um filtro LDAP válido."
ErrLDAPAttributeMapObject: "O mapeamento de atributos deve ser um objeto JSON válido."
ErrLDAPImportModeInvalid: "O modo de importação deve ser usuários selecionados ou todos os usuários."
ErrLDAPImportSelectionRequired: "Selecione pelo menos um usuário LDAP para importar."
ErrLDAPImportSelectionInvalid: "Os usuários LDAP selecionados são inválidos ou não existem mais. Leia o diretório novamente."
ErrLDAPConfigChanged: "A configuração LDAP foi alterada. Leia o diretório e visualize a importação novamente."
ErrLDAPRoleRequired: "Selecione uma função para os novos usuários LDAP."
ErrLDAPImportPlanIncomplete: "Um plano de importação LDAP incompleto não pode ser executado."
ErrLDAPQueryTokenInvalid: "O resultado da consulta LDAP expirou. Leia o diretório novamente."
ErrLDAPPlanTokenInvalid: "A visualização da importação LDAP expirou. Visualize a importação novamente."
ErrLDAPOperationFailed: "A operação LDAP falhou. Tente novamente."
ErrLDAPEntryIdentityMissing: "A entrada LDAP não possui um ID estável ou nome de usuário."
ErrLDAPDuplicateExternalID: "O LDAP retornou IDs de usuário duplicados."
ErrLDAPUsernameConflict: "O nome de usuário já é usado por outro usuário."
ErrLDAPUsernameSourceConflict: "O nome de usuário já é usado por um usuário local ou outra fonte de autenticação."
ErrLDAPUsernameConcurrentConflict: "O nome de usuário foi ocupado por outro usuário durante a importação."
ErrLDAPLocalCredentialsReadonly: "Os nomes de usuário e senhas LDAP são gerenciados pelo LDAP e não podem ser alterados localmente."
ErrLDAPPasswordExpirationUnsupported: "Usuários LDAP não usam a política local de expiração de senha."
ErrLDAPSyncSourceDisabled: "Ative o AD/LDAP antes de ativar ou executar a sincronização."
ErrLDAPSyncConfigSave: "Falha ao salvar as configurações de sincronização LDAP."
ErrLDAPSyncSchedule: "Falha ao atualizar o agendamento da sincronização LDAP."
ErrLDAPSyncCronInvalid: "Insira uma expressão Cron válida de cinco campos."
ErrLDAPSyncWeekdayInvalid: "Selecione um dia da semana válido."
ErrLDAPSyncCronRequired: "Insira uma expressão Cron."
ErrLDAPSyncScheduleTypeInvalid: "Selecione um tipo de agendamento de sincronização válido."
ErrLDAPSyncTimeInvalid: "Insira um horário de execução válido."
ErrLDAPSyncRunning: "Uma tarefa de sincronização LDAP já está em execução."
ErrLDAPSyncDirectoryIncomplete: "O LDAP retornou um resultado incompleto da consulta completa. Nenhum status de usuário foi alterado."
ErrLDAPSyncFailed: "Falha na sincronização de usuários LDAP."
LDAPSyncSuccess: "A sincronização de usuários LDAP foi concluída com sucesso."
ErrSAML2NotEnabled: "A autenticação SAML2 não está ativada."
ErrSAML2ConfigInvalid: "A configuração do SAML2 é inválida."
ErrSAML2ConfigChanged: "A configuração do SAML2 foi alterada. Inicie a autenticação novamente."
ErrSAML2PanelOriginMissing: "Insira uma URL pública válida do 1Panel contendo apenas o esquema, o host e uma porta opcional."
ErrSAML2MetadataInvalid: "Os metadados do IdP estão ausentes ou são inválidos."
ErrSAML2MetadataURLInvalid: "A URL de metadados do IdP ou um endpoint contido neles não é permitido."
ErrSAML2MetadataFetch: "Falha ao carregar os metadados do IdP."
ErrSAML2MetadataCertificate: "Os metadados do IdP não contêm um certificado de assinatura utilizável."
ErrSAML2KeyPairInvalid: "A chave privada e o certificado do SP são inválidos ou não correspondem."
ErrSAML2NameAttributeMissing: "O atributo de nome de usuário SAML2 configurado está ausente ou é inválido."
ErrSAML2DefaultRoleInvalid: "A função padrão configurada para o SAML2 não está disponível."
ErrSAML2SLOUnavailable: "O IdP não fornece um serviço de logout único compatível."
ErrSAML2TestExpired: "O teste do SAML2 expirou. Execute-o novamente."
ErrSAML2LoginExpired: "A solicitação de login do SAML2 expirou. Tente novamente."
ErrSAML2InvalidState: "O estado de login do SAML2 é inválido ou já foi utilizado."
ErrSAML2RequestBuild: "Falha ao criar a solicitação SAML2."
ErrSAML2ResponseInvalid: "A resposta SAML2 é inválida."
ErrSAML2SignatureInvalid: "A assinatura SAML2 é inválida."
ErrSAML2Replay: "A mensagem SAML2 já foi utilizada."
ErrSAML2NameIDMissing: "O NameID do SAML2 está ausente ou é inválido."
ErrSAML2SessionIndexMissing: "O SessionIndex do SAML2 está ausente ou é inválido."
ErrSAML2NameConflictLocal: "O nome de usuário SAML2 entra em conflito com um usuário local."
ErrSAML2NameConflictLDAP: "O nome de usuário SAML2 entra em conflito com um usuário LDAP."
ErrSAML2NameConflictOIDC: "O nome de usuário SAML2 entra em conflito com um usuário OIDC."
ErrSAML2NameConflictSAML2: "O nome de usuário SAML2 entra em conflito com outra identidade SAML2."
ErrSAML2Internal: "Ocorreu um erro interno durante a autenticação SAML2. Tente novamente mais tarde."
ErrSAML2LogoutExpired: "A solicitação de logout do SAML2 expirou."
ErrSAML2LogoutInvalid: "A mensagem de logout do SAML2 é inválida."
ErrSAML2LocalCredentialsReadonly: "Os nomes de usuário e as senhas SAML2 são gerenciados pelo provedor de identidade e não podem ser alterados localmente."
ErrSAML2PasswordExpirationUnsupported: "Os usuários SAML2 não usam a política local de expiração de senha."
# API key management
ErrAPIKeyConflict: "A chave API foi alterada. Atualize e tente novamente; ao repetir a criação, use os parâmetros originais"
ErrAPIKeyNameExists: "Já existe uma chave API não revogada com esse nome"
ErrAPIKeyNotFound: "A chave API não existe ou não pertence ao usuário atual"
ErrAPIKeyAppBindingDisabled: "Esta chave API não permite vincular o APP por código QR"
ErrAPIKeyTerminalUpgradeRequired: "Não foi possível verificar o suporte à autorização de terminal por chave API. Verifique a conexão do nó e atualize o Agent antes de tentar novamente."
LocalAppSyncDispatch: "Enviar sincronização de apps locais"
LocalAppSyncDispatchNode: "Enviar sincronização de apps locais para {{.node}} (tarefa do nó: {{.taskID}})"
ErrLocalAppSyncDisabled: "A sincronização de apps locais entre nós está desativada"
# MCP connection document
MCPDocumentTitle: "Instruções de configuração da conexão MCP do 1Panel"
MCPDocumentIntro: "Entregue este arquivo a um agente de IA e peça que realize a configuração descrita. Este arquivo contém o Token completo; mantenha-o privado."
MCPDocumentTaskTitle: "Tarefa de configuração para o agente de IA"
MCPDocumentTask: "Configure o MCP do 1Panel no ambiente atual para o cliente indicado abaixo e verifique a conexão e a descoberta de ferramentas. Use os parâmetros do bloco de configuração abaixo."
MCPDocumentClientCodex: "Cliente de destino: Codex. Primeiro confirme o escopo da configuração e o CODEX_HOME efetivo. Use o config.toml em uso (padrão: ~/.codex/config.toml) e mescle o TOML abaixo na entrada mcp_servers correspondente."
MCPDocumentClientClaude: "Cliente de destino: Claude. Primeiro confirme a versão real do cliente. O JSON abaixo se destina a clientes compatíveis com a configuração MCP por HTTP. Use um local de configuração ou método de gerenciamento compatível com essa versão; não insira a configuração HTTP remota em uma entrada que aceite apenas stdio."
MCPDocumentClientGeneric: "Cliente de destino: cliente MCP genérico. Primeiro identifique o cliente em uso e o escopo da configuração. Se houver dúvida, pergunte ao usuário; não adivinhe o local do arquivo. Mescle os parâmetros de conexão abaixo conforme a sintaxe do cliente."
MCPDocumentSteps: |-
1. Confirme que o cliente de destino aceita Streamable HTTP e cabeçalhos de requisição Bearer. Se a versão não oferecer suporte, explique o motivo.
2. Leia a configuração existente e faça uma cópia de segurança. Mescle a única entrada de servidor abaixo, preservando as demais configurações MCP e do cliente. Se o nome já existir, atualize somente essa entrada.
3. Grave os valores de URL e Authorization exatamente como fornecidos. Não gere outro Token nem altere as permissões do painel ou o estado do serviço. Não inclua o Token no histórico de comandos, em logs, respostas ou no Git.
4. Mantenha a verificação de certificados habilitada para HTTPS. Para uma CA privada, solicite ao usuário uma CA confiável; não confie automaticamente no certificado do servidor nem desative a verificação TLS. Use HTTP apenas em redes confiáveis; configure HTTPS antes de passar por uma rede não confiável.
5. Recarregue pelo cliente e verifique a inicialização MCP e tools/list. Não execute tools/call nem operações de escrita. Se não for possível recarregar, informe que é necessária uma nova sessão ou reinicialização. Salvar o arquivo não comprova que a conexão funcionou.
6. Informe o cliente, o local da configuração, o nome do servidor, os resultados da conexão e da descoberta de ferramentas e as pendências. Oculte o Token.
MCPDocumentConfigTitle: "Configuração da conexão"
MCPDocumentNotes: "O servidor do painel verifica as permissões de ferramentas, nós e da conta atual em cada requisição. Após gerar um novo Token, atualize a configuração do cliente. O acesso será negado se a credencial for desativada, revogada ou expirar."
MCPDocumentHTTPWarning: "Este endereço usa HTTP sem criptografia. Configure HTTPS antes de utilizá-lo em uma rede não confiável."
# MCP management
ErrMCPConflict: "Conflito de dados do MCP. Atualize e confira."
ErrMCPSettingsChanged: "Configurações alteradas. Atualize e confira antes de salvar."
ErrMCPCredentialChanged: "Credencial alterada. Atualize e confira antes de enviar."
ErrMCPCredentialRevoked: "Credencial revogada. Crie outra."
ErrMCPCredentialNameExists: "Nome de credencial já existe. Escolha outro."
ErrMCPRequestReused: "Conflito na solicitação. Feche e reabra esta janela."
ErrMCPInstallationRunning: "Instalação em andamento. Consulte o log de instalação."
ErrMCPServiceOperationRunning: "Operação do serviço em andamento. Atualize ao terminar."
ErrMCPEndpointManagedByWebsite: "O site gerencia este endereço. Altere-o nas configurações do site."
ErrMCPWebsiteConfigurationExists: "Há um vínculo ou operação pendente. Desmarque “Vincular site após a instalação”."
ErrMCPWebsiteAlreadyBound: "Site já vinculado. Gerencie ou remova o vínculo atual."
ErrMCPWebsiteNotBound: "Nenhum site vinculado. Atualize antes de vincular."
ErrMCPWebsiteMissing: "O site original não existe. Remova o vínculo inválido e vincule novamente."
ErrMCPWebsiteOperationPending: "Operação do site não confirmada. Atualize e repita a operação original."
ErrMCPWebsiteDomainConflict: "A combinação de domínio e porta está em uso. Altere o domínio ou a porta."
ErrMCPWebsiteOwnershipChanged: "A propriedade do site mudou. Confira o site e o vínculo."
ErrMCPWebsiteDomainChanged: "O domínio mudou. Confira-o e atualize o estado do vínculo."
ErrMCPWebsiteDirectoryChanged: "O diretório ou as permissões mudaram. Restaure-os antes de tentar novamente."
ErrMCPWebsiteProxyModified: "Conflito de proxy. Restaure a configuração do proxy MCP."
ErrMCPWebsiteModified: "O protocolo ou as configurações mudaram. Confira e atualize."
ErrMCPWebsiteRequestChanged: "O registro da operação não corresponde. Atualize e confira antes de iniciar outra."
ErrMCPWebsiteProxyNotLoaded: "Proxy MCP não carregado. Confira as configurações do site e o OpenResty."
ErrMCPWebsiteStateUnconfirmed: "Estado do site não confirmado. Confira o site e o OpenResty e atualize."
ErrMCPPolicyChanged: "Catálogo ou permissões alterados. Atualize e confira antes de salvar."
ErrMCPCatalogUnavailable: "Catálogo indisponível. Confira o estado do serviço."
ErrMCPDisabled: "O serviço MCP não está habilitado."
ErrMCPSecretKeyUnavailable: "Criptografia de credenciais indisponível. Tente mais tarde."
ErrMCPSecretInvalid: "Não foi possível descriptografar o Token. Gere-o novamente."
ErrMCPCredentialInactive: "A credencial está desabilitada, expirada ou revogada."
ErrMCPAuditUnavailable: "Auditoria indisponível. Confira primeiro o resultado da operação."
ErrMCPEndpointUnavailable: "Configure primeiro um endereço MCP válido."
ErrMCPWebsitePending: "Resultado do site não confirmado. Atualize e repita a operação original."
ErrMCPWebsiteUnavailable: "Vínculo indisponível. Confira o site e o OpenResty."
ErrMCPWebsiteServiceRequired: "Instale primeiro o serviço 1Panel MCP."
ErrMCPWebsiteHTTPPortRequired: "Use a porta HTTP do OpenResty para vincular com HTTPS."
# MCP installation tasks
PanelMCP: "1Panel MCP"
MCPInstallPrepare: "Verificar o serviço MCP atual"
MCPInstallPullImage: "Verificar e baixar a imagem"
MCPInstallCatalog: "Validar o contrato das ferramentas"
MCPInstallStarting: "Iniciar o contêiner e verificar sua integridade"
MCPInstallSaving: "Salvar a configuração do serviço"
MCPInstallCompleted: "Instalação do serviço MCP concluída"
MCPInstallRollback: "A instalação falhou; restaurar o serviço MCP anterior"
MCPInstallBindWebsite: "Criar o site vinculado"
MCPInstallWebsiteFailed: "Serviço instalado; vínculo do site falhou. Resolva nas configurações do serviço."
MCPInstallInterrupted: "O reinício do painel interrompeu a instalação. Confira o estado do serviço."
MCPInstallFailed: "Instalação falhou. Confira o Docker, a imagem e os logs do painel."
MCPInstallRecoveryFailed: "Instalação falhou e a recuperação está incompleta. Confira o estado do serviço."
MCPInstallLocalImage: "A imagem já existe localmente; ignorar o download"
MCPInstallVerifyImage: "Validar a versão da imagem e o contrato do serviço gerenciado"
MCPInstallVerifiedImage: "A imagem passou na validação"
PHPExtensionsNoTargets: "Não restam nós de destino após excluir o nó de origem"
PHPExtensionsSyncTask: "Sincronizar modelo de extensões PHP [{{ .name }}]"
PHPExtensionsSyncSkipped: "O nó [{{ .node }}] já possui um modelo idêntico; ignorado"
MCPInstallCleanup: "Limpar o contêiner anterior"
MCPInstallOldContainerRemoved: "Contêiner anterior removido"
MCPInstallOldImageRemoved: "Imagem anterior removida"
MCPInstallOldImageKept: "Imagem anterior mantida"
MCPInstallOldImageRetained: "A imagem anterior está referenciada ou tem outras tags; ela foi mantida."
MCPInstallCleanupSkipped: "O contêiner anterior não existe; ignorar a limpeza da imagem."
MCPInstallCleanupFailed: "O serviço MCP foi atualizado, mas a limpeza dos recursos antigos não foi concluída. Verifique-os manualmente."