# 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 }}'
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."

# máquina virtual
ErrVMNotFound: "Máquina virtual não existe"
ErrVMAlreadyExists: "Máquina virtual já existe"
ErrVMImageAlreadyExists: "A imagem da máquina virtual já existe: {{ .detail }}"
ErrVMStoragePathInUse: "O caminho do pool de armazenamento já é usado por [{{ .name }}]"
ErrVMHelperNotFound: "1panel-kvm não encontrado"
ErrVMBridgeManaged: "O nome da bridge já é gerenciado pelo libvirt ou Docker"
ErrVMNetworkInUse: "A rede está em uso e não pode ser excluída"
ErrVMStorageInUse: "O pool de armazenamento está em uso e não pode ser excluído"
ErrVMStorageNameCannotChange: "O nome do pool de armazenamento não pode ser alterado"
ErrVMStoragePathCannotChange: "O caminho do pool de armazenamento não pode ser alterado"
ErrVMRunning: "Máquina virtual está em execução"
ErrVMLibvirtConnect: "Falha ao conectar ao libvirt: {{ .detail }}"
ErrVMPermission: "Sem permissão para operar a máquina virtual: {{ .detail }}"
ErrVMNetworkNotFound: "Rede da máquina virtual não existe: {{ .detail }}"
ErrVMInvalidPath: "Caminho da máquina virtual inválido: {{ .detail }}"
ErrVMInvalidInput: "Parâmetro da máquina virtual inválido: {{ .detail }}"
ErrVMCommandFailed: "Falha no comando da máquina virtual: {{ .err }}"
VMCreateTask: "Criar máquina virtual [{{ .name }}]"
VMCreateFromTemplateTask: "Criar máquina virtual [{{ .name }}] a partir do modelo"
VMUpdateTask: "Atualizar máquina virtual [{{ .name }}]"
VMRenameTask: "Renomear máquina virtual [{{ .name }}] para [{{ .newName }}]"
VMDeleteTask: "Excluir máquina virtual [{{ .name }}]"
VMTemplateCreateTask: "Salvar máquina virtual [{{ .name }}] como modelo [{{ .template }}]"
VMTemplateDeleteTask: "Excluir modelo de máquina virtual [{{ .name }}]"
VMForceDeleteMetadataOnly: "1panel-kvm não encontrado, excluindo à força apenas os metadados da máquina virtual [{{ .name }}]"
VMForceDeleteMetadataAfterLibvirtFailed: "Falha ao excluir a máquina virtual [{{ .name }}] do libvirt, excluindo metadados à força: {{ .err }}"
VMForceDeleteDiskFailed: "Falha ao excluir à força o arquivo de disco da máquina virtual [{{ .path }}]: {{ .err }}"
VMForceDeleteDiskSuccess: "Arquivo de disco da máquina virtual [{{ .path }}] excluído à força"
VMSnapshotCreateTask: "Criar snapshot [{{ .snapshot }}] para a máquina virtual [{{ .vm }}]"
VMSnapshotCreateStep: "Criar snapshot da máquina virtual [{{ .snapshot }}]"
VMSnapshotRecoverTask: "Restaurar snapshot [{{ .snapshot }}] da máquina virtual [{{ .vm }}]"
VMSnapshotRecoverStep: "Restaurar snapshot da máquina virtual [{{ .snapshot }}]"
VMSnapshotDeleteTask: "Excluir snapshot [{{ .snapshot }}] da máquina virtual [{{ .vm }}]"
VMSnapshotDeleteStep: "Excluir snapshot da máquina virtual [{{ .snapshot }}]"

# 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: "Esta conta de modelo já foi importada 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ó"
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 token expirou, por favor, reinicie 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."
