{
  "product": "YSK Server",
  "tagline": "AI-centric, security-first Linux server management platform",
  "company": "YSK Limited",
  "agents": {
    "title": "Tempos de execução do Agente AI",
    "body": "Instalação e supervisão de OpenClaw / Hermes / IonClaw; todas as chamadas de ferramenta passam pela lista de permissões e aprovação.",
    "status": {
      "running": "Correndo",
      "activating": "Começando",
      "stuck": "Comece preso",
      "connected": "On-line",
      "registered": "Somente registrado",
      "stale": "Obsoleto",
      "disconnected": "Off-line",
      "not_installed": "Não instalado",
      "failed": "Fracassado",
      "error": "Erro",
      "unknown": "Não investigado",
      "fallback": "Desconhecido"
    },
    "cmdStatus": {
      "queued": "Na fila",
      "acked": "Acusado",
      "done": "Feito",
      "error": "Erro"
    },
    "activatingStuckHint": "Ativação por mais de 5 minutos — tratada como falha. Verifique o diário.",
    "noOnlineAgents": "Nenhum agente on-line",
    "journal": "jornal",
    "writeUnit": "Unidade de gravação",
    "writeUnitConfirm": "Escreva a unidade systemd para {{kind}} em /etc/systemd. O serviço não foi iniciado ou ativado.",
    "liveN": "{{count}} on-line",
    "registeredOnly": "Somente registrado",
    "awaitProbe": "Aguardando investigação",
    "runtimes": "Tempos de execução",
    "running": "Correndo",
    "liveAgents": "Agentes on-line",
    "fleet": "Frota",
    "aiTasks": "Tarefas de IA",
    "expBanner": "Experimental.",
    "expBody": "Inscrição ≠ on-line. Operações reais usam CLI:",
    "expDocs": "Documentos: repositório",
    "expEdge": "No limite:",
    "expPayload": "; recomendação de carga útil de comando",
    "fleetCan": "O que a frota pode fazer",
    "fleetCanDesc": "Não é uma lista vazia – recursos reais de plano de controle para nós de borda",
    "capRegister": "Cadastre-se",
    "capRegisterD": "Grava a lista do plano de controle (status “somente registrado”) — o processo pode não estar em execução",
    "capCommand": "Comando",
    "capCommandD": "Predefinições CLI (prontidão/host/projetos…) ou personalizadas; edge puxa, executa ysk-server e acks",
    "capHistory": "Histórico de comandos",
    "capHistoryD": "enfileirado/concluído/erro, código de saída, belo resultado JSON",
    "capDelete": "Excluir",
    "capDeleteD": "Remove sessão e mensagens relacionadas",
    "capStatus": "Status",
    "capStatusD": "Registrado apenas → online (batimento cardíaco) → obsoleto (>60 anos sem batimento cardíaco)",
    "statusFlowTitle": "Fluxo de status",
    "statusFlow": "Registrado apenas → online → obsoleto (>60 anos) → offline (desconectado). O filtro “Offline” está desconectado.",
    "colSession": "UUID da sessão",
    "copySession": "Copiar UUID de sessão para cluster/CLI --session",
    "staleFor": "Invisível {{age}}",
    "commandTitle": "Enfileirar um comando para esta sessão",
    "historyTitleShort": "Abrir histórico de comandos (somente leitura)",
    "fleetTitle": "Frota ({{count}})",
    "fleetDesc": "Registro do plano de controle · registrado ≠ nó online",
    "registerPlus": "+ Registrar agente",
    "colId": "ID",
    "colStatus": "Status",
    "colGroup": "Grupo",
    "colLastSeen": "Visto pela última vez",
    "command": "Comando",
    "history": "História",
    "emptyAgents": "Nenhum agente cadastrado",
    "emptyAgentsDesc": "Registre-se na lista ou aguarde o autorregistro dos processos de borda",
    "historyTitle": "Histórico de comandos · {{id}}",
    "historyDesc": "enfileirado até que o nó seja puxado;",
    "refreshHistory": "Atualizar histórico",
    "colTime": "Tempo",
    "finishedAt": "Concluído {{at}}",
    "colCommand": "Comando",
    "colResult": "Resumo do resultado",
    "colExit": "Saída",
    "hasResult": "Tem resultado",
    "emptyCmds": "Nenhum comando ainda",
    "emptyCmdsDesc": "Fila com “Comando”; permanece na fila até que o agente de borda esteja online",
    "edgeOnlineTitle": "Como os agentes de borda ficam online",
    "edgeOnlineDesc": "Após o registro do painel, o nó deve executar o loop de saída para comandos heartbeat/pull",
    "controlPlaneApi": "API do plano de controle:",
    "controlPlaneHint": "(deve ser acessível; use o endereço real do painel na produção)",
    "queueNote": "Sem um processo de ponta, o “Command” ainda funciona: ele fica na fila até que o agente fique online.",
    "runtimeTitle": "Tempos de execução de IA",
    "runtimeDesc": "Caminhos e unidades de sonda;",
    "emptyRuntime": "Nenhum resultado de sondagem ainda",
    "emptyRuntimeDesc": "Atualize para carregar tempos de execução ou investigue individualmente",
    "pathExists": "Existe",
    "pathMissing": "Não instalado",
    "unitUnknown": "{{unit}} · desconhecido",
    "unitFallback": "unidade",
    "path": "Caminho",
    "probe": "Sondar",
    "install": "Instalar",
    "recentOps": "Operações recentes",
    "registerTitle": "Registrar agente",
    "registerDesc": "Grava apenas a lista do plano de controle; não significa que o nó está online",
    "register": "Cadastre-se",
    "agentId": "ID do agente",
    "agentIdHint": "ID exclusivo, por ex. edge-1 ou gateway de escritório",
    "group": "Grupo",
    "groupHint": "Para filtros de zoneamento/lista",
    "registerNote": "O status mostra “somente registrado” até que o nó execute o agente de saída e as pulsações.",
    "cmdTitle": "Comando · {{id}}",
    "cmdTitlePlain": "Comando",
    "cmdDesc": "Na fila; O agente de borda extrai, executa e confirma (permanece na fila enquanto está offline)",
    "enqueue": "Enfileirar",
    "cmdPreset": "Comando (CLI primeiro)",
    "cmdTypeAria": "Tipo de comando",
    "customCli": "CLI personalizada",
    "cliArgs": "Argumentos CLI",
    "cliArgsHint": "Não inclua o servidor ysk; por exemplo diário de registros --unit nginx.service",
    "cmdNote": "A execução do agente Edge ysk-server executa CLI JSON localmente (adiciona --json). As alterações no host ainda precisam de YSK_EXECUTE=1 no limite. Veja o código de saída e JSON no histórico.",
    "resultTitle": "Resultado do comando · saída {{code}}",
    "resultTitlePlain": "Resultado do comando",
    "codeComment": "# Conceito: registrar → loop de pulsação → comandos pull → ack\n# Biblioteca: ysk-server-core runOutboundAgent/agentCycle",
    "resultOuter": "Exterior: confirmação de borda (exitCode/stderr). Resultado interno:",
    "deleteTitle": "Excluir {{id}}?",
    "deleteTitlePlain": "Excluir agente?",
    "deleteDesc": "O histórico de comandos relacionados também será removido.",
    "fact": {
      "kind": "Tipo",
      "name": "Nome",
      "status": "Status",
      "unitActive": "Serviço",
      "unitName": "Unidade",
      "pathExists": "O caminho existe",
      "installPath": "Caminho de instalação"
    },
    "installBlocked": "Não é possível concluir a instalação no painel de administração",
    "registeredMsg": "Registrado {{id}} (apenas plano de controle; o nó deve executar o agente de saída e a pulsação para ficar online)",
    "registerFailed": "Falha no registro",
    "removedFleet": "Registro de frota removido",
    "enqueuedMsg": "Comando na fila {{id}}… (executado após a extração do nó)",
    "enqueueFailed": "Falha no enfileiramento",
    "loadCommandsFailed": "Falha ao carregar comandos",
    "probedMsg": "Sondado {{kind}}",
    "probeFailed": "Falha na investigação",
    "wroteUnitMsg": "Escreveu configurações da unidade {{kind}}",
    "writeFailed": "Falha na gravação",
    "installedMsg": "Instalado {{kind}}",
    "installIncomplete": "Instalação incompleta",
    "badgeDryRun": "ensaio",
    "badgeBlocked": "bloqueado",
    "labelStderr": "stderr",
    "labelAckCli": "confirmação + CLI JSON",
    "labelStdoutBody": "Corpo padrão da CLI",
    "resultOuterHint": "O resultado externo é CLI --json stdout.",
    "noteAllowlist": "As chamadas de ferramenta do agente devem passar pela lista de permissões.",
    "noteRbacCap": "A função do agente é limitada a write-low."
  },
  "ai": {
    "status": {
      "completed": "Concluído",
      "done": "Feito",
      "executed": "Executado",
      "failed": "Fracassado",
      "error": "Erro",
      "rejected": "Rejeitado",
      "pending": "Pendente",
      "planned": "Planejado",
      "approved": "Aprovado",
      "running": "Correndo",
      "cancelled": "Cancelado"
    },
    "activeCount": "{{count}} ativo",
    "taskCount": "{{count}} tarefas",
    "tasks": "Tarefas",
    "active": "Ativo",
    "tasksTab": "Tarefas ({{count}})",
    "playbooksTab": "Manuais ({{count}})",
    "queueTitle": "Fila de tarefas",
    "queueSub": "Selecione para visualizar o plano e as etapas · nenhuma ação extra no estado terminal",
    "createTaskPlus": "+ Criar tarefa",
    "emptyTasks": "Nenhuma tarefa ainda",
    "emptyTasksDesc": "Crie uma tarefa da lista ou execute um manual",
    "browsePlaybooks": "Navegue pelos manuais",
    "noPrompt": "(sem aviso)",
    "stepsOf": "Etapas {{done}}/{{total}}",
    "noPlanSummary": "(sem resumo do plano)",
    "pipelineAria": "Fases da tarefa",
    "phase": {
      "plan": "Plano",
      "approve": "Análise",
      "run": "Executar",
      "done": "Feito"
    },
    "approveRun": "Aprovar e executar",
    "cancelTask": "Cancelar tarefa",
    "terminalHint": "Tarefa concluída – crie uma nova tarefa ou execute um manual",
    "stepsTitle": "Etapas ({{count}})",
    "noSteps": "Nenhuma etapa ainda",
    "needsApproval": "Precisa de aprovação",
    "noApproval": "Sem aprovação",
    "reject": "Rejeitar",
    "selectTask": "Selecione uma tarefa",
    "selectTaskDesc": "Escolha uma tarefa à esquerda para ver o plano e as etapas",
    "playbooksTitle": "Manuais",
    "playbooksSub": "Operações predefinidas · em execução cria uma tarefa e alterna para Tarefas",
    "countItems": "{{count}}",
    "searchPh": "Nome/descrição",
    "noPlaybooks": "Nenhum manual correspondente",
    "noPlaybooksDesc": "Alterar palavras-chave ou limpar pesquisa",
    "run": "Correr",
    "createTitle": "Criar tarefa de IA",
    "createDesc": "Planejamento ≠ executado. As ferramentas permanecem na lista de permissões.",
    "generatePlan": "Gerar plano",
    "promptLabel": "Instrução de linguagem natural",
    "promptHint": "por exemplo verifique a carga do host; ou status nginx",
    "promptPh": "Descreva o que você deseja...",
    "createHint": "Próximo: Aprove e execute nos detalhes da tarefa ou rejeite etapas individuais."
  },
  "apache": {
    "pageDesc": "Sites Apache (projetos PHP + autônomos)",
    "pillSites": "{{count}} sites",
    "pillSitesSplit": "{{n}} sites · {{leftover}} sobras",
    "listTitle": "Locais ({{count}})",
    "emptyTitle": "Nenhum site",
    "createSite": "+ Criar site",
    "createTitle": "Criar site",
    "editTitle": "Editar site",
    "deleteTitle": "Excluir site?",
    "deleteDesc": "Remover este site Apache?",
    "stopSites": "{{n}} site(s) deixarão de responder HTTP.",
    "colServerName": "Nome do servidor",
    "colSource": "Fonte",
    "colKind": "Tipo",
    "colTarget": "Alvo",
    "colStatus": "Status",
    "filterSource": "Filtro de origem",
    "sourceAll": "Todos",
    "sourceProject": "Projeto",
    "sourceStandalone": "Autônomo",
    "sourceArtifact": "No disco",
    "sourceOrphan": "Sobras",
    "orphanSite": "Projeto desaparecido",
    "openProject": "Abrir projeto",
    "kindLabel": "Tipo",
    "kindProxy": "Procurador",
    "kindStatic": "Estático",
    "kindPhp": "PHP",
    "upstreamLabel": "A montante",
    "rootLabel": "Raiz do documento",
    "sslLabel": "SSL",
    "sslTerminatedUpstream": "TLS termina na frente do Nginx",
    "apply": "Aplicar",
    "notInstalled": "Apache não instalado",
    "globalSettings": "Configurações globais",
    "siteSettings": "Configurações do site",
    "saveApply": "Salvar e aplicar",
    "settingsSaved": "Salvo",
    "setGzip": "Gzip",
    "setShowVersion": "Mostrar versão",
    "setHttp2": "HTTP/2",
    "setBody": "Corpo máximo",
    "setKeepalive": "Manter ativo",
    "setAccessLog": "Registro de acesso",
    "logOn": "Sobre",
    "logOff": "Desligado",
    "setForceHttps": "Forçar HTTPS",
    "setHsts": "HSTS",
    "setIndexes": "Listagem de diretório",
    "bodyInherit": "Global",
    "conflict": "Conflito de nome",
    "conflictHint": "O mesmo ServerName possui múltiplas fontes. Mantenha a linha projeto/autônomo e remova os discos órfãos.",
    "removeArtifact": "Remover resíduo",
    "removeArtifactTitle": "Remover conf residual?",
    "removeArtifactDesc": "Exclua esta configuração Apache não reivindicada do diretório de dados do painel e desative o gêmeo do sistema quando possível. Não exclui o projeto.",
    "removeArtifactHint": "Apaga só este conf residual em disco. Não elimina o projeto.",
    "previewConf": "Pré-visualização da configuração",
    "cleanupConflicts": "Limpar resíduos de conflito",
    "cleanupConflictsTitle": "Limpar todos os resíduos de conflito?",
    "cleanupConflictsDesc": "Remova todos os artefatos no disco que entrem em conflito com um projeto ou ServerName independente. As linhas do projeto são mantidas.",
    "artifactRemovedOk": "Configuração residual removida"
  },
  "applyStatus": {
    "draft": "Rascunho",
    "written": "Escrito (dados do painel)",
    "planned": "Em andamento",
    "applied": "Aplicado no host",
    "failed": "Fracassado",
    "pendingExecute": "Precisa de execução do host",
    "uploaded": "Enviado",
    "issued": "Publicado",
    "missing": "Arquivo ausente"
  },
  "audit": {
    "recent": "Auditoria recente",
    "lastN": "Último {{n}}",
    "actions": {
      "protection.change": "Configurações de proteção alteradas",
      "auth.locale": "Idioma da IU alterado",
      "auth.login": "Conectado",
      "auth.logout": "Desconectado",
      "system.firewall.allow_port": "Firewall permitir porta",
      "system.firewall.deny": "Firewall nega IP",
      "system.firewall.apply": "Aplicação de firewall",
      "project.deploy": "Implantação do projeto",
      "project.create": "Projeto criado",
      "project.delete": "Projeto excluído",
      "ssl.request": "Solicitação SSL",
      "ssl.upload": "Carregamento SSL",
      "system.firewall.enable": "Ativar/desativar firewall",
      "system.firewall.delete_rule": "Excluir regra de firewall",
      "system.firewall.delete_deny": "Remover IP de negação permanente",
      "db.adminer.apply": "Projeto de navegador de banco de dados",
      "project.goLive": "Início do projeto",
      "project.publish": "Publicar Nginx",
      "project.suspend": "Suspender projeto",
      "software.install": "Instalar software",
      "software.update": "Atualizar software",
      "backup.restore": "Restauração de backup",
      "backup.run": "Execução de backup",
      "backup.delete": "Backup excluído"
    }
  },
  "backups": {
    "settingsSaved": "Configurações de backup salvas",
    "saveFailed": "Falha ao salvar",
    "downloadStarted": "Download iniciado: {{name}}",
    "nothingToDo": "Nada para fazer",
    "tarOkSideFail": "tar OK / etapas laterais tiveram problemas",
    "success": "Sucesso",
    "hasFailures": "Tem falhas",
    "notYet": "Ainda não",
    "enabled": "Habilitado",
    "needPassword": "Senha ausente",
    "off": "Desligado",
    "lastRun": "Último {{label}}",
    "backupFiles": "Arquivos de backup",
    "projects": "Projetos",
    "lastAll": "Por último",
    "latestFile": "Arquivo mais recente",
    "remote": "Remoto",
    "withBackups": "Projetos com backups",
    "ops": "Ações",
    "remoteExclude": "Remoto/excluir",
    "about": "Sobre",
    "noBackups": "Ainda não há backups",
    "noBackupsDesc": "Execute “Fazer backup de todos os projetos” ou Fazer backup em um detalhe do projeto",
    "goOps": "Ir para ações",
    "projectShort": "Projeto",
    "download": "Download",
    "preview": "Visualização",
    "restoreWeb": "Restaurar web",
    "restoreFull": "Restauração completa",
    "restoreFullTitle": "Substitua arquivos de projeto e bancos de dados deste arquivo — digite o nome do arquivo para confirmar",
    "restoreWebTitle": "Restaure arquivos de sites apenas deste arquivo",
    "previewTitle": "Visualizar restauração sem escrever",
    "partialSkipped": "Parcial – alguns projetos ignorados",
    "delete": "Excluir",
    "opsTitle": "Ações",
    "opsHint": "0 projetos ou todos ignorados = sucesso;",
    "noProjects": "(sem projetos)",
    "successRatio": "· {{ok}}/{{total}} ok",
    "summary": "Resumo{{extra}}",
    "backupFailed": "Falha no backup",
    "backupDone": "Backup concluído",
    "backupAll": "Faça backup de todos os projetos",
    "controlPlane": "Plano de controle de backup",
    "controlPlaneDone": "Backup do plano de controle concluído",
    "cronCmd": "Comando: ysk-server backup all --data-dir…",
    "cronHint": "Agendar POST com install=true carrega o crontab do host quando EXECUTE está ativado;",
    "dailyCronRegistered": "Horário cadastrado diariamente às 03:00",
    "registerDailyCron": "Registrar programação diária (+ instalar)",
    "resticNeedConfig": "Habilite restic e defina a senha em Remoto/excluir primeiro",
    "resticFailed": "restic falhou",
    "resticDone": "restic incremental completo",
    "resticOnly": "Execute apenas restic",
    "listSnapshots": "Listar instantâneos restic",
    "lastAllDetail": "Detalhe do último backup completo",
    "time": "Tempo",
    "result": "Resultado",
    "nothingZero": "Nada para fazer (0 projetos)",
    "notes": "Notas",
    "status": "Status",
    "skipped": "Ignorado",
    "failed": "Fracassado",
    "lastNoProjects": "Nenhum projeto precisou de backup da última vez.",
    "noPerProject": "Nenhum resultado por projeto.",
    "remoteSide": "Degraus laterais remotos/resticos",
    "step": "Etapa",
    "remoteStep": "Remoto",
    "restoreProjectId": "Restaurar projectId (vazio = listar todos)",
    "needProjectOrTag": "Preencher projectId ou snapshot deve ter project: tag",
    "dryRunDone": "teste completo (sem gravação)",
    "allSuccess": "Tudo bem sucedido",
    "failOrSkip": "Falhas / pulos",
    "noteN": "Nota {{n}}",
    "enableRemote": "Habilitar envio remoto",
    "targetKind": "Tipo de destino",
    "remoteKindAria": "Tipo de destino remoto",
    "localPath": "Caminho local",
    "host": "Hospedar",
    "port": "Porta",
    "username": "Nome de usuário",
    "password": "Senha",
    "passwordSshHint": "Vazio para usar a chave SSH do host",
    "savedLeaveEmpty": "Deixe em branco se já salvo",
    "s3Bucket": "Caminho do intervalo",
    "region": "Região",
    "endpointOptional": "Ponto final (opcional)",
    "localMirror": "Caminho do espelho local",
    "remotePath": "Caminho remoto",
    "remotePathHint": "Relativo à casa do usuário remoto (ou chroot SFTP). “.” é aquela casa.",
    "resticTitle": "Restic incremental",
    "resticDesc": "Opcional; restic no PATH. Senha necessária quando ativada (sem padrão)",
    "enableRestic": "Habilitar restic",
    "repoPath": "Caminho do repositório",
    "repoPassword": "Senha do repositório",
    "repoPassSaved": "Salvo; vazio = manter. Obrigatório quando ativado.",
    "repoPassRequired": "Obrigatório quando o restic está ativado (sem senha padrão)",
    "savedPlaceholder": "Salvo (vazio = manter)",
    "required": "Obrigatório",
    "s3RepoUrl": "Ou URL do repositório S3",
    "excludeTitle": "Excluir regras",
    "excludeSub": "tar exclui caminhos, um globo por linha",
    "excludeList": "Excluir lista",
    "saveAll": "Salvar todas as configurações",
    "restoreFailed": "Falha na restauração",
    "previewDone": "Visualização concluída",
    "restoreDone": "Restauração concluída",
    "previewQ": "Visualizar o conteúdo do backup?",
    "restoreWebQ": "Restauração seletiva (web)?",
    "restoreFullQ": "Restauração completa?",
    "previewDesc": "Somente lista {{name}} — sem alterações no arquivo.",
    "restoreWebDesc": "Extraia {{name}} para a página inicial do projeto (mais seguro).",
    "restoreFullDesc": "Restauração completa do alcatrão de {{name}}; pode substituir arquivos existentes.",
    "restore": "Restaurar",
    "cancel": "Cancelar",
    "deleteFailed": "Falha na exclusão",
    "deleted": "Excluído",
    "deleteTitle": "Excluir arquivo de backup?",
    "deleteDesc": "Excluir permanentemente {{name}}",
    "tabTrash": "Lixeira",
    "trashTitle": "Lixeira ({{count}})",
    "trashSub": "Os arquivos excluídos permanecem aqui por 7 dias e depois são removidos permanentemente.",
    "trashEmpty": "A lixeira está vazia",
    "trashEmptyDesc": "Os arquivos de backup excluídos aparecem aqui por 7 dias.",
    "trashRestore": "Restaurar",
    "trashPurge": "Excluir definitivamente",
    "trashEmptyAll": "Esvaziar lixeira",
    "trashExpires": "Expira em {{at}}",
    "trashPurgeTitle": "Excluir permanentemente este backup?",
    "trashPurgeDesc": "Exclua permanentemente {{name}}. Isto não pode ser desfeito.",
    "trashEmptyTitle": "Lixeira vazia?",
    "trashEmptyDescConfirm": "Exclua permanentemente o(s) arquivo(s) {{count}}. Digite a contagem para confirmar.",
    "trashRestored": "Restaurado da lixeira",
    "trashPurged": "Excluído permanentemente",
    "trashedOk": "Movido para a lixeira",
    "resticSafeTitle": "restic restaurar para diretório seguro?",
    "resticSafeDesc": "Restaurar {{snapshot}} para o diretório do projeto {{project}} .restic-restore-*",
    "resticRestoreDone": "restauração restic concluída",
    "overwriteTitle": "Perigo: sobrescrever em casa",
    "overwriteDesc": "Substituirá a página inicial do projeto {{project}}. Digite SUBSTITUIR para confirmar.",
    "confirmString": "Confirmar sequência",
    "overwriteHome": "Substituir página inicial",
    "resticOverwriteDone": "substituição restic casa completa",
    "opsResult": "Resultado das operações",
    "filesTitle": "Arquivos de backup ({{count}})",
    "filesSub": "Management-dir tar · download precisa de login · restauração: simulação / web / completo",
    "backupAllBtn": "Fazer backup de tudo",
    "yes": "Sim",
    "no": "Não",
    "safeDir": "Diretório seguro",
    "remotePushTitle": "Alvo de envio remoto",
    "remotePushSub": "Depois que o tar local for bem-sucedido, envie para SFTP, caminho local ou S3",
    "accessKey": "Chave de acesso",
    "secretKey": "Chave secreta",
    "overwriteConfirmHint": "Digite OVERWRITE para confirmar a substituição",
    "testRemote": "Testar destino",
    "testRemoteHint": "Conecta-se ao host remoto e grava um pequeno arquivo de investigação. Não somente leitura.",
    "testRemoteDone": "Sonda remota concluída",
    "testRemoteFailed": "Sonda remota falhou",
    "resticRepoPh": "Diretório de dados do painel / restic-repo",
    "testDisabledHint": "Ative o envio remoto antes de testar.",
    "identityId": "Identidade SSH de saída",
    "identityHint": "Preferido. O mesmo cofre que /security SSH. A senha precisa de sshpass.",
    "identityNone": "Nenhum – senha ou chave padrão",
    "skippedListHint": "Esses projetos foram ignorados:",
    "skippedPendingOs": "Ignorado — usuário/home do SO não provisionado",
    "goLogs": "Registros abertos",
    "goAbout": "Notas de backup",
    "previewListingTitle": "Arquivar conteúdo",
    "restoreNamedDesc": "Restaure {{name}} no projeto {{project}}.",
    "overwriteNamedDesc": "Substitua os arquivos do projeto {{project}} do instantâneo {{snapshot}}.",
    "resticSafeNamed": "Restaure o instantâneo {{snapshot}} do projeto {{project}} em um diretório seguro."
  },
  "btTracker": {
    "title": "Rastreador BT",
    "sub": "Self-hosted BitTorrent / WebTorrent tracker for file shares",
    "pageDesc": "Seed panel file shares over BitTorrent. Start the tracker, set a public announce host, then create BT shares in Files.",
    "status": "Status",
    "running": "Correndo",
    "stopped": "Parou",
    "installed": "Installed (bundled)",
    "start": "Start tracker",
    "stop": "Stop tracker",
    "stopTitle": "Pare o rastreador – a propagação e os downloads serão interrompidos",
    "stopDesc": "A execução de torrents para de anunciar. Os peers se desconectam até você iniciar o rastreador novamente.",
    "fillPublicHost": "Usar {{host}}",
    "fillPublicHostTitle": "Preencha o nome do host do painel atual como o host do anúncio público",
    "refresh": "Atualizar",
    "settings": "Configurações",
    "httpPort": "HTTP / WebSocket port",
    "udpPort": "UDP port (0 = off)",
    "listenHost": "Listen host",
    "listenHostHint": "0.0.0.0 escuta em todos os endereços. Prefira 127.0.0.1, a menos que os pares precisem alcançar esse host.",
    "listenAllWarn": "O rastreador está vinculado a todos os endereços. Com o firewall desativado, isso é público. Vincule 127.0.0.1 apenas para local ou restrinja a porta no firewall.",
    "bindLoopback": "Somente 127.0.0.1",
    "bindAll": "0.0.0.0 (todos)",
    "wsEnabled": "WebSocket tracker (browser WebTorrent)",
    "wsEnabledHint": "Required for browser WebTorrent clients",
    "autostart": "Autostart with panel",
    "autostartHint": "Start tracker when ysk-server serve boots",
    "publicAnnounceHost": "Public announce host",
    "publicAnnounceHostHint": "Host or host:port used in magnet announce URLs. Empty = 127.0.0.1 until you set a public hostname.",
    "maxSeeds": "Max concurrent seeds",
    "seederPorts": "Seeder peer ports",
    "seederPortMin": "Início da porta peer",
    "seederPortMax": "Fim da porta peer",
    "seederPortsHint": "Local peer listen range for the in-process seeder",
    "saveSettings": "Save settings",
    "applyHint": "Saving ports does not open the firewall — use network exposure or Start after EXECUTE.",
    "torrents": "Tracked torrents",
    "torrentsEmpty": "No announce traffic yet",
    "torrentsEmptyHint": "Create a file share with BitTorrent mode in Files. This table fills as peers announce and the server seeds.",
    "torrentsDesc": "Live swarm from the tracker, plus local seeder status for panel shares.",
    "colName": "Nome",
    "colHash": "Info hash",
    "colSeeds": "Sementes",
    "colLeechers": "Sanguessugas",
    "colStatus": "Status",
    "announceUrls": "Announce URLs",
    "announceDesc": "Put these trackers in clients, or rely on magnets generated by the panel.",
    "copy": "Cópia",
    "copied": "Copiado",
    "statsTorrents": "Torrentes",
    "statsLibrary": "Biblioteca",
    "statsLibraryHint": "Torrents na biblioteca do painel/compartilhamentos de arquivos",
    "statsTrackerLeftover": "Tracker leftover",
    "statsTrackerLeftoverHint": "Tracker announce hashes that are not library rows",
    "leftoverHashesTitle": "Hashes restantes do rastreador",
    "publicHostMissingLive": "O rastreador está escutando, mas o host de anúncio público não está definido. Os peers fora do host não conseguem encontrar esta semente.",
    "leftoverHashesHint": "Somente leitura. Esses anúncios não são bibliotecas nem compartilham linhas.",
    "statsPeers": "Pares",
    "statsAnnounces": "Anuncia",
    "statsAnnouncesHint": "Anuncie solicitações vistas pelo processo rastreador",
    "statsJobs": "Active jobs",
    "openShares": "File shares",
    "needExecute": "Enable system-change permission (YSK_EXECUTE) to open ports and run production seeds.",
    "guideTitle": "What is this?",
    "guideBody": "When you create a BT file share, YSK builds a .torrent, seeds it, and announces peers via this tracker. Open the port if downloaders are off-host.",
    "restoreSeeds": "Re-seed BT shares",
    "restoreSeedsHint": "Start tracker if needed and re-seed shares that still have a .torrent on disk.",
    "bundledNote": "Bundled with YSK Server (Node). No apt install/uninstall — Start/Stop manages the process.",
    "stackTitle": "Programas",
    "jobs": "Torrent jobs",
    "jobsEmpty": "No background torrent jobs",
    "jobsEmptyHint": "Large shares (≥128 MiB) build .torrent files in the background so the Files dialog stays responsive.",
    "jobsDesc": "Background create-torrent queue for large file or folder shares.",
    "colJob": "Trabalho",
    "colShare": "Compartilhar",
    "colJobStatus": "Job status",
    "colEnqueued": "Enqueued",
    "refreshJobs": "Refresh jobs",
    "tabOverview": "Visão geral",
    "tabTorrents": "Torrentes",
    "tabJobs": "Empregos",
    "tabSettings": "Configurações",
    "tabAbout": "Sobre",
    "heroRunning": "Tracker is live",
    "heroStopped": "Tracker is stopped",
    "heroRunningSub": "Peers can announce and discover seeds for panel shares.",
    "heroStoppedSub": "Start the tracker before sharing large files over BitTorrent.",
    "live": "Ao vivo",
    "liveOff": "Parado",
    "quickStart": "Quick start",
    "quickStartDesc": "Three steps to share files over BitTorrent.",
    "step1Title": "Set public announce host",
    "step1Hint": "Hostname clients use in magnets (Settings).",
    "step2Title": "Start the tracker",
    "step2Hint": "Open port exposure if peers are off this host.",
    "step3Title": "Create a BT share",
    "step3Hint": "In Files → Share, choose BitTorrent or both.",
    "stepDone": "Feito",
    "stepTodo": "Pendência",
    "networkCard": "Rede",
    "networkCardDesc": "Where the tracker listens and what host appears in magnets.",
    "seederCard": "Semeador",
    "seederCardDesc": "In-process WebTorrent seeder limits and peer ports.",
    "lifecycleCard": "Vida útil",
    "lifecycleCardDesc": "Boot behaviour and how the service is packaged.",
    "pid": "PID",
    "port": "Porta",
    "announceHost": "Announce host",
    "goSettings": "Open settings",
    "searchTorrents": "Search name or hash…",
    "filterAll": "Todos",
    "filterSeeding": "Semeando",
    "filterOther": "Outro",
    "noMatch": "No torrents match your filter",
    "seedStatusSeeding": "Semeando",
    "seedStatusPending": "Pendente",
    "seedStatusError": "Erro",
    "seedStatusStopped": "Parou",
    "seedStatusNone": "Nenhum",
    "notesTitle": "Service notes",
    "exposureTitle": "Network access",
    "protoHttp": "HTTP",
    "protoWs": "WS",
    "protoUdp": "UDP",
    "saveOk": "Settings saved",
    "saveOkRestart": "Salvo – reinicie o rastreador para aplicar portas",
    "startedOk": "Tracker started",
    "stoppedOk": "Tracker stopped",
    "restoredOk": "Re-seed finished",
    "restoredCount": "{{seeded}} de {{attempted}} torrents re-semeados",
    "portInvalid": "Insira uma porta de 1 a 65535.",
    "extraTrackerRequired": "Insira um URL de anúncio.",
    "stopPort": "A porta do rastreador {{port}} irá parar de escutar.",
    "stopPid": "O processo PID {{pid}} será encerrado.",
    "swarmLeftoverUnlisted": "{{count}} anúncios restantes não têm hash nesta lista.",
    "httpPortHint": "Default 8000 (YSK catalog / firewall chip). Open TCP if peers are off-host.",
    "udpPortHint": "Optional classic UDP announce. 0 = off (browser WebTorrent uses HTTP/WS). Prefer 6969 or the same port as HTTP if you open UDP on the firewall.",
    "udpPortOff": "0 · Off",
    "udpPortSameHttp": "Same as HTTP ({{port}})",
    "udpPortClassic": "6969 · Classic",
    "portSuggest8000": "8000 · Recommended",
    "announceHostUnset": "Não definido",
    "tabTrackers": "Rastreadores",
    "addTorrent": "Adicionar torrent",
    "addTorrentTitle": "Adicionar torrent",
    "addTorrentHint": "Carregue um .torrent ou cole um ímã. Escolha uma pasta Arquivos. O WebTorrent baixa arquivos e sementes ausentes quando concluído.",
    "dropTorrent": "Solte um .torrent aqui",
    "chooseFile": "ou escolha um arquivo",
    "magnetLabel": "Ímã",
    "magnetPlaceholder": "ímã:?xt=urna:btih:…",
    "inspect": "Ler",
    "extraTrackersPreview": "Também anunciará para {{n}} rastreadores extras",
    "saveLocation": "Salvar localização",
    "saveRootPublic": "Arquivos públicos",
    "newFolder": "Nova pasta",
    "destPreview": "Escreverei para",
    "startDownload": "Iniciar transferência",
    "filterDownloading": "Baixando",
    "filterPaused": "Pausado",
    "filterError": "Erro",
    "emptyDrop": "Solte um .torrent aqui ou escolha um arquivo",
    "emptyHint": "Os arquivos vão para a pasta que você escolher. Se já estiverem completos, este hospedeiro semeia. Mecanismo: WebTorrent – ​​sem software de download extra.",
    "pause": "Pausa",
    "resume": "Retomar",
    "openFolder": "Abrir pasta",
    "remove": "Remover",
    "removeKeep": "Remover, manter arquivos",
    "removeDelete": "Remover e excluir arquivos",
    "removeConfirm": "Remover este torrent da biblioteca?",
    "kindShare": "Compartilhar",
    "filesInTorrent": "arquivos",
    "extraTrackersDesc": "URLs de anúncio extras. As sementes de download/seed da biblioteca e de compartilhamento de arquivos os utilizam além da lista .torrent. Isso não abre o rastreador local para enxames arbitrários.",
    "extraTrackersEmpty": "Sem rastreadores extras. Adicione URLs de anúncio HTTP(S), UDP ou WS(S) para que este host possa encontrar pares.",
    "extraTrackerAdd": "Adicionar",
    "extraTrackerUrl": "Anunciar URL",
    "extraTrackerApply": "Aplicar às sementes atuais",
    "extraTrackerApplyOk": "Rastreadores extras aplicados",
    "extraEnabled": "Sobre",
    "extraTrackerBad": "O URL deve começar com http://, https://, udp://, ws:// ou wss://",
    "extraTrackerDup": "Já listado",
    "extraTrackerLimit": "Máximo de 32 rastreadores extras",
    "addOk": "Adicionado à biblioteca",
    "savedTo": "Salvar",
    "folderEmpty": "Sem subpastas",
    "needTorrentFile": "Escolha um arquivo .torrent",
    "torrentTooBig": ".torrent maior que 8 MiB",
    "seedStatusDownloading": "Baixando",
    "seedStatusChecking": "Verificando",
    "seedStatusPaused": "Pausado",
    "seedStatusQueued": "Na fila",
    "swarmLeftover": "O Tracker tem {{count}} anúncio(s) fora da biblioteca (origem distinta da lista de torrents)",
    "addSourceSection": "Origem",
    "addSourceFile": "Ficheiro",
    "addSourceMagnet": "Ímã",
    "previewSection": "Pré-visualização",
    "saveRoot": "Raiz",
    "clearFile": "Limpar ficheiro",
    "extraTrackersTitle": "Announce extra",
    "extraTrackersEmptyTitle": "Ainda sem trackers",
    "extraEnabledCount": "{{count}} ativos",
    "extraApplyHint": "Ative pelo menos um para aplicar às sementes atuais",
    "destMode": "Utilização desta pasta",
    "seedExisting": "Semear ficheiros existentes",
    "downloadNewFolder": "Descarregar para uma pasta nova",
    "destFileConflict": "Já existe o ficheiro {{name}}. Escolha outra pasta ou semeie o ficheiro existente se coincidir.",
    "waitingPeers": "A aguardar pares. Se os ficheiros já estão neste anfitrião, adicione de novo e escolha semear existentes."
  },
  "catalog": {
    "sw": {
      "vsftpd": "vsftpd (FTPS)",
      "db_util": "db-util (banco de dados de usuário FTP)",
      "nginx": "Nginx",
      "certbot": "Certbot (Let's Encrypt)",
      "mysql_client": "Cliente MySQL/MariaDB",
      "mysql_server": "Servidor MySQL",
      "mariadb_server": "Servidor MariaDB",
      "postgresql_client": "Cliente PostgreSQL",
      "postgresql": "Servidor PostgreSQL",
      "redis_tools": "Cliente Redis",
      "redis_server": "Servidor Redis",
      "ufw": "Firewall UFW",
      "fail2ban": "fail2ban",
      "postfix": "Postfix",
      "dovecot": "Dovecot",
      "opendkim": "OpenDKIM",
      "pdns_server": "PowerDNS",
      "git": "Git",
      "node": "Node.js",
      "php": "PHP",
      "python": "Python",
      "go": "Go",
      "rust": "Rust",
      "chromium": "Chromium / Chrome"
    },
    "php": {
      "session": "Sessão",
      "opcache": "OPcache"
    }
  },
  "cdn": {
    "fromProjectOk": "Site CDN criado a partir do projeto – aplicar bordas/DNS",
    "fromProjectUpdated": "Site CDN vinculado ao projeto atualizado",
    "fromProjectFailed": "do projeto falhou",
    "nodeUpdated": "Nó atualizado",
    "nodeCreated": "Nó criado",
    "saveFailed": "Falha ao salvar",
    "geoMapInvalid": "GeoMap JSON inválido, por ex. {\"hkg\":[\"id do nó\"]}",
    "siteUpdated": "Site atualizado",
    "siteCreated": "Site criado",
    "probeOnline": "Sonda OK (on-line)",
    "probeOffline": "Falha na análise (off-line)",
    "probeFailed": "Falha na investigação",
    "batchProbeOk": "Todos os nós investigados",
    "batchProbePartial": "Alguns/todos os nós não são íntegros",
    "batchProbeFailed": "Falha na sondagem em lote",
    "drainingSet": "Definido para drenagem",
    "drainCleared": "Dreno limpo",
    "confirmDeleteNode": "Excluir este nó CDN?",
    "nodeDeleted": "Nó excluído",
    "deleteFailed": "Falha na exclusão",
    "confirmDeleteSite": "Excluir este site CDN?",
    "siteDeleted": "Site excluído",
    "blocked": "Bloqueado (precisa de permissão para alteração do sistema)",
    "previewRender": "Renderização de visualização ({{status}}) hash={{hash}}",
    "fanoutDone": "Fanout concluído ({{status}})",
    "purgeDone": "Purga concluída ({{status}})",
    "dnsSyncDone": "Sincronização DNS concluída ({{status}})",
    "sslDone": "SSL concluído ({{status}})",
    "confWritten": "Conferência escrita ({{status}})",
    "partialFail": "Não totalmente bem-sucedido ({{status}}) — veja as notas",
    "statNodes": "Nós",
    "hitNoStats": "Ainda sem estatísticas de bordo",
    "loopbackOriginBlocked": "Não aplica o origin de loopback {{url}} a um bordo remoto. Defina um origin alcançável.",
    "applyFailedHint": "Falha ao aplicar — veja as notas abaixo",
    "applyFailedNoNote": "Nenhum motivo armazenado. Aplique novamente para capturar o erro.",
    "applyStatus": {
      "draft": "Rascunho",
      "planned": "Planeado",
      "applying": "A aplicar",
      "applied": "Aplicado",
      "failed": "Falhou",
      "partial": "Parcial"
    },
    "statSites": "Locais",
    "statSitesCount": "{{n}} sites",
    "cacheMethod": {
      "none": "Sem estimativa",
      "access_log": "Registro de acesso",
      "cache_dir": "Diretório de cache",
      "log_format": "Precisa de formato de registro"
    },
    "geoMapLabel": "Mapa geográfico (JSON)",
    "statApplyFailed": "Falha na aplicação",
    "pillNodesSites": "{{n}} nós · {{s}} locais",
    "statOnline": "On-line",
    "statHit": "Taxa de acerto",
    "hitUnknown": "Desconhecido",
    "lastHealthHint": "Última sondagem {{at}} · {{ok}}",
    "lastHealthNever": "Ainda não investigado – execute Probe",
    "lastHealthFail": "falha na sonda",
    "healthLoopNeedSites": "Adicione um site primeiro",
    "nodeStatus": {
      "online": "on-line",
      "offline": "off-line",
      "draining": "drenando",
      "unknown": "desconhecido"
    },
    "recentNotes": "Notas recentes",
    "previewOnlyNote": "Apenas visualização – nada foi escrito nas bordas.",
    "statByRegion": "Região:",
    "statByApply": "Aplicar status:",
    "col": {
      "origin": "Origem",
      "edges": "Bordas",
      "apply": "Aplicar",
      "dns": "DNS",
      "edgesOnline": "Bordas on-line/aplicadas",
      "dnsRr": "Registros DNS CDN"
    },
    "mode": {
      "origin_pull": "Extração de origem",
      "reverse_proxy": "Proxy reverso",
      "static_edge": "Borda estática"
    },
    "dnsStrategy": {
      "multi_a": "Vários registros A",
      "cname": "CNAME",
      "geo": "Geografia"
    },
    "edgesOnlineApplied": "{{online}}/{{total}} on-line · {{applied}} aplicado",
    "hitMiss": "Acertos {{hits}} / erros {{misses}}",
    "cacheBytes": "Cache ≈ {{n}} B",
    "hitRateUnknown": "Nenhum log de acesso com status de cache e nenhum diretório de cache, portanto a taxa de acertos não pode ser estimada.",
    "edgeConfPreview": "Visualização da configuração do Nginx Edge",
    "tabs": {
      "nodes": "Nós",
      "sites": "Locais",
      "dashboard": "Painel",
      "about": "Sobre"
    },
    "nodesTitle": "Nós CDN ({{count}})",
    "nodesDesc": "Registrar controle/origem/edge/dns. O probe atualiza o status.",
    "offlineHint": "Off-line — falha na análise. Remova o nó se sobrar.",
    "colName": "Nome",
    "colRole": "Papel",
    "colStatus": "Status",
    "clearDrain": "Dreno limpo",
    "drain": "Ralo",
    "drainTitle": "Pare de enviar novo tráfego CDN para esta borda",
    "drainDesc": "Drenar “{{name}}”? As conexões existentes permanecem até terminarem.",
    "drainLastTitle": "Esta é a última vantagem – o dreno deixará todos os locais sem borda",
    "drainLastDesc": "“{{name}}” é a única aresta. Drene-o e todos os sites não terão vantagem.",
    "clearDrainTitle": "Aceite novo tráfego nesta borda novamente",
    "clearDrainDesc": "Limpar dreno em “{{name}}”?",
    "deleteNodeTitle": "Exclua esta borda CDN",
    "deleteLastNodeTitle": "Exclua a última borda – todos os sites não terão borda",
    "purge": "Purga",
    "previewTitle": "Visualizar configuração do nginx (sem gravação)",
    "writeConfTitle": "Escreva arquivos de configuração do edge nginx",
    "applyEdgesTitle": "Aplique este site às bordas (escreve nginx)",
    "purgeTitle": "Limpar cache nas bordas",
    "dnsSyncTitle": "Gravar registros DNS CDN",
    "probeDnsTitle": "Sondar bordas e DNS (somente leitura)",
    "distSslTitle": "Copiar materiais TLS para bordas",
    "leIssueTitle": "Emita um certificado Let’s Encrypt e distribua-o",
    "deleteSiteTitle": "Exclua este site CDN",
    "siteOpConfirmGeneric": "Executar esta ação em “{{name}}”?",
    "siteOpConfirmDesc": "Site “{{name}}” · {{action}}. Isso pode alterar o nginx, DNS ou certificados.",
    "siteOpConfirm": {
      "apply": "Aplicar este site às bordas?",
      "render": "Escreva a configuração do nginx para este site?",
      "purge": "Limpar cache deste site?",
      "dns-sync": "Sincronizar DNS para este site?",
      "dist": "Distribuir TLS para bordas?",
      "issue": "Problema Vamos criptografar e distribuir?"
    },
    "emptyNodesTitle": "Nenhum nó CDN ainda",
    "emptyNodesDesc": "Use “+ Adicionar nó” para registrar uma borda e, em seguida, crie sites.",
    "sitesTitle": "Sites CDN ({{count}})",
    "sitesDesc": "Domínio + origem + bordas + cache + DNS multi-A. Aplicar bordas/sincronização/eliminação de DNS.",
    "healthLoopOk": "Ciclo de saúde concluído para todos os sites",
    "healthLoopPartial": "O ciclo de integridade falhou parcialmente",
    "healthLoopFailed": "loop de saúde falhou",
    "colDomain": "Domínio",
    "colMode": "Modo",
    "emptySitesTitle": "Ainda não há sites CDN",
    "emptySitesDesc": "Use “+ Adicionar site” na barra de ferramentas da tabela.",
    "emptySitesNoEdge": "Ainda sem bordas: primeiro registre os nós na guia Nós e depois crie um site.",
    "dashboardTitle": "Painel CDN",
    "updatedAt": "Atualizado {{at}}",
    "dashboardEmpty": "Painel não carregado",
    "siteStatus": "Estado do site",
    "cacheHitEstimate": "Taxa de acertos do cache (estimativa)",
    "dashboardNotes": "Notas do painel",
    "editNode": "Editar nó CDN",
    "addNode": "Adicionar nó CDN",
    "nodeAddrHint": "Preencha pelo menos um dos seguintes IPv4/IPv6/healthUrl/baseUrl",
    "sshHostHint": "Vazio = usar IPv4; 127.0.0.1 = aplicação local",
    "sshHostPlaceholder": "Deixe em branco para IPv4 público",
    "sshUser": "Usuário SSH",
    "fleetHint": "Apenas frota (sem SSH): filas de distribuição para agente;",
    "fleetPlaceholder": "UUID da sessão da página dos agentes",
    "editSite": "Editar site CDN",
    "addSite": "Adicionar site CDN",
    "originHint": "Origem como URL por enquanto; vinculação do projeto mais tarde",
    "commaSeparated": "Separados por vírgula",
    "originUrl": "URL de origem da borda",
    "edgeNodes": "Nós de borda",
    "cache": "Cache",
    "dnsPolicy": "Política de DNS",
    "dnsPolicyHint": "multi_a = multi IP; failover = apenas o mais íntegro",
    "zoneOptional": "Vazio = zona de correspondência automática por domínio",
    "sslMode": "Modo SSL",
    "sslModeHint": "upload = certificado na página SSL; le_http01 = borda ACME",
    "leEmailOptional": "E-mail LE (opcional)",
    "leEmailHint": "Pré-preenchimento para emissão",
    "shieldHint": "Origem das arestas sem blindagem através deste nó",
    "geoMapHint": "Para estratégia=geo, por ex. {\"hkg\":[\"id1\"],\"nrt\":[\"id2\"]}",
    "geoSubdomain": "Subdomínio geográfico",
    "addNodeBtn": "+ Adicionar nó",
    "addSiteBtn": "+ Adicionar site",
    "probeAll": "Sonde tudo",
    "healthLoop": "Ciclo de saúde",
    "setDraining": "Definir drenagem",
    "fromProjectUpdatedAlt": "Site CDN vinculado ao projeto atualizado",
    "refresh": "Atualizar",
    "closePreview": "Fechar visualização",
    "probe": "Sondar",
    "preview": "Visualização",
    "writeConf": "Escreva conf",
    "applyEdges": "Aplicar bordas",
    "dnsSync": "Sincronização DNS",
    "probeDns": "Sonda+DNS",
    "distSsl": "Distribuir SSL",
    "leIssue": "Problema LE",
    "reaggregate": "Atualizar agregado",
    "createEdgeFirst": "Crie um nó de borda primeiro",
    "enableProxyCache": "Habilitar proxy_cache",
    "autoMatch": "(correspondência automática)",
    "none": "(nenhum)",
    "writeRegionDns": "Escreva o subdomínio da região A/AAAA (por exemplo, hkg)",
    "workflowHint": "Fluxo: escrever conf → aplicar bordas → sondar+DNS → SSL",
    "healthLoopAll": "Ciclo de saúde em todos os sites",
    "deleteNodeDesc": "Exclui o nó CDN \"{{name}}\".",
    "deleteSiteDesc": "Exclui site CDN \"{{name}}\".",
    "deleteSiteC1": "Política do site e associações de borda",
    "deleteSiteC2": "As configurações nginx aplicadas podem precisar de limpeza separada ou reaplicação",
    "statOnlineOf": "On-line {{n}}/{{total}}",
    "colRegion": "Região",
    "statDraining": "Drenagem {{n}}",
    "statOffline": "Off-line {{n}}",
    "localTest": "local / teste",
    "statHitRate": "Taxa de acerto {{v}}"
  },
  "cli": {
    "unknownCommand": "Comando desconhecido: {{command}}\nExecute `{{cli}} ajuda`",
    "usagePrefix": "Uso:",
    "security": {
      "help": "Uso: status de segurança do servidor ysk\n       lista de sessões de segurança do servidor ysk | revogar | revogar-outros [--usuário U]\n       lista de chaves de API de segurança do servidor ysk | criar | excluir…",
      "sessionsHelp": "Uso: lista de sessões de segurança do servidor ysk [--user U]\n       sessões de segurança do servidor ysk revogam --id PREFIX [--user U]\n       sessões de segurança do servidor ysk revogam-outros [--user U] [--keep-token T]",
      "apiKeysHelp": "Uso: lista de chaves de API de segurança do servidor ysk\n       ysk-server security api-keys create --name N [--user U] [--scope full|read]\n       chaves de API de segurança do servidor ysk excluir --id KEY_ID",
      "noUser": "Nenhum usuário encontrado. Crie primeiro admin ou passe --user <name|id>",
      "tokenOnce": "token mostrado uma vez – armazene com segurança",
      "sessionRevokeUsage": "Uso: sessões de segurança do servidor ysk revogam --id <sessionIdPrefix> [--user U]",
      "apiKeyDeleteUsage": "Uso: ysk-server security api-keys delete --id KEY_ID"
    },
    "help": {
      "blurb": "CLI do plano de controle – prefira --json para agentes de IA.\nDocumentos: docs/agent/README.md · docs/cli/reference.md · docs/agent/commands.json",
      "main": "{{product}} ({{cli}}) v{{version}}\n\nCLI do plano de controle – prefira --json para agentes de IA.\nDocumentos: docs/agent/README.md · docs/cli/reference.md · docs/agent/commands.json\n\nUso:\n  {{cli}} <comando> [opções]\n\nComandos:\n  configurar Init dataDir + admin\n  atualizar Verificação/aplicação de autoatualização\n  servir API HTTP + UI da Web\n  instalação da unidade do sistema Instalar ysk-server.service [--enable]\n  ferramentas Listar ferramentas; ferramentas executam --tool <nome> [--dry-run]\n  pergunte NL → plano de IA [--executar]\n  lista de projetos | obter | criar | implantar | parar | saúde | backup | modelo\n  fazer backup de tudo | lista | status | restaurar | excluir | agendar | plano de controle | configurações | restic\n  modelos Modelos de aplicativos\n  hospedagem nginx|dns|db|ajudantes de firewall\n  zona dns|zonas (alias de IA → hospedagem dns-*)\n  fontes de registros | consulta | diário | visão geral\n  visão geral do host|métricas (somente leitura)\n  status nginx | lista | teste | sincronização\n  lista SSL | obter (certificados)\n  lista de cluster de banco de dados|get|create|plan (plano HA primeiro)\n  lista de chaves ssh | criar | importar | público | exportar | instalar | excluir (cofre de identidade SSH)\n  lista ssh-2fa | inscrever | confirmar | instalar | pam | retirar (login SSH TOTP ≠ painel 2FA)\n  services Matriz de serviço de host (sondagem systemctl)\n  defesa | status de proteção | banir | desbanir | lista branca\n  status de segurança | sessões | chaves de API (sinalizações 2FA · revogação de sessão · chaves de API)\n  nós cdn | sites | renderizar | aplicar | limpar | sondar | painel | loop de saúde | do projeto\n  tempos de execução de agentes | lista de frota | comandos | registro (painel + borda)\n  agente executa sondador de frota de saída (experimental)\n  armazenar status | exportar | importar | migrar (backends de documentos json | sqlite | postgres)\n  lista de arquivos | ler | escrever | mkdir | rm | stat | renomear | copiar | mover | chmod | lixo | compartilhamentos (sandbox)\n  lista cron | criar | excluir | ativar | desativar | executar | instalar | status\n  domínios de e-mail | caixas de correio | capacidade de entrega | bootstrap | dns (paridade do painel)\n  health Instantâneo do modo local ou --url http://host:port/health\n  prontidão | médico Prontidão de produção (honesto)\n  migrar inventário|host|post|status|resume (migração completa do host)\n  versão | ajuda\n\nGlobais:\n  --json JSON stdout (AI)\n  --data-dir CAMINHO\n  --config CAMINHO\n  --ajuda | --versão\n\nSaída: 0 ok · 1 erro · 2 validação · 3 bloqueado · 4 não encontrado · 5 erro de host\n\nSegurança:\n  As operações perigosas são padronizadas para simulação (somente plano).\n  Passe --execute (alias --apply) + env YSK_EXECUTE=1 para alterar o host.\n\nExemplos:\n  {{cli}} prontidão --json\n  {{cli}} host --json\n  {{cli}} status nginx --json\n  {{cli}} lista SSL --json\n  {{cli}} projetos obtêm --id UUID --json\n  {{cli}} proibição de defesa --ip 1.2.3.4 --json # plano de simulação\n  {{cli}} lista de projetos --json\n  {{cli}} consulta de logs --source diário: --lines 100 --json\n  {{cli}} ferramentas --json"
    },
    "usage": {
      "tools": {
        "run": {
          "--tool": {
            "name": {
              "--arg": {
                "cd327c": "Uso: ferramentas do servidor ysk execute --tool <nome> [--arg key=val] [--dry-run]"
              }
            }
          }
        }
      },
      "email": {
        "domains": {
          "list": {
            "create": {
              "get": {
                "b94a62": "Uso: lista de domínios de e-mail do servidor ysk | criar | obter…"
              }
            }
          },
          "create": {
            "--domain": {
              "example": {
                "bd4036": "Uso: domínios de e-mail do servidor ysk criam --domain example.com --ip A.B.C.D"
              }
            }
          }
        },
        "mailboxes": {
          "list": {
            "create": {
              "42b26c": "Uso: lista de caixas de correio de e-mail do servidor ysk | criar…"
            }
          },
          "create": {
            "--domain": {
              "example": {
                "7227f3": "Uso: caixas de correio de e-mail do servidor ysk criam --domain example.com --local user [--password P]"
              }
            }
          }
        },
        "dns": {
          "--domain": {
            "example": {
              "com": {
                "26b806": "Uso: ysk-server email dns --domain example.com"
              }
            }
          }
        },
        "sub": {
          "--data-dir": {
            "path": {
              "--json": {
                "73dad0": "Uso: email do servidor ysk <sub> [--data-dir PATH] [--json]\n  lista de domínios|criar|obter [--q TEXT]\n    crie --domain exemplo.com --ip A.B.C.D\n    obter --domain exemplo.com | --idUUID\n  lista de caixas de correio|criar [--domínio D | --id domínioId]\n    criar --domínio D --usuário local [--senha P]\n  capacidade de entrega --domínio D | --idUUID\n  visão geral da capacidade de entrega\n  bootstrap --domain D --ip A.B.C.D [--install]\n  DNS --domínio D | --id UUID # Pacote DNS para painel\nAlém disso: hospedagem email-apply|email-mailbox|email-deliverability (aliases)"
              }
            }
          }
        },
        "deliverability": {
          "--domain": {
            "example": {
              "com": {
                "b0dff0": "Uso: capacidade de entrega de e-mail do servidor ysk --domain example.com"
              }
            }
          }
        },
        "bootstrap": {
          "--domain": {
            "example": {
              "com": {
                "affc8d": "Uso: ysk-server email bootstrap --domain example.com --ip 1.2.3.4 [--install]"
              }
            }
          }
        }
      },
      "cron": {
        "delete": {
          "--id": {
            "job": {
              "id": {
                "f6aafe": "Uso: ysk-server cron delete --id JOB_ID"
              }
            }
          }
        },
        "sub": {
          "--id": {
            "job": {
              "id": {
                "99cfdf": "Uso: ysk-server cron {{sub}} --id JOB_ID"
              }
            }
          },
          "--data-dir": {
            "path": {
              "--json": {
                "0349e6": "Utilização: ysk-server cron <sub> [--data-dir PATH] [--json]\n  list [--project-id ID] [--q TEXT]\n  create --schedule \"0 3 * * *\" --command CMD [--project-id ID] [--user USER]\n  update --id JOB_ID [--schedule S] [--command CMD] [--user USER] [--project-id ID] [--enable|--disable]\n  delete --id JOB_ID\n  enable|disable --id JOB_ID\n  run --id JOB_ID              # run-now (needs YSK_EXECUTE=1)\n  install                     # load managed crontab (needs EXECUTE)\n  status                      # probe managed file vs host crontab\n  host [list] [--user USER] [--jobs-only]\n  host edit --user USER --old-schedule S --old-command C --schedule S --command C --execute\n  host disable|enable|delete|adopt --user USER --old-schedule S --old-command C --execute\n  host run --user USER --command C --execute\nHonestidade: install / host write blocked without YSK_EXECUTE=1.\n"
              }
            }
          }
        },
        "run": {
          "--id": {
            "job": {
              "id": {
                "a0a97f": "Uso: ysk-server cron run --id JOB_ID"
              }
            }
          }
        },
        "create": {
          "--schedule": {
            "0": {
              "3": {
                "9a8328": "Uso: ysk-server cron create --schedule \"0 3 * * *\" --command CMD [--project-id ID] [--user USER]"
              }
            }
          }
        }
      },
      "files": {
        "stat": {
          "--path": {
            "rel": {
              "17c8f2": "Uso: arquivos ysk-server stat --path REL"
            }
          }
        },
        "read": {
          "--path": {
            "rel": {
              "e35f8d": "Uso: arquivos ysk-server lidos --path REL"
            }
          }
        },
        "mkdir": {
          "--path": {
            "rel": {
              "ae0438": "Uso: arquivos ysk-server mkdir --path REL"
            }
          }
        },
        "rm": {
          "--path": {
            "rel": {
              "--permanent": {
                "fe2051": "Uso: arquivos ysk-server rm --path REL [--permanent]"
              }
            }
          }
        },
        "rename": {
          "--from": {
            "rel": {
              "--to": {
                "35a260": "Uso: arquivos ysk-server renomeados --de REL --para REL"
              }
            }
          }
        },
        "copy": {
          "--from": {
            "rel": {
              "--to": {
                "5337f4": "Uso: cópia de arquivos do servidor ysk --from REL --to REL"
              }
            }
          }
        },
        "move": {
          "--from": {
            "rel": {
              "--to": {
                "75cf5d": "Uso: arquivos ysk-server são movidos --de REL --para REL"
              }
            }
          }
        },
        "chmod": {
          "--path": {
            "rel": {
              "--mode": {
                "39f983": "Uso: arquivos ysk-server chmod --path REL --mode 644"
              }
            }
          }
        },
        "trash": {
          "restore": {
            "--id": {
              "trash": {
                "c89ce9": "Uso: restauração de lixo de arquivos do servidor ysk --id TRASH_ID"
              }
            }
          },
          "list": {
            "restore": {
              "purge": {
                "ef063d": "Uso: lista de lixo de arquivos do servidor ysk | restaurar | limpar"
              }
            }
          }
        },
        "shares": {
          "list": {
            "ac342c": "Uso: lista de compartilhamentos de arquivos do servidor ysk"
          }
        },
        "webdav": {
          "status": {
            "token": {
              "disable": {
                "f8e94b": "Uso: arquivos ysk-server status webdav|token|disable"
              }
            }
          }
        },
        "sub": {
          "--root": {
            "public": {
              "project": {
                "42ebd4": "Uso: arquivos ysk-server <sub> [--root public|project:ID] [--data-dir PATH] [--json]\n  lista [--path DIR] [--q TEXT] [--sort name|size|mtime] [--order asc|desc]\n  stat --caminho REL\n  leia --path REL\n  escreva --path REL --content TEXTO | --arquivo LOCAL\n  mkdir --path REL\n  rm --path REL [--permanente]\n  renomear --de REL --para REL\n  copiar --de REL --para REL\n  mover --de REL --para REL\n  chmod --path REL --mode 644\n  lista de lixo | restaurar | limpar [--id TRASH_ID]\n  lista de compartilhamentos\n  lista de favoritos\n  carregar --dir REL --arquivo LOCAL [--arquivo LOCAL2…]\n  status do webdav | token | desabilitar\nSandbox: apenas arquivos públicos raiz ou home do projeto (com restrição de caminho)."
              }
            }
          }
        },
        "write": {
          "--path": {
            "rel": {
              "--content": {
                "0addb1": "Uso: arquivos ysk-server escrevem --path REL --content TEXT | --arquivo LOCAL"
              }
            }
          }
        },
        "upload": {
          "--dir": {
            "rel": {
              "--file": {
                "f8c3bf": "Uso: upload de arquivos do servidor ysk --dir REL --file LOCAL [--file LOCAL2…]"
              }
            }
          }
        }
      },
      "store": {
        "import": {
          "--in": {
            "file": {
              "json": {
                "5b6fdd": "Uso: importação da loja do servidor ysk --in FILE.json"
              }
            }
          }
        },
        "sub": {
          "--data-dir": {
            "path": {
              "--json": {
                "d580e4": "Uso: armazenamento do servidor ysk <sub> [--data-dir PATH] [--json]\n  status Mostrar tipo de back-end + contagens\n  export --out FILE.json Despeja o instantâneo do documento\n  import --in FILE.json Substituir instantâneo do arquivo\n  migrar --para sqlite|json [--out PATH]\n    Copie a loja atual para outro arquivo de back-end\nEnv: YSK_STORE=json|sqlite|postgres YSK_DATABASE_URL=postgres://…\nHonestidade: back-ends de blob de documentos (ainda sem esquema relacional completo)."
              }
            }
          }
        },
        "migrate": {
          "--to": {
            "json": {
              "sqlite": {
                "1c52a3": "Uso: ysk-server store migrar --to json|sqlite [--out PATH]\n  (postgres: exporte JSON e importe em YSK_DATABASE_URL)"
              }
            }
          }
        }
      },
      "cdn": {
        "nodes": {
          "delete": {
            "--id": {
              "node": {
                "0c6a1e": "Uso: nós cdn do servidor ysk excluir --id NODE_ID"
              }
            }
          },
          "drain": {
            "--id": {
              "node": {
                "a8aa81": "Uso: nós cdn do servidor ysk drenam --id NODE_ID [--off]"
              }
            }
          },
          "list": {
            "upsert": {
              "delete": {
                "52549e": "Uso: lista de nós cdn do servidor ysk | upsert | excluir | sonda | drenar…"
              }
            }
          },
          "upsert": {
            "--name": {
              "name": {
                "8f6f39": "Uso: nós cdn do servidor ysk upsert --name NOME [--id ID] [--base-url U] [--fleet-agent-id S] [--ssh-host H] [--region R]"
              }
            }
          }
        },
        "sites": {
          "get": {
            "--id": {
              "site": {
                "3c3c35": "Uso: sites cdn do servidor ysk obtêm --id SITE_ID"
              }
            }
          },
          "delete": {
            "--id": {
              "site": {
                "51ef8f": "Uso: sites cdn do servidor ysk excluir --id SITE_ID"
              }
            }
          },
          "list": {
            "get": {
              "upsert": {
                "609da6": "Uso: lista de sites cdn do servidor ysk | obter | upsert | excluir…"
              }
            }
          },
          "upsert": {
            "--name": {
              "n": {
                "6ebb75": "Uso: sites cdn do servidor ysk upsert --name N --domains a.com,b.com [--edge-id ID]… [--origin-url U] [--origin-project ID]"
              }
            }
          }
        },
        "render": {
          "--site-id": {
            "id": {
              "--dry-run": {
                "2149eb": "Uso: ysk-server cdn render --site-id ID [--dry-run]"
              }
            }
          }
        },
        "apply": {
          "--site-id": {
            "id": {
              "--edge-id": {
                "a527b3": "Uso: ysk-server cdn apply --site-id ID [--edge-id EDGE]"
              }
            }
          }
        },
        "purge": {
          "--site-id": {
            "id": {
              "--edge-id": {
                "bc08ec": "Uso: ysk-server cdn purge --site-id ID [--edge-id EDGE]"
              }
            }
          }
        },
        "dns-sync": {
          "--site-id": {
            "id": {
              "--apply-zone": {
                "343068": "Uso: ysk-server cdn dns-sync --site-id ID [--apply-zone]"
              }
            }
          }
        },
        "sub": {
          "--data-dir": {
            "path": {
              "--json": {
                "092842": "Uso: ysk-server cdn <sub> [--data-dir PATH] [--json]\n  lista de nós | upsert | excluir | sonda | drenar\n  lista de sites | upsert | excluir | obter\n  renderizar --site-id ID [--dry-run]\n  apply --site-id ID [--edge-id ID] # fan-out (fila da frota ok sem EXECUTE)\n  purgar --site-id ID [--edge-id ID]\n  dns-sync --site-id ID [--apply-zone]\n  sonda | painel | loop de saúde [--apply-zone]\n  do projeto --project-id ID [--edge-id ID…]\nHonestidade: apply_status escrito/enfileirado ≠ edge nginx aplicado até o agente confirmar/EXECUTAR recarregar."
              }
            }
          }
        },
        "from-project": {
          "--project-id": {
            "id": {
              "--edge-id": {
                "a96f42": "Uso: ysk-server cdn from-project --project-id ID [--edge-id ID]…"
              }
            }
          }
        }
      },
      "agents": {
        "fleet": {
          "remove": {
            "--session": {
              "session": {
                "1827fe": "Uso: frota de agentes ysk-server remove --session SESSION_ID"
              }
            }
          },
          "register": {
            "--id": {
              "agent": {
                "209b2d": "Uso: registro de frota de agentes do servidor ysk --id AGENT_ID [--group g] [--edge]"
              }
            }
          },
          "commands": {
            "--session": {
              "session": {
                "f8067c": "Uso: comandos da frota dos agentes ysk-server --session SESSION_ID"
              }
            }
          }
        },
        "register": {
          "--id": {
            "agent": {
              "id": {
                "3c4477": "Uso: registro de agentes do servidor ysk --id AGENT_ID [--group g]"
              }
            }
          }
        },
        "commands": {
          "--session": {
            "session": {
              "id": {
                "e620d2": "Uso: comandos dos agentes ysk-server --session SESSION_ID"
              }
            }
          }
        },
        "runtimes": {
          "probe": {
            "fleet": {
              "list": {
                "261fa4": "Uso: agentes ysk-server [tempos de execução | sonda | lista de frota | registro de frota | comandos de frota | registro | comandos]"
              }
            }
          }
        }
      },
      "agent": {
        "run": {
          "--control-plane": {
            "url": {
              "--id": {
                "cfefbe": "Uso: agente ysk-server executado --control-plane URL --id AGENT_ID [--group g]"
              }
            }
          }
        }
      },
      "ask": {
        "check": {
          "system": {
            "info": {
              "b0c781": "Uso: ysk-server pede \"verificar informações do sistema\""
            }
          }
        }
      },
      "backup": {
        "delete": {
          "--project-id": {
            "id": {
              "--name": {
                "d66c29": "Uso: ysk-server backup delete --project-id ID --name ARCHIVE"
              }
            }
          }
        },
        "restic": {
          "list": {
            "run": {
              "restore": {
                "10402b": "Uso: lista restic de backup do servidor ysk | executar | restaurar…"
              }
            }
          },
          "restore": {
            "--project-id": {
              "id": {
                "a8f133": "Uso: backup restic do servidor ysk, restauração --project-id ID --snapshot SNAP [--dry-run] [--overwrite-home --confirm PHRASE]"
              }
            }
          }
        },
        "sub": {
          "--data-dir": {
            "path": {
              "--json": {
                "777243": "Uso: backup do servidor ysk <sub> [--data-dir PATH] [--json]\n  all Backup de todas as casas do projeto (+ lado remoto/restic quando configurado)\n  lista [--ID do projeto] [--q TEXTO]\n  status Última execução + agendamento de investigação\n  restaurar --project-id ID --name ARQUIVO [--mode full|web|dry-run]\n  excluir --project-id ID --name ARQUIVO\n  agendar [--cron \"0 3 * * *\"] [--install]\n  Instantâneo do plano de controle ysk.json + config.json\n  control-plane-restore --name ARQUIVO [--mode simulação | completo] [--confirm RESTORE-CONTROL-PLANE]\n  configurações [get|set] Remoto / exclusões / restic\n    set --remote-kind local|sftp|s3 --remote-path P [--remote-host H] …\n    definir --excluir a,b,c | --arquivo de exclusões ARQUIVO\n    definir --restic-enable --restic-password P [--restic-repo PATH]\n    set --from-json FILE # patch completo {remoto?,exclusões?,restic?}\n  lista restic | executar | restaurar Ajudantes restic incrementais"
              }
            }
          }
        },
        "control-plane-restore": {
          "--name": {
            "archive": {
              "--mode": {
                "316a76": "Uso: backup do servidor ysk control-plane-restore --name ARCHIVE [--mode dry-run|full] [--confirm RESTORE-CONTROL-PLANE]"
              }
            }
          }
        },
        "restore": {
          "--project-id": {
            "id": {
              "--name": {
                "bc7041": "Uso: restauração de backup do servidor ysk --project-id ID --name ARCHIVE [--mode full|web|dry-run]"
              }
            }
          }
        }
      },
      "packages": {
        "list": {
          "--q": {
            "text": {
              "b8e16b": "Uso: lista de pacotes do ysk-server [--q text]"
            }
          }
        }
      },
      "projects": {
        "stop": {
          "--id": {
            "projectid": {
              "b15409": "Uso: projetos do ysk-server param --id <projectId>"
            }
          }
        },
        "backup": {
          "--id": {
            "projectid": {
              "e62846": "Uso: backup de projetos ysk-server --id <projectId>"
            }
          }
        },
        "health": {
          "--id": {
            "projectid": {
              "e816ec": "Uso: ysk-server projeta integridade --id <projectId>"
            }
          }
        },
        "isolation": {
          "provision": {
            "--id": {
              "projectid": {
                "5aff44": "Uso: ysk-server projeta provisão de isolamento --id <projectId>\n       ysk-server projeta isolamento provision-all [--limit 20]"
              }
            }
          },
          "backfill-owners": {
            "--owner-user-id": {
              "id": {
                "8691da": "Uso: ysk-server projeta isolamento backfill-owners --owner-user-id <id>"
              }
            }
          },
          "list": {
            "provision": {
              "provision-all": {
                "8e9da3": "Uso: lista de isolamento de projetos do servidor ysk|provision|provision-all|backfill-owners"
              }
            }
          }
        },
        "get": {
          "--id": {
            "projectid": {
              "name": {
                "b0d532": "Uso: projetos ysk-server obtêm --id <projectId|name> [--json]"
              }
            }
          }
        },
        "create": {
          "--name": {
            "name": {
              "--domain": {
                "66e857": "Uso: projetos ysk-server criam --name <nome> [--domain d] [--runtime node|php|static|python|go|rust] [--template id]"
              }
            }
          }
        },
        "deploy": {
          "--id": {
            "projectid": {
              "--entry": {
                "339111": "Uso: projetos ysk-server implantam --id <projectId> [--entry f] [--port N] [--fpm|--builtin] [--reload]"
              }
            }
          }
        },
        "git-deploy": {
          "--id": {
            "id": {
              "--git-url": {
                "a513f5": "Uso: projetos ysk-server git-deploy --id ID [--git-url URL] [--branch main] [--no-redeploy] [--profundidade 1] [--entry f]"
              }
            }
          }
        },
        "template": {
          "--id": {
            "projectid": {
              "--template": {
                "591ce4": "Uso: modelo de projetos ysk-server --id <projectId> --template <id> [--force]"
              }
            }
          }
        },
        "list": {
          "get": {
            "create": {
              "deploy": {
                "253b48": "Uso: lista de projetos do servidor ysk|get|create|deploy|git-deploy|stop|backup|template|health [opções]\n  implantar --id UUID [--entry f] [--port N] [--fpm|--builtin] [--reload]\n  git-deploy --id UUID [--git-url URL] [--branch B] [--no-redeploy]"
              }
            }
          }
        }
      },
      "cli": {
        "name": {
          "db-cluster": {
            "get": {
              "--id": {
                "00f803": "Uso: {{CLI_NAME}} db-cluster get --id UUID [--json]"
              }
            },
            "plan": {
              "--id": {
                "483f52": "Uso: {{CLI_NAME}} plano de cluster de banco de dados --id UUID [--json]"
              }
            },
            "artifacts": {
              "--id": {
                "6b33c4": "Uso: {{CLI_NAME}} artefatos de cluster de banco de dados --id UUID [--json]"
              }
            },
            "bundle": {
              "--id": {
                "94ed27": "Uso: {{CLI_NAME}} pacote db-cluster --id UUID [--json]"
              }
            },
            "delete": {
              "--id": {
                "3de0e4": "Uso: {{CLI_NAME}} db-cluster delete --id UUID [--json]"
              }
            },
            "create": {
              "--name": {
                "e3b733": "Uso: {{CLI_NAME}} db-cluster create --name N --engine mariadb --kind mariadb-galera --member HOST=role[:access] ..."
              }
            },
            "apply": {
              "--id": {
                "4cddb8": "Uso: {{CLI_NAME}} db-cluster apply --id UUID [--execute] [--bootstrap] [--json]"
              }
            },
            "probe": {
              "--id": {
                "22870c": "Uso: {{CLI_NAME}} sonda db-cluster --id UUID [--peers] [--json]"
              }
            },
            "install-peers": {
              "--id": {
                "600b02": "Uso: {{CLI_NAME}} db-cluster install-peers --id UUID [--execute] [--no-restart] [--identity ID] [--json]"
              }
            },
            "push": {
              "--id": {
                "697080": "Uso: {{CLI_NAME}} db-cluster push --id UUID [--member ID] [--identity ID] [--execute] [--json]"
              }
            },
            "fleet": {
              "--id": {
                "239462": "Uso: {{CLI_NAME}} frota de cluster de banco de dados --id UUID [--op apply|sonda|plano] [--execute] [--edge-execute] [--json]"
              }
            },
            "list": {
              "get": {
                "3b9cfa": "Uso: {{CLI_NAME}} lista de cluster de banco de dados|get|create|plan|apply|probe|install-peers|artifacts|bundle|push|fleet|overview|delete [--peers] [--execute] [--json]"
              }
            }
          },
          "ssh-key": {
            "get": {
              "--id": {
                "292716": "Uso: {{CLI_NAME}} chave ssh get --id UUID [--json]"
              }
            },
            "public": {
              "--id": {
                "525d7d": "Uso: {{CLI_NAME}} ssh-key public --id UUID"
              }
            },
            "export": {
              "--id": {
                "0a6d81": "Uso: {{CLI_NAME}} exportação de chave ssh --id UUID [--out PATH] [--json]"
              }
            },
            "delete": {
              "--id": {
                "a6e2f2": "Uso: {{CLI_NAME}} ssh-key delete --id UUID [--json]"
              }
            },
            "create": {
              "--name": {
                "8b1d79": "Uso: {{CLI_NAME}} ssh-key create --name N [--algo ed25519|rsa-4096] [--purpose user|panel|unbound] [--project ID] [--user U] [--home PATH] [--reveal] [--json]"
              }
            },
            "import": {
              "--name": {
                "6eb800": "Uso: {{CLI_NAME}} importação de chave ssh --name N --file PATH [--purpose panel|user] [--json]"
              }
            },
            "install": {
              "--id": {
                "b99c56": "Uso: {{CLI_NAME}} instalação da chave ssh --id UUID [--execute] [--json]"
              }
            },
            "test": {
              "--id": {
                "e1aed3": "Uso: {{CLI_NAME}} teste de chave ssh --id UUID --target user@host[:port] [--execute] [--json]"
              }
            },
            "rotate": {
              "--id": {
                "9c3224": "Uso: {{CLI_NAME}} chave ssh girar --id UUID [--reveal] [--json]"
              }
            },
            "authorize-self": {
              "--id": {
                "b7ea2e": "Uso: {{CLI_NAME}} ssh-key autorize-self --id UUID [--json]"
              }
            },
            "uninstall": {
              "--id": {
                "afcba0": "Uso: {{CLI_NAME}} desinstalação da chave ssh --id UUID [--execute] [--json]"
              }
            },
            "list": {
              "get": {
                "2c92c6": "Uso: {{CLI_NAME}} lista de chaves ssh|get|create|import|public|export|install|test|rotate|authorize-self|uninstall|delete [--json]"
              }
            }
          },
          "ssh-2fa": {
            "reveal": {
              "--id": {
                "a6c27f": "Uso: {{CLI_NAME}} ssh-2fa revela --id UUID [--json]"
              }
            },
            "retire": {
              "--id": {
                "6e1fa3": "Uso: {{CLI_NAME}} ssh-2fa retirar --id UUID [--json]"
              }
            },
            "enroll": {
              "--user": {
                "081432": "Uso: {{CLI_NAME}} ssh-2fa matricular --user LINUX|--ID do projeto [--home PATH] [--from-panel] [--json]"
              }
            },
            "confirm": {
              "--id": {
                "9ee8a2": "Uso: {{CLI_NAME}} ssh-2fa confirme --id UUID --code 123456 [--json]"
              }
            },
            "install": {
              "--id": {
                "dace06": "Uso: {{CLI_NAME}} ssh-2fa install --id UUID [--execute] [--json]"
              }
            },
            "uninstall": {
              "--id": {
                "0bb464": "Uso: {{CLI_NAME}} ssh-2fa desinstalar --id UUID [--execute] [--json]"
              }
            },
            "list": {
              "enroll": {
                "802ed0": "Uso: {{CLI_NAME}} ssh-2fa list|enroll|confirm|install|uninstall|pam|reveal|retire [--json]"
              }
            }
          },
          "ssl": {
            "list": {
              "get": {
                "79c232": "Uso: {{CLI_NAME}} lista SSL|get --domain X [--json]"
              }
            },
            "get": {
              "--domain": {
                "91c444": "Uso: {{CLI_NAME}} ssl get --domain example.com [--json]"
              }
            }
          },
          "dns": {
            "zone": {
              "--zone": {
                "ad30fa": "Uso: {{CLI_NAME}} zona dns --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]"
              }
            },
            "zones": {
              "zone": {
                "5b8bda": "Uso: {{CLI_NAME}} zonas DNS | zona --zone X --ip A.B.C.D [--ipv6…] [--json]"
              }
            }
          },
          "nginx": {
            "status": {
              "list": {
                "d67a16": "Uso: {{CLI_NAME}} nginx status|list|test|sync [--execute] [--json]"
              }
            }
          },
          "host": {
            "overview": {
              "metrics": {
                "93c828": "Uso: {{CLI_NAME}} visão geral do host|métricas|rede [--path /] [--json]"
              }
            }
          },
          "logs": {
            "sources": {
              "overview": {
                "79058c": "Uso: {{CLI_NAME}} fontes de registros | visão geral | unidades | diário | consulta [--source id] [--json]"
              }
            }
          },
          "services": {
            "sub": {
              "--unit": {
                "4fe3fa": "Uso: {{CLI_NAME}} serviços {{sub}} --unit <systemd-unit> [--execute] [--json]"
              }
            },
            "matrix": {
              "start": {
                "4f3a35": "Uso: {{CLI_NAME}} matriz de serviços |start|stop|restart|reload --unit NAME [--execute] [--json]"
              }
            }
          },
          "defense": {
            "ban": {
              "--ip": {
                "cc22de": "Uso: {{CLI_NAME}} defesa ban --ip <ip> [--method fail2ban|ufw|both] [--reason t] [--execute]"
              }
            },
            "unban": {
              "--ip": {
                "46aa23": "Uso: {{CLI_NAME}} defesa unban --ip <ip> [--method fail2ban|ufw|both] [--execute]"
              }
            },
            "whitelist": {
              "--action": {
                "c1cbdf": "Uso: {{CLI_NAME}} lista branca de defesa --action list|add|remove [--ip IP]"
              }
            },
            "status": {
              "bans": {
                "a8d96b": "Uso: {{CLI_NAME}} status de defesa|proibições|suspeitos|ban|unban|whitelist|stack-apply|fail2ban|firewall|timeline|presets [--json]\n banimentos [--q texto] [--source fail2ban|panel|ufw|auto]\n suspeitos [--q texto]\n stack-apply [--execute] # UFW + fail2ban + predefinição atual\nfail2ban | firewall # investigações profundas (honestas)\n linha do tempo [--limit N] [--q texto]\npredefinições # lista + activePreset"
              }
            }
          }
        }
      },
      "system": {
        "unit-install": {
          "--enable": {
            "--data-dir": {
              "path": {
                "33daa1": "Uso: instalação da unidade do sistema ysk-server [--enable] [--data-dir PATH]"
              }
            }
          }
        }
      },
      "users": {
        "create": {
          "--username": {
            "u": {
              "--password": {
                "7145c7": "Uso: usuários do servidor ysk criam --username <u> --password <p> [--role operator|viewer|admin] [--package-id id]"
              }
            }
          }
        },
        "list": {
          "--q": {
            "text": {
              "--role": {
                "544685": "Uso: lista de usuários do servidor ysk [--q text] [--role admin|operator|viewer]\n       usuários do servidor ysk criam --username u --password p [--role operador]"
              }
            }
          }
        }
      },
      "rbac": {
        "list": {
          "policies": {
            "330ade": "Uso: lista rbac do servidor ysk | políticas\n       ysk-server rbac show --role operador\n       auditoria rbac do servidor ysk # rota → matriz de amostra cap"
          }
        }
      },
      "hosting": {
        "postgres-provision": {
          "--db": {
            "name": {
              "--user": {
                "2c8889": "Uso: hospedagem do servidor ysk postgres-provision --db NAME --user U --password P(min8) [--execute]\n  Teste padrão (sem alteração de host). Passe --execute + YSK_EXECUTE=1 para aplicar."
              }
            }
          }
        },
        "mysql-provision": {
          "--db": {
            "name": {
              "--user": {
                "fc25aa": "Uso: ysk-server hospedagem mysql-provision --db NAME --user U --password P(min8) [--execute]\n  Teste padrão (sem alteração de host). Passe --execute + YSK_EXECUTE=1 para aplicar."
              }
            }
          }
        },
        "dns-zone": {
          "--zone": {
            "example": {
              "com": {
                "bdaa0d": "Uso: ysk-server hospedagem dns-zone --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]"
              }
            }
          }
        },
        "powerdns-load": {
          "--zone": {
            "example": {
              "com": {
                "dba49c": "Uso: hospedagem do servidor ysk powerdns-load --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--load|--execute]"
              }
            }
          }
        },
        "email-apply": {
          "--domain": {
            "example": {
              "com": {
                "37d350": "Uso: hospedagem do servidor ysk email-apply --domain example.com [--install|--execute]"
              }
            }
          }
        },
        "email-mailbox": {
          "--domain": {
            "x": {
              "--local": {
                "3d9be3": "Uso: ysk-server hospedagem email-mailbox --domain X --local user [--password P] [--ip A.B.C.D]"
              }
            }
          }
        },
        "ftps-apply": {
          "--domain": {
            "files": {
              "example": {
                "284a7c": "Uso: ysk-server hospedagem ftps-apply --domain files.example.com [--install|--execute]"
              }
            }
          }
        },
        "webmail-apply": {
          "--domain": {
            "webmail": {
              "example": {
                "2ad5b5": "Uso: ysk-server hospedagem webmail-apply --domain webmail.example.com [--download]"
              }
            }
          }
        },
        "public-files": {
          "--domain": {
            "files": {
              "example": {
                "0e9013": "Uso: servidor ysk hospedando arquivos públicos --domain files.example.com [--reload]"
              }
            }
          }
        },
        "email-deliverability": {
          "--domain": {
            "example": {
              "com": {
                "8774a4": "Uso: ysk-server hospedagem email-deliverability --domain example.com\n       ysk-server hospedagem email-deliverability --id <domainId>"
              }
            }
          }
        },
        "email-bootstrap": {
          "--domain": {
            "example": {
              "com": {
                "796da5": "Uso: ysk-server hospedagem email-bootstrap --domain example.com --ip 1.2.3.4 [--admin postmaster] [--password P] [--install]"
              }
            }
          }
        }
      },
      "migrate": {
        "post": {
          "--job": {
            "id": {
              "--data-dir": {
                "6a73cd": "Uso: ysk-server migrar post --job <id> --data-dir PATH --execute"
              }
            }
          }
        },
        "host": {
          "--target": {
            "root": {
              "new": {
                "3e94a2": "Uso: ysk-server migrar host --target root@NEW_IP [--identity-file PATH|--identity-id ID] [--password] --execute --data-dir PATH"
              }
            }
          }
        }
      },
      "x": {
        "972912": "Uso:\n  inventário de migração do servidor ysk [--data-dir PATH] --json\n  ysk-server migra host --target root@IP [--identity-file PATH|--identity-id ID|--password PW] --execute [--maintenance] [--force-wipe-target]\n  ysk-server migra post --job ID --data-dir PATH --execute # no destino\n  status de migração do servidor ysk [--ID do trabalho]\n  ysk-server migrar currículo --job ID --execute\n  ysk-server migrate orphan-homes [--data-dir PATH] --json\n  ysk-server migrate orphan-homes --path /home/ysk-server-UUID --confirm PATH --execute\n"
      },
      "hostingHelp": "Uso: hospedagem ysk-server <sub>\n  Teste padrão de operações perigosas; adicione --execute (+ YSK_EXECUTE=1) para aplicar\n  nginx | nginx-sync [--executar]\n  redisprovisão | provisão postgres | provisão mysql [--executar]\n  dns-zone --zone X --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]\n  zonas DNS | status do powerdns | powerdns-install [--instalar|--executar]\n  powerdns-load --zone X --ip A.B.C.D [--load|--execute]\n  email-apply --domain X [--install|--execute]\n  email-caixa de correio --domínio X --usuário local [--senha P] [--ip A.B.C.D] [--sistema]\n  ftps-apply --domínio X [--instalar|--executar]\n  tempos de execução | runtime-install --kind node|php|python|go|rust --version V [--install|--execute]\n  dovecot-passdb --domínio X | --todos\n  webmail-apply --domínio webmail.example.com [--download]\n  arquivos públicos --domain files.example.com [--reload]\n  email-bootstrap --domain example.com --ip A.B.C.D [--install|--execute]\n  email-deliverability --domain example.com # PTR/DNSBL/warmup pack (honesto)\n  aplicar firewall [--smtp] [--executar]",
      "logsQuery": "Uso: {{CLI_NAME}} consulta de logs --source <id> [--lines N] [--grep G] [--since 1h] [--priority err]\n  exemplos de origem: diário: diário: arquivo nginx.service: projeto syslog: <uuid>\n  {{CLI_NAME}} fontes de registros --json\n  {{CLI_NAME}} diário de registros [--unit nginx.service] --json"
    },
    "msg": {
      "domain": {
        "missing": {
          "pass": {
            "5be09b": "Domínio ausente – passe --ip para criar o domínio primeiro"
          }
        }
      },
      "--root": {
        "must": {
          "be": {
            "a84834": "--root deve ser público ou projeto:<id>"
          }
        }
      },
      "need": {
        "--content": {
          "or": {
            "4d7001": "Precisa de --content ou --file"
          }
        },
        "at": {
          "least": {
            "7d311a": "Precisa de pelo menos um --member HOST[=role][:access]"
          }
        }
      },
      "action": {
        "must": {
          "be": {
            "ba14c1": "a ação deve ser listar|adicionar|remover"
          }
        }
      },
      "use": {
        "ysk-server": {
          "backup": {
            "ca67f4": "Use: ysk-server backup control-plane-restore --name ARCHIVE (não restaurar --project-id control-plane)"
          }
        }
      },
      "new": {
        "domain": {
          "requires": {
            "986b78": "O novo domínio requer --ip A.B.C.D (sem padrões de espaço reservado)"
          }
        }
      },
      "import-sync": {
        "prefers": {
          "fleet": {
            "4d7590": "import-sync prefere carga útil clusterSync da frota; ou --file snapshot.json"
          }
        }
      },
      "security": {
        "control": {
          "plane": {
            "f59a63": "SEGURANÇA: plano de controle vinculado publicamente (0.0.0.0/::). Prefira 127.0.0.1 + proxy reverso/UFW."
          }
        }
      }
    },
    "err": {
      "unknown": {
        "email": {
          "sub": {
            "sub": {
              "e37257": "Sub-e-mail desconhecido: {{sub}}\nExecute: ajuda de e-mail do servidor ysk"
            }
          }
        },
        "cron": {
          "sub": {
            "sub": {
              "e1a9ed": "Sub cron desconhecido: {{sub}}\nExecute: ajuda do cron do ysk-server"
            }
          }
        },
        "files": {
          "sub": {
            "sub": {
              "07ad7e": "Arquivos desconhecidos sub: {{sub}}\nExecute: ajuda dos arquivos do servidor ysk"
            }
          }
        },
        "store": {
          "sub": {
            "sub": {
              "b7a083": "Subloja desconhecida: {{sub}}\nExecute: ajuda da loja do servidor ysk"
            }
          }
        },
        "cdn": {
          "subcommand": {
            "sub": {
              "76664f": "Subcomando cdn desconhecido: {{sub}}\nExecute: ajuda do cdn do servidor ysk"
            }
          }
        },
        "backup": {
          "subcommand": {
            "sub": {
              "4092ad": "Subcomando de backup desconhecido: {{sub}}\nExecute: ajuda de backup do servidor ysk"
            }
          }
        }
      }
    },
    "setup": {
      "dryRunOk": "{{product}} configuração de simulação OK",
      "dryRunNext": "Execute novamente sem --dry-run para gravar a configuração e inicializar o banco de dados",
      "weakPassword": "A senha do administrador é fraca ou padrão. Passe uma --admin-password forte (min 8, não \"admin\"/padrões comuns) ou defina YSK_ALLOW_INSECURE_DEFAULTS=1 apenas para desenvolvedores locais.",
      "weakPasswordShort": "Senha de administrador fraca ou padrão rejeitada",
      "nextStart": "Iniciar (API + UI da Web): {{cli}} serve --config {{configPath}}",
      "nextOpen": "Abra http://{{host}}:{{port}}/ e faça login como {{user}}",
      "nextUnit": "Modelo de unidade Systemd: {{unitPath}}",
      "nextInstall": "Unidade de instalação (root + YSK_EXECUTE): {{cli}} system unit-install --enable --data-dir {{dataDir}}",
      "nextExecute": "Mutações no host de produção requerem YSK_EXECUTE=1 e root",
      "nextGolive": "Go-live: docs/deploy/go-live.md + preparação do servidor ysk --json",
      "secPassword": "SEGURANÇA: altere a senha do administrador imediatamente (o bootstrap usou uma senha fraca/padrão)",
      "sec2fa": "SEGURANÇA: habilite admin 2FA em Segurança → Conta",
      "secListen": "SEGURANÇA: escuta em todas as interfaces — colocado atrás de firewall/proxy reverso; prefira 127.0.0.1 + túnel SSH para administrador",
      "ok": "{{product}} configuração concluída (banco de dados inicializado)",
      "okInsecure": "{{product}} configuração concluída (banco de dados inicializado) [INSECURE BOOTSTRAP — alterar senha]"
    }
  },
  "common": {
    "all": "Todos",
    "cancel": "Cancelar",
    "confirm": "Confirmar",
    "refresh": "Atualizar",
    "loading": "Carregando…",
    "save": "Salvar",
    "apply": "Aplicar",
    "close": "Fechar",
    "copy": "Cópia",
    "copied": "Copiado",
    "expandAll": "Expandir tudo",
    "collapseAll": "Recolher tudo",
    "empty": "Vazio",
    "back": "Voltar",
    "showTechnical": "Mostrar detalhes técnicos",
    "hideTechnical": "Ocultar detalhes técnicos",
    "needExecute": "Precisa de YSK_EXECUTE",
    "needRoot": "Precisa de raiz",
    "needExecuteRoot": "Precisa de YSK_EXECUTE e root",
    "writtenOnly": "Escrito em dados do painel; não aplicado no host",
    "applyToLive": "Aplicar para entrar em vigor",
    "saveDraft": "Salvar rascunho",
    "languageName": "Inglês",
    "languageNative": "Inglês",
    "language": "Linguagem",
    "switchLanguage": "Mudar idioma",
    "showPassword": "Mostrar",
    "hidePassword": "Esconder",
    "searchGlobal": "Procurar…",
    "menu": "Menu",
    "processing": "Trabalhando…",
    "unavailable": "Não disponível no momento",
    "retry": "Tentar novamente",
    "success": "Sucesso",
    "ok": "OK",
    "failed": "Fracassado",
    "blocked": "Não é possível executar",
    "status": "Status",
    "port": "Porta",
    "url": "URL",
    "actions": "Ações",
    "noData": "Sem dados",
    "input": "Entrada",
    "pleaseEnter": "Digite {{value}}",
    "pleaseFill": "Por favor preencha este campo",
    "required": "Obrigatório",
    "about": "Sobre",
    "more": "Mais",
    "operation": "Ações",
    "delete": "Excluir",
    "edit": "Editar",
    "create": "Criar",
    "install": "Instalar",
    "installing": "Instalando…",
    "reprobe": "Verifique novamente",
    "search": "Procurar",
    "yes": "Sim",
    "no": "Não",
    "on": "Sobre",
    "off": "Desligado",
    "open": "Abrir",
    "enabled": "Habilitado",
    "disabled": "Desabilitado",
    "installed": "Instalado",
    "notInstalled": "Não instalado",
    "running": "Correndo",
    "stopped": "Parou",
    "ready": "Preparar",
    "unknown": "Desconhecido",
    "normal": "OK",
    "degraded": "Degradado",
    "missing": "Ausente",
    "available": "Disponível",
    "applied": "Aplicado",
    "notApplied": "Não aplicado",
    "completed": "Concluído",
    "incomplete": "Incompleto",
    "probed": "Sondado",
    "notProbed": "Não investigado",
    "probe": "Sondar",
    "name": "Nome",
    "username": "Nome de usuário",
    "password": "Senha",
    "domain": "Domínio",
    "host": "Hospedar",
    "version": "Versão",
    "type": "Tipo",
    "mode": "Modo",
    "notes": "Notas",
    "time": "Tempo",
    "steps": "Passos",
    "target": "Alvo",
    "package": "Pacote",
    "panel": "Painel",
    "system": "Sistema",
    "user": "Usuário",
    "project": "Projeto",
    "database": "Banco de dados",
    "mail": "Correspondência",
    "files": "Arquivos",
    "memory": "Memória",
    "custom": "Personalizado",
    "static": "Estático",
    "lifecycle": "Vida útil",
    "loadFailed": "Falha ao carregar",
    "saveFailed": "Falha ao salvar",
    "opFailed": "Falha na operação",
    "installFailed": "Falha na instalação",
    "createFailed": "Falha na criação",
    "deleteFailed": "Falha na exclusão",
    "applyFailed": "Falha na aplicação",
    "startFailed": "Falha no início",
    "statusLoadFailed": "Falha ao carregar o status",
    "downloadFailed": "Falha no download",
    "uploadDone": "Arquivo(s) {{count}} carregado(s)",
    "downloadStarted": "Download iniciado: {{name}}",
    "savedOk": "Salvo",
    "noneSelectedShort": "—",
    "unknownError": "Erro desconhecido",
    "writtenSettings": "Configurações escritas",
    "panelBlocked": "Não é possível concluir esta ação no painel de administração",
    "partialSuccess": "A operação não foi totalmente bem-sucedida",
    "createdOk": "Criado",
    "updatedOk": "Atualizado",
    "deletedOk": "Excluído",
    "applyDone": "Inscrição concluída",
    "applyIncomplete": "Candidatura incompleta",
    "checking": "Verificando…",
    "dismiss": "Fechar",
    "hide": "Esconder",
    "show": "Mostrar",
    "done": "Feito",
    "next": "Próximo",
    "previous": "Anterior",
    "redirectedTo": "Aberto {{to}} (antes {{from}})"
  },
  "cron": {
    "presetCdTrue": "aplicativo cd + verdadeiro (teste)",
    "presetCleanTmp": "Temperatura limpa (amostra)",
    "presetNpmCron": "npm execute cron (se houver)",
    "presetAppBin": "Execute o binário do aplicativo",
    "presetRsync": "Sincronizar estática (exemplo de rsync)",
    "noLinuxUser": "(sem usuário Linux) · {{name}}",
    "projectUser": "Usuário do projeto",
    "panelUser": "ysk · painel / sistema",
    "system": "Sistema",
    "rootCareful": "raiz · sistema (cuidadoso)",
    "customUser": "{{user}} · personalizado",
    "success": "Sucesso",
    "failed": "Fracassado",
    "noProjects": "Ainda não há projetos",
    "noProjectsHint": "Crie um projeto (e de preferência um usuário do sistema) antes de registrar o cron",
    "userSuffix": "· usuário",
    "mon": "seg",
    "tue": "ter",
    "wed": "qua",
    "thu": "qui",
    "fri": "sex",
    "sat": "Sentado",
    "sun": "Sol",
    "everyNMin": "A cada N minutos",
    "fixedInterval": "Intervalo fixo",
    "hourly": "De hora em hora",
    "atMinute": "No minuto",
    "daily": "Diário",
    "atTime": "Na hora",
    "weekly": "Semanalmente",
    "weekdayTime": "Dia da semana + horário",
    "monthly": "Mensal",
    "dayTime": "Dia + hora",
    "advanced": "Avançado",
    "customExpr": "Expressão personalizada",
    "everyMinute": "Cada minuto",
    "everyMinutes": "A cada {{n}} minutos",
    "hourlyAt": "De hora em hora por minuto {{n}}",
    "dailyAt": "Diariamente {{time}}",
    "weeklyNone": "Semanalmente (sem dias) {{time}}",
    "weeklyAt": "Semanalmente {{days}} {{time}}",
    "monthlyAt": "Dia mensal {{day}} {{time}}",
    "customAt": "Personalizado: {{expr}}",
    "frequency": "Frequência de agendamento",
    "interval": "Intervalo",
    "fromHour": "Do início da hora",
    "intervalMinutes": "Minutos de intervalo",
    "min1": "1 minuto",
    "minN": "{{n}} minutos",
    "minuteOfHour": "Minuto de cada hora",
    "minPad": "{{n}} minutos",
    "hour": "Hora",
    "minute": "Minuto",
    "pickWeekdays": "Escolha os dias da semana",
    "dayOfMonth": "Dia do mês",
    "dayOfMonthHint": "Ignorado se o mês não tiver esse dia",
    "cronExpr": "Expressão crontab",
    "cronExprHint": "Cinco campos: min hora dia mês dia da semana (0=Dom)",
    "cronExprPh": "expressão crontab",
    "needLinuxUser": "O projeto selecionado não tem usuário Linux — primeiro crie um em Recursos do projeto",
    "boundProject": "Vinculado ao projeto; execute como {{user}} (isolamento do usuário de execução)",
    "systemJob": "Trabalho do sistema; execute como {{user}}",
    "writtenManage": "Escrito no crontab gerenciado (ainda não instalado no host)",
    "needInstall": "Pressione Instalar no crontab do sistema para entrar em vigor",
    "createdManageOnly": "Criado (somente gerenciamento)",
    "installedSystem": "Instalado no sistema",
    "hostSynced": "Host sincronizado",
    "hostNotInstalled": "Não está no host",
    "statusUnknown": "Estado desconhecido",
    "systemCrontab": "Crontab do sistema",
    "synced": "Sincronizado",
    "managedLines": "Linhas gerenciadas",
    "jobsOnlyManage": "Os trabalhos são apenas de gerenciamento. Crontab do sistema",
    "hostHasYsk": "inclui entradas YSK",
    "hostNoYsk": "não instalado ou sem entradas YSK",
    "pressInstall": "Os trabalhos registrados ainda não estão no crontab do sistema — clique em Instalar no sistema.",
    "jobsTab": "Empregos ({{count}})",
    "jobsTabPending": "Trabalhos ({{count}}) · pendentes {{pending}}",
    "registeredJobs": "Empregos registrados ({{count}})",
    "jobsSub": "Entradas de gerenciamento · Instalar no sistema após alterações",
    "addJob": "+ Adicionar trabalho",
    "noCron": "Nenhum cron ainda",
    "noCronDesc": "Adicione um trabalho (canto superior direito da lista) e instale no crontab do sistema",
    "onceInstalled": "Instalado antes",
    "manageOnly": "Gerenciar apenas",
    "projectLabel": "Projeto",
    "systemLevel": "Sistema",
    "runOnce": "Corra agora",
    "runOnceOk": "Correu uma vez",
    "updatedManage": "Gestão atualizada; reinstalar no crontab do sistema",
    "updatedManageShort": "Gestão atualizada",
    "deletedManage": "Removido da gestão; reinstalar para sincronizar o host",
    "installStatus": "Status da instalação",
    "manageVsHost": "Gerenciamento vs host",
    "hostYsk": "Anfitrião YSK",
    "lastInstall": "Última instalação",
    "installToSystem": "Instalar no crontab do sistema",
    "installHint": "Instalar mescla o host crontab: mantém linhas não-YSK e atualiza apenas trabalhos gerenciados pelo painel",
    "hostPreview": "Visualização do host crontab",
    "cannotRead": "Não é possível ler ou não está instalado (precisa de privilégios)",
    "addJobTitle": "Adicionar trabalho",
    "addJobDesc": "Gerenciamento de escrita; Instale no sistema para que o crontab seja executado",
    "createManageOnly": "Criar (somente gerenciamento)",
    "whenRun": "Quando correr",
    "whenRunHint": "Escolha a frequência abaixo; modo avançado para crontab bruto",
    "userPathHint": "Os caminhos de usuário + comando seguem a página inicial/tempo de execução do projeto",
    "pickProject": "— selecione o projeto —",
    "runAsUser": "Executar como usuário",
    "runAsHint": "O usuário do projeto sincroniza o projeto acima; usuário do sistema = cron no nível do sistema",
    "noProjectsYet": "(nenhum projeto ainda)",
    "runInHome": "Execute na página inicial do projeto ({{home}}); envolvido com runuser ao salvar",
    "absPath": "Prefira caminho absoluto",
    "commonCmds": "Comandos comuns ({{runtime}})",
    "actualPreview": "Linha crontab real (visualização)",
    "noLinuxName": "Este projeto não tem nome de usuário Linux – crie primeiro o usuário do sistema em Recursos.",
    "afterCreate": "Depois de criar:",
    "projectParen": "(projeto {{name}})",
    "systemParen": "(nível do sistema, não vinculado)",
    "weekLabel": "Dia da semana",
    "willRun": "Vai correr",
    "projectNoLinux": "(sem usuário Linux)",
    "createManageOnlyParen": "Criar (somente gerenciamento)",
    "runAsHintFull": "O usuário do projeto sincroniza o projeto acima; usuário do sistema = cron no nível do sistema",
    "systemParenFull": "(nível do sistema, não vinculado)",
    "hostOtherLines": "Hospedar linhas não YSK",
    "hostOtherLinesVal": "{{other}} outro ({{total}} linhas de trabalho host)",
    "deleteTitle": "Excluir trabalho cron?",
    "deleteDesc": "Exclui \"{{name}}\". Somente plano de controle até ser aplicado ao crontab do sistema.",
    "hostJobs": "Hospedar trabalhos",
    "hostJobsTitle": "Hospedar crontabs ({{count}})",
    "usersScanned": "Usuários",
    "filterUser": "Usuário",
    "filterAll": "Todos os usuários",
    "sourceYsk": "Painel",
    "sourceHost": "Hospedar",
    "noHostJobs": "Nenhum trabalho crontab neste escopo",
    "hostPartial": "Não foi possível ler o crontab de todos os usuários (é necessário root)",
    "pendingInstall": "Instalação pendente ({{count}})",
    "pendingStale": "Não gravado no crontab do sistema por {{days}} dia(s) — ele não será executado.",
    "willNotRun": "Não gravado no crontab do sistema — não será executado.",
    "hourRange": "A hora deve ser 0–23.",
    "minuteRange": "O minuto deve ser 0–59.",
    "hoursCommon": "Horário comum",
    "hoursAll": "Todas as horas",
    "invalidExpr": "Não é uma expressão cron válida de 5 campos.",
    "needCommand": "O comando é necessário.",
    "needUser": "Escolha um projeto ou um usuário do sistema.",
    "hostCounts": "Linhas hospedeiras",
    "hostCountsVal": "{{ysk}} · outro {{other}} · total {{total}}",
    "hostYskYes": "linhas do painel presentes",
    "hostYskNo": "sem linhas de painel",
    "emptyHostCrontab": "Não há crontab para {{user}}.",
    "writtenOnHost": "Escrito",
    "registeredJobsChip": "Registrado",
    "registeredVsWritten": "Registrado no painel vs escrito no host crontab",
    "installPreviewTitle": "Visualize antes de instalar no crontab do sistema",
    "installPreviewDesc": "Isso mescla o bloco YSK no crontab do host. As linhas não YSK existentes permanecem.",
    "installPreviewMerge": "A instalação grava um bloco de mesclagem crontab do servidor YSK. Ele não substitui todo o crontab.",
    "installPreviewEmpty": "Nenhum trabalho gerenciado pendente – a instalação ainda atualiza o bloco YSK.",
    "editJobTitle": "Editar trabalho",
    "editJobDesc": "As alterações permanecem no painel até você instalar no crontab do sistema.",
    "saveJob": "Salvar (somente gerenciamento)",
    "panelLines": "Linhas do painel",
    "otherLines": "Outras linhas",
    "totalLines": "Total",
    "writtenOnHostHint": "Linhas já escritas no crontab host",
    "registeredJobsHint": "Jobs cadastrados no painel (incluindo instalação pendente)",
    "pendingInstallCount": "{{n}} instalação pendente",
    "systemJobBadge": "Nenhum projeto · usuário do sistema",
    "hostEdit": "Editar",
    "hostEditTitle": "Editar linha crontab do host",
    "hostEditDesc": "Grava o crontab ativo deste usuário agora. Precisa de root e YSK_EXECUTE=1. Outras linhas ficam.",
    "hostSave": "Escrever crontab",
    "hostSaveTitle": "Escreva esta linha crontab?",
    "hostSaveDesc": "Replaces the live line for {{user}}. Type EDIT to confirm.\n\nCurrent:\n{{from}}\n\nNext:\n{{to}}",
    "hostDisable": "Desativar",
    "hostDisableTitle": "Desativar linha crontab do host?",
    "hostDisableDesc": "Comenta a linha para {{user}}. Digite DESATIVAR para confirmar.",
    "hostEnable": "Habilitar",
    "hostEnableTitle": "Habilitar linha crontab do host?",
    "hostEnableDesc": "Remove o comentário para {{user}}. Digite ATIVAR para confirmar.",
    "hostRunTitle": "Execute este comando host uma vez?",
    "hostRunDesc": "Funciona como {{user}} agora. Não altera o crontab. Digite EXECUTAR para confirmar.",
    "hostAdopt": "Leve para o painel",
    "hostAdoptTitle": "Leve esta linha host para o painel?",
    "hostAdoptDesc": "Marca a linha ativa # ysk:id e a registra. A próxima instalação não irá duplicá-lo. Digite ADOTAR para confirmar.",
    "hostDeleteTitle": "Remover linha crontab do host?",
    "hostDeleteDesc": "Remove a linha ativa para {{user}}. Digite o comando para confirmar.",
    "hostUserLocked": "Proprietário do Crontab (não é possível mover entre usuários aqui)",
    "hostLinePreview": "Linha que será escrita",
    "disabledJob": "Desabilitado",
    "confirmMismatch": "A confirmação deve corresponder ao comando.",
    "writtenHost": "Escreveu o host crontab",
    "adoptedHost": "Levado para o painel",
    "keepDisabledHint": "Esta linha está desabilitada. Salvar mantém comentado.",
    "currentLine": "Atual",
    "nextLine": "Próximo"
  },
  "dashboard": {
    "serviceAria": "{{name}}: {{state}}",
    "sev": {
      "ok": "OK",
      "warn": "Aviso",
      "bad": "Problema"
    },
    "title": "Painel",
    "health": "Saúde",
    "protection": "Modo de proteção",
    "welcome": "Bem-vindo ao servidor YSK",
    "audit": "Auditoria recente",
    "needLogin": "Faça login para visualizar eventos de auditoria",
    "features": "Características",
    "featuresHint": "Selos: Pronto = software instalado;",
    "badge": {
      "panel": "Painel",
      "notInstalled": "Não instalado",
      "ready": "Preparar",
      "installed": "Instalado",
      "prodReady": "Produção pronta",
      "check": "Verificar",
      "needPerm": "Precisa de permanente"
    },
    "status": {
      "healthy": "Saudável",
      "prodReady": "Produção pronta",
      "needsCheck": "Precisa de verificação"
    },
    "stat": {
      "backups": "Cópias de segurança",
      "notifications": "Alertas",
      "certExpiry": "Expiração do certificado"
    },
    "tabs": {
      "overview": "Visão geral",
      "wizard": "Criação rápida",
      "notifications": "Alertas",
      "features": "Características"
    },
    "serviceHealth": "Integridade do serviço",
    "serviceHealthDesc": "Sonda systemctl ao vivo",
    "fullServiceMatrix": "Matriz de serviço completo",
    "readinessCheck": "Prontidão:",
    "prodOk": "Produção pronta",
    "notFullyReady": "Não totalmente pronto",
    "readinessBlocked": "{{n}} bloqueador(es)",
    "modeScore": "Modo {{mode}} · pontuação {{ready}}/{{total}}",
    "mode": {
      "degraded": "degradado",
      "production_capable": "produção pronta",
      "blocked": "bloqueado",
      "normal": "normal"
    },
    "details": "Detalhes",
    "certExpiryTitle": "Expiração do certificado:",
    "certExpired": "expirado",
    "certDays": "{{days}}d",
    "securityStrip": "Segurança e status de aplicação",
    "securityStripDesc": "Alertas ao vivo + aplicação de auditoria de honestidade (escrita ≠ aplicada)",
    "notifCount": "Alertas {{count}}",
    "criticalCount": "· crítico {{count}}",
    "warnCount": "· avisar {{count}}",
    "applyAuditBadge": "Aplicar auditoria · ok {{ok}} · avisar {{warn}} · ruim {{bad}}",
    "executeBadge": "EXECUTAR {{state}}",
    "executeLabel": "EXECUTE",
    "publicNo2fa": "Este painel escuta todas as interfaces e sua conta de administrador não possui 2FA.",
    "go": "Abrir",
    "open": "Abrir",
    "noCriticalWarn": "Sem alertas críticos ou de aviso",
    "notifCenter": "Central de notificações",
    "noHealthYet": "Estado de saúde ainda não disponível",
    "sysChange": "Mudanças no sistema",
    "opened": "Sobre",
    "closed": "Desligado",
    "readinessLink": "Prontidão →",
    "hostMetrics": "Métricas de host",
    "loadAvg": "Média de carga (1 · 5 · 15 min)",
    "memoryDash": "Memória -",
    "metricsLink": "Métricas →",
    "runningOf": "Executando {{running}}/{{total}}",
    "noProjects": "Ainda não há projetos",
    "wizardLink": "Criação rápida →",
    "allProjects": "Todos os projetos →",
    "recentN": "Último {{n}}",
    "runningCount": "Correndo {{n}}",
    "securityLink": "Segurança →",
    "wizardTitle": "Criação rápida",
    "wizardDesc": "Crie um projeto e, opcionalmente, rascunhe DNS/mail/banco de dados (aplicar em cada página de recurso)",
    "projectName": "Nome do projeto",
    "projectNameHint": "Nome de exibição; cria um diretório correspondente",
    "nameRequired": "Insira um nome de projeto",
    "domainOptional": "Domínio (opcional)",
    "domainHint": "Necessário para ativar opções de DNS e email",
    "runtime": "Tempo de execução",
    "runtimeHint": "Define a versão de tempo de execução padrão e o estilo de implantação",
    "runtimeVersion": "Versão de tempo de execução",
    "versionHint": "Grava a definição de versão do ambiente de execução do projeto",
    "serverIpv4": "Servidor IPv4",
    "serverIpv4Hint": "DNS A / correio SPF",
    "serverIpv4Ph": "Este host IPv4 público",
    "serverIpv6": "Servidor IPv6 (opcional)",
    "serverIpv6Hint": "Grava AAAA/ip6: quando definido",
    "serverIpv6Ph": "IPv6 público (opcional)",
    "needDomainFirst": "Introduza primeiro um domínio",
    "withDns": "Crie também uma zona DNS",
    "withDnsDesc": "Necessita domínio; somente registro – aplicar zona na página DNS",
    "withMail": "Registre também o domínio de correio",
    "withMailDesc": "Necessita domínio; instalar software e DNS na página de detalhes do email",
    "withDb": "Também rascunhe o banco de dados MySQL",
    "withDbDesc": "Registro do plano de controle; aplicar na página do mecanismo SQL",
    "wizardHint": "A criação rápida não é ativada automaticamente",
    "wizardSubmit": "Criar",
    "wizardOk": "Criado",
    "wizardPartial": "Falha parcial",
    "notifCenterTitle": "Notificações ({{count}})",
    "notifCenterDesc": "Crítico {{critical}} · avisar {{warn}} · informação {{info}}",
    "noNotifs": "Sem notificações",
    "noNotifsDesc": "Alertas do sistema e todos aparecem aqui",
    "applyAuditTitle": "Aplicar auditoria de status",
    "applyAuditDesc": "ok {{ok}} · avisar {{warn}} · ruim {{bad}}",
    "barTitle": "{{count}} alerta(s) do host",
    "levelCritical": "Crítico",
    "levelWarn": "Aviso",
    "levelInfo": "Informações",
    "colTitle": "Alerta",
    "colDetail": "Detalhe",
    "colSource": "Origem",
    "notifSearch": "Alertas de pesquisa",
    "notifAll": "Todos",
    "notifDismiss": "Esconder",
    "goFix": "Consertar"
  },
  "dataTable": {
    "empty": "Sem dados",
    "actions": "Ações"
  },
  "db": {
    "serviceSettings": "Configurações de serviço",
    "installedOk": "{{engine}} instalado",
    "startedOk": "{{engine}} iniciado",
    "installFirst": "Instale {{engine}} primeiro",
    "softwareMissing": "{{engine}} software não está instalado",
    "serviceOverview": "Visão geral do serviço",
    "readonlyStatus": "Status somente leitura",
    "readonlyProbe": "Sonda somente leitura",
    "systemChange": "Mudanças no sistema",
    "opened": "Habilitado",
    "notOpened": "Desabilitado",
    "admin": "Administrador",
    "client": "Cliente",
    "hasClient": "Sim",
    "noClient": "Não",
    "canProvision": "Pode criar bancos de dados",
    "dumpOk": "Despejo concluído",
    "dumpFailed": "Falha no despejo",
    "noDumpToImport": "Nenhum arquivo de despejo para importar",
    "expiredTempUsersProcessed": "Usuários temporários expirados processados",
    "dumpFirstDb": "Despejar o primeiro banco de dados",
    "importLatestDump": "Importar último dump",
    "cleanupExpiredTempUsers": "Limpar usuários temporários expirados",
    "adminerEntry": "Projeto de navegador de banco de dados",
    "browserProjectTitle": "Criar projeto de navegador de banco de dados",
    "browserTool": "Ferramenta",
    "browserNameHint": "Cria um projeto PHP; o nome deve ser exclusivo",
    "browserNameTaken": "O nome do projeto já existe: {{name}}",
    "browserProjectCreated": "Projeto de navegador de banco de dados criado",
    "createBrowserProject": "Criar projeto e implantar",
    "downloadPhpMyAdmin": "Baixe o phpMyAdmin (precisa de mudança de sistema + rede)",
    "createDatabase": "Criar banco de dados",
    "installBannerHint": "Use o banner acima para instalar {{engine}}.",
    "exclusiveMariaHint": "Este host executa o MariaDB. Use a página MariaDB ou o switch de um clique (digite SWITCH).",
    "exclusiveMysqlHint": "Este host executa MySQL. Use a página MySQL ou o switch de um clique (digite SWITCH).",
    "openMaria": "MariaDB",
    "openMysql": "MySQL",
    "openMariaService": "Serviço MariaDB",
    "openMysqlService": "Serviço MySQL",
    "startService": "Iniciar serviço",
    "openServiceConsole": "Abrir console de serviço",
    "opsResult": "Resultado das operações",
    "tempPasswordOnce": "Senha temporária somente leitura (mostrada uma vez):",
    "tabDatabases": "Bancos de dados ({{count}})",
    "tabUsers": "Usuários ({{count}})",
    "tabTemp": "Temp somente leitura ({{count}})",
    "tabRemote": "Hosts remotos ({{count}})",
    "dbList": "Lista de banco de dados",
    "charset": "Conjunto de caracteres",
    "noDatabasesYet": "Ainda não há bancos de dados",
    "emptyDbInstallFirst": "Instale {{engine}} através do banner e depois crie banco de dados",
    "emptyDbCannotProvision": "Não é possível criar bancos de dados no servidor no momento",
    "emptyDbCreateHint": "Use Criar banco de dados e depois Aplicar",
    "emptyDbHostHasRows": "O host já possui bancos de dados que não estão nesta lista de plano de controle.",
    "registeredVsHostHint": "Registado no painel / encontrado no anfitrião",
    "registeredCount": "Registrado",
    "hostCount": "No anfitrião",
    "registeredUsers": "Usuários registrados",
    "registeredUsersHint": "Somente registros no painel — nem todas as contas MySQL",
    "hostStillExists": "Ainda no anfitrião",
    "expiresLabel": "Expira",
    "dumpNeedRegistered": "Registe primeiro uma base de dados no painel",
    "dumpFirstDbTitle": "Exportar a primeira base registada",
    "importNeedRegistered": "Registe primeiro uma base de dados no painel",
    "importLatestNeedConfirm": "Precisa de confirmação — importa para a base registada",
    "hostHasUntracked": "{{count}} bancos de dados host não estão registrados no painel",
    "hostInventoryHint": "A tabela contém apenas linhas do plano de controle. Os nomes ativos vêm de SHOW DATABASES.",
    "userList": "Usuários",
    "userListDesc": "Conceda aos usuários acesso aos bancos de dados",
    "createUserBtn": "+ Criar usuário",
    "noUsersYet": "Nenhum usuário ainda",
    "tempReadonlyUsers": "Usuários somente leitura temporários",
    "tempReadonlyDesc": "As marcas do plano de controle expiraram após o TTL;",
    "dbName": "Nome do banco de dados",
    "ttlHours": "TTL (horas)",
    "ttlHoursHint": "Marcado como inválido após expirar",
    "createReadonlyUser": "Criar usuário somente leitura",
    "tempUserCreated": "Usuário temporário somente leitura criado",
    "expiresAt": "Expira",
    "revokeRegistration": "Revogar registro",
    "remoteDbHosts": "Hosts de banco de dados remoto",
    "remoteDbHostsDesc": "Registrar destinos de conexão (senha não retornada)",
    "remoteTest": "Conexão de teste",
    "remoteTestDone": "Sondagem de host remoto concluída",
    "remoteTestOk": "alcançável",
    "remoteTestFail": "inacessível",
    "remoteNotChecked": "não testado",
    "remoteDeleteTitle": "Remover apenas este registo",
    "remoteDeleteConfirm": "Remover o registo {{name}}? O servidor remoto não é alterado.",
    "displayName": "Nome de exibição",
    "prodReplicaPlaceholder": "Réplica de produção",
    "remoteHostSaved": "Host remoto salvo",
    "createDbTitle": "Criar banco de dados {{engine}}",
    "createDbDesc": "Após o registro do plano de controle, aplique para escrever no servidor",
    "dbNameHint": "Alnum e sublinhado em letras minúsculas; aplicar ao sistema após criar",
    "alsoCreateUser": "Crie também usuário",
    "alsoCreateUserDesc": "Crie um login que possa se conectar a este banco de dados",
    "passwordMin8": "Pelo menos 8 caracteres",
    "passwordMin8chars": "Pelo menos 8 caracteres",
    "allowConnectHost": "Anfitrião permitido",
    "allowConnectHostHint": "Frequentemente % (qualquer) ou localhost",
    "allowConnectHostHintShort": "Frequentemente% ou localhost",
    "createDbHint": "Grava apenas no plano de controle; Apply executa CREATE DATABASE no servidor.",
    "createUserTitle": "Criar usuário {{engine}}",
    "createUserDesc": "Aplicar após criar",
    "bindDatabase": "Vincular banco de dados",
    "bindDatabaseHint": "Opcional; conceder privilégios neste banco de dados",
    "noneOption": "- nenhum -",
    "importDumpTitle": "Despejo de importação?",
    "importDumpDesc": "Importe {{dump}} para {{db}}",
    "import": "Importar",
    "importOk": "Importação concluída",
    "importFailed": "Falha na importação",
    "deleteDbTitle": "Excluir registro do banco de dados?",
    "deleteDbDesc": "Remove apenas o registro do plano de controle; não descarta o banco de dados do servidor.",
    "deleteUserTitle": "Excluir o registro do usuário?",
    "deleteUserDesc": "Remove apenas o registro do plano de controle.",
    "adminerTitle": "Navegador de banco de dados do administrador",
    "adminerDesc": "Baixe Adminer + escreva Nginx conf; aplicar ao sistema executa nginx -t + reload",
    "adminerWritten": "Adminer gravado em arquivos de gerenciamento",
    "adminerApplied": "Administrador aplicado",
    "writeOnly": "Escreva apenas (escrito)",
    "applyToSystem": "Aplicar ao sistema",
    "adminerRisk": "Public Adminer é arriscado – restrinja IPs de origem ou adicione autenticação HTTP. Precisa de soquete PHP-FPM (padrão php8.2).",
    "vhostName": "Nome do host virtual",
    "vhostHint": "Aponte o DNS A para este host para acesso externo",
    "downloadAdminer": "Baixe Adminer PHP (precisa de YSK_EXECUTE + rede de saída)",
    "downloadAdminerDesc": "Desligado = usar apenas arquivo já baixado",
    "adminerWriteHint": "Somente gravação = gestão escrita;",
    "pgInstallBanner": "Instale o PostgreSQL primeiro através do banner",
    "pgEmptyCreateHint": "Após criar, aplique ao sistema para escrever no servidor",
    "pgNoDbs": "Ainda não há bancos de dados PostgreSQL",
    "pgCreateTitle": "Criar banco de dados PostgreSQL",
    "pgCreateDesc": "Registro do plano de controle; Aplicar ao sistema executa CREATE DATABASE",
    "pgAlsoCreateRole": "Crie também uma função",
    "pgAlsoCreateRoleDesc": "Crie uma função de login e conceda este banco de dados",
    "roleName": "Nome da função",
    "roleHint": "Função PostgreSQL/usuário de login",
    "pgDeleteDbDesc": "Remove o registro do plano de controle (não faz DROP automático, a menos que uma aplicação de revogação seja executada).",
    "update": "Atualizar",
    "alsoCreateRole": "Crie também uma função",
    "cluster": {
      "standaloneOtherEngines": "Este mecanismo é independente. Outros mecanismos possuem clusters: {{names}}.",
      "roleUnassigned": "Nenhuma função atribuída",
      "title": "Conjunto",
      "description": "Planejar → gerenciamento de gravação → aplicar → sondar → distribuição/frota entre pares. Teste padrão.",
      "redirectedFromCluster": "Você foi redirecionado aqui de /cluster. Esta é a guia cluster de banco de dados.",
      "notApplied": "Não aplicado",
      "plannedAt": "Criado {{when}}",
      "clearStalePlans": "Limpar planos obsoletos",
      "clearStalePlansTitle": "Excluir clusters planejados obsoletos?",
      "clearStalePlansDesc": "Exclui {{n}} registros planejados/rascunhos com mais de 7 dias. Não se aplica nem empurra. A configuração do sistema não é alterada.",
      "landingTitle": "Cluster de banco de dados",
      "landingDesc": "No database engine is installed on this host. Open an engine page to install, then return here.",
      "landingNoneInstalled": "MySQL, MariaDB, PostgreSQL, and Redis are not installed. /cluster does not open a MySQL tab when MySQL is missing.",
      "openEngine": "Abrir {{engine}}",
      "overviewPill": "Aglomerados {{n}}",
      "enginesInstalled": "Motores",
      "plannedCount": "Planejado",
      "overviewList": "Aglomerados ({{count}})",
      "overviewEmpty": "Ainda não há registros de cluster.",
      "engine": "Motor",
      "kind": "Tipo",
      "members": "Membros",
      "kindGalera": "Galera Simples",
      "kindMysqlReplica": "MySQL primário/réplica",
      "kindPgReplica": "Réplica de streaming do PostgreSQL",
      "kindRedisReplica": "Redis primário/réplica",
      "createGalera": "Crie uma Galera simples",
      "createMysqlReplica": "Criar primário/réplica",
      "createPgReplica": "Criar réplica de streaming",
      "createSentinel": "Criar Sentinela",
      "createRedisReplica": "Criar réplica do Redis",
      "needRealIps": "Insira IPs/nomes de host locais e de pares reais",
      "hostInvalid": "Insira um IPv4, IPv6 ou nome de host válido.",
      "statusNote": "Status: {{status}} (sucesso do plano ≠ integridade do cluster)",
      "artifactNote": "Artefatos: {{dir}}",
      "planGenerated": "Plano gerado (simulação)",
      "planUpdated": "Plano atualizado",
      "manageWritten": "Arquivos de gerenciamento gravados (ensaio)",
      "bootstrapTried": "Tentativa de inicialização",
      "applyTried": "Tentativa de aplicação de configuração do sistema",
      "localOk": "Local OK",
      "localProbeFail": "Falha na investigação local",
      "probedWithPeers": "Sondado (incl. pares)",
      "probedLocal": "Local investigado",
      "peerTarNote": "Pacote peer baixado (.tar.gz) — extraia e instale conf no peer",
      "downloaded": "Baixado",
      "peerPushed": "Empurrado para peering",
      "pushPlanGenerated": "Plano push gerado",
      "registrationDeleted": "Registro excluído",
      "nodes": "Nós",
      "remoteInstallPlan": "Plano de instalação remota",
      "fleetSession": "ID de sessão do agente de frota",
      "fleetSessionHint": "Optional. Paste a session UUID from /agents. Then this peer uses fleet (no SSH). Leave empty for SSH scp.",
      "fleetSessionPh": "UUID da sessão da página dos agentes",
      "fleetSessionNone": "Nenhum – use SSH",
      "fleetSessionOpenAgents": "Abra /agentes para registrar uma sessão",
      "createWizardTitle": "Abre o assistente de plano. Precisa de um IP local e ≥1 peer. Grava apenas artefatos do painel (simulação). Não reinicia o motor até que você aplique.",
      "bootstrap": "Inicialização",
      "fleetApply": "Aplicação de frota",
      "planTitle": "Gerar novamente o plano de cluster (sem alteração de host)",
      "writeFileTitle": "Grave arquivos de gerenciamento no diretório de dados do painel (simulação)",
      "probeLocalTitle": "Sondar apenas este host",
      "probeAllTitle": "Sonde cada membro registrado",
      "bootstrapTitle": "Instale o drop-in local e inicialize o primeiro nó",
      "remoteInstallPlanTitle": "Visualizar instalação remota (sem execução)",
      "downloadBundleTitle": "Baixe o pacote peer conf (.tar.gz)",
      "pushPlanTitle": "Visualizar push to peer (sem scp)",
      "fleetSyncPlanTitle": "Visualizar sincronização da frota (sem execução)",
      "fleetApplyTitle": "O enfileiramento se aplica aos membros da frota?",
      "status": {
        "healthy": "Saudável",
        "planned": "Planejado",
        "partial": "Parcial",
        "failed": "Fracassado",
        "draft": "Rascunho",
        "degraded": "Degradado",
        "applied": "Aplicado"
      },
      "fleetSyncPlan": "Plano de sincronização de frota",
      "standaloneTitle": "Atualmente: autônomo",
      "standaloneRepl": "Nenhuma réplica cadastrada. Defina primário/mestre + réplica para gerar conf e scripts.",
      "standaloneHa": "Nenhum HA registrado. Adicione nós de pares para gerar o plano de configuração e, em seguida, inicialize/junte-se.",
      "recentProbe": "Sonda recente (wsrep local)",
      "probeRequired": "saudável requer uma sonda de passagem",
      "planPreview": "Visualização do plano",
      "planPreviewDesc": "simulação · sucesso significa apenas etapas/conf geradas",
      "files": "Arquivos",
      "systemChangeNeed": "Obrigatório na aplicação",
      "planModalDesc": "Escolher nós → gerar plano (não altera os sistemas pares)",
      "generatePlan": "Gerar plano",
      "clusterName": "Nome do cluster",
      "localIp": "IP/host local",
      "primaryIpHint": "Host do plano de controle (primário/mestre + acesso=local)",
      "localIpHint": "Host do plano de controle (acesso=local)",
      "ipExample1": "por exemplo 10.0.0.1",
      "ipExample2": "por exemplo 10.0.0.2",
      "ipExample3": "por exemplo 10.0.0.3",
      "replicaIp": "Réplica IP/host",
      "peerIp": "IP/host de mesmo nível",
      "replicaHint": "Nó de réplica",
      "peerHint": "Segundo nó (Galera prefere 3)",
      "thirdNode": "3º nó (opcional)",
      "thirdNodeHint": "Recomendado para Galera / multi-réplica",
      "sstMethod": "Método SST",
      "forbidDemoIp": "Nenhum IP de demonstração (203.0.113.x).",
      "fwGalera": "Abra interno 3306/4567/4444/4568.",
      "fwPg": "O streaming precisa de 5432 interno; altere as senhas CHANGE_ME em scripts.",
      "fwRedis": "Redis interno 6379 (sentinela 26379).",
      "fwRepl": "As réplicas precisam de portas internas correspondentes; alterar senhas CHANGE_ME.",
      "needExecuteRoot": "A aplicação da configuração do sistema precisa de YSK_EXECUTE=1 + root.",
      "topology": "Topologia: {{kind}}",
      "applyLocalTitle": "Aplicar conf do sistema local?",
      "applyBootstrapDesc": "Instala o Galera drop-in e bootstrap (galera_new_cluster)",
      "applyJoinDesc": "Instala o Galera drop-in e o systemctl reinicia o mariadb",
      "confirmApply": "Confirmar aplicação",
      "deleteClusterTitle": "Excluir o registro do cluster?",
      "remoteInstallTitle": "Par de instalação remota?",
      "pushTitle": "Empurrar para peer?",
      "fleetSyncTitle": "Sincronização de frota?",
      "confirmOp": "Confirmar",
      "deleteClusterDesc": "A configuração do sistema não é limpa automaticamente (v1).",
      "remoteInstallDesc": "Instale conf + restart no peer. Precisa de YSK_EXECUTE + SSH.",
      "pushDesc": "scp para peer/tmp?",
      "fleetSyncDesc": "Sincronize o snapshot do cluster com a borda da frota e aplique.",
      "fleetApplyDesc": "O enfileiramento se aplica aos membros da frota.",
      "remoteInstalled": "Instalado remotamente",
      "fleetSynced": "Sincronização de frota na fila",
      "fleetApplyQueued": "Solicitação de frota na fila",
      "engineNotInstalled": "{{engine}} não está instalado neste host — instale-o primeiro ou abra o mecanismo que está realmente em execução.",
      "plan": "Plano",
      "writeFile": "Gravar arquivos",
      "applyLocal": "Aplicar localmente",
      "probeAll": "Sondar todos os nós",
      "remoteInstall": "Instalação remota",
      "downloadBundle": "Baixar pacote",
      "pushPlan": "Plano push",
      "pushExecute": "Empurrar executar",
      "fleetSync": "Sincronização de frota",
      "localConfPreview": "Pré-visualização da configuração local",
      "refresh": "Atualizar",
      "close": "Fechar",
      "cancel": "Cancelar",
      "delete": "Excluir",
      "probe": "Sondar",
      "name": "Nome",
      "type": "Tipo"
    },
    "console": {
      "dataBrowse": "Navegar pelos dados",
      "dbManage": "Administrador de banco de dados",
      "realtime": "Ao vivo",
      "reload": "Recarregar",
      "needRestart": "É necessário reiniciar",
      "affectsProjects": "Sites e serviços que utilizam este mecanismo serão interrompidos.",
      "lifecycle": "Vida útil",
      "overview": "Visão geral",
      "actionDone": "{{action}} concluído",
      "installDone": "Instalação concluída",
      "noChanges": "Nada a aplicar",
      "settingsApplied": "Configurações aplicadas",
      "notReadFromService": "Não lido do serviço",
      "applyMode": "Modo de aplicação: {{mode}}",
      "dirtyNotApplied": "Modificado, não aplicado",
      "highRisk": "Configurações de alto risco",
      "engine": "Motor",
      "bootEnabled": "Comece na inicialização",
      "uptimeSec": "Tempo(s) de atividade",
      "currentConnections": "Conexões",
      "changes": "Mudanças",
      "serviceTitle": "{{title}} serviço",
      "softwareMissing": "{{title}} software não está instalado",
      "overviewDesc": "Informações somente leitura do probe (não campos de formulário)",
      "lifecycleDesc": "Instalar, iniciar, parar e ativar na inicialização",
      "about": "Sobre",
      "cluster": "Conjunto",
      "noSettings": "Nenhuma configuração nesta categoria (ou não suportada nesta versão)",
      "applyHint": "Ao vivo pode mudar online;",
      "applyCategory": "Aplicar categoria",
      "applyAll": "Aplicar todas as alterações",
      "applyCatCount": "Aplicar categoria ({{n}})",
      "applyAllCount": "Aplicar tudo ({{n}})",
      "lifecycleNote": "Em Configurações, Live muda online; é necessário reiniciar o ciclo de vida após a aplicação.",
      "installEngine": "Use o banner acima para instalar {{title}}.",
      "reloadConfig": "Recarregar configuração",
      "disableBoot": "Desativar na inicialização",
      "disableBootConfirm": "O mecanismo não iniciará após a reinicialização até que você o habilite novamente.",
      "needRights": "Precisa de direitos de alteração do sistema e administrador. Os fracassos mostram razões – nunca finja o sucesso.",
      "noneFetched": "- nenhum -"
    },
    "importEntry": "Entrada: {{url}}",
    "adminerRiskFull": "Public Adminer é arriscado – restrinja IPs de origem ou adicione autenticação HTTP. Precisa de soquete PHP-FPM (padrão php8.2).",
    "adminerWriteHintFull": "Somente gravação = gestão escrita;",
    "pgInstalled": "PostgreSQL instalado",
    "pgStarted": "PostgreSQL iniciado",
    "notInstalledShort": "Não instalado",
    "serviceConsole": "Console de serviço",
    "installPgFirst": "Instale o PostgreSQL primeiro",
    "pgSoftwareMissing": "O software PostgreSQL não está instalado",
    "installPgBanner": "Use o banner acima para instalar o PostgreSQL.",
    "createPlus": "+ Criar",
    "dbNameHintPg": "Alnum e sublinhado em letras minúsculas; aplicar depois de criar",
    "deleteNotePg": "A exclusão do registro não descarta o banco de dados do servidor; aplicar sucesso significa que o DDL foi executado no host.",
    "tabDatabasesSimple": "Bancos de dados ({{count}})",
    "frozenTitle": "O serviço de banco de dados precisa de reparo",
    "frozenBody": "Problemas detectados (modo de congelamento: {{mode}};",
    "unfreezeBtn": "Diagnosticar e reparar",
    "unfreezeConfirmTitle": "Reparar {{engine}}?",
    "unfreezeConfirmDesc": "Executa um plano de reparo genérico a partir do diagnóstico (parar, limpar congelamento, higienizar configuração, init emp",
    "unfreezeConfirmBtn": "Confirmar reparo",
    "unfreezeOk": "{{engine}} reparo concluído",
    "startAfterUnfreeze": "Iniciar serviço (executa automaticamente o plano de reparo em caso de falha)",
    "serviceDownTitle": "O serviço de banco de dados está inativo",
    "serviceDownBody": "O serviço não é saudável",
    "adoptHostDb": "Cadastre-se {{name}}",
    "adoptHostDbTitle": "Só regista o nome no plano de controlo; não altera dados do anfitrião.",
    "cleanupExpiredTempUsersTitle": "Remove utilizadores temporários do painel já expirados",
    "invalidSqlIdent": "Use um identificador minúsculo: comece com uma letra, depois letras, dígitos ou sublinhado.",
    "remoteHostRequired": "Insira um host remoto.",
    "remoteTestUnsaved": "Salve este host primeiro e depois teste a conexão. Ou preencha o host e salve.",
    "serverNotInstalled": "Este mecanismo não está instalado no servidor.",
    "dumpNeedEngine": "Instale o mecanismo antes de exportar um banco de dados.",
    "unboundDatabase": "Registro do banco de dados removido",
    "userGoneRefresh": "Esse usuário se foi. A lista foi atualizada."
  },
  "dialogs": {
    "confirmDefault": "Confirmar",
    "cancelDefault": "Cancelar",
    "severity": {
      "consequencesTitle": "Isto irá:",
      "typeToConfirm": "Digite \"{{text}}\" para confirmar"
    }
  },
  "dns": {
    "templates": {
      "minimal": "Mínimo – somente ápice A",
      "web": "Web - ápice + www",
      "mail": "Correio - ápice + correio + MX + SPF",
      "full": "Completo — web + e-mail + ftp + SPF",
      "cdn": "CDN — apex + www + cdn (pronto para múltiplas arestas)"
    },
    "dnssecOk": "Chaves DNSSEC geradas (escritas — zona não assinada/não no registrador)",
    "dnssecNotOk": "Chaves DNSSEC não geradas (somente notas ou ferramentas indisponíveis – sem falso sucesso)",
    "dnssecFailed": "Falha no DNSSEC",
    "blocked": "Bloqueado (precisa de permissão para alteração do sistema)",
    "clusterDone": "Concluído ({{status}})",
    "clusterPartial": "Sem sucesso total ({{status}}) — veja detalhes abaixo",
    "clusterFailed": "Falha na operação do cluster",
    "validateFailed": "Falha na validação do registro",
    "validateRequestFailed": "Falha na solicitação de validação",
    "lookupFailed": "Falha na pesquisa",
    "statRecords": "Registros",
    "statSelected": "Selecionado",
    "notInstalled": "O software DNS necessário não está instalado",
    "dsForRegistrar": "DS (para registrador; não publicado automaticamente):",
    "tabs": {
      "zones": "Zonas",
      "records": "Registros",
      "cluster": "Conjunto",
      "dnssec": "DNSSEC",
      "tools": "Ferramentas",
      "ddns": "DDNS",
      "about": "Sobre"
    },
    "recentWrite": "Resultado de gravação recente",
    "zonesTitle": "Zonas ({{count}})",
    "zonesDesc": "Após criar, escreva/aplique a zona",
    "createZone": "+ Criar zona",
    "mailZonesMissing": "Os domínios de e-mail não têm zona DNS aqui: {{domains}}.",
    "createMailZone": "Criar zona de correio",
    "colZoneName": "Nome da zona",
    "colServerIp": "IP do servidor",
    "colTemplate": "Modelo",
    "colStatus": "Status",
    "emptyZonesTitle": "Ainda não há zonas DNS",
    "emptyZonesDesc": "Use “Criar zona” na barra de ferramentas da lista",
    "applyZoneTitle": "Escreva o arquivo de zona e registre-se no PowerDNS nomeado.conf + redescobrir (escrever ≠ respostas dig)",
    "applyZone": "Escreva / aplique",
    "recordsFor": "Registros — {{zone}}",
    "recordsNeedSelect": "Registros (selecione uma zona primeiro)",
    "statusLabel": "Status",
    "addRecord": "+ Adicionar registro",
    "writeZoneFile": "Zona de gravação e carregamento",
    "healthLoaded": "Carregado",
    "stateLoaded": "Carregado",
    "healthPublicNs": "NS público",
    "statePublicNs": "NS público",
    "publicNsHere": "→ este anfitrião",
    "requestLeTitle": "Solicitação Let's Encrypt para {{zone}}",
    "requestZoneSsl": "Solicitar SSL para zona",
    "soaTitle": "SOA/TTL padrão",
    "soaDesc": "Servidor de nomes SOA e $TTL ao escrever o arquivo de zona;",
    "soaBlockNs": "Servidores de nomes",
    "soaBlockTiming": "TTL e temporizadores",
    "recordsListTitle": "Registros DNS ({{count}})",
    "recordsListDesc": "Após as edições, use “Write zone file” acima das atualizações de arquivo em disco do nome.",
    "soaNsLabel": "Servidor de nomes SOA",
    "soaNsHint": "Deixe em branco → padrão ns1.zone.",
    "defaultTtl": "TTL padrão (segundos)",
    "min1": "1 minuto",
    "min5": "5 minutos",
    "min10": "10 minutos",
    "hour1": "1 hora",
    "day1": "1 dia",
    "customSeconds": "Segundos personalizados",
    "soaSaved": "SOA salvo (plano de controle) — “Escrever arquivo de zona” para aplicar",
    "soaSaveFailed": "Falha ao salvar SOA",
    "soaSavedAndWritten": "Arquivo de zona salvo e gravado",
    "soaWriteFailed": "Falha na gravação SOA",
    "failed": "Fracassado",
    "colType": "Tipo",
    "colName": "Nome",
    "colValue": "Valor",
    "emptyRecords": "Sem registros",
    "noZoneSelectedTitle": "Nenhuma zona selecionada",
    "noZoneSelectedDesc": "Escolha uma zona na guia Zonas",
    "clusterTitle": "Cluster DNS",
    "clusterDesc": "Após SCP dos arquivos de zona, recarregamento remoto (rndc/named/bind9/pdns)",
    "peerHost": "Host de mesmo nível",
    "peerHostHint": "Nome de host NS secundário ou IP (login com chave SSH)",
    "sshUser": "Usuário SSH",
    "sshUserHint": "Precisa de gravação no caminho de destino e permissão de recarga",
    "labelOptional": "Etiqueta (opcional)",
    "labelPlaceholder": "por exemplo ns2 /hkg-edge-dns",
    "opPerPeer": "Esta operação (por par)",
    "registeredPeers": "Pares registrados ({{count}})",
    "lastProbeHint": "lastProbe atualiza após sonda ou push",
    "noPeers": "Nenhum par cadastrado ainda",
    "zoneDirMissing": "· diretório de zona ausente",
    "generateKeys": "Gerar chaves; não entra no ar automaticamente",
    "selectZoneFirst": "Selecione uma zona primeiro",
    "lookupTitle": "Pesquisa de DNS (escavação)",
    "lookupDesc": "Consultar resolvedores públicos; verifique multi-A / CDN. Não inventa respostas.",
    "lookupNamePlaceholder": "por exemplo exemplo.com ou www.example.com",
    "lookupType": "Tipo de consulta",
    "lookupResults": "Resultados ({{count}})",
    "lookupNoAnswerFail": "Sem respostas/falhou",
    "digNotInstalled": "dig não está instalado",
    "digNotInstalledHint": "Esta guia precisa do binário dig (bind9-dnsutils). Isso não é NXDOMAIN. Instale bind9-dnsutils do gerenciador de pacotes host; esta página não o instala automaticamente.",
    "method": "Método: {{method}}",
    "noAnswers": "Sem respostas",
    "noAnswersDesc": "NXDOMAIN, RRset vazio ou falha de resolução",
    "lookupOkHint": "Resultados de consulta em tempo real",
    "lookupFailHint": "A pesquisa falhou ou está vazia. Verifique o nome, o tipo e os resolvedores upstream.",
    "validateTitle": "Validação de registro",
    "validateDesc": "Crie/edite validações automáticas (conflitos CNAME, formato A/AAAA, etc.).",
    "createZoneTitle": "Criar zona DNS",
    "createZoneDesc": "Gerar registros a partir de um modelo",
    "createZoneNeedValid": "Insira um nome de zona válido e um endereço IPv4",
    "zoneNameHint": "por exemplo exemplo.com (sem ponto final)",
    "invalidZone": "Nome de zona inválido. Use um domínio real (por exemplo, example.com).",
    "invalidIpv4": "IPv4 inválido. Cada octeto deve ser de 0 a 255.",
    "serverIpv4": "Servidor IPv4",
    "serverIpv4Hint": "Endereço usado para registros do modelo A",
    "thisHostIpv4": "Este host IPv4 público",
    "serverIpv6Optional": "Servidor IPv6 (opcional)",
    "serverIpv6Hint": "Grava AAAA quando existe v6 público; pode deixar vazio",
    "thisHostIpv6": "Este host IPv6 público (opcional)",
    "soaNsCreateHint": "Deixe em branco para ns1.zone-name",
    "defaultTtlLabel": "TTL padrão",
    "defaultTtlHint": "Padrão para SOA e novos registros",
    "recordTemplate": "Modelo de registro",
    "editRecord": "Editar registro",
    "addRecordTitle": "Adicionar registro",
    "recordModalDesc": "Zona {{zone}} · gravar arquivo de zona após salvar",
    "recordType": "Tipo de registro DNS",
    "nameHint": "@ = ápice; www = subdomínio",
    "mxPlaceholder": "por exemplo 10 mail.exemplo.com.",
    "spfPlaceholder": "por exemplo v=spf1 a mx ip4:… ip6:… ~todos",
    "needIpv6": "Insira um endereço IPv6",
    "needIpv4": "Insira um endereço IPv4",
    "valueHint": "IP, nome de host ou conteúdo de registro",
    "ipv6Address": "Endereço IPv6",
    "ipv4Address": "Endereço IPv4",
    "cacheTime": "Tempo de cache",
    "deleteZoneTitle": "Excluir zona?",
    "deleteZoneDesc": "Também remove seus registros de registro DNS.",
    "deleteRecordTitle": "Excluir registro?",
    "deleteRecordDesc": "Grave o arquivo de zona após a remoção",
    "addPeer": "Adicionar par",
    "probe": "Sondar",
    "pushZones": "Zonas de envio",
    "reloadRemote": "Recarga remota",
    "generateDnssec": "Gerar chaves DNSSEC",
    "lookup": "Pesquisa",
    "saveSoa": "Salvar SOA",
    "saveSoaAndWrite": "Salvar e gravar arquivo de zona",
    "saveSoaSettings": "Salvar configurações SOA",
    "saveSoaAndWriteBtn": "Salvar e gravar arquivo de zona",
    "goToZones": "Ir para zonas",
    "refresh": "Atualizar",
    "pushReload": "Empurrar + recarregar",
    "pushOnly": "Somente push (sem recarga)",
    "reloadOnly": "Apenas recarga remota",
    "probePeers": "Sondar pares",
    "clusterDefaultHint": "Padrão: pressione e recarregue o DNS nos pares; precisa de direitos de mudança de sistema.",
    "notProbed": "Ainda não foi investigado",
    "probeHealthy": "Sonda: {{status}}",
    "pushReloadShort": "Empurrar + recarregar",
    "dnssecCardDesc": "Gerar chaves/DS;",
    "currentZone": "Zona atual:",
    "generateAndSign": "Gere chaves e tente assinar a zona",
    "lookupName": "Nome",
    "fillCurrentZone": "Preencher a zona atual",
    "lookupToolHint": "Prefere escavação de host;",
    "validateExtra": "Bloqueio de erros salvo; avisa (por exemplo, apex CNAME) apenas notifica.",
    "createAfterHint": "Após a criação, revise a aba Registros e grave o arquivo de zona no disco.",
    "valueLabel": "Valor",
    "ttlHint": "Tempo de cache",
    "soaSavedControl": "SOA salvo (plano de controle) — grave o arquivo de zona para aplicar",
    "soaNs2Label": "NS secundário (opcional)",
    "soaNs2Hint": "Segundo FQDN do servidor de nomes, por ex. ns2.example.com.",
    "soaHostmaster": "Hostmaster SOA (RNAME)",
    "soaHostmasterHint": "Use pontos em vez de @, por ex. hostmaster.exemplo.com.",
    "soaRefresh": "Atualizar (segundos)",
    "soaRetry": "Tentar novamente (segundos)",
    "soaExpire": "Expirar (segundos)",
    "soaMinimum": "TTL de cache mínimo/negativo (segundos)",
    "soaTimingHint": "Parâmetros de temporização SOA em segundos.",
    "healthTitle": "Integridade do serviço DNS",
    "healthDesc": "Verdade do host: unidade / porta 53 / arquivos de zona gravados / respostas de escavação local (escritas ≠ recarregadas ≠",
    "healthPillOk": "DNS OK",
    "healthPillBad": "Problemas de DNS",
    "healthService": "Serviço",
    "healthServiceDown": "abaixo",
    "healthListen": "Porta 53",
    "healthWritten": "Arquivos de zona",
    "healthAnswering": "Resposta local",
    "healthAnsweringYes": "sim",
    "healthAnsweringNo": "não/recusou",
    "healthRefresh": "Sondar novamente",
    "healthProbeLocal": "Sondar a saúde novamente",
    "healthOpen53": "Abra o firewall 53 (TCP+UDP)",
    "healthOpened53": "Solicitado abrir 53 TCP+UDP",
    "healthOpen53Failed": "Falha ao abrir 53",
    "healthPortClosed": "não ouvindo",
    "healthPortOpenAlready": "53 parece aberto",
    "healthHint": "Se dig for recusado, corrija o PowerDNS, abra a porta 53 e grave as zonas.",
    "stateService": "Serviço",
    "stateListen": "Ouvir",
    "stateWritten": "Escrito",
    "stateAnswering": "Atendimento local",
    "lookupServer": "Servidor (@)",
    "lookupServerHint": "127.0.0.1 = autorização local; testes de IP públicos externos; vazio = resolvedor do sistema",
    "healthHealPdns": "Curar ligação PowerDNS",
    "healNeedInstall": "PowerDNS não está instalado - instale-o primeiro na guia Software",
    "applyNeedService": "O serviço DNS não está em execução – inicie ou instale-o antes de aplicar",
    "goStartService": "Iniciar serviço DNS",
    "startBindHint": "Se o início retornar para interrompido, a porta 53 geralmente será mantida pelo sistema resolvido. Use Heal bind abaixo e comece novamente.",
    "deleteZoneNeedName": "Exclua esta zona — você digitará o nome da zona para confirmar",
    "healthHealPdnsHint": "Defina o endereço local como IP público para evitar conflito com o systemd resolvido em 0",
    "healthHealPdnsOk": "PowerDNS vinculado a {{ip}} e tentativa de início",
    "healthHealPdnsFailed": "Falha na recuperação do PowerDNS",
    "startProbeFailed": "Não foi possível verificar novamente a integridade do DNS após o início",
    "startNotListening": "A inicialização do PowerDNS foi retornada, mas a unidade não está respondendo na porta 53",
    "aboutTitle": "Fundamentos do DNS",
    "aboutSub": "Zonas primeiro; registros, cluster e DNSSEC precisam de um domínio selecionado.",
    "aboutZonesTitle": "Zonas e escopo",
    "aboutZonesBody": "Escolha uma zona em Zonas e gerencie registros, cluster e DNSSEC para esse domínio.",
    "aboutHealthTitle": "Integridade do serviço",
    "aboutHealthBody": "Use Ferramentas para testar o PowerDNS, reparar o bind e abrir a porta 53.",
    "aboutStackTitle": "Programas",
    "aboutStackBody": "Verifique/atualize o pacote PowerDNS em Software.",
    "aboutDdnsTitle": "DDNS",
    "aboutDdnsBody": "A guia DDNS atualiza registros nomeados A/AAAA quando o endereço WAN deste host é alterado. Não substitui a zona CRUD. Escrito não é o mesmo que a verdade do resolvedor público.",
    "ddns": {
      "honesty": "Uma gravação bem-sucedida ainda não é um DNS público. Caches do resolvedor e NS do registrador ainda se aplicam. IPs vazios ou privados nunca são publicados.",
      "needExecute": "As atualizações do provedor precisam de root e YSK_EXECUTE=1. A detecção ainda é executada.",
      "lastRun": "Última execução",
      "nextRun": "Próxima execução",
      "wanRemembered": "WAN IPv4 lembrado",
      "updateNow": "Atualizar agora",
      "updateTitle": "Publicar endereços WAN detectados?",
      "updateDesc": "Calls Cloudflare, nsupdate, or the local zone for each enabled record. Type UPDATE to confirm.",
      "updated": "Atualização DDNS concluída",
      "updateFailed": "Falha na atualização do DDNS",
      "probe": "Sondar WAN",
      "probed": "Sondagem WAN concluída",
      "probeFailedUi": "Falha na sonda WAN",
      "forceHint": "A atualização agora é republicada mesmo quando o endereço permanece inalterado. Probe nunca liga para um provedor.",
      "saved": "Salvo",
      "saveFailed": "Não foi possível salvar",
      "deleted": "Registro removido",
      "emptyTitle": "Sem registros DDNS",
      "emptyDesc": "Adicione um nome de host abaixo. Cloudflare, RFC 2136 ou a zona PowerDNS deste host (gerenciadoBy=ddns).",
      "colFqdn": "Nome do host",
      "colProvider": "Provedor",
      "colPublished": "Publicado",
      "colEnabled": "Estado",
      "colFrom": "De",
      "colTo": "Para",
      "colWhen": "Quando",
      "colNote": "Observação",
      "pauseRecord": "Pausa",
      "resumeRecord": "Retomar",
      "statusCard": "Status da WAN",
      "recordsCard": "Nomes de host",
      "addCard": "Adicionar nome de host",
      "settingsCard": "Configurações",
      "historyTitle": "Atualizações recentes",
      "historyEmpty": "Ainda não há histórico de DDNS",
      "paused": "Agendador pausado",
      "pausedHint": "As atualizações programadas estão desativadas. Probe e Update agora ainda estão em execução.",
      "schedulerOn": "Atualizações agendadas",
      "schedulerOnHint": "Agendador em processo. Não crontab. Desligado significa que não há upsert automático.",
      "zone": "Zona",
      "zoneHint": "Leave empty to use the last two labels of the hostname",
      "zoneSelectHint": "Zonas locais neste host. Cloudflare e RFC 2136 podem usar qualquer nome de zona.",
      "noLocalZones": "Ainda não há zonas locais. Crie um na guia Zonas primeiro se você usar PowerDNS local.",
      "providerLocal": "PowerDNS local",
      "proxied": "Cloudflare com proxy",
      "proxiedHint": "Nuvem laranja. Deixe de fora para nomes de host VPN/WireGuard.",
      "proxiedWarnTitle": "Nuvem laranja Cloudflare?",
      "proxiedWarnDesc": "Um registro com proxy oculta o IP de origem. Os nomes de host VPN e WireGuard devem permanecer apenas DNS. Digite PROXY para confirmar.",
      "addRecord": "Adicionar nome de host",
      "interval": "Intervalo (segundos)",
      "intervalHint": "60–86400. Agendador em processo; não crontab.",
      "cfToken": "Token da API Cloudflare",
      "cfTokenHint": "Somente gravação. Env CF_API_TOKEN é usado se definido. Nunca mais mostrado.",
      "tokenConfigured": "Um token Cloudflare é armazenado. Deixe em branco para mantê-lo.",
      "tokenMissing": "Nenhum token Cloudflare armazenado (env CF_API_TOKEN ainda se aplica).",
      "rfcServer": "Servidor RFC 2136",
      "rfcServerHint": "Os servidores remotos precisam de um arquivo de chave TSIG no diretório de dados. O loopback pode não estar assinado. O segredo nunca é repassado ao argv.",
      "rfcKeyFile": "Arquivo de chave TSIG",
      "rfcKeyFileHint": "Relativo ao diretório de dados DDNS ou a um caminho absoluto no diretório de dados.",
      "rfcKeyConfigured": "Um caminho de arquivo chave é armazenado. Deixe em branco para mantê-lo.",
      "primaryFqdn": "Nome do host principal",
      "primaryFqdnHint": "Usado como dica de endpoint VPN. Não reescreve pares existentes.",
      "updateIdentity": "Lembre-se de WAN IPv4",
      "updateIdentityHint": "Armazene o último IPv4 público no status DDNS para este host",
      "vpnHint": "O VPN Endpoint pode usar um nome de host DDNS (não reescrito automaticamente).",
      "sslHint": "Let’s Encrypt HTTP-01 precisa do nome do host para resolver aqui. Os certificados não são reemitidos em caso de alteração de IP.",
      "deleteTitle": "Remover nome de host DDNS?",
      "deleteDesc": "Digite {{fqdn}} para confirmar. As linhas locais gerenciadasBy=ddns não são excluídas do editor de zona.",
      "err": {
        "requiresExecute": "Precisa de root e YSK_EXECUTE=1 para publicar.",
        "missingToken": "O token da API Cloudflare está ausente.",
        "rfc2136NeedKey": "O RFC 2136 remoto precisa de um arquivo de chave TSIG no diretório de dados.",
        "rfc2136KeyMissing": "O arquivo-chave TSIG está ausente ou fora do diretório de dados.",
        "noPublicIpv4": "Nenhum IPv4 público detectado.",
        "noPublicIpv6": "Nenhum IPv6 público detectado.",
        "notPublicIpv4": "O IPv4 detectado não é público.",
        "notPublicIpv6": "O IPv6 detectado não é público.",
        "probeFailed": "Falha na sondagem de IP público.",
        "localNoZone": "Nenhuma zona DNS local para este nome de host.",
        "localNeedsDb": "O provedor local precisa do banco de dados do plano de controle.",
        "managedByClash": "Esse nome pertence a outro recurso (não ao DDNS).",
        "unknownProvider": "Provedor DDNS desconhecido.",
        "nsupdateFailed": "nsupdate falhou.",
        "updateFailed": "Falha na atualização do provedor.",
        "invalidFqdn": "Nome de host inválido.",
        "invalidType": "O tipo deve ser A ou AAAA.",
        "invalidProvider": "Provedor desconhecido.",
        "notFound": "Registro não encontrado.",
        "confirmMismatch": "A confirmação deve corresponder ao nome do host.",
        "schedulerDisabled": "O DDNS programado está pausado.",
        "provider": "O provedor retornou um erro."
      }
    },
    "createMailZoneNow": "Zona de correio criada {{domain}}",
    "toolsFirewallTitle": "Firewall (UFW)",
    "toolsFirewallHint": "Permitir ou negar a porta 53. Não inicia nem para o PowerDNS.",
    "toolsUnitTitle": "Unidade PowerDNS",
    "toolsUnitHint": "Unidade systemd pdns — iniciar, parar, reiniciar, recarregar.",
    "installConfirmTitle": "Instalar o PowerDNS?",
    "installConfirmDesc": "Instala pdns-server e escreve a configuração gerida. Precisa de root e YSK_EXECUTE=1.",
    "installConfirmConsequence": "Após instalar e iniciar, o PowerDNS liga a porta 53.",
    "installPort53Busy": "A porta 53 já tem um ouvinte. O PowerDNS pode falhar a ligar até esse processo ser parado ou reparado.",
    "installPort53BusyConsequence": "Repare a ligação ou pare o outro ouvinte antes de esperar respostas na 53."
  },
  "docker": {
    "title": "Docker",
    "subtitle": "Instale e controle o motor Docker, contentores, imagens, projetos Compose e disco neste anfitrião.",
    "refresh": "Atualizar",
    "notInstalled": "O Docker Engine não está instalado. Instale docker.io e docker-compose-v2 nesta página.",
    "protected": "Protegido",
    "pruneConfirm": "Escreva PRUNE para confirmar a limpeza de volume ou do sistema",
    "needEngineTitle": "Instale o Docker Engine primeiro",
    "stopEngineDesc": "Isso interrompe o mecanismo Docker e todos os contêineres {{n}} neste host.",
    "notInstalledValue": "Não instalado",
    "nameHint": "Letras, dígitos, sublinhado, ponto, hífen (máx. 128)",
    "volPlaceholder": "meus dados",
    "netPlaceholder": "minha-rede",
    "runPorts": "Publicar portas",
    "runPortsHint": "host:container por linha, por exemplo. 8080:80",
    "runEnv": "Ambiente",
    "runEnvHint": "KEY=valor por linha",
    "runRestart": "Política de reinicialização",
    "runNetwork": "Rede",
    "runVolumes": "Volumes",
    "runVolumesHint": "volume:destino por linha",
    "runAdvancedHint": "Para pilhas multisserviços, use nós validadores ou arquivos Compose já neste host.",
    "daemonConfirmTitle": "Aplicar configurações do daemon?",
    "daemonConfirmDesc": "Grava daemon.json e reinicia docker.service. Todos os contêineres serão interrompidos.",
    "settingsHint": "Apenas um subconjunto seguro de daemon.json. Aplicar escreve o ficheiro e reinicia docker.service.",
    "cli": {
      "usage": "Utilização: ysk-server docker status|ps|images|volumes|networks|df|logs|inspect|exec|start|stop|restart|rm|pull|run|prune|engine|compose [--image IMG] [--name N] [--preset version|help|hostname] [--bin BIN] [--project P] [--execute] [--json]"
    },
    "tab": {
      "overview": "Visão geral",
      "containers": "Contentores",
      "images": "Imagens",
      "compose": "Compose",
      "volumes": "Volumes",
      "networks": "Redes",
      "prune": "Limpar",
      "settings": "Definições",
      "about": "Sobre"
    },
    "col": {
      "engine": "Motor",
      "containers": "Contentores",
      "version": "Versão",
      "dataRoot": "Diretório de dados",
      "disk": "Disco",
      "validators": "Pilhas de validador",
      "name": "Nome",
      "image": "Imagem",
      "status": "Estado",
      "ports": "Portos",
      "managed": "Gerido pelo painel",
      "size": "Tamanho",
      "driver": "Controlador",
      "type": "Tipo",
      "reclaimable": "Recuperável"
    },
    "state": {
      "up": "Ativo",
      "down": "Parado",
      "running": "Correndo",
      "exited": "Saiu",
      "exitedCode": "Saiu ({{n}})",
      "restarting": "Reiniciando",
      "restartingCount": "Reiniciando · {{n}} vezes",
      "paused": "Pausado",
      "created": "Criado",
      "dead": "Morto",
      "removing": "Removendo",
      "unknown": "Desconhecido"
    },
    "df": {
      "images": "Imagens",
      "containers": "Recipientes",
      "volumes": "Volumes locais",
      "builder": "Construir cache",
      "other": "Outro"
    },
    "actions": {
      "start": "Iniciar",
      "stop": "Parar",
      "restart": "Reiniciar",
      "remove": "Remover",
      "logs": "Registos",
      "inspect": "Inspecionar",
      "exec": "Exec (versão)",
      "run": "Executar imagem",
      "pull": "Obter",
      "up": "Subir",
      "down": "Descer",
      "createVolume": "Criar volume",
      "createNetwork": "Criar rede",
      "pruneContainers": "Limpar contentores",
      "pruneImages": "Limpar imagens",
      "pruneVolumes": "Limpar volumes",
      "pruneSystem": "Limpeza do sistema",
      "startEngine": "Iniciar motor",
      "stopEngine": "Parar motor",
      "restartEngine": "Reiniciar motor",
      "applyDaemon": "Aplicar definições do motor"
    },
    "empty": {
      "containers": "Sem contentores",
      "images": "Sem imagens",
      "compose": "Sem projetos Compose",
      "composeDesc": "Os projetos vêm de nós validadores ou arquivos do Compose já neste host. Esta página não aceita uploads YAML arbitrários.",
      "composeCta": "Nós validadores abertos",
      "volumes": "Sem volumes",
      "networks": "Sem redes"
    },
    "logs": {
      "empty": "Ainda sem registos",
      "follow": "Seguir"
    },
    "deleteRunningWarn": "Este contêiner ainda está em execução ou reiniciando. Ele será removido à força.",
    "settings": {
      "logMaxSize": "Tamanho máximo do registo do contentor",
      "liveRestore": "Restauro em direto (manter contentores se o daemon reiniciar)",
      "mirrors": "Espelhos Registry (um URL por linha)",
      "insecure": "Registries sem cifra (um anfitrião por linha)"
    },
    "about": {
      "body": "O Docker é um serviço de anfitrião de primeira linha no YSK Server, como o Nginx. Instala-se pelo painel (Ubuntu docker.io + docker-compose-v2). Os nós validador correm como projetos Compose yskval-*.",
      "honesty": "Alterações no anfitrião precisam de root e YSK_EXECUTE=1. O predefinido é dry-run. Esta página não é Kubernetes.",
      "validators": "Abrir nós validador"
    },
    "alerts": {
      "daemonTitle": "O daemon Docker está parado",
      "daemonBody": "O Docker está instalado mas o docker.service não está ativo. As pilhas de validador não conseguem arrancar."
    },
    "errors": {
      "notInstalled": "O Docker não está instalado",
      "daemonDown": "O daemon Docker não está ativo",
      "needCompose": "É necessário docker compose (extensão v2)",
      "badImage": "Referência de imagem inválida",
      "badName": "Nome inválido",
      "badPort": "Publicação de porto inválida",
      "badEnv": "Variável de ambiente inválida",
      "badVolume": "Montagem de volume inválida",
      "badNetwork": "Rede inválida",
      "protectedNetwork": "Não é possível remover uma rede Docker integrada",
      "badRestart": "Política de reinício inválida",
      "badPrune": "Âmbito de limpeza inválido",
      "needPruneConfirm": "Limpar volume ou sistema exige confirm=PRUNE",
      "badDaemon": "Definição do motor inválida",
      "composeMissing": "Ficheiro Compose deste projeto não encontrado",
      "logsFailed": "Não foi possível ler os registos do contentor",
      "mutateFailed": "O comando Docker falhou",
      "engineFailed": "Não foi possível controlar o docker.service",
      "badExec": "O exec limita-se a binários e predefinições permitidos (sem shell nem TTY)",
      "uninstallBusy": "Pare os contentores geridos pelo painel (incluindo pilhas de validador) antes de desinstalar o Docker",
      "badCommand": "Comando ou ponto de entrada inválido",
      "portBusy": "Porta host {{bind}}:{{port}} já está em uso",
      "nameInUse": "Um contêiner chamado {{name}} já existe. Remova-o ou escolha outro nome.",
      "unpublished": "O contêiner não foi conectado a uma rede nem a portas de publicação. Não tratando isso como iniciado."
    },
    "notes": {
      "dryMutate": "Apenas dry-run. Passe --execute e YSK_EXECUTE=1 para alterar o anfitrião.",
      "dryPrune": "Pré-visualização da limpeza (não aplicada).",
      "dryEngine": "O controlo do motor é dry-run.",
      "dryDaemon": "Escreveria /etc/docker/daemon.json e reiniciaria o docker.service.",
      "daemonWrote": "daemon.json escrito",
      "start": "Contentor iniciado",
      "stop": "Contentor parado",
      "restart": "Contentor reiniciado",
      "remove": "Contentor removido",
      "ran": "Contentor iniciado a partir da imagem",
      "leftoverRemoved": "Removido o contêiner restante {{name}} após falha de ligação",
      "pulled": "Imagem obtida",
      "exec": "Exec permitido executado",
      "imageRemoved": "Imagem removida",
      "volumeCreated": "Volume criado",
      "volumeRemoved": "Volume removido",
      "networkCreated": "Rede criada",
      "networkRemoved": "Rede removida",
      "pruned": "Limpeza concluída",
      "compose": {
        "up": "Projeto Compose iniciado",
        "down": "Projeto Compose parado",
        "restart": "Projeto Compose reiniciado",
        "rm": "Compor projeto removido"
      },
      "engine": {
        "start": "docker.service iniciado",
        "stop": "docker.service parado",
        "restart": "docker.service reiniciado"
      }
    },
    "ui": {
      "whatYouGet": "O que esta página faz",
      "whatYouGetLead": "Instale primeiro o Docker Engine. Depois pode executar um contentor, obter imagens e ver as pilhas Compose de validador já neste anfitrião.",
      "capEngine": "Motor",
      "capEngineDesc": "Instalação num clique de docker.io e docker-compose-v2. Inicie e pare o docker.service aqui.",
      "capWork": "Contentores e imagens",
      "capWorkDesc": "Escolha uma imagem comum, obtenha-a, execute-a e depois leia os registos ou inspecione o contentor.",
      "capStacks": "Pilhas de validador",
      "capStacksDesc": "Pilhas de vários serviços são projetos Compose de validador (yskval-*). Esta página não aceita YAML carregado.",
      "cardEngine": "Motor",
      "cardDisk": "Disco",
      "cardWork": "Neste anfitrião",
      "compose": "Compose",
      "cgroup": "cgrupo",
      "used": "Usado",
      "free": "Livre",
      "running": "Em execução",
      "images": "Imagens",
      "volumes": "Volumes",
      "networks": "Redes",
      "goImages": "Imagens",
      "goValidators": "Nós validador",
      "imagePickHint": "Escolha uma imagem comum. Use Outra só quando precisar de outra referência.",
      "imageCustom": "Outra",
      "driver": "Controlador",
      "driverLocalOnly": "Este painel cria apenas volumes local.",
      "netDefaultDriver": "Novas redes usam o controlador bridge predefinido do Docker.",
      "pruneWhat": "O que remover",
      "pruneAck": "Compreendo que os dados não usados serão eliminados e não podem ser restaurados",
      "pruneAckDesc": "Limpar volumes ou o sistema não pode ser anulado. Contentores parados e imagens não usadas do âmbito escolhido são removidos.",
      "pruneNow": "Limpar agora",
      "useMirrors": "Usar espelhos de registo",
      "useInsecure": "Permitir registos sem cifra",
      "publishPorts": "Publicar portos no anfitrião",
      "attachVolume": "Anexar um volume",
      "setEnv": "Definir variáveis de ambiente",
      "defaultNet": "Predefinida",
      "mountPath": "Caminho de montagem",
      "restartNo": "Nunca",
      "restartUnless": "Salvo se parado",
      "restartAlways": "Sempre",
      "restartOnFail": "Em falha",
      "needAck": "Confirme antes de limpar",
      "scopeContainers": "Contentores parados",
      "scopeImages": "Imagens não usadas",
      "scopeVolumes": "Volumes não usados",
      "scopeBuilder": "Cache de construção",
      "scopeSystem": "Tudo o que não é usado",
      "noVolumesYet": "Ainda sem volumes — crie um no separador Volumes primeiro.",
      "command": "Comando",
      "commandHint": "Opcional. Tokens após a imagem. Deixe em branco para usar o CMD da imagem.",
      "entrypoint": "Ponto de entrada",
      "entrypointHint": "Binário único opcional. Deixe em branco para usar a imagem ENTRYPOINT.",
      "portMap": "hospedeiro:contêiner",
      "portOccupied": "Esta porta host já está em uso",
      "validatorImage": "Gerenciado por nós validadores",
      "newVolume": "Novo volume nomeado",
      "loopbackUrl": "URL de teste local",
      "nginxProxy": "Criar proxy reverso Nginx",
      "intentPorts": "Solicitado (não publicado)",
      "customPort": "Outro porto do anfitrião",
      "customPortHost": "Porto do anfitrião",
      "customPortContainer": "Porto do contentor",
      "pctUsed": "{{n}}% usado",
      "customPortHint": "1–65535. Exemplo: 9090 → 80.",
      "pickBridge": "Rede de ponte"
    },
    "deleteTitle": "Excluir {{id}}",
    "deleteDesc": "Isto não pode ser desfeito.",
    "deleteC1": "O recurso é removido deste host.",
    "deleteComposeVal": "Esta é uma pilha de validadores — a instância do validador também é excluída.",
    "pruneTitle": "Eliminar recursos do Docker",
    "pruneDesc": "Digite PRUNE para confirmar. Os dados não utilizados não podem ser restaurados.",
    "pruneC1": "Os recursos não utilizados no escopo selecionado são excluídos.",
    "pruneC2": "A remoção de volume e sistema exclui permanentemente volumes de dados não utilizados.",
    "pruneC3": "Contêineres parados ou imagens não utilizadas neste escopo são removidos."
  },
  "email": {
    "title": "E-mail",
    "subtitle": "Domínios, DNS, caixas de correio e retransmissão",
    "externalTodos": "Tarefas que você deve realizar fora do servidor",
    "ptr": "O DNS reverso (PTR) deve ser definido pelo seu provedor VPS/nuvem",
    "port25": "A porta de saída 25 pode estar bloqueada; solicitar desbloqueio ou usar um relé",
    "create": "Criar domínio de correio",
    "createHint": "Após a criação, revise DNS, caixas de correio e verificações de integridade",
    "domains": "Domínios registrados",
    "empty": "Ainda não há domínios de e-mail",
    "emptyHint": "Crie um domínio para obter registros DNS e todos externos",
    "searchPlaceholder": "Domínio de pesquisa…",
    "domain": "Domínio",
    "serverIp": "IP do servidor",
    "notFound": "Domínio de e-mail não encontrado",
    "backToList": "Voltar para domínios de e-mail",
    "softwareNeeded": "O software de e-mail necessário não está instalado",
    "applyApplied": "Aplicado",
    "applyWritten": "Escrito",
    "applyFailed": "Fracassado",
    "applyDraft": "Rascunho",
    "queueMsgCount": "Fila {{count}} mensagem(s)",
    "queueLoadFailed": "Falha ao carregar a fila",
    "queueFlushRequested": "Liberação de fila solicitada",
    "queueFlushFailed": "Falha na liberação",
    "queueDeleted": "Excluído {{id}}",
    "queueDeleteFailed": "Falha na exclusão",
    "pillDomains": "{{count}} domínio(s)",
    "pillNoDomain": "Nenhum domínio",
    "statDomains": "Domínios",
    "statHealthy80": "Saúde ≥80",
    "statApplied": "Aplicado",
    "statDraft": "Rascunho",
    "tabDomains": "Domínios",
    "tabWebmail": "Webmail",
    "tabQueue": "Fila",
    "tabStack": "Programas",
    "tabOps": "Funções",
    "webmailGlobalDesc": "Um aplicativo de webmail para todo o painel: cada domínio de e-mail faz login por meio do mesmo URL.",
    "webmailGlobalHint": "Precisa de permissão de mudança de sistema (YSK_EXECUTE) e rede de saída para baixar Roundcube/SnappyMail. Nenhum meio projeto é criado sem EXECUTE.",
    "webmailMovedHint": "O webmail é configurado globalmente (não por domínio).",
    "openGlobalWebmailSettings": "Abra as configurações do webmail",
    "domainsTitle": "Domínios ({{filtered}}/{{total}})",
    "domainsListDesc": "Domínios de correio registrados neste host",
    "emptyFilterHint": "Nenhum domínio corresponde à pesquisa",
    "emptyCreateHint": "Use Criar na barra de ferramentas para registrar um domínio;",
    "queueLocalTitle": "Fila de correio",
    "needExecute": "Precisa de YSK_EXECUTE",
    "viewQueue": "Ver fila",
    "flushQueue": "Liberar fila",
    "flushQueueEmpty": "A fila está vazia",
    "flushQueueNeedExecute": "A liberação da fila precisa de YSK_EXECUTE (permissão de execução do host)",
    "queueHint": "Fila Postfix local. Ver é sonda de leitura; limpar exige YSK_EXECUTE.",
    "deleteThisId": "Excluir este ID",
    "queueEmpty": "Sem correio diferido",
    "queueEmptyHint": "Nenhuma mensagem adiada",
    "mtaTitle": "Software MTA",
    "mtaBody": "A sonda e a instalação com um clique são orientadas pelo banner acima",
    "mtaSmtp": "SMTP de saída/entrada",
    "mtaImap": "Caixas de correio IMAP/POP3",
    "mtaDkim": "Assinatura DKIM de saída",
    "mtaMissingHint": "Quando o software está faltando, o banner mostra instalar / testar novamente",
    "pathTitle": "Caminho de configuração do domínio",
    "path1": "Registre um domínio (canto superior direito)",
    "path2": "Abra detalhes do domínio → configuração de e-mail com um clique",
    "path3": "Adicione MX/SPF/DKIM/DMARC na página DNS ou lista de verificação externa",
    "path4": "SSL para nomes de host de email/webmail",
    "viewDomainList": "Ver lista de domínios",
    "opsPanelTitle": "Painel vs externo",
    "opsThisPage": "Esta página: registro de domínio, visualização de fila, investigação de software",
    "opsDetail": "Detalhe do domínio: bootstrap, caixas de correio, aliases, retransmissão, webmail",
    "opsHost": "Provedor de host: PTR, política de saída da porta 25",
    "opsRegistrar": "Registrador: publicar MX / SPF / DKIM / DMARC",
    "statusTitle": "Status",
    "statusDraft": "rascunho: apenas painel",
    "deliverabilityChecks": "Cheques",
    "statusWritten": "escrito: arquivos de gerenciamento escritos, podem não estar ativos",
    "statusApplied": "aplicado: aplicado com sucesso antes (ainda verifique se o serviço está ativo)",
    "statusReputation": "A reputação da caixa de entrada nunca pode ser 100% automatizada",
    "createModalDesc": "",
    "registerDomain": "Criar",
    "domainApexHint": "Sem correio. prefixo",
    "serverIpv4Hint": "MX/A/FPS",
    "serverIpv4Ph": "IPv4 público",
    "serverIpv6": "IPv6 (opcional)",
    "serverIpv6Hint": "AAA/FPS ip6",
    "serverIpv6Ph": "Opcional",
    "registerNote": "",
    "flushConfirmTitle": "Liberar toda a fila de e-mails?",
    "flushConfirmDesc": "As mensagens na fila serão excluídas. Não pode ser desfeito.",
    "flushConfirm": "Lavar",
    "tabMailbox": "Caixas de correio",
    "tabAliases": "Alias/encaminhamento",
    "tabHealth": "Saúde",
    "tabRelay": "Relé",
    "tabSieve": "Filtro/SSO",
    "tabAdvanced": "Avançado",
    "pillApplied": "Aplicado",
    "pillManaged": "Arquivos gerenciados",
    "pillDraft": "Rascunho",
    "statHealth": "Saúde",
    "statApply": "Aplicar",
    "statDomain": "Domínio",
    "pausedFlag": "Pausado (sinalizador)",
    "normal": "Normal",
    "statMailboxes": "Caixas de correio",
    "statDnsRecords": "Registros DNS",
    "dnsTodosTitle": "DNS",
    "copyAllRecords": "Copiar todos os registros",
    "openDnsPage": "Abrir página DNS",
    "healthScore": "Pontuação de saúde",
    "healthUnchecked": "Ainda não verificado",
    "healthUncheckedHint": "DNS / PTR / porta 25 ainda não foram sondados.",
    "healthPartialScore": "Parcial {{n}}/100 (somente DNS)",
    "healthPartialHint": "Apenas lista de verificação de DNS – lista ativa e negra não investigada.",
    "deliverabilityScore": "Pacote de entregabilidade",
    "opendkimNoReload": "O OpenDKIM não tem reload — use reinício após alterar chaves ou tabelas.",
    "opendkimNoReloadTitle": "systemctl reload opendkim não é suportado nesta pilha",
    "healthChecklist": "Lista {{score}}/100",
    "healthChecklistHint": "Pontuação da lista — DNS / PTR / porta 25 ainda não verificados",
    "healthLiveHint": "Pontuação da sonda ao vivo",
    "suggestedRecords": "Registros sugeridos",
    "externalTodosCount": "Todos externos",
    "colType": "Tipo",
    "colName": "Nome",
    "colValue": "Valor",
    "colNote": "Observação",
    "copy": "Cópia",
    "noDnsRecords": "Nenhum registro DNS",
    "externalTodosHeading": "Todos externos (o painel não pode fazer isso)",
    "externalTodosBody": "PTR, porta 25 e DNS do registrador ficam por sua conta.",
    "copyExternalTodos": "Copiar lista de tarefas externa",
    "todoDone": "Feito",
    "todoPending": "Pendência",
    "refreshDnsHint": "Clique em Atualizar para carregar sugestões de DNS",
    "mailboxListTitle": "Caixas de correio ({{count}})",
    "createMailbox": "+ Criar caixa de correio",
    "writeDovecot": "Escreva a senha do Dovecot no banco de dados",
    "noMailboxes": "Ainda não há caixas de correio — clique em Criar caixa de correio",
    "mailboxOpsResult": "Resultado da operação de caixa de correio",
    "aliasesTitle": "Alias/encaminhamento/pega-tudo",
    "aliasType": "Tipo",
    "aliasTypeAria": "Tipo de alias",
    "typeForward": "Avançar",
    "typeAlias": "Alias",
    "localPart": "Parte local",
    "localPartHint": "por exemplo vendas",
    "targetMailbox": "Caixa de correio de destino",
    "targetMailboxHint": "Separados por vírgula para vários",
    "addAlias": "Adicionar alias",
    "noAliases": "Ainda não há aliases/encaminhamentos",
    "aliasResult": "Resultado do alias",
    "autoreplyTitle": "Resposta automática/suspender",
    "autoreplyDesc": "Resposta automática",
    "autoreplyBodyHint": "Opcional aplicável ao sistema",
    "enableAutoreply": "Ativar resposta automática",
    "enableAutoreplyDesc": "férias.peneira; após a aplicação do sistema monta .dovecot.sieve",
    "applyToSystem": "Aplicar ao sistema (Postfix/Dovecot)",
    "applyToSystemDesc": "Precisa de YSK_EXECUTE=1 + raiz; fracassos não são fingidos como sucesso",
    "subject": "Assunto",
    "body": "Corpo",
    "saveApplyAutoreply": "Salvar e aplicar resposta automática",
    "saveAutoreplyWritten": "Salvar resposta automática (escrita)",
    "suspendApply": "Suspender e aplicar REJECT",
    "suspendWritten": "Suspender domínio (escrito)",
    "resumeApply": "Retomar e atualizar mapa",
    "resumeWritten": "Retomar domínio (escrito)",
    "flagsResult": "Resultado da aplicação de sinalizadores/sistema",
    "defaultAutoreplySubject": "Resposta automática",
    "defaultAutoreplyBody": "Recebemos seu e-mail e responderemos mais tarde.",
    "healthLiveTitle": "Integridade da entrega (DNS / sondagens de porta em tempo real)",
    "healthLiveDesc": "Verificações ao vivo",
    "serverIpLabel": "IP do servidor",
    "liveCheck": "Verificação ao vivo",
    "liveOk": "Principalmente OK",
    "liveBad": "Problemas encontrados",
    "notTested": "Não testado",
    "blacklist": "Lista negra",
    "healthExternalNote": "O PTR e a porta 25 devem ser configurados no provedor host.",
    "runLiveCheck": "Execute a verificação ao vivo",
    "dnsblThisIp": "DNSBL (este IP)",
    "multiIpRbl": "RBL multi-IP",
    "warmupAdvice": "Dicas de aquecimento",
    "probeMatrix": "Resultados da sonda",
    "colItem": "Item",
    "colStatus": "Status",
    "pass": "Passar",
    "fail": "Falhar",
    "unknown": "Desconhecido",
    "colDetail": "Detalhe",
    "outboundPort25": "Porta de saída 25",
    "noProbeResults": "Nenhum resultado de sondagem ainda",
    "noLiveYet": "A verificação ao vivo ainda não foi executada",
    "noLiveYetHint": "Execute uma verificação ao vivo primeiro",
    "mailSslTitle": "Certificados e TLS",
    "mailSslHint": "O verdadeiro problema está na página SSL; vá para mail / webmail / nomes de host de domínio aqui",
    "openSslPage": "Abrir página SSL",
    "webmailSsoSkeleton": "Esqueleto de SSO do webmail",
    "writeRoundcubeSso": "Escreva o esqueleto SSO do Roundcube",
    "ssoSkeletonSymlink": "Esqueleto SSO + link simbólico do sistema",
    "rateLimitTitle": "Taxa de saída/antispam",
    "rateLimitDesc": "Grava configurações de bigorna Postfix e Rspamd (aplicadas apenas com YSK_EXECUTE + root)",
    "hourlyMsgCap": "Limite de mensagens por hora",
    "hourlyMsgCapHint": "Global usa o mínimo entre domínios",
    "enableAntispam": "Habilitar marca antispam (Rspamd multimap)",
    "enableAntispamDesc": "Desativado desativa o antispam do domínio",
    "writeControlOnly": "Somente painel de gravação",
    "applyToSystemBtn": "Aplicar ao sistema",
    "dnsblResult": "Resultado DNSBL",
    "warmupResult": "Resultado do aquecimento",
    "policyResult": "Resultado da política",
    "relayTitle": "Retransmissão de saída SMTP",
    "relayHost": "Host de retransmissão",
    "applyRelaySystem": "Aplicar ao sistema Postfix",
    "applyRelaySystemDesc": "Gravação do relé Postfix do sistema",
    "saveApplyRelay": "Salve e aplique ao sistema",
    "saveOnly": "Salvar apenas configurações",
    "relayResult": "Resultado do revezamento",
    "webmailSsoTitle": "Login único no webmail",
    "webmailSsoDesc": "Emitir token único;",
    "mailboxPasswordOptional": "Senha da caixa postal (opcional)",
    "mailboxPasswordHint": "Opcional",
    "mailboxPasswordPh": "Com senha, o token pode fazer login automaticamente no Roundcube",
    "ssoTokenHint": "Emitir um token de login de curta duração",
    "issueSsoToken": "Emitir token SSO",
    "sieveTitle": "Filtros de peneira",
    "sieveDesc": "Filtros",
    "sieveTemplateHint": "Modelo de filtro padrão",
    "writeDefaultSieve": "Gravar peneira padrão",
    "listWrittenFiles": "Listar arquivos gravados",
    "result": "Resultado",
    "domainSslTitle": "SSL para este domínio",
    "domainSslDesc": "Host de correio SSL",
    "requestCert": "Solicitar certificado para {{domain}}",
    "clientAutoTitle": "Configuração automática do cliente",
    "clientAutoDesc": "Configuração automática do cliente",
    "clientAutoHint": "Gerar descoberta automática/configuração automática",
    "generateCopyXml": "Gerar e copiar XML de configuração",
    "queueTitle": "Fila de correio",
    "queueDesc": "Fila local",
    "publicAutoconfig": "Configuração pública",
    "bootstrapTitle": "Configuração de e-mail com um clique",
    "bootstrapDesc": "Configuração com um clique",
    "adminPassword": "Senha de administrador",
    "adminPasswordHint": "Senha da caixa de correio do administrador",
    "adminPasswordPh": "Pelo menos 8 caracteres",
    "adminPasswordRequired": "Defina uma senha de administrador de pelo menos 8 caracteres",
    "bootstrapBtn": "Configuração de e-mail com um clique",
    "webmailInstallDesc": "Baixe / aplique Roundcube",
    "webmailHostname": "Nome de host do webmail",
    "webmailHostnameHint": "nome_do_servidor vhost, por ex. webmail.exemplo.com",
    "installWebmail": "Instalar/aplicar Webmail",
    "bootstrapResult": "Resultado de bootstrap/webmail",
    "createMailboxTitle": "Criar caixa de correio",
    "createMailboxDesc": "O endereço completo será {{local}}@{{domain}}",
    "createMailboxBtn": "Criar caixa de correio",
    "localPartLabel": "Parte local",
    "localPartFullHint": "O endereço completo será {{local}}@{{domain}}",
    "passwordOptionalHint8": "Opcional; hash escrito apenas se tiver pelo menos 8 caracteres",
    "live": {
      "noMx": "sem MX",
      "mxLookupFailed": "Falha na pesquisa MX",
      "noSpf": "sem FPS TXT",
      "spfLookupFailed": "Falha na pesquisa SPF",
      "noDkim": "sem DKIM TXT",
      "dkimLookupFailed": "Falha na pesquisa DKIM",
      "noDmarc": "sem DMARC",
      "dmarcLookupFailed": "Falha na pesquisa DMARC",
      "noPtr": "sem PTR",
      "ptrLookupFailed": "Falha na pesquisa de PTR",
      "port25Open": "O TCP 25 de saída parece aberto (sonde para gmail-smtp-in.l.google.com)",
      "port25Blocked": "Falha na sonda TCP 25 de saída — pode estar bloqueada; solicitar desbloqueio ou usar retransmissão",
      "dnsblListed": "LISTADO: {{list}}",
      "dnsblClean": "limpar em {{list}}"
    },
    "deliv": {
      "mx": "Registro MX",
      "mxFix": "Adicione MX no provedor DNS apontando para o host de email",
      "spf": "FPS TXT",
      "spfFix": "Publicar v=spf1 incluindo este IP",
      "dkim": "DKIM TXT",
      "dkimFix": "Publicar selector._domainkey TXT do painel",
      "dmarc": "DMARC TXT",
      "dmarcFix": "Publicar política _dmarc (começar com p=none)",
      "ptr": "DNS reverso (PTR)",
      "ptrFix": "Defina o PTR no console VPS/nuvem para corresponder ao nome do host de e-mail - o painel não pode definir isso",
      "port25": "Porta de saída 25",
      "port25Fix": "Solicite o desbloqueio da porta 25 do hoster ou configure a retransmissão SMTP (envio 587)",
      "dnsbl": "Reputação da DNSBL",
      "dnsblFix": "Remover a lista dos serviços listados; pare de enviar até limpar",
      "relay": "Retransmissão SMTP (quando a porta 25 está bloqueada)",
      "relayOptional": "Sonda da porta 25 aberta – relé opcional",
      "relayPresent": "Configuração de retransmissão presente em dataDir (a aplicação ainda pode precisar de EXECUTE)",
      "relayMissing": "Nenhum relé configurado – necessário se a porta 25 permanecer bloqueada",
      "relayFix": "Painel Email → Relay, ou ysk-server hospedagem email-bootstrap com relé",
      "warmup": "Plano de aquecimento",
      "warmupDetail": "{{phases}} fases · dia 1 máx. {{day1}} mensagens",
      "warmupFix": "Siga os limites da fase; não expulse listas frias de um novo IP",
      "honesty1": "O Panel nunca garante a entrega da caixa de entrada em todo o mundo (a filtragem do Gmail/Outlook é externa).",
      "honesty2": "PTR e Porta 25 são de propriedade do VPS/provedor de rede – não do plano de controle YSK.",
      "honesty3": "DNS MX/SPF/DKIM/DMARC deve ser publicado no provedor DNS oficial.",
      "honestyPortBlocked": "A porta 25 parece bloqueada – use o relé ou solicite o desbloqueio antes do volume alto.",
      "honestyPortOk": "A investigação da porta 25 foi bem-sucedida – ainda monitora rejeições e DNSBL."
    },
    "catchall": "Pega tudo",
    "webmailRoundcube": "Webmail",
    "warmup": {
      "p1g1": "Envie apenas destinatários transacionais/conhecidos",
      "p1g2": "Monitorar rebatidas; manter a taxa de reclamações próxima de zero",
      "p1g3": "Certifique-se de que SPF/DKIM/DMARC/PTR estejam ativos antes do volume",
      "p2g1": "Expanda lentamente apenas para contatos engajados",
      "p2g2": "Verifique a DNSBL diariamente; pausar se estiver listado",
      "p2g3": "Prefira o envio 587 em vez de em massa na porta 25, se restrito",
      "p3g1": "Duplicar o volume somente se as métricas permanecerem limpas",
      "p3g2": "Listas de segmentos; remova saltos fortes imediatamente",
      "p4g1": "Aproxime-se do volume normal se não houver bloqueios",
      "p4g2": "Mantenha a rua DMARC monitorada",
      "c1": "PTR corresponde a HELO/EHLO (nome do host de email)",
      "c2": "SPF + DKIM + DMARC publicado e alinhado",
      "c3": "Limpeza de DNSBL em Spamhaus / SpamCop / Barracuda",
      "c4": "Porta de saída 25 aberta ou relé configurado",
      "c5": "Nenhum intervalo de IP de “e-mail em massa” adquirido",
      "c6": "Idade/histórico do domínio considerado (novos domínios = rampa mais lenta)",
      "noteNewIp": "Trate este IP como novo – comece nos limites da fase 1–3",
      "noteOldIp": "O IP existente ainda se beneficia do aumento gradual após alterações de configuração",
      "noteProcess": "O aquecimento é o processo do operador; YSK rastreia dicas + DNSBL, não comercializa volume de ESP"
    },
    "health": {
      "dnsUnconfirmed": "Registros DNS (MX/SPF/DKIM) ainda não confirmados",
      "dmarcMissing": "DMARC ausente – altamente recomendado",
      "dmarcUnpublished": "O DMARC é gerado no painel, mas ainda não foi publicado no DNS público",
      "ptrBad": "DNS reverso PTR ausente ou incorreto – solicitação no provedor VPS",
      "port25Blocked": "A porta de saída 25 parece bloqueada – solicite o desbloqueio ou use a retransmissão SMTP",
      "port25Unknown": "Status da porta 25 desconhecido – execute a verificação de conectividade"
    },
    "stack": {
      "tlsNote": "Certificados TLS via Let’s Encrypt para SMTP/IMAP",
      "externalNote": "DNS/PTR/Port25 externo ainda é necessário para capacidade de entrega"
    },
    "test": {
      "defaultSubject": "Teste de correio do servidor YSK",
      "needMta": "Requer MTA local (Postfix) instalado e porta 25/relé configurado",
      "checkSpam": "Verifique a pasta de spam do destinatário e os registros de e-mail do servidor após o envio",
      "hintDeferred": "Se adiado: verifique as credenciais do bloco ou retransmissão da porta 25",
      "hintSpam": "Se aceito, mas spam: melhore SPF/DKIM/DMARC/PTR e aquecimento",
      "hintLogs": "Inspecione /var/log/mail.log ou journalctl -u postfix"
    },
    "leMailHost": "Solicitar certificado · {{host}}",
    "leWebmailHost": "Solicitar certificado · {{host}} (webmail)",
    "leApexHost": "Solicitar certificado · {{host}} (ápice)",
    "applyMailTls": "Aplicar caminhos TLS de correio",
    "applyMailTlsHint": "O certificado deve existir; grava caminhos de serviço de correio e recarrega.",
    "probeMx": "MX",
    "probeSpf": "SPF",
    "probeDkim": "DKIM",
    "probeDmarc": "DMARC",
    "probePtr": "PTR",
    "probeDnsbl": "DNSBL",
    "dnsAuthRepairTitle": "Autenticação DNS precisa de correção",
    "dnsAuthRepairHint": "Copie os registros da guia DNS e publique.",
    "fixHintSpf": "Falha no SPF: publique um TXT v=spf1 em @.",
    "fixHintDkim": "Falha no DKIM: publicação selector._domainkey TXT.",
    "fixHintDmarc": "Falha no DMARC: publicação _dmarc TXT.",
    "fixHintMx": "Falha no MX: aponte MX para mail.<domínio>.",
    "mailTls": {
      "needRootExecute": "A aplicação de TLS de e-mail precisa de root e YSK_EXECUTE.",
      "certMissing": "Nenhum arquivo de certificado para {{host}} ({{path}}).",
      "getCertFirst": "Emita primeiro um certificado Let’s Encrypt para {{host}} na página SSL.",
      "certFound": "Certificado encontrado para {{host}}.",
      "postconfFailed": "falha no postconf: {{detail}}",
      "postfixPathsSet": "Conjunto de caminhos de certificado Postfix TLS.",
      "postfixReloaded": "Postfix recarregado.",
      "postfixReloadFailed": "Falha ao recarregar o Postfix: {{detail}}",
      "dovecotApplied": "Escreveu o snippet Dovecot TLS e tentou recarregar.",
      "dovecotSkipped": "Dovecot ignorado (não instalado ou doveconf indisponível).",
      "dovecotSslOmitted": "O certificado de correio está faltando; escrevi ssl=no para que o Dovecot possa iniciar sem os arquivos LE."
    },
    "policyApplySystemHint": "Marque “aplicar ao sistema” para escrever mapas Postfix/Rspamd e recarregar;",
    "rateLimitAppliedNote": "Taxa de saída por hora e sinalizador antispam aplicados (quando a aplicação do sistema está ativada).",
    "bootstrapHonesty": "Um clique grava arquivos do painel; aplicam-se aos direitos de necessidades do sistema. DNS/PTR/porta 25 são manuais.",
    "bootstrapAfterSteps": "Próximo: ① publicar DNS (MX/SPF/DKIM/DMARC) ② emitir SSL de e-mail ③ Aplicar caminhos TLS de e-mail.",
    "bootstrapThenSsl": "Próximo: emitir SSL de e-mail",
    "bootstrap": {
      "mtaOk": "Configurações MTA escritas (arquivos {{count}})",
      "mtaIncomplete": "MTA incompleto: {{detail}}",
      "seeNotes": "veja notas",
      "mailboxOk": "Caixa de correio {{address}} (status {{status}})",
      "mailboxExists": "A caixa de correio já existe (ignorada): {{detail}}",
      "passdbOk": "Dovecot passdb escrito ({{count}} caixas de correio)",
      "webmailOk": "Plano de webmail {{mode}} para {{host}}",
      "mailTlsTodo": "Correio TLS: emita um certificado para {{mailHost}} e, em seguida, use Aplicar caminhos TLS de correio na guia integridade.",
      "externalDns": "Externo (de propriedade da operadora): defina MX/SPF/DKIM/DMARC no DNS; PTR em VPS; Porta 25 ou relé SMTP.",
      "healthScore": "Pontuação de integridade {{score}}/{{max}} (DNS/PTR/Port25 não preenchido automaticamente)",
      "webmailProjectOk": "Projeto de webmail {{tool}} @ {{host}} ({{status}})",
      "dovecotApplyOk": "Autenticação virtual Dovecot aplicada"
    },
    "tabDeliverability": "Entrega",
    "pendingCount": "Pendente",
    "externalTodosOneLiner": "PTR, porta 25 e DNS do registrador devem ser feitos por você.",
    "runDeliverabilityPack": "Executar verificação de entrega",
    "deliverabilityTitle": "Verificação de entrega",
    "deliverabilityEmpty": "Ainda não verificado",
    "deliverabilityEmptyDesc": "Execute a verificação de entrega de DNS, PTR e porta 25.",
    "panelReady": "Verificável pelo painel",
    "gaps": "Lacunas",
    "checkOk": "OK",
    "checkExternal": "Externo",
    "checkFail": "Falhar",
    "mailboxListDesc": "Escreva a senha do banco de dados após criar",
    "aliasesDesc": "Aliases e encaminhamentos",
    "relayDesc": "Retransmissão SMTP",
    "deliverabilityDesc": "Verificações de PTR/DNS/porta 25",
    "dnsTodosDesc": "Copie e adicione em seu host DNS",
    "deliverabilityHonesty": "Não é possível definir o PTR ou desbloquear a porta 25 para você",
    "warmupSuggest": "Sugestões de aquecimento",
    "writeSsoSkeleton": "Escrever o esqueleto SSO do Roundcube",
    "rateLimitPerHour": "Limite de mensagens por hora",
    "rateLimitGlobalHint": "O global usa o mínimo de cada domínio",
    "savePolicyWritten": "Gravado apenas no plano de controlo",
    "dnsblMultiIp": "RBL de várias IP",
    "webmailTool": "Software de webmail",
    "webmailToolRoundcube": "Cubo redondo (padrão)",
    "webmailToolSnappy": "SnappyMail (leve)",
    "webmailProjectName": "Nome do projeto",
    "installWebmailProject": "Crie e entre no ar",
    "openWebmail": "Abrir webmail",
    "webmailRisk": "O webmail público é arriscado – ative o HTTPS em breve.",
    "webmailForceHttps": "Forçar HTTPS (Roundcube; SSL necessário)",
    "reinstallWebmail": "Reinstalar/atualizar",
    "installWebmailTitle": "Crie o projeto de webmail compartilhado (primeira instalação)",
    "reinstallWebmailTitle": "Reconstruir/atualizar o projeto de webmail existente",
    "reinstallNeedInstall": "Instale o webmail primeiro",
    "webmailSsoAdvanced": "Avançado · Plug-in SSO",
    "tlsRoleMail": "e-mail (IMAP/SMTP)",
    "tlsRoleMailHint": "Nome de host do servidor de email",
    "tlsRoleWebmail": "webmail",
    "tlsRoleWebmailHint": "Host virtual de webmail",
    "tlsRoleApex": "Domínio Apex",
    "tlsRoleApexHint": "Certificado Web/apex",
    "tlsRequestLe": "Solicitar LE",
    "tlsRequestLeFor": "Solicite LE para {{host}}",
    "advancedToolsTitle": "Fila e clientes",
    "flushQueueConfirm": "Liberar a fila local do MTA? Isto não pode ser desfeito.",
    "mailSslTitleShort": "Certificados e TLS",
    "deleteDomain": "Excluir domínio",
    "deleteDomainConfirmTitle": "Excluir domínio de e-mail?",
    "deleteDomainConfirm": "Exclui {{domain}} e suas caixas de correio, aliases e dados do plano de controle. A configuração do sistema Postfix/Dovecot ainda pode precisar de limpeza.",
    "deleteDomainBtn": "Excluir",
    "deleteMailbox": "Excluir caixa de correio",
    "deleteMailboxTitle": "Excluir caixa de correio?",
    "deleteMailboxDesc": "Exclui {{address}}, dados do plano de controle e Maildir local, se presente.",
    "deleteMailboxC1": "Login da caixa de correio e arquivos de correio",
    "deleteMailboxC2": "Reescrever o mapa virtual do domínio (plano de controle)",
    "deleteMailboxC3": "O sistema Dovecot/Postfix ainda pode precisar de limpeza",
    "deleteAliasTitle": "Excluir alias/encaminhar?",
    "deleteAliasDesc": "Exclui {{source}}.",
    "deleteImpact": "{{mailboxes}} caixas de correio · {{records}} registros DNS · {{aliases}} aliases",
    "deleteDomainC1": "Todas as caixas de correio e aliases",
    "deleteDomainC2": "DKIM do plano de controle, sugestões de DNS e sinalizadores",
    "deleteDomainC3": "Diretório local dataDir/email, se presente",
    "deleteDomainC4": "Os mapas do sistema MTA podem permanecer; limpe separadamente, se necessário",
    "deleteDialogTitle": "Excluir permanentemente o domínio de e-mail",
    "deleteDialogDesc": "Prestes a excluir {{domain}}. Isto não pode ser desfeito.",
    "deletePermanent": "Excluir permanentemente",
    "deleteRemoveData": "Remova também os dados de correio local",
    "deleteRemoveDataDesc": "Desmarque para remover apenas do painel; Maildir permanece no disco",
    "deleteTypeName": "Digite o domínio para confirmar",
    "deleteTypeNameHint": "Deve corresponder exatamente: {{name}}",
    "deleteWillData": "Diretório local dataDir/email, se presente",
    "deleteKeepData": "Manter dados de correio local dataDir",
    "deleteSystemWarn": "Os mapas Postfix/Dovecot do sistema não são limpos automaticamente; limpe separadamente, se necessário.",
    "hostIpPick": "Hospedar IPv4",
    "hostIpPickV6": "Hospedar IPv6",
    "editMailboxTitle": "Editar caixa de correio",
    "editMailboxDesc": "Alterar senha ou configurações de login para {{address}}",
    "editMailboxSave": "Salvar alterações",
    "newPassword": "Nova Senha",
    "newPasswordHint": "Deixe em branco para manter a senha atual (mín. 8 caracteres, se definida)",
    "confirmPassword": "Confirme sua senha",
    "mailboxStatus": "Status",
    "mailboxStatusActive": "Ativo (login permitido)",
    "mailboxStatusDisabled": "Desativado (login bloqueado)",
    "mailboxStatusHint": "Exportações desativadas * para Dovecot passdb, então o login é negado",
    "colAddress": "Endereço",
    "colLocalPart": "Parte local",
    "colPassword": "Senha",
    "colCreated": "Criado",
    "hasPassword": "Definir",
    "noPassword": "Não definido",
    "mailboxPager": "Páginas de caixa de correio",
    "prevPage": "Anterior",
    "nextPage": "Próximo",
    "pageOf": "Página {{page}} / {{total}} · {{count}}",
    "mailboxEmptyTitle": "Ainda não há caixas de correio",
    "passwordMismatch": "As senhas não coincidem",
    "passwordTooShort": "A senha deve ter pelo menos 8 caracteres",
    "mailboxUpdateNeedField": "Defina uma nova senha ou altere o status",
    "catchallHint": "Partes locais desconhecidas vão para a caixa destino. Rascunho até aplicar.",
    "queueSearchPh": "Pesquisar ID, remetente ou destinatário…",
    "queueId": "ID da fila",
    "queueSender": "Remetente",
    "queueRecipients": "Destinatários",
    "queueSize": "Tamanho",
    "queueReason": "Motivo",
    "queueActive": "Ativo",
    "queueHeld": "Retido",
    "queueDeferred": "Adiado",
    "deleteQueueTitle": "Eliminar esta mensagem da fila?",
    "deleteQueueDesc": "Remover {{id}} da fila MTA local. Precisa de YSK_EXECUTE.",
    "openQueuePage": "Abrir fila de correio",
    "dovecotFailedHint": "Dovecot failed. Open the Software tab for status; if the mail certificate is missing, issue it on the SSL page first.",
    "dovecotFailedStatus": "Pombal é {{status}}. Abra a guia Software para o resumo da unidade.",
    "mailCertMissing": "Nenhum certificado para {{hosts}}. Emita-o na página SSL.",
    "mailCertPresent": "Um certificado de correio já foi emitido — este não é um problema de certificado ausente.",
    "webmailNeedCert": "Nenhum certificado para {{host}} — emita-o em SSL antes de forçar HTTPS.",
    "domainRequired": "Insira um domínio",
    "domainInvalid": "Insira um domínio válido",
    "serverIpRequired": "Insira um IP do servidor",
    "serverIpInvalid": "Insira um endereço IP válido",
    "serverIpv6Invalid": "Insira um endereço IPv6 válido",
    "localPartRequired": "Insira uma parte local",
    "localPartInvalid": "A parte local só pode usar letras, dígitos, . _ + -",
    "aliasDestRequired": "Insira pelo menos um endereço de destino",
    "mailboxStatusManaged": "Gerenciou",
    "mailboxStatusActiveShort": "Ativo",
    "mailboxStatusDisabledShort": "Desabilitado",
    "mailboxStatusSystem": "Sistema provisionado",
    "mailboxStatusPending": "Sistema pendente",
    "mailboxStatusFailed": "Falha no sistema",
    "dnsblCleanStatus": "Não listado",
    "dnsblListedStatus": "Listado",
    "deliverabilityDone": "Verificação de entrega concluída ({{score}}/100)",
    "sieveEmpty": "Nenhum arquivo Sieve escrito",
    "sieveListed": "{{count}} arquivo(s) escrito(s)",
    "webmailHostnameRequired": "Insira um nome de host de webmail",
    "sieveFilesTitle": "Arquivos escritos"
  },
  "errors": {
    "YSK_UNAUTHORIZED": "Não autorizado",
    "YSK_FORBIDDEN": "Proibido",
    "YSK_NOT_FOUND": "Não encontrado",
    "YSK_VALIDATION": "Entrada inválida",
    "YSK_ALLOWLIST_DENIED": "Não está na lista de permissões",
    "YSK_APPROVAL_REQUIRED": "Aprovação necessária",
    "YSK_APPROVAL_PENDING": "Aprovação pendente",
    "YSK_APPROVAL_REJECTED": "Aprovação rejeitada",
    "YSK_SANDBOX_VIOLATION": "Violação de sandbox",
    "YSK_LLM_UNTRUSTED": "Saída LLM não confiável",
    "YSK_CONFIG_INVALID": "Configuração inválida",
    "YSK_SETUP_INCOMPLETE": "Configuração incompleta",
    "YSK_UPDATE_FAILED": "Falha na atualização",
    "YSK_INTERNAL": "Erro interno",
    "YSK_NEED_EXECUTE": "Permissão de execução do host necessária",
    "YSK_NEED_ROOT": "Raiz necessária",
    "YSK_RATE_LIMITED": "Muitas tentativas; tente novamente mais tarde",
    "YSK_TOTP_REQUIRED": "Código de autenticação obrigatório",
    "auth": {
      "needCredentials": "Digite nome de usuário e senha",
      "rateLimited": "Muitas tentativas de login; tente novamente mais tarde",
      "badCredentials": "Nome de usuário ou senha incorretos",
      "accountSuspended": "Conta suspensa",
      "adminTotpStrict": "Os administradores devem ativar 2FA (estrito). Use uma conta inscrita ou desative o modo estrito.",
      "totpReplay": "Código já utilizado; espere pelo próximo período",
      "totpRequired": "É necessário um código de autenticação válido",
      "mustEnrollTotp": "Política administrativa: habilite a autenticação de dois fatores agora",
      "userNotFound": "Usuário não encontrado",
      "totpSetupNeedReauth": "A ativação do 2FA requer sua senha (ou um código de atualização recente)",
      "totpBeginFirst": "Inicie a configuração 2FA primeiro",
      "totpInvalid": "Código de autenticação inválido",
      "stepUpRequired": "Esta ação requer um novo código de autenticação",
      "missingCredential": "Credenciais ausentes",
      "apiKeyUserMissing": "Proprietário da chave de API não encontrado",
      "apiKeyInvalid": "Chave de API inválida",
      "sessionExpired": "Sessão expirada; faça login novamente",
      "sessionIdle": "Tempo limite de inatividade; faça login novamente",
      "totpNotEnabled": "2FA não está ativado",
      "totpSecretNoDataDir": "O segredo TOTP está criptografado, mas dataDir não está definido",
      "mustChangePassword": "Defina uma nova senha antes de continuar",
      "policyNeedsOwn2fa": "Ative o 2FA para esta conta e confirme com um código TOTP antes de exigir 2FA para outras contas"
    },
    "http": {
      "notFoundRoute": "Não encontrado: {{method}} {{path}}",
      "unauthorized": "Não conectado ou sessão expirada",
      "forbidden": "Você não tem permissão para esta ação",
      "notFound": "Recurso não encontrado",
      "unprocessable": "Solicitação rejeitada pelo servidor",
      "requestFailed": "Falha na solicitação ({{status}})",
      "jsonInvalid": "JSON inválido",
      "internal": "Erro interno",
      "payloadTooLarge": "O corpo do pedido é demasiado grande"
    },
    "YSK_HOST_BROWSE_SSRF": "Navegação no host bloqueada pela política de segurança",
    "YSK_HOST_BROWSE_SESSION": "Sessão de navegação do host não encontrada ou expirada",
    "YSK_HOST_BROWSE_UPSTREAM": "Falha na busca upstream da navegação do host",
    "YSK_HOST_BROWSE_NEED_CHROME": "O mecanismo de navegador real requer Chrome/Chromium no host"
  },
  "fail2ban": {
    "backToProtection": "Proteção",
    "statCurrentBan": "Proibições atuais",
    "statTotal": "Totalmente banido",
    "statBanList": "Lista de banimentos",
    "statBoot": "Na inicialização",
    "startedOk": "fail2ban iniciado",
    "startService": "Iniciar serviço",
    "notInstalled": "fail2ban não está instalado",
    "toolHintPrefix": "Ferramentas subjacentes:",
    "toolHintBody": "fail2ban = após verificar os logs,",
    "toolHintTemp": "temporário",
    "toolHintBody2": "proibições · para uso em resposta a ataques",
    "toolHintUfw": "UFW = portas/regras permanentes",
    "tabs": {
      "bans": "Lista de banimentos",
      "whitelist": "Lista de permissões",
      "jails": "Prisões",
      "policy": "Política",
      "service": "Serviço",
      "about": "Sobre"
    },
    "manualBanTitle": "Banimento manual (temporário)",
    "ipPlaceholder": "IPv4 ou IPv6",
    "banipOk": "banip feito",
    "manualBanHint": "Bloqueio temporário;",
    "currentBans": "Atualmente banido",
    "bannedTableTitle": "IPs banidos (live fail2ban-client)",
    "bannedTableDesc": "Precisa de acesso do cliente; o desbanimento precisa de YSK_EXECUTE",
    "unbanOk": "Não banido",
    "unban": "Desbanir",
    "addWhitelistTitle": "Adicionar à lista de permissões ignoreip",
    "whitelistAdded": "Adicionado à lista de permissões",
    "addWhitelistShort": "+Lista de permissões",
    "emptyBansTitle": "Nenhum IP banido",
    "emptyBansDesc": "Ou nenhuma permissão para ler fail2ban-client",
    "ignoreipTitle": "lista de permissões ignorarip",
    "ignoreipDesc": "IPs nunca banidos (arquivo do painel + cliente fail2ban ao vivo opcional)",
    "whitelistEmptyWarn": "A lista branca está vazia e as jails podem bloqueá-lo. Adicione o IP de início antes de aplicar ignoreip.",
    "suggestIgnoreLogin": "O seu IP de início {{ip}}",
    "applyIgnoreEmptyWarn": "Aplicar com lista branca vazia limpa o ignoreip",
    "applyIgnoreNeedConfirm": "Reescreve o ignoreip do jail e recarrega o fail2ban",
    "addIp": "Adicionar IP",
    "addWhitelist": "Adicionar à lista de permissões",
    "applyPolicyIgnoreip": "Aplicar política (incl. ignoreip)",
    "applyIgnoreipOk": "Escrevi ignoreip em jail.local e apliquei",
    "ignoreipHint": "Sem YSK_EXECUTE apenas o arquivo do painel é gravado (apply_status=write);",
    "whitelistTitle": "Lista de permissões ({{count}})",
    "whitelistRemoved": "Removido da lista de permissões",
    "remove": "Remover",
    "emptyWhitelistTitle": "Ainda não há IPs na lista de permissões",
    "emptyWhitelistDesc": "Adicione IPs de administrador para não ser banido",
    "activeJails": "Prisões ativas",
    "colCurrent": "Atual",
    "colTotal": "Total",
    "colDesc": "Descrição",
    "emptyJailsTitle": "Sem prisões",
    "emptyJailsDesc": "Serviço não está em execução ou jail.local não aplicado",
    "policyTitle": "Política de prisão",
    "policyDesc": "Grava painel jail.local; aplicar cópias + recargas (não via UFW)",
    "bantimeHint": "Duração do banimento",
    "findtimeHint": "Janela de contagem",
    "maxretryHint": "Máximo de falhas na janela",
    "customExample2h": "Personalizado, por ex. 2h",
    "customExample15m": "Personalizado, por ex. 15m",
    "customMaxretry": "Personalizado 1–50",
    "min": "{{n}} minutos",
    "hour": "{{n}}h",
    "week": "{{n}} semana",
    "enableJailsHint": "Ativar prisões (marque e aplique):",
    "writtenOnlyMsg": "Escreveu arquivo de painel (não aplicado no host)",
    "writeOnly": "Gravar apenas arquivo de painel",
    "appliedOk": "fail2ban aplicado",
    "applyToSystem": "Aplicar ao sistema",
    "systemdTitle": "controle do sistema",
    "enableAndStart": "Ativar e iniciar",
    "serviceHint": "Para uso de resposta a ataques",
    "serviceHintSuffix": "(chama as prisões desta página + limites de taxa Nginx;",
    "actionOk": {
      "enable": "fail2ban ativado e iniciado",
      "start": "fail2ban iniciado",
      "reload": "fail2ban recarregado",
      "restart": "fail2ban reiniciado",
      "stop": "fail2ban parou"
    },
    "statWhitelist": "Lista de permissões",
    "invalidIp": "Insira um IPv4, IPv6 ou CIDR válido.",
    "whitelistPendingApply": "Salvo na lista de painéis. Pressione Aplicar política para escrever jail.local.",
    "ignoreipFile": "dataDir/fail2ban/ignoreip.txt",
    "jailsTabHint": "Situação das prisões ativas. Ative ou desative as prisões na guia Política.",
    "colJail": "Cadeia",
    "colEnabled": "Sobre",
    "serviceStateLine": "Unidade {{unit}} · {{state}} · inicialização {{boot}}",
    "jail": {
      "sshd": "Força bruta SSH",
      "nginxHttpAuth": "Autenticação HTTP Nginx",
      "nginxBotsearch": "Verificadores de scanner/bot Nginx",
      "nginxBadbots": "Nginx é conhecido por bots ruins",
      "nginxLimitReq": "Prisão com limite de taxa Nginx",
      "postfix": "Força bruta de correio Postfix",
      "dovecot": "Login de e-mail Dovecot",
      "recidive": "Ofensores reincidentes"
    },
    "cannotBanSelf": "Este é o host ou seu IP de login – adicione-o ao ignoreip em vez de banir",
    "suggestIgnoreHint": "IPs de administrador sugeridos (arquivo do painel somente até você aplicar a política):",
    "suggestIgnoreAdd": "Adicionar {{ip}}"
  },
  "featurePage": {
    "back": "Voltar"
  },
  "files": {
    "pillFiles": "{{count}} arquivos",
    "pillTrash": "{{count}} na lixeira",
    "pillSpace": "{{used}} usado",
    "statFiles": "Arquivos",
    "statFolders": "Pastas",
    "statUsage": "Uso",
    "statSelected": "Selecionado",
    "statTrash": "Lixo",
    "statShares": "Ações",
    "publicSiteSettings": "Configurações de site público",
    "opsResultTitle": "Resultado da operação de arquivo",
    "closeResult": "Fechar resultado",
    "tabBrowse": "Navegar",
    "tabTrash": "Lixo",
    "tabShares": "Ações",
    "spaceLabel": "Espaço",
    "publicFiles": "Arquivos públicos",
    "viewLabel": "Visualizar",
    "allFiles": "Todos os arquivos",
    "favorites": "Favoritos",
    "upload": "Carregar",
    "newFolder": "Nova pasta",
    "newTextFile": "Novo arquivo de texto",
    "download": "Download",
    "copy": "Cópia",
    "move": "Mover",
    "zip": "CEP",
    "unzip": "Descompacte",
    "unzipDone": "Descompactado {{path}}",
    "unzipFailed": "Falha ao descompactar",
    "delete": "Excluir",
    "searchName": "Procurar…",
    "sortAria": "Organizar",
    "sortNameAsc": "Nome↑",
    "sortNameDesc": "Nome↓",
    "sortSizeAsc": "Pequeno↑",
    "sortSizeDesc": "Grande↓",
    "sortMtimeDesc": "Mais recente",
    "sortMtimeAsc": "Mais antigo",
    "viewList": "Lista",
    "viewIcons": "Ícones",
    "viewAria": "Modo de visualização",
    "toolbarAria": "Ações de arquivo",
    "pathAria": "Caminho",
    "rootPublic": "Público",
    "rootProject": "Projeto",
    "emptyFavorites": "Ainda não há favoritos",
    "emptyFolder": "Esta pasta está vazia",
    "emptyFolderHint": "Solte arquivos ou pastas aqui para fazer upload ou clique em Upload",
    "selectItem": "Selecione {{name}}",
    "colName": "Nome",
    "colSize": "Tamanho",
    "colMtime": "Modificado",
    "rename": "Renomear",
    "unfavorite": "Não favorito",
    "favorite": "Favorito",
    "share": "Compartilhar",
    "versions": "Versões",
    "selectAllAria": "Selecionar tudo",
    "selectAll": "Selecionar tudo",
    "folder": "Pasta",
    "dirNamedLikeFile": "(pasta residual; o nome parece um ficheiro)",
    "dropToUpload": "Solte para fazer upload",
    "trashTitle": "Lixo ({{count}})",
    "trashDesc": "Arquivos excluídos podem ser restaurados ou removidos permanentemente",
    "emptyTrash": "Esvaziar lixo",
    "emptyTrashTitle": "Lixo vazio?",
    "emptyTrashDesc": "Todos os arquivos na lixeira serão excluídos permanentemente. Isto não pode ser desfeito.",
    "purgeForeverDesc": "Este arquivo será excluído permanentemente. Isto não pode ser desfeito.",
    "emptyTrashDone": "Lixo esvaziado",
    "colOrigPath": "Caminho original",
    "colDeletedAt": "Excluído em",
    "restore": "Restaurar",
    "restored": "Restaurado",
    "purgeForever": "Excluir definitivamente",
    "purged": "Excluído permanentemente",
    "trashEmpty": "A lixeira está vazia",
    "sharesTitle": "Links de compartilhamento público ({{count}})",
    "colPath": "Caminho",
    "colLink": "Link",
    "colDownloads": "Transferências",
    "unshare": "Cancelar compartilhamento",
    "unshareDone": "Compartilhamento cancelado",
    "sharesEmpty": "Ainda não há compartilhamentos",
    "sharesEmptyHint": "Clique em Compartilhar em uma linha de arquivo",
    "webdavTitle": "Configurações do WebDAV",
    "webdavDesc": "Monte a raiz dos arquivos públicos via HTTP Basic no Finder, Windows ou rclone. O token é mostrado uma vez.",
    "enableIssueToken": "Habilitar e emitir token",
    "webdavReissueToken": "Reemitir token",
    "webdavReissueConfirm": "A reemissão invalida imediatamente a senha antiga; clientes montados serão desconectados. Continuar?",
    "webdavDisableConfirm": "A desativação rejeitará todas as conexões /webdav. Continuar?",
    "tokenIssued": "Token emitido",
    "status": "Status",
    "enabledMount": "Ativado · {{path}}",
    "notEnabled": "Não ativado",
    "disable": "Desativar",
    "webdavAlreadyOff": "WebDAV já está desativado",
    "webdavDisabled": "WebDAV desativado",
    "webdavEnabledNoEcho": "Ativado (a senha não será mostrada novamente; emita novamente se necessário)",
    "webdavDefaultOff": "Desativado por padrão – clique em Ativar e emitir token para iniciar",
    "webdavAfterEnable": "Disponível depois de ativar o WebDAV e emitir um token.",
    "webdavOn": "Habilitado",
    "webdavOff": "Desabilitado",
    "webdavOffNoToken": "Desativado (sem token ativo)",
    "webdavTokenId": "Ficha #{{id}}",
    "webdavTokenInactive": "Desativado — o token #{{id}} não está ativo",
    "webdavUpdated": "Atualizado {{at}}",
    "webdavTokenOnceTitle": "Copie a senha agora",
    "webdavTokenOnceHint": "Esta senha é mostrada apenas uma vez; ele não pode ser recuperado depois que você sai desta página.",
    "webdavConnTitle": "Conexão",
    "webdavConnDesc": "Use este URL com credenciais HTTP Basic em seu cliente",
    "webdavUrl": "URL do servidor",
    "webdavUsername": "Nome de usuário",
    "webdavPassword": "Senha (token)",
    "webdavPasswordHidden": "Emitido anteriormente e não mostrado novamente — emita novamente ou use uma senha salva",
    "webdavPasswordNone": "Ainda não emitido",
    "webdavRoot": "Montar raiz",
    "webdavRootValue": "Raiz de arquivos públicos do painel",
    "webdavAuth": "Autenticação",
    "webdavAuthValue": "HTTP Básico · usuário ysk · senha = token emitido pelo painel",
    "webdavConnBundle": "detalhes de conexão",
    "webdavCopyAll": "Copie todos os detalhes da conexão",
    "webdavClientsTitle": "Configuração do cliente",
    "webdavClientsDesc": "Receitas de montagem comuns (prefira HTTPS; confie em certificados autoassinados no cliente, se necessário)",
    "webdavClientFinder": "Localizador do macOS",
    "webdavClientFinderHint": "Vá → Conectar ao servidor… (⌘K), cole o URL, usuário ysk, senha = token.",
    "webdavClientWin": "Windows",
    "webdavClientWinHint": "Este PC → Mapear unidade de rede → usa credenciais diferentes; ou Cyberduck/WinSCP (WebDAV).",
    "webdavNotesTitle": "Notas",
    "webdavNote1": "O WebDAV mapeia apenas a raiz dos arquivos públicos — não todo o sistema de arquivos do host.",
    "webdavNote2": "Expor a porta do painel via proxy/firewall reverso; prefira apenas HTTPS.",
    "webdavNote3": "A reemissão invalida imediatamente o token antigo; desativar rejeita todas as solicitações /webdav.",
    "webdavNote4": "Suporta OPÇÕES/PROPFIND/GET/PUT; o conjunto LOCK completo pode estar incompleto.",
    "copiedLabel": "Copiado “{{label}}”",
    "newFolderTitle": "Nova pasta",
    "willCreateAt": "Será criado em \"{{path}}\"",
    "nameRequired": "Digite um nome",
    "folderCreated": "Pasta criada",
    "create": "Criar",
    "folderName": "Nome da pasta",
    "noPathSepHint": "Não deve conter separadores de caminho",
    "newTextTitle": "Novo arquivo de texto",
    "fileNameRequired": "Digite um nome de arquivo",
    "textFileCreated": "Arquivo de texto criado",
    "fileName": "Nome do arquivo",
    "fileNameHint": "por exemplo leiame.md ou notas.txt",
    "versionsTitle": "Histórico de versões",
    "versionsDesc": "",
    "noVersions": "Ainda não há histórico de versões",
    "noVersionsHint": "",
    "versionRestored": "Restaurado",
    "restoreVersionConfirm": "Restaurar {{version}} sobre o arquivo atual {{file}}? Isso substitui o arquivo no disco.",
    "renameTitle": "Renomear",
    "renameCurrent": "Atual: {{name}}",
    "renamed": "Renomeado",
    "newName": "Novo nome",
    "newNameHint": "Renomeia apenas; permanece no mesmo diretório",
    "copyTo": "Copiar para…",
    "moveTo": "Mude para…",
    "copyMoveDesc": "{{action}} {{count}} item(s)",
    "actionCopy": "Cópia",
    "actionMove": "Mover",
    "copied": "Copiado",
    "moved": "Movido",
    "targetFolderPath": "Caminho da pasta de destino",
    "targetFolderHint": "Em relação à raiz, por ex. docs ou docs/a; vazio = raiz",
    "shareCreateTitle": "Compartilhar arquivo",
    "shareCreateDesc": "Crie um link de download público. Senha opcional.",
    "createLink": "Criar link",
    "sharePath": "Caminho:",
    "passwordOptional": "Senha (opcional)",
    "passwordOptionalHint": "Deixe em branco para acesso aberto",
    "passwordPlaceholder": "Opcional",
    "linkCreated": "Link criado:",
    "chmodTitle": "Alterar permissões (chmod)",
    "chmodDone": "chmod {{mode}} → {{count}} item(s)",
    "chmodDoneShort": "chmod {{mode}} concluído",
    "chmodFailed": "chmod falhou",
    "apply": "Aplicar",
    "chmodApplyHint": "Aplicar a {{count}} item(s) selecionado(s) (octal, por exemplo, 644/755)",
    "chmod644": "arquivo 644",
    "chmod755": "755 executável",
    "chmod600": "600 privados",
    "chmod700": "700 diretório privado",
    "chmod775": "775 gravação em grupo",
    "chmodCustomPh": "Personalizado 0644…",
    "mode": "Modo",
    "zipTitle": "Compactar para compactar",
    "zipCreated": "Criado {{path}}",
    "zipDone": "Zipado → {{path}}",
    "zipFailed": "zip falhou",
    "compress": "Compressa",
    "zipHint": "Zip {{count}} item(s) selecionado(s) na pasta atual (precisa de zip no host)",
    "destFileName": "Nome do arquivo de destino",
    "destPathHint": "Caminho: {{path}}",
    "movedToTrash": "Movido para a lixeira",
    "moveToTrashTitle": "Mover para o lixo?",
    "moveToTrashDesc": "Excluir {{count}} itens (restauráveis ​​da lixeira)",
    "deleteMore": "e {{n}} mais",
    "unshareTitle": "Revogar este compartilhamento?",
    "unshareDesc": "Revogue o link para {{name}} ({{url}}). O link para de funcionar imediatamente.",
    "preview": "Visualização",
    "imagePreviewNeedLogin": "A visualização da imagem precisa de login; use o download em vez disso",
    "pdfDownloadHint": "Baixe o PDF para abrir (precisa de cabeçalhos de autenticação)",
    "noEmbedPreview": "Este tipo não pode ser incorporado; por favor baixe.",
    "uploadDone": "Arquivo(s) {{count}} carregado(s)",
    "downloadFailedStatus": "Falha no download ({{status}})",
    "downloadFailed": "Falha no download",
    "uploadFolder": "Carregar pasta",
    "dropFolderOrFile": "Solte arquivos ou pastas para fazer upload",
    "uploadPanelTitle": "Envios",
    "uploadPanelStats": "{{done}}/{{total}} concluído · {{err}} falhou",
    "uploadClearDone": "Limpar concluído",
    "uploadInFolder": "Pasta {{folder}}",
    "uploadStatusDone": "Feito",
    "uploadStatusError": "Fracassado",
    "uploadStatusQueued": "Na fila",
    "uploadNoFile": "Nenhum dado de arquivo",
    "uploadSomeFailed": "{{count}} itens falharam",
    "uploadTruncated": "Upload limitado a {{max}} itens ({{total}} selecionados; restante ignorado)",
    "previewFailed": "Falha na visualização",
    "videoNotSupported": "Seu navegador não pode reproduzir este vídeo.",
    "audioNotSupported": "Seu navegador não consegue reproduzir este áudio.",
    "edit": "Editar",
    "editorTitle": "Editar · {{name}}",
    "editorSave": "Salvar",
    "editorSavedIdle": "Salvo",
    "editorSaved": "Salvo {{name}}",
    "editorSaveFailed": "Falha ao salvar",
    "editorDirty": "Não salvo",
    "editorClean": "Salvo",
    "editorChars": "{{count}} caracteres",
    "editorAria": "Editor para {{name}}",
    "editorDiscardConfirm": "Descartar alterações não salvas?",
    "shareReadyTitle": "Link pronto",
    "shareReadyDesc": "Copie e envie este link. Qualquer pessoa com ele pode fazer o download.",
    "shareReadyBadge": "Criado",
    "shareProtected": "Protegido por senha",
    "shareOpenAccess": "Sem senha",
    "shareLinkLabel": "Link público",
    "shareCopyHint": "Selecione o campo ou use Copiar.",
    "shareAgain": "Novo link",
    "shareCreatedToast": "Link de compartilhamento criado",
    "linkCopied": "Link copiado",
    "linkCopyFailed": "Não foi possível copiar — selecione e copie manualmente",
    "shareExpireLabel": "Expiração do link",
    "shareExpireHint": "Após esse tempo o link para de funcionar",
    "shareExpireNever": "Nunca",
    "shareExpire1h": "1 hora",
    "shareExpire1d": "1 dia",
    "shareExpire7d": "7 dias",
    "shareExpire30d": "30 dias",
    "shareExpireCustom": "Personalizado…",
    "shareExpireAt": "Expira em",
    "shareExpireInvalid": "Escolha uma data e hora futuras",
    "shareExpiresAt": "Expira em {{at}}",
    "colExpires": "Expira",
    "pdfInlineHint": "Se o PDF não for exibido, baixe-o.",
    "publicShareTitle": "Alguém compartilhou um arquivo com você",
    "publicShareSub": "Baixe com segurança neste link – não é necessária uma conta",
    "publicShareChecking": "Verificando links…",
    "publicShareDownloading": "Baixando…",
    "publicShareWait": "Por favor, aguarde",
    "publicShareNeedPassword": "Este link requer uma senha para fazer o download",
    "publicSharePasswordPh": "Compartilhar senha",
    "publicShareDownload": "Download",
    "publicShareDownloadAgain": "Baixe novamente",
    "publicShareDone": "Download iniciado",
    "publicShareDoneHint": "Verifique os downloads do seu navegador; toque novamente se nada aparecer",
    "publicShareNotFound": "Compartilhamento não encontrado ou expirado",
    "publicShareDenied": "Não é possível acessar este compartilhamento",
    "publicShareBadPassword": "Senha errada",
    "publicShareMissing": "Link de compartilhamento inválido",
    "publicShareFailed": "Falha no download ({{status}})",
    "publicShareFailedGeneric": "Falha no download",
    "publicShareDefaultName": "download",
    "publicSharePanelLogin": "Login no painel",
    "publicShareLang": "Linguagem",
    "publicShareProgress": "{{loaded}} / {{total}} ({{pct}}%)",
    "publicShareProgressIndeterminate": "Recebido {{loaded}}…",
    "publicShareCancel": "Cancelar",
    "publicShareCancelled": "Download cancelado",
    "publicSharePoweredBy": "Desenvolvido por {{company}}",
    "publicSharePoweredPrefix": "Distribuído por",
    "publicSharePoweredSuffix": "",
    "publicShareHasAccount": "Tem uma conta? Entrar",
    "password": "Senha",
    "editorLines": "{{count}} linhas",
    "editorLargeHint": "Arquivo grande – a edição pode parecer lenta. Prefira o download de arquivos com vários MB (capacidade do servidor de aproximadamente 2 MB).",
    "editorLnCol": "Ln {{line}}, Col {{col}}",
    "editorSpaces": "Espaços: {{n}}",
    "copyLink": "Copiar link",
    "versionsTitleShort": "Histórico de versões",
    "versionsCount": "{{count}} / {{max}}",
    "versionN": "v{{n}}",
    "versionLatest": "Mais recente",
    "shareModeLabel": "Método de download",
    "shareModeDirect": "Download direto",
    "shareModeBt": "BitTorrent (WebTorrent)",
    "shareModeBoth": "Direto + BitTorrent",
    "shareModeHint": "BT precisa de um rastreador em execução (Arquivos → BT Tracker). Links magnéticos podem ser usados ​​por qualquer pessoa que tenha o link.",
    "shareModeBtBlocked": "O rastreador não está em execução – inicie-o antes de criar compartilhamentos BT ou escolha Somente direto.",
    "shareMagnet": "Elo magnético",
    "shareTorrentFile": "Baixar .torrent",
    "shareSeedStatus": "Status de propagação",
    "shareBtStats": "Status do BitTorrent",
    "btSeeds": "Sementes",
    "btLeechers": "Sanguessugas",
    "btPeers": "Pares",
    "btUploadSpeed": "Velocidade de upload",
    "btDownloadSpeed": "Velocidade de download",
    "btUploaded": "Enviado",
    "btDownloaded": "Baixado",
    "btRatio": "Razão",
    "btUpdatedAt": "Atualizado",
    "btServerStats": "Semeador de servidor",
    "btClientStats": "Seu cliente",
    "btSeeding": "Semeando",
    "btPending": "Sementeira pendente",
    "btStopped": "Semente parada",
    "btError": "Erro de semente",
    "publicShareMethod": "Como você deseja baixar?",
    "publicShareDirect": "Download direto",
    "publicShareBt": "BitTorrent",
    "openBtTracker": "Abra o rastreador BT",
    "publicShareBtInBrowser": "Baixe no navegador (WebTorrent)",
    "publicShareBtProgress": "Baixado {{pct}}% · {{peers}} pares · ↓ {{down}} · ↑ {{up}}",
    "publicShareBtStarting": "Conectando-se aos colegas…",
    "publicShareBtFailed": "Falha no WebTorrent: {{detail}}",
    "publicShareBtNeedMagnet": "Nenhum URI magnético para este compartilhamento",
    "publicShareBtUnsupported": "Este navegador não pode executar WebTorrent; use magnet ou .torrent",
    "btNone": "—",
    "uploadStatusSkipped": "Ignorado",
    "uploadStatusCancelled": "Cancelado",
    "conflict": {
      "titleFile": "Já existe um item chamado “{{name}}”",
      "titleFolder": "Já existe uma pasta chamada “{{name}}”",
      "descFile": "Escolha o que fazer. Nada é substituído até escolher Substituir.",
      "descFolder": "Escolha o que fazer. Unir mantém a pasta existente e continua com o conteúdo.",
      "incoming": "A entrar",
      "existing": "Já está aqui",
      "kindFile": "Ficheiro",
      "kindFolder": "Pasta",
      "skip": "Ignorar",
      "skipHint": "Não adicionar este item",
      "keepBoth": "Manter os dois",
      "keepBothHint": "Guardar o item a entrar como {{name}}",
      "replace": "Substituir",
      "replaceHint": "Substituir o ficheiro existente. É guardada uma cópia de versão quando possível.",
      "replaceFolderHint": "Substitui ficheiros com o mesmo nome nesta pasta. Os outros ficam.",
      "merge": "Unir",
      "mergeHint": "Manter a pasta existente e adicionar os ficheiros a entrar",
      "applyAll": "Aplicar a todos os conflitos restantes",
      "applyAllHint": "Usar esta ação no resto deste arrastar ou transferência",
      "cancelRest": "Cancelar o resto",
      "progress": "{{current}} de {{total}}",
      "typeMismatch": "Já existe {{destKind}} chamado “{{name}}”. O que chega é {{incomingKind}}.",
      "skipped": "Ignorado",
      "cancelled": "Cancelado"
    },
    "webdavReissueUnchanged": "O ID do token não mudou após a reemissão — a gravação pode não ter persistido. Tente novamente.",
    "webdavDisableFailed": "O WebDAV ainda está ativado após a desativação — a gravação pode não ter persistido. Tente novamente."
  },
  "firewall": {
    "profiles": {
      "web": {
        "label": "Hospedeiro",
        "short": "SSH · 80 · 443"
      },
      "mail": {
        "label": "Web + e-mail",
        "short": "Também 25/465/587/993"
      },
      "ftps": {
        "label": "Web + FTPS",
        "short": "21 + PASV 30.000–30.100"
      }
    },
    "appliedProfile": "Perfil aplicado: {{label}}",
    "backToProtection": "Proteção",
    "statRules": "Regras",
    "statDenyIps": "IPs de negação permanente",
    "statAllow": "Permitir",
    "statDeny": "Negar",
    "statDefaultIn": "Entrada padrão",
    "defaultNotApplied": "n/a (UFW desativado)",
    "ufwOffHint": "A entrada padrão não é aplicada enquanto o UFW está desligado",
    "executeOn": "Sobre",
    "executeOff": "Desligado",
    "ufwDisabled": "UFW desativado",
    "ufwEnabled": "UFW ativado",
    "disableUfw": "Desativar UFW",
    "enableUfw": "Habilitar UFW",
    "notInstalled": "UFW não está instalado",
    "toolHintPrefix": "Ferramentas subjacentes:",
    "toolHintBody": "UFW = portas/regras permanentes · para resposta a ataques e uso de banimento automático",
    "toolHintfail2ban": "fail2ban = banimentos temporários baseados em log",
    "toolHintFail2ban": "fail2ban = banimentos temporários baseados em log",
    "executeOffHint": "O sistema é desligado — o status é legível;",
    "tabs": {
      "rules": "Regras",
      "ports": "Portas abertas",
      "deny": "Negar IP permanente",
      "profiles": "Perfis",
      "about": "Sobre",
      "services": "Serviços"
    },
    "currentRules": "Regras atuais",
    "rulesSourceHint": "Regras numeradas UFW (status ufw numerado)",
    "colAction": "Ação",
    "colTo": "Para",
    "colFrom": "De",
    "deleteShort": "Excluir",
    "denyBadge": "DENY",
    "emptyRulesTitle": "Sem regras ou sem permissão para ler",
    "emptyRulesInstalled": "UFW inativo ou precisa de root para ler",
    "emptyRulesNotInstalled": "Instale o UFW e atualize",
    "allowPortTitle": "Permitir porta",
    "protocol": "Protocolo",
    "protoBoth": "Ambos",
    "protoBothLabel": "TCP+UDP",
    "port": "Porta",
    "portHint": "Escolha uma porta comum ou personalizada abaixo",
    "portHintYsk": "Todas as portas de serviço YSK (Painel, Web, SSH, mail, FTP, DNS, DB, Redis);",
    "privatePortWarn": "{{service}} geralmente deve permanecer privado; a permissão pública é arriscada. Prefira um IP/CIDR de origem.",
    "privatePortWarnWithFrom": "{{service}} permitirá apenas a fonte fornecida; verifique novamente o IP/CIDR.",
    "allowFrom": "IP/CIDR de origem (opcional)",
    "allowFromHint": "Vazio = em qualquer lugar; defina um IP ou CIDR para permitir apenas essa fonte nesta porta",
    "allowFromPlaceholder": "por exemplo 203.0.113.10 ou 10.0.0.0/8",
    "customPort": "Porta personalizada (por exemplo, 8080 ou 30000:30100)",
    "allowedPort": "Permitido {{proto}}/{{port}}",
    "allowedPortFrom": "Permitido {{proto}}/{{port}} de {{from}}",
    "allowThisPort": "Permitir esta porta",
    "allowPortHint": "Mantenha 22/80/443 para um host;",
    "denyTitle": "Negar IP permanente",
    "denySub": "UFW DENY · diferente de proibições temporárias de fail2ban",
    "denyPlaceholder": "IPv4 ou IPv6 para negar",
    "deniedOk": "Negado permanentemente",
    "removedDeny": "NEGAR removido",
    "remove": "Remover",
    "noDenyRules": "Nenhuma regra de negação permanente de IP",
    "oneClickProfiles": "Perfis com um clique",
    "oneClickDesc": "Escreva o script do painel e aplique o UFW (não instala o fail2ban - use a página fail2ban)",
    "customApply": "Aplicação personalizada",
    "allowSmtp": "Permitir portas SMTP/IMAP",
    "extraTcp": "Portas TCP extras",
    "extraTcpHint": "Escolha uma predefinição; ou vírgulas/intervalos personalizados",
    "noExtra": "Nenhum extra",
    "mailGroup": "Conjunto de correio",
    "customExtraPlaceholder": "Personalizado: 8080.9000:9010",
    "appliedCustom": "Regras personalizadas aplicadas",
    "applyToSystem": "Aplicar ao sistema",
    "deletedRule": "Excluído #{{n}}",
    "deleteRuleTitle": "Excluir regra #{{n}}?",
    "deleteRuleDesc": "Remove esse número de regra UFW (precisa de permissão de alteração do sistema).",
    "servicesTitle": "Serviços gerenciados",
    "servicesHint": "Exposição de rede desejada para serviços YSK. Abrir um serviço sincroniza essas regras automaticamente.",
    "servicesUfwOff": "A UFW está desligada. Esta lista é a exposição desejada, não as regras que o host está aplicando.",
    "servicesEmpty": "Ainda não há dados de exposição de serviço",
    "servicesEmptyDesc": "Inicie um serviço gerenciado (web, FTPS, VPN, DB…) para preencher esta lista.",
    "servicesManualHint": "Os chips de porta manual estão na guia Portas – prefira gerenciar o acesso aqui para que as regras permaneçam marcadas (ysk-svc).",
    "portsManualHint": "Regras manuais avançadas. Prefira a guia Serviços para software gerenciado.",
    "colService": "Serviço",
    "colMode": "Modo",
    "colPorts": "Portas",
    "colSync": "Status",
    "synced": "Sincronizado",
    "syncNow": "Sincronizar",
    "disableConfirmTitle": "Desativar o UFW?",
    "disableConfirmDesc": "A firewall do anfitrião deixará de filtrar o tráfego. Numa rede pública, o SSH e o painel podem ficar expostos.",
    "disableConfirmConsequence": "As regras de permitir/negar mantêm-se, mas só são aplicadas quando o UFW for reativado.",
    "desiredOnlyUfwOff": "Desejado: {{mode}} · UFW desativado (não aplicado)",
    "syncNotApplied": "UFW desativado · não aplicado"
  },
  "ftp": {
    "title": "Contas FTPS",
    "accountsCount": "{{count}} conta(s)",
    "accounts": "Contas",
    "applied": "Aplicado",
    "pendingApply": "Aplicação pendente",
    "sftpKeys": "Chaves SFTP",
    "softwareMissing": "O software de serviço FTPS não está instalado",
    "ftpAccounts": "Contas FTP",
    "sftpPubkeys": "Chaves públicas SFTP",
    "homeDir": "Diretório inicial",
    "domain": "Domínio",
    "user": "Usuário",
    "keyFingerprint": "Impressão digital da chave (prefixo)",
    "createHint": "Crie primeiro uma conta FTP na guia Contas e depois retorne aqui para registrar as chaves.",
    "pubkeyHint": "Use “+ Adicionar chave pública”, escolha um usuário FTP e cole uma linha ssh-ed25519 ou ssh-rsa completa.",
    "sftpKeyInvalid": "Precisa de um nome de usuário e uma chave pública que comece com ssh-.",
    "quickSelect": "Conta de seleção rápida",
    "quickSelectHint": "Clique em um nome de usuário para preencher o formulário de nova chave",
    "editAccount": "Editar conta FTP",
    "createAccount": "Criar conta FTP",
    "accountModalDesc": "Escolha o domínio e a página inicial nas listas ou digite livremente. Salve e aplique para escrever vsftpd",
    "usernameHintCreate": "Alnum, ponto, sublinhado, hífen; imutável após a criação",
    "usernameHint": "Alnum, ponto, sublinhado, hífen",
    "newPasswordOptional": "Nova senha (opcional)",
    "passwordKeepHint": "Vazio mantém atual",
    "passwordMin8": "Pelo menos 8 caracteres",
    "domainHint": "Domínio de site ou email para agrupamento e dicas de caminho",
    "domainPh": "Crie primeiro o domínio do site/e-mail ou digite temporariamente",
    "homeHint": "Root após login (escopo visível do chroot)",
    "addPubkey": "Adicionar chave pública SFTP",
    "addPubkeyDesc": "Escolha uma conta, nota opcional e cole uma linha de chave pública completa. Escrever o arquivo não prova que o login funciona.",
    "pubkeyAdded": "Chave pública adicionada",
    "ftpUsername": "Nome de usuário FTP",
    "ftpUsernameHint": "Deve corresponder a uma conta FTP registrada",
    "ftpUsernamePh": "Igual à conta FTP",
    "note": "Observação",
    "noteHint": "Etiqueta do dispositivo, por ex. laptop / escritório",
    "notePh": "Host de laptop/escritório",
    "sshPubkey": "Chave pública SSH",
    "sshPubkeyHint": "Geralmente em ~/.ssh/id_ed25519.pub, cole a linha inteira",
    "deleteAccountTitle": "Excluir conta FTP?",
    "deleteAccountNamed": "Excluir conta FTP {{name}}?",
    "deleteAccountDesc": "Aplique novamente após remover",
    "deleteKeyTitle": "Excluir a chave pública SFTP?",
    "deleteKeyDesc": "Remove do arquivo de gerenciamento; sistema autorizado_keys pode precisar ser recarregado.",
    "serviceTitle": "serviço vsftpd",
    "softwareMissingService": "O software FTPS não está instalado",
    "lifecycle": "Vida útil",
    "overview": "Visão geral",
    "network": "Rede",
    "security": "Segurança",
    "installStart": "Instalar e iniciar",
    "listenPort": "Porta de escuta",
    "accountCount": "Contas",
    "loginBanner": "Bandeira de login",
    "sslDomain": "Domínio SSL",
    "plaintextInsecure": "FTP de texto não criptografado (sem TLS) — inseguro. Habilite o FTPS antes de expor a porta 21.",
    "plaintextPublicLive": "vsftpd está escutando em um endereço público sem FTPS. As credenciais viajam em segurança. Habilite o FTPS, vincule-se apenas a este host ou confirme PLAINTEXT para manter esta postura.",
    "bindAddress": "Escopo de escuta",
    "bindAddressHint": "Novas instalações são vinculadas apenas a esse host. A escuta pública sem FTPS precisa de uma confirmação digitada.",
    "bindLocal": "Somente este anfitrião",
    "bindLocalHint": "127.0.0.1 — bom sem TLS para testes locais",
    "bindPublic": "Público",
    "bindPublicHint": "Todas as interfaces — habilite FTPS ou confirme PLAINTEXT",
    "enableFtpsAndStart": "Habilite FTPS e inicie",
    "publicPlainNeedConfirm": "O FTP de texto não criptografado público precisa de uma confirmação PLAINTEXT",
    "plainConfirmTitle": "Iniciar FTP público sem FTPS?",
    "plainConfirmDesc": "A porta 21 aceitará logins e dados em claro no endereço público.",
    "plainConfirmC1": "Nomes de usuário e senhas são visíveis na rede.",
    "plainConfirmC2": "PASV anunciará o IP público configurado.",
    "plainConfirmC3": "O firewall do host e o grupo de segurança da nuvem não estão abertos para você.",
    "plainConfirmAction": "Iniciar FTP de texto não criptografado",
    "pasvRange": "Gama PASV",
    "forceTls": "Forçar TLS",
    "allowWrite": "Permitir gravação",
    "networkTitle": "Configurações de rede",
    "networkDesc": "Porta de escuta e PASV;",
    "listenPortHint": "Padrão 21; abra o firewall se estiver usando outra porta",
    "customPort": "Porta personalizada",
    "ipStack": "Pilha IP",
    "ipStackHint": "A maioria das compilações do vsftpd: listen e listen_ipv6 são mutuamente exclusivas;",
    "listenConflictLive": "Live vsftpd.conf tem listen={{v4}} e listen_ipv6={{v6}} - ambos SIM falharão ao iniciar.",
    "listenConflictNeedFix": "Corrija listen / listen_ipv6 primeiro (ambos não podem ser SIM) e depois aplique.",
    "fixListenIpv4": "Use apenas IPv4 (ouvir=SIM, ouvir_ipv6=NÃO)",
    "liveFileValue": "Arquive agora: {{value}}",
    "startBlockedFailed": "O serviço falhou – aplique uma configuração válida antes de iniciar",
    "ftpsNeedCert": "Escolha primeiro um domínio de certificado",
    "ipv4Only": "Somente IPv4",
    "ipv6Mapped": "IPv6 (mapeado OK)",
    "bannerHint": "String de boas-vindas que os clientes veem após a conexão",
    "pasvStart": "Porta inicial PASV",
    "pasvStartHint": "Início do canal de dados passivo",
    "customStart": "Início personalizado",
    "pasvEnd": "Porta final PASV",
    "pasvEndHint": "Deve ser ≥ início; firewall deve permitir o intervalo",
    "openFirewallPage": "Abrir página do firewall",
    "customEnd": "Final personalizado",
    "pasvPublicIp": "IP público PASV",
    "detectPublicIp": "Detectar IP público",
    "detectPublicIpTitle": "Preencha o primeiro IPv4 sem loopback deste host",
    "pasvPublicIpHint": "NAT/nuvem: definir IP público; local pode deixar vazio",
    "pasvIpRequired": "Defina um IP público PASV antes de aplicar (NAT/nuvem). Detete ou escreva um endereço.",
    "optionalEmpty": "(opcional)",
    "securityTitle": "Configurações de segurança",
    "securityDesc": "TLS, acesso de gravação, chroot; Aplique e reinicie para entrar em vigor",
    "sslCertDomain": "Domínio do certificado SSL",
    "sslCertDomainHint": "Escolha um domínio de certificado carregado/emitido",
    "enableFtps": "Habilitar FTPS (SSL/TLS)",
    "enableFtpsDesc": "TLS no canal de controle; recomendado",
    "forceTlsLogin": "Forçar login TLS",
    "forceTlsLoginDesc": "Rejeitar FTP simples; clientes precisam de FTPS",
    "allowWriteDesc": "Desativado = apenas download/lista",
    "chrootUsers": "Usuários chroot",
    "chrootUsersDesc": "Prisão para casa após login",
    "writableChroot": "Permitir chroot gravável",
    "writableChrootDesc": "Mantenha o chroot mesmo quando home for gravável (necessidade comum do vsftpd)",
    "settingsSaved": "Configurações salvas",
    "installIncomplete": "A instalação não pôde ser concluída",
    "ftpsReady": "Pronto para FTPS",
    "settingsApplied": "Configurações aplicadas",
    "opsResult": "Resultado das operações",
    "saved": "Salvo",
    "accountsList": "Lista de contas",
    "accountsListDesc": "Após criar, aplique para sincronizar vsftpd. Se o serviço estiver faltando, instale acima",
    "startService": "começar.",
    "createAccountPlus": "+ Criar conta",
    "noFtpAccounts": "Nenhuma conta FTP ainda",
    "noFtpAccountsDesc": "Criar conta (lista no canto superior direito); defina a casa e o domínio e aplique.",
    "applyHint": "Nota: Aplicar somente gerenciamento de gravação; a escuta precisa do vsftpd ativo.",
    "sshdMatchNote": "; system sshd Match deve ser configurado para entrar em vigor.",
    "addPubkeyPlus": "+ Adicionar chave pública",
    "noPubkeys": "Nenhuma chave pública registrada",
    "pickDomain": "- escolha o domínio -",
    "currentDomain": "{{domain}} (atual)",
    "pickHome": "- escolha casa -",
    "currentHome": "{{path}} (atual)",
    "fullPath": "Caminho completo:",
    "emptyHomes": "Se a lista estiver vazia, crie primeiro um projeto ou site para opções iniciais.",
    "pickAccount": "- escolha a conta -",
    "installFtpsBanner": "Use o banner acima para instalar o FTPS e inicie o serviço.",
    "applyRestart": "Aplicar e reiniciar",
    "afterInstall": "Após a instalação, você pode fazer login com contas FTPS. Direitos de administrador necessários para instalar.",
    "saveSettings": "Salvar configurações",
    "saveApplyHint": "Salvar apenas o painel de atualizações; Aplicar e reiniciar grava vsftpd.conf e recarrega.",
    "installAndStart": "Instalar e iniciar",
    "manageAccounts": "Contas",
    "openFirewallPorts": "Abra portas de firewall",
    "firewallPortsApplied": "Firewall permitiu TCP {{ports}}",
    "sftpTabDesc": "Registre chaves públicas SSH para contas FTP para que os clientes possam usar o login com chave SFTP. Escolha uma conta, cole uma linha principal e salve.",
    "sftpNeedAccountTitle": "Nenhuma conta FTP ainda",
    "sftpNeedAccount": "Crie pelo menos uma conta FTP primeiro e depois registre uma chave pública para esse usuário.",
    "sftpFilterLabel": "Conta",
    "sftpFilterAll": "Todas as contas",
    "sftpKeyCount": "{{count}} chave(s)",
    "sftpEmptyFiltered": "Não há chaves para esta conta",
    "sftpEmptyFilteredDesc": "“{{user}}” ainda não possui chaves públicas SSH registradas.",
    "sftpRegister": "Chave de registro",
    "sftpAddedAt": "Adicionado {{time}}",
    "sftpTechSummary": "Detalhes técnicos (avançado)",
    "sftpTechNote": "As chaves são gravadas no caminho gerenciado",
    "filterProject": "Apenas contas FTP deste projeto",
    "clearProjectFilter": "Mostrar todas as contas",
    "vsftpdFailedHint": "vsftpd falhou. Abra a guia Serviço (listen e listen_ipv6 não podem ser SIM).",
    "vsftpdFailedGeneric": "vsftpd falhou. Abra a guia Serviço para configurações ao vivo e diário.",
    "stateFailed": "Falha ao iniciar",
    "tabService": "Serviço"
  },
  "geo": {
    "continents": {
      "AS": "Ásia",
      "EU": "Europa",
      "NA": "América do Norte",
      "SA": "Ámérica do Sul",
      "AF": "África",
      "OC": "Oceânia",
      "AN": "Antártica"
    },
    "countries": {
      "CN": "China",
      "HK": "Hong Kong",
      "MO": "Macau",
      "TW": "Taiwan",
      "JP": "Japão",
      "KR": "Coréia do Sul",
      "KP": "Coréia do Norte",
      "SG": "Cingapura",
      "MY": "Malásia",
      "TH": "Tailândia",
      "VN": "Vietnã",
      "PH": "Filipinas",
      "ID": "Indonésia",
      "IN": "Índia",
      "AU": "Austrália",
      "NZ": "Nova Zelândia",
      "US": "Estados Unidos",
      "CA": "Canadá",
      "MX": "México",
      "BR": "Brasil",
      "AR": "Argentina",
      "GB": "Reino Unido",
      "IE": "Irlanda",
      "DE": "Alemanha",
      "FR": "França",
      "NL": "Holanda",
      "BE": "Bélgica",
      "CH": "Suíça",
      "AT": "Áustria",
      "SE": "Suécia",
      "NO": "Noruega",
      "DK": "Dinamarca",
      "FI": "Finlândia",
      "PL": "Polônia",
      "CZ": "Tcheca",
      "ES": "Espanha",
      "PT": "Portugal",
      "IT": "Itália",
      "RU": "Rússia",
      "UA": "Ucrânia",
      "TR": "Peru",
      "IL": "Israel",
      "AE": "UAE",
      "SA": "Arábia Saudita",
      "EG": "Egito",
      "ZA": "África do Sul",
      "NG": "Nigéria",
      "PK": "Paquistão",
      "BD": "Bangladesh",
      "IR": "Irã",
      "IQ": "Iraque",
      "RO": "Romênia",
      "BG": "Bulgária",
      "HU": "Hungria",
      "GR": "Grécia",
      "LT": "Lituânia",
      "LV": "Letônia",
      "EE": "Estônia",
      "BY": "Bielorrússia",
      "KZ": "Cazaquistão",
      "UZ": "Uzbequistão",
      "CL": "Chile",
      "CO": "Colômbia",
      "PE": "Peru",
      "VE": "Venezuela",
      "CU": "Cuba",
      "SC": "Seicheles",
      "PA": "Panamá"
    },
    "regions": {
      "CN-BJ": "Pequim",
      "CN-SH": "Xangai",
      "CN-TJ": "Tianjin",
      "CN-CQ": "Chongqing",
      "CN-GD": "Guangdong",
      "CN-ZJ": "Zhejiang",
      "CN-JS": "Jiangsu",
      "CN-SD": "Shandong",
      "CN-HN": "Henan",
      "CN-HB": "Hubei",
      "CN-HU": "Hunan",
      "CN-SC": "Sichuan",
      "CN-HE": "Hebei",
      "CN-FJ": "Fujian",
      "CN-AH": "Anhui",
      "CN-JX": "Jiangxi",
      "CN-LN": "Liaoning",
      "CN-JL": "Jilin",
      "CN-HL": "Heilongjiang",
      "CN-SX": "Shanxi",
      "CN-SN": "Shaanxi",
      "CN-GS": "Gansu",
      "CN-QH": "Qinghai",
      "CN-HA": "Hainan",
      "CN-YN": "Yunnan",
      "CN-GZ": "Guizhou",
      "CN-GX": "Guangxi",
      "CN-NX": "Ningxia",
      "CN-XJ": "Xinjiang",
      "CN-XZ": "Tibete",
      "CN-NM": "Mongólia Interior",
      "TW-TPE": "Taipei",
      "TW-TXG": "Taichung",
      "TW-KHH": "Kaohsiung",
      "HK-HK": "Hong Kong",
      "MO-MO": "Macau",
      "US-CA": "CA",
      "US-NY": "NY",
      "US-TX": "TX",
      "US-FL": "FL",
      "US-WA": "WA",
      "US-IL": "IL",
      "US-VA": "VA",
      "US-OR": "OR",
      "US-GA": "GA",
      "US-NJ": "NJ",
      "US-MA": "MA",
      "US-OH": "OH",
      "US-PA": "PA",
      "US-AZ": "AZ",
      "US-CO": "CO",
      "US-NC": "NC",
      "US-MI": "MI",
      "US-NV": "NV",
      "JP-13": "Tóquio",
      "JP-27": "Osaca",
      "JP-14": "Kanagawa",
      "JP-23": "Aichi",
      "KR-11": "Seul",
      "KR-26": "Busan",
      "SG-01": "SG",
      "AU-NSW": "NSW",
      "AU-VIC": "VIC",
      "GB-ENG": "ENG",
      "DE-BE": "BE",
      "DE-BY": "BY",
      "RU-MOW": "MOW",
      "RU-SPE": "SPE"
    }
  },
  "hostBrowse": {
    "tabBrowse": "Navegar",
    "subtitle": "Navegue na Internet ou LAN através deste host. Os alvos nunca veem a identidade do navegador do seu desktop.",
    "modeInternet": "Internet",
    "modeIntranet": "Intranet",
    "modeHint": "Internet bloqueia IPs privados; A intranet permite alvos LAN. Ambos bloqueiam metadados da nuvem.",
    "urlPlaceholder": "https://example.com ou 192.168.1.1",
    "go": "Ir",
    "back": "Voltar",
    "forward": "Avançar",
    "reload": "Recarregar",
    "stop": "Parar",
    "clearCookies": "Limpar cookies",
    "clearCookiesConfirm": "Isso limpa os cookies armazenados no host para esta sessão de navegação. Os sites que estavam conectados precisarão ser conectados novamente.",
    "closeSession": "Fechar sessão",
    "copyUrl": "Copiar URL",
    "newSession": "Nova sessão",
    "privacyOn": "Privacidade ativada",
    "viaHost": "através do anfitrião",
    "emptyTitle": "Navegação mediada por host",
    "emptyBody": "Insira um URL. DNS, TLS e saída usam este servidor – não seu navegador. Os cookies ficam em uma jarra do lado do servidor.",
    "needUrl": "Introduza um URL acima para iniciar uma sessão.",
    "ssrfBlocked": "Bloqueado por política de segurança (SSRF/modo)",
    "loadFailed": "Falha na busca no host",
    "sessionReady": "Sessão pronta",
    "noSession": "Nenhuma sessão",
    "statusLine": "{{status}} · {{ms}}ms · {{type}} · via host",
    "cookies": "Biscoitos",
    "latency": "Latência",
    "locked": "HTTPS",
    "insecure": "HTTP",
    "loading": "Carregando…",
    "modeSwitchHint": "O modo de comutação abre uma nova sessão e limpa os cookies.",
    "copied": "URL copiado",
    "downloadHint": "Resposta não HTML – abra o quadro de conteúdo ou navegue novamente.",
    "engineLabel": "Motor",
    "engineProxy": "Procurador",
    "engineBrowser": "Navegador real",
    "engineSwitchHint": "A troca de mecanismo abre uma nova sessão.",
    "needChrome": "O navegador real precisa do sistema Chrome/Chromium (ou conjunto YSK_HOST_BROWSE_CHROME). Usando proxy de outra forma.",
    "engineBrowserNeedChrome": "Navegador real (Chrome não instalado)",
    "egressHint": "O site de destino vê o endereço de saída deste servidor ({{host}}), não o seu laptop. Os cookies permanecem no jar da sessão do servidor.",
    "needChromeFallback": "Chrome indisponível – mudou para mecanismo proxy.",
    "liveError": "Falha na transmissão ao vivo",
    "liveWaiting": "Conectando o navegador host…",
    "tabSettings": "Configurações",
    "softwareNeeded": "Chromium / Chrome necessário para mecanismo de navegador real",
    "softwareHint": "Um clique instala a distribuição Chromium via apt. O binário do Google Chrome também é detectado se já estiver presente. Requer root + YSK_EXECUTE=1.",
    "closeNoSession": "Nenhuma sessão ainda",
    "goInstallChrome": "Abra a guia Software",
    "settingsIntro": "Essas configurações do painel substituem as variáveis ​​de ambiente do processo para Host Browse.",
    "settingsEngine": "Mecanismo padrão",
    "engineAuto": "Auto",
    "settingsChromePath": "Caminho Chrome / Chromium",
    "settingsChromePathHint": "Vazio = detecção automática. Exemplo: /usr/bin/google-chrome",
    "settingsLoopback": "Permitir loopback no modo intranet (127.0.0.1)",
    "settingsNoSandbox": "Chromium --no-sandbox (somente contêineres)",
    "settingsSave": "Salvar configurações",
    "settingsSaved": "Configurações de navegação no host salvas",
    "envHintsTitle": "Ambiente do processo (somente leitura; as configurações do painel têm precedência quando definidas)",
    "stream": {
      "label": "Qualidade",
      "smooth": "Suave",
      "balanced": "Equilibrado",
      "sharp": "Afiado"
    },
    "zoom": {
      "label": "Zoom",
      "fit": "Ajustar",
      "fill": "Preencher"
    },
    "retryNav": "Tentar novamente a navegação",
    "retryLive": "Reconectar fluxo",
    "tryProxy": "Mudar para mecanismo proxy",
    "err": {
      "LIVE_NO_FRAME": "O tempo de transmissão expirou: nenhum quadro foi recebido. Reconecte ou tente novamente a navegação.",
      "LIVE_WS_FAIL": "A conexão ao vivo falhou. Reconecte o fluxo.",
      "SSRF_BLOCKED": "Alvo bloqueado pela política de segurança.",
      "BOT_CHALLENGE": "O Target pode exigir verificação humana ou automação de bloco. Complete o desafio na tela, se mostrado.",
      "TIMEOUT": "O carregamento expirou. Por favor, tente novamente.",
      "DNS_FAIL": "A resolução de DNS falhou.",
      "TLS_FAIL": "A conexão TLS/SSL falhou.",
      "NAV_FAIL": "A navegação falhou.",
      "CHROME_LAUNCH": "Não foi possível iniciar o host Chromium. Verifique as configurações de instalação e sem sandbox.",
      "SESSION_GONE": "A sessão expirou. Navegue novamente.",
      "NEED_CHROME": "É necessário cromo/cromo."
    },
    "home": "Lar",
    "bookmark": "Marcador",
    "bookmarkAdd": "Adicionar ou remover favorito",
    "bookmarkList": "Lista de favoritos",
    "bookmarks": "Favoritos",
    "history": "História",
    "bookmarkToggled": "Marcador atualizado",
    "newTab": "Nova guia",
    "fullscreen": "Tela cheia",
    "mediaNote": "Navegador real: o vídeo é transmitido; o áudio ainda não está conectado ao painel (fase 2).",
    "isolationNote": "Navegador real cria usuário Linux efêmero para Chrome; sair da página ou o tempo limite de inatividade destrói esse usuário.",
    "resumeHint": "Retomar sessão anterior (guias {{count}})",
    "resumeHintDetail": "Retomar sessão anterior (guias {{count}}) · {{url}} · {{when}}",
    "resumeHintOwned": "Retomar a última navegação para {{user}} ({{count}} guias) · {{url}} · {{when}}",
    "clearSessionData": "Limpar dados da sessão",
    "clearSessionConfirm": "Isso descarta o instantâneo de currículo da sessão de navegação anterior. Você não poderá restaurar essas guias posteriormente.",
    "resume": "Retomar",
    "resumeDismiss": "Liberar",
    "resumeDone": "Sessão retomada",
    "settingsSafety": "Segurança de navegação",
    "settingsSafetyHint": "Strict bloqueia hosts mais arriscados; Relaxado permite alvos de intranet mais amplos. Não desativa as proteções SSRF para metadados na nuvem.",
    "safetyStrict": "Estrito",
    "safetyStandard": "Padrão",
    "safetyRelaxed": "Descontraído",
    "settingsBlockHosts": "Sufixos de host bloqueados",
    "settingsBlockHostsHint": "Um nome de host ou sufixo por linha (por exemplo, malware.test). As correspondências exatas e de sufixo são bloqueadas.",
    "settingsAllowDangerousDownloads": "Permitir downloads de alto risco (exe/scripts)",
    "settingsAudioBridge": "Conecte o áudio da página ao painel",
    "settingsAudioBridgeHint": "Os streams hospedam o áudio do Chrome neste navegador. Alguns sites precisam de um clique para desbloquear a reprodução.",
    "downloads": "Transferências",
    "downloadsEmpty": "Nenhum download nesta sessão",
    "downloadReady": "Preparar",
    "downloadBlocked": "Bloqueado",
    "downloadPending": "Pendente",
    "downloadFailed": "Fracassado",
    "downloadSave": "Salvar",
    "audioUnlock": "Ativar som",
    "audioUnlockHint": "Clique para desbloquear a reprodução de áudio nesta guia",
    "audioUnlocked": "Áudio desbloqueado",
    "audioPlaying": "Reprodução de áudio",
    "audioNeedsUnlock": "O áudio precisa ser desbloqueado",
    "audioBridgedHint": "O áudio da página é transferido do navegador host",
    "audioNotBridged": "Áudio desligado",
    "audioNotBridgedHint": "Ative a ponte de áudio em Configurações para ouvir a página",
    "mediaPolicyTitle": "Mídia em navegador real",
    "mediaVideoLabel": "Vídeo",
    "mediaVideoDesc": "Renderizado no host e transmitido como quadros no painel.",
    "mediaAudioLabel": "Áudio",
    "mediaAudioDesc": "Ponte opcional do host Chrome; pode exigir clique de desbloqueio.",
    "mediaPolicyLabel": "Política",
    "mediaPolicyDesc": "Os downloads e a reprodução automática seguem as configurações de segurança e download acima.",
    "frameBlocked": "A página não pôde ser mostrada no quadro do painel.",
    "historyEmpty": "Não há histórico nesta sessão.",
    "bookmarksEmpty": "Ainda não há favoritos.",
    "closeSessionHint": "Limpa os cookies desta sessão de navegação. Os marcadores permanecem.",
    "envUnset": "não definido",
    "envPanelValue": "painel: {{value}}",
    "envColVar": "Variável",
    "envColHost": "Processo do anfitrião",
    "envColPanel": "Definição do painel",
    "envColEffective": "Efetivo",
    "settingsNoSandboxWarn": "Desativa a sandbox do Chromium. Use apenas dentro de um contêiner confiável. Aplica-se na próxima sessão do navegador real.",
    "settingsDangerDlWarn": "Permite downloads de executáveis ​​e scripts através do navegador host. Confirme que você precisa disso.",
    "settingsDangerConfirmTitle": "Ativar uma configuração de navegação de alto risco?"
  },
  "legal": {
    "hubTitle": "Jurídico",
    "hubSub": "Termos de utilização, política de privacidade e isenção de responsabilidade do YSK Server",
    "terms": "Termos de utilização",
    "privacy": "Política de privacidade",
    "disclaimer": "Isenção de responsabilidade",
    "updated": "Última atualização {{date}}",
    "englishPrevails": "Línguas oficiais: inglês e chinês escrito de Hong Kong. Em caso de divergência, prevalece o inglês.",
    "notOfficialLocale": "O idioma da interface não é uma língua jurídica oficial. O texto vinculativo abaixo é inglês, salvo se o alterar.",
    "officialLang": "Texto oficial",
    "officialEn": "Inglês",
    "officialZh": "繁體中文（香港）",
    "signIn": "Iniciar sessão",
    "mitNote": "O código-fonte está sob licença MIT. Estas páginas são condições adicionais de utilização.",
    "backToIndex": "Todos os documentos jurídicos"
  },
  "listToolbar": {
    "searchPlaceholder": "Procurar…",
    "searchAria": "Lista de pesquisa",
    "clearSearch": "Limpar pesquisa",
    "clearAll": "Limpar filtros",
    "resultCount": "{{count}} resultados",
    "showingOf": "Exibindo {{shown}} de {{total}}",
    "activeFilters": "{{count}} filtros ativos",
    "noResults": "Nenhuma correspondência",
    "noResultsHint": "Experimente outra palavra-chave ou limpe os filtros.",
    "searching": "Procurando…",
    "emptyChip": "Nenhum item neste filtro"
  },
  "logViewer": {
    "banIpTitle": "Banimento {{ip}} em Proteção",
    "filter": "Filtro",
    "filterPh": "Palavra-chave",
    "levels": "Níveis",
    "wrap": "Enrolar",
    "follow": "Seguir",
    "download": "Download",
    "nextError": "Próximo erro",
    "prevError": "Erro anterior",
    "lines": "{{n}} linhas",
    "shown": "{{n}} mostrado",
    "errors": "Erro {{n}}",
    "warnings": "Avisar {{n}}",
    "all": "Todos",
    "empty": "Sem linhas de registro"
  },
  "login": {
    "title": "Iniciar sessão no YSK Server",
    "subtitle": "Consola do servidor",
    "username": "Nome de utilizador",
    "password": "Palavra-passe",
    "submit": "Iniciar sessão",
    "failed": "Falha ao iniciar sessão. Verifique o nome de utilizador ou a palavra-passe.",
    "footer": "Um produto da YSK Limited",
    "totpRequired": "A 2FA está ativa nesta conta. Introduza o código de 6 dígitos.",
    "totpLabel": "Código de autenticação",
    "totpHint": "Código de 6 dígitos da aplicação de autenticação",
    "submitting": "A iniciar sessão…",
    "sessionExpired": "Sessão expirada; inicie sessão novamente",
    "newPassword": "Nova senha",
    "newPasswordAgain": "Confirmar nova senha",
    "changePassword": "Alterar senha",
    "passwordMismatch": "As senhas não coincidem",
    "passwordChanged": "Senha atualizada"
  },
  "logs": {
    "catSystem": "Arquivos do sistema",
    "catMail": "Correspondência",
    "catSecurity": "Segurança",
    "catApp": "Aplicativo",
    "catOther": "Outro",
    "journalService": "Unidade de diário",
    "unavailable": "Indisponível",
    "compressed": "· comprimido",
    "noLogFileYet": "(nenhum arquivo de log ainda)",
    "afterDeploy": "Aparece após a implantação",
    "logsLoaded": "Registros carregados",
    "sseFailed": "SSE falhou, voltando à votação",
    "sseInterrupted": "SSE interrompido",
    "settingsSaved": "Configurações salvas",
    "exportedJsonl": "JSONL exportado",
    "exported": "Exportado",
    "bookmarkSaved": "Marcador salvo",
    "title": "Centro de registro",
    "fullAccess": "Acesso total",
    "nonRoot": "Não raiz",
    "noExecute": "Sem EXECUTAR",
    "error": "Erro",
    "projectLog": "Registros do projeto",
    "filesCount": "{{count}} arquivo(s)",
    "tabExplore": "Explorar",
    "tabMaint": "Manutenção",
    "tabSettings": "Configurações",
    "tabAbout": "Sobre",
    "sources": "Fontes de registro",
    "filterPlaceholder": "Filtrar unidade/arquivo…",
    "filterSources": "Filtrar fontes",
    "noProjectLogs": "Nenhum registro do projeto — aparece após a implantação",
    "noMatchSources": "Nenhuma fonte correspondente",
    "projectPrefix": "Projeto ·",
    "timeRange": "Intervalo de tempo",
    "unlimited": "Ilimitado",
    "priority": "Prioridade",
    "all": "Todos",
    "keywordIp": "Palavra-chave/IP…",
    "custom": "Personalizado",
    "copied": "Copiado",
    "truncated": "· truncado",
    "following": "· seguindo",
    "followingSse": "· seguindo (SSE)",
    "loadingSources": "Carregando fontes…",
    "pickSource": "Escolha uma fonte à esquerda ou um atalho · depois Consultar",
    "noRowsInWindow": "Não há registros nesta janela de tempo",
    "showInactiveUnits": "Mostrar unidades inativas",
    "sseNeedFollow": "Ative Seguir primeiro – SSE é apenas para acompanhamento ao vivo",
    "maintOverview": "Visão geral da manutenção",
    "executable": "Executável",
    "restricted": "Restrito",
    "needRootExecute": "Precisa de root + EXECUTE",
    "retention": "Retenção",
    "retentionHint": "por exemplo 7d · 14d · 30d",
    "defaultLines": "Linhas padrão",
    "followInterval": "Seguir intervalo",
    "maxBytes": "Máximo de bytes",
    "maskSecrets": "Segredos da máscara",
    "defaultVacuumDays": "Dias de vácuo padrão",
    "d7": "7 dias",
    "d14": "14 dias",
    "d30": "30 dias",
    "d90": "90 dias",
    "journalAlerts": "Alertas de diário",
    "autoVacuum": "Aspirador automático",
    "deleted": "Excluído",
    "bookmarkDeleted": "Favorito excluído",
    "opsResult": "Resultado das operações",
    "saveBookmark": "Salvar favorito",
    "bookmarkNamePrompt": "Nome da consulta atual",
    "query": "Consulta",
    "follow": "Seguir",
    "export": "Exportar",
    "vacuum": "Vácuo",
    "loadFailed": "Falha ao carregar",
    "projectLogsLink": "Projeto → Registros",
    "projectLogsDesc": "— atalho por site + link direto",
    "queryFollow": "Consulte e acompanhe",
    "queryFollowDesc": "Linhas padrão, intervalo de acompanhamento, limite de resposta no Explore",
    "retentionAlerts": "Retenção e alertas",
    "retentionAlertsDesc": "padrões de vácuo, alertas de disco de diário, limpeza automática de janelas",
    "dailyNeedRoot": "Diariamente (precisa de root + EXECUTE)",
    "customAllow": "Caminhos de permissão personalizados",
    "customAllowDesc": "Somente /var/log ou /run/log · rejeitar .ssh, chaves, /etc",
    "pathsCount": "{{n}} caminho(s)",
    "noCustomPaths": "Ainda não há caminhos personalizados",
    "bookmarks": "Favoritos",
    "bookmarksDesc": "Filtros comuns do Explore; abra interruptores para Explorar e aplique a fonte",
    "noBookmarks": "Sem favoritos – consulte Explorar e salve o favorito",
    "settingsWriteNote": "Gravação de configurações no painel DB; o vácuo automático verifica a janela a cada 15 minutos.",
    "saveSettings": "Salvar configurações",
    "vacuumDaysQ": "Tempo de vácuo {{days}}?",
    "vacuumSizeQ": "Tamanho do vácuo 500M?",
    "vacuumDesc": "Journalctl Vacuum exclui logs antigos permanentemente.",
    "vacuumRequested": "Vácuo solicitado",
    "vacuumSizeRequested": "Tamanho de vácuo solicitado",
    "scLogs": "Observar diário/arquivos/projetos",
    "scProtection": "Resposta a incidentes, banimento automático (clique em IP)",
    "shortcuts": "Atalhos",
    "projectsOnly": "Somente projetos",
    "filesTitle": "{{n}} arquivo(s)",
    "bookmarksLabel": "Favoritos",
    "filter": "Filtro",
    "followSec": "Siga {{sec}}s",
    "wrap": "Enrolar",
    "bookmark": "Marcador",
    "standby": "Parado",
    "partialFail": "Parcial/com falha",
    "lines": "{{n}} linhas",
    "followingSseDyn": "· seguindo{{sse}}",
    "ipBan": "IP → banimento",
    "vacuumNote": "Disco systemd-journal gratuito. Sem EXECUTE → bloqueado, sem sucesso falso.",
    "vacuumTime": "Tempo de vácuo",
    "vacuumNeedRetention": "Introduza primeiro uma janela de retenção (p.ex. 14d)",
    "vacuumNeedConfirm": "Precisa de confirmação — apaga journal antigos",
    "vacuumSizeNeedConfirm": "Precisa de confirmação — limita o disco do journal",
    "vacuumHint": "Recomenda-se manter ≥7 dias; teste novamente o disco depois.",
    "logrotateStatus": "Status do logrotate do sistema (sonda somente leitura)",
    "logrotateMissing": "Nenhum arquivo de status ou ilegível — verifique o pacote logrotate na matriz de serviços",
    "relatedOps": "Operações relacionadas",
    "relatedOpsDesc": "Observação de registro versus resposta a incidentes",
    "scLogsLine": "Observar diário/arquivos/projetos",
    "scProtLine": "Resposta a incidentes, banimento automático (clique em IP)",
    "journalVacuumTitle": "Vácuo de diário",
    "journalSection": "Jornal",
    "sseLabel": "SSE",
    "logrotateLabel": "logrotate",
    "srcNginx": "nginx",
    "srcSsh": "ssh",
    "srcfail2ban": "fail2ban",
    "srcFail2ban": "fail2ban",
    "srcAuthLog": "auth.log",
    "srcNginxError": "erro nginx",
    "srcLetsEncrypt": "letsencrypt",
    "groupJournal": "Jornal",
    "groupVarLog": "/var/log",
    "prioErr": "errar+",
    "prioWarn": "avisar+",
    "prioInfo": "informações+",
    "vacuumSize": "Limite a 500 MB",
    "logrotateNoStatus": "Ainda não há arquivo de status do logrotate (normal se nunca tiver sido executado).",
    "autoVacuumOff": "A limpeza automática está desativada. O tempo não é utilizado até que você o habilite.",
    "aboutAllowlist": "O Explore só pode ler unidades de diário permitidas e caminhos /var/log. Caminhos de host arbitrários não são oferecidos.",
    "aboutCustomPath": "Adicione um caminho personalizado em Configurações (somente /var/log ou /run/log). Em seguida, abra-o em Explorar.",
    "vacuumSizeAlreadyBelow": "O uso atual já está abaixo do limite; normalmente não apaga nada.",
    "vacuumSizeNoopDesc": "O journal já está abaixo de 500 MB. Ainda corre vacuum --size=500M e normalmente não apaga nada.",
    "journalDiskHint": "Uso atual do systemd-journald (journal ativo). Não inclui rodados em /var/log.",
    "varLogDiskHint": "Estimativa de /var/log, incluindo rodados.",
    "queryFirst": "Consulte primeiro",
    "errorsWindowHint": "Erros recentes da última sondagem de visão geral (sem atualização ao vivo quando você alterna entre guias)",
    "sourceCount": "{{shown}} mostrado",
    "sourceUnavailable": "Esta fonte ainda não produziu um log",
    "sourceNoLog": "Nenhum registro ainda",
    "projectSourcesTitle": "{{n}} origem(ns) (ficheiros + journal)",
    "logrotatePath": "Caminho",
    "logrotateLast": "Última rotação",
    "exportJsonl": "Exportação JSONL",
    "sseLive": "(transmissão ao vivo)",
    "logrotateExpand": "Mostrar {{n}} mais",
    "logrotateCollapse": "Mostrar menos",
    "logrotateVersion": "Versão de status {{v}}"
  },
  "metrics": {
    "alert": {
      "memory_high": "Memória alta",
      "load_high": "Carga alta",
      "disk_high": "Disco alto"
    },
    "loadFailed": "Falha ao carregar métricas",
    "projectUsageFailed": "Falha ao carregar o uso do projeto",
    "procListFailed": "Lista de processos falhou",
    "streamEnded": "Transmissão encerrada ({{reason}})",
    "streamOpenFailed": "Não foi possível abrir o stream",
    "signalFailed": "Falha no sinal",
    "detailFailed": "Não foi possível carregar os detalhes",
    "alertCount": "{{count}} alerta(s)",
    "attention": "Precisa de atenção",
    "normal": "OK",
    "disk": "Disco",
    "alerts": "Alertas",
    "auto5s": "Auto 5s",
    "hostSettings": "Configurações do host",
    "loading": "Carregando métricas…",
    "tabs": {
      "overview": "Visão geral",
      "live": "Processos ao vivo",
      "disk": "Disco",
      "projectUsage": "Uso do projeto",
      "alerts": "Alertas"
    },
    "load": "Carregar",
    "load1m": "Carregar 1m",
    "uptime": "Tempo de atividade",
    "filterCpu5": "≥5% CPU",
    "filterMem5": "≥5% de memória",
    "signalHint": "Selecione um processo e envie TERM ou KILL.",
    "signalFromRow": "Selecione este processo para TERM / KILL",
    "selectForSignal": "Selecione",
    "forceKillTitleNamed": "MATAR PID {{pid}} ({{cmd}})?",
    "sendSigTitleNamed": "Enviar TERMO para PID {{pid}} ({{cmd}})?",
    "min1": "1m",
    "min5": "5m",
    "min15": "15m",
    "loadHint": "Em relação às CPUs {{cpus}}; acima de 1,0× podem entrar na fila.",
    "memory": "Memória",
    "total": "Total",
    "available": "Disponível",
    "mainDisk": "Disco raiz",
    "path": "Caminho",
    "diskReadFail": "Não foi possível ler o disco",
    "viewAllMounts": "Ver todas as montagens {{count}} →",
    "nAlerts": "{{count}} alertas",
    "details": "Detalhes",
    "noThresholdAlerts": "Nenhum alerta de limite de memória/carga/disco",
    "projectDisk": "Disco do projeto (real du)",
    "viewAllProjectUsage": "Ver todo o uso do projeto →",
    "loadProjectDisk": "Carregar uso do disco do projeto (real du) →",
    "followSse": "Siga (SSE)",
    "interval": "Intervalo",
    "sort": "Organizar",
    "rows": "Linhas",
    "onceQuery": "Consulta única",
    "procSearchPh": "Pesquisar PID / USUÁRIO / COMANDO",
    "procSearchAria": "Processos de pesquisa",
    "filterAll": "Todos",
    "filterMine": "Não sistema",
    "selectedN": "{{count}} selecionado",
    "showOf": "· mostrando {{shown}}/{{total}}",
    "topLoading": "Carregando o resumo principal… (/proc/stat amostra dupla)",
    "topAria": "resumo principal",
    "perCore": "Por núcleo",
    "noPerCore": "Sem dados por núcleo",
    "uptimeDays": "{{d}} dias, {{h}}:{{m}}",
    "used": "Usado",
    "free": "Livre",
    "signal": "Sinal",
    "kill": "Matar",
    "send": "Enviar",
    "procDetail": "Detalhe do processo",
    "refreshProc": "Atualizar processos",
    "noProcs": "Nenhum processo",
    "noProcsFilter": "Nenhum processo corresponde aos filtros",
    "mounts": "Montagens",
    "fs": "Sistema de arquivos",
    "mount": "Montar",
    "size": "Tamanho",
    "usage": "Uso",
    "project": "Projeto",
    "quota": "Contingente",
    "ratio": "Compartilhar",
    "unlimited": "Ilimitado",
    "noProjects": "Ainda não há projetos",
    "noProjectsDesc": "Crie um projeto para ver o uso doméstico real aqui",
    "usageNote": "Uso do du local (não estimado). Cota é um limite flexível do plano de controle; hard setquota precisa aplicar ao host.",
    "thresholdAlerts": "Alertas de limite",
    "alertsBuiltinOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
    "lastEvaluated": "Última verificação",
    "alertsOkTitle": "Tudo limpo",
    "alertsOkDesc": "Nenhum alerta de limite de memória/carga/disco.",
    "cpu": "CPU",
    "command": "Comando",
    "user": "Usuário",
    "clearSelection": "Limpar seleção",
    "batchSignal": "Sinal de lote",
    "liveHint": "Lista de processos ativos (SSE ou enquete). Os sinais precisam de root + YSK_EXECUTE.",
    "signalTo": "Sinal {{sig}} → PID {{pid}}",
    "procAlive": "Processo ainda ativo (kill -0 ok)",
    "procGone": "Processo encerrado",
    "procTable": "Processos ({{count}}{{more}})",
    "procTableDesc": "lista ps · selecione TERM/KILL (precisa de YSK_EXECUTE)",
    "selectAllAria": "Selecione tudo filtrado",
    "selectPidAria": "Selecione PID {{pid}}",
    "controlPlane": "Plano de controle",
    "controlPlaneNoSignal": "O processo do plano de controle não pode ser sinalizado",
    "protectedPid": "PID 1/init/systemd não pode ser sinalizado pelo painel",
    "sigTermTitle": "Enviar SIGTERM (pedir ao processo para sair)",
    "sigKillTitle": "Enviar SIGKILL (forçar matar – não pode ser capturado)",
    "batchTerm": "TERM",
    "batchKill": "KILL",
    "rawTopLabel": "Topo bruto (não traduzido)",
    "followSseLabel": "Siga (transmissão ao vivo)",
    "alertsReadOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
    "alertsGoNotifications": "Abrir centro de notificações",
    "lastCheck": "Última verificação",
    "rawTopHint": "Saída superior (1) não traduzida",
    "detailShort": "Informações",
    "procUnavailable": "Não foi possível obter processos",
    "noProcData": "Ainda não há dados de processo",
    "noProcFilter": "Nenhum processo corresponde aos filtros",
    "clickOnceOrFollow": "Execute uma consulta única ou ative o acompanhamento",
    "liveFootnote": "Como SSH top: /proc/stat amostra dupla para% CPU (por núcleo = top “1”), Mem/Swap, Tasks; tabela de processos do ps. Não é um PTY interativo. Matar precisa de YSK_EXECUTE; O PID 1 e o plano de controle são protegidos por padrão.",
    "forceKillTitle": "Forçar a eliminação do PID {{pid}} (SIGKILL)",
    "sendSigTitle": "Envie SIG{{sig}} para PID {{pid}}",
    "forceKillDesc": "Não pode ser pego; pode perder dados. Comando: {{cmd}}",
    "termDesc": "O processo pode ser limpo e encerrado. Comando: {{cmd}}",
    "forceKillBtn": "Forçar MATANÇA",
    "sendTermBtn": "Enviar TERMO",
    "procPidTitle": "PID do processo {{pid}}",
    "readingProc": "Leitura/processo…",
    "applyRenice": "Aplicar Renice",
    "reniceHint": "-20 mais alto · 19 mais baixo (precisa de EXECUTE)",
    "noData": "Sem dados",
    "shareOfMeasured": "{{pct}}% do medido",
    "mountsTitle": "Montagens de disco ({{count}})",
    "mountsDesc": "Real df -P -B1 (tmpfs filtrado)",
    "noMounts": "Nenhuma lista de montagem",
    "noMountsDesc": "df indisponível ou filtrado. Disco raiz ainda em Visão geral.",
    "seeProjectUsage": "O uso inicial do projeto está na guia Uso do projeto (real du · {{size}})",
    "measuringDu": "Medindo casas de projetos (du)…",
    "projectUsageTitle": "Uso do disco do projeto ({{count}})",
    "projectUsageDesc": "Real du · total {{total}} · {{at}}",
    "projectUsageDescEmpty": "Execute du em cada projeto home_dir",
    "remeasure": "Medir novamente",
    "usageNoteFull": "Uso do du local (não estimado). Cota é um limite flexível do plano de controle; hard setquota precisa aplicar ao host.",
    "sseNeedLogin": "Não logado; não consigo abrir o SSE",
    "sseSessionExpired": "Não logado ou sessão expirada; não consigo abrir o SSE",
    "sseHttpError": "transmitir HTTP {{status}}",
    "colFilesystem": "Sistema de arquivos",
    "colMount": "Montar",
    "colSize": "Tamanho",
    "colUsed": "Usado",
    "colAvail": "Disponível",
    "colUsePct": "Usado %",
    "colHome": "Lar",
    "usageNoteLink": "Cota flexível do plano de controle. Aplique limites rígidos na guia Isolamento do projeto.",
    "shareNoQuotaHint": "Sem quota, a parte não é uma percentagem. Defina-a no separador Isolamento do projeto.",
    "setQuotaLink": "Definir quota",
    "unusualHome": "Caminho invulgar",
    "unusualHomeHint": "Não é uma casa de projeto /home/…. O isolamento canônico é /home/ysk-server-{id}."
  },
  "migrate": {
    "tabInventory": "Inventário",
    "tabTarget": "Alvo",
    "tabRun": "Correr",
    "tabDone": "Feito",
    "refreshFailed": "Falha na atualização",
    "migrateIncomplete": "Migração incompleta",
    "requestFailed": "Falha na solicitação de migração",
    "title": "Migração de host completo",
    "subtitle": "Plano de controle de origem → cópia completa para o novo host. Depois altere apenas o IP/DNS público; contas, caminhos e projetos permanecem os mesmos.",
    "inventorying": "Inventário",
    "inventoried": "Inventariado",
    "inventoriedWarn": "Inventariado · {{n}} avisos",
    "inventoriedOrphans": "Inventariado · {{n}} sobras de casas",
    "inventoriedWarnAndOrphans": "Inventariado · {{w}} avisos · {{n}} sobras",
    "inventoryFailed": "Falha no inventário",
    "pendingInventory": "Inventário pendente",
    "projects": "Projetos",
    "mailboxes": "Caixas de correio",
    "users": "Usuários",
    "software": "Programas",
    "jobs": "Empregos",
    "notFound": "Não encontrado",
    "wizard": "Assistente de migração",
    "jobLog": "Histórico de trabalho",
    "about": "Sobre",
    "steps": "Etapas de migração",
    "sourceInventory": "Inventário de origem",
    "sourceInventoryDesc": "Varredura somente leitura do plano de controle e caminhos do projeto; não modifica o sistema",
    "inventoryRunning": "Inventariando este host…",
    "host": "Hospedar",
    "projectHome": "Projetos / casa",
    "needSoftware": "Software para instalar",
    "noInventory": "Ainda não há inventário",
    "noInventoryHint": "Use Atualizar (canto superior direito) para verificar o estado do host e os trabalhos",
    "targetHost": "Host de destino",
    "targetHostDesc": "Somente SSH raiz; a senha é apenas para esta solicitação e não é armazenada",
    "sshTarget": "Alvo SSH",
    "sshPort": "Porta SSH",
    "targetDataDir": "Dados de destinoDir",
    "authMethod": "Método de autenticação",
    "rootPassword": "Senha raiz",
    "notPersisted": "Não persistiu",
    "passwordNotStored": "A senha é usada apenas para esta sessão SSH e não é salva no disco.",
    "overwriteDanger": "A substituição substituirá os dados YSK existentes no destino. Isso não pode ser desfeito no painel.",
    "outboundIdentity": "Identidade de saída no cofre",
    "dryRun": "Pré-verificação de simulação",
    "startMigrate": "Iniciar a migração completa do host",
    "needSshTarget": "Insira o destino SSH",
    "needMaintWindow": "Verifique a janela de manutenção",
    "needRootPassword": "Digite a senha do root",
    "needRequired": "Preencha os campos obrigatórios",
    "result": "Resultado da migração",
    "blocked": "Bloqueado",
    "failed": "Fracassado",
    "detail": "Detalhes",
    "jobsTitle": "Trabalhos de migração ({{count}})",
    "jobsDesc": "Estado em dataDir/migrate/;",
    "phase": "Fase",
    "jobPhase": "Trabalho {{id}} · {{phase}}",
    "phaseName": {
      "failed": "Fracassado",
      "done": "Feito",
      "running": "Correndo",
      "queued": "Na fila",
      "cancelled": "Cancelado"
    },
    "target": "Alvo",
    "updated": "Atualizado",
    "notes": "Notas",
    "noJobs": "Ainda não há trabalhos de migração",
    "noJobsHint": "Os trabalhos aparecem após uma simulação ou migração completa no assistente.",
    "confirmTitle": "Confirme a migração completa do host",
    "confirmDesc": "Irá rsync e bootstrap {{target}}",
    "confirmStart": "Confirmar início",
    "cancel": "Cancelar",
    "success": "Sucesso",
    "unfilledTarget": "(sem meta)",
    "restartApiHint": "Se você acabou de implantar uma nova versão, reinicie a API (",
    "afterRestart": ") e atualize.",
    "inventoryWarnings": "Avisos de inventário ({{count}})",
    "orphanHomesHint": "Sobras de casas do projeto (não na loja). Remova somente depois de confirmar que não foram utilizados.",
    "orphanHomesTitle": "Sobras de casas do projeto ({{count}})",
    "orphanHomesSummary": "{{count}} caminho(s) no disco não estão no armazenamento. Faça backup primeiro se não tiver certeza e remova os caminhos não utilizados.",
    "orphanColHome": "Lar",
    "orphanColModified": "Modificado",
    "orphanColEntries": "Entradas",
    "orphanEntries": "{{n}} entradas de nível superior no diretório",
    "orphanKpi": "Sobras",
    "sourceOs": "OS",
    "sourceDataDir": "dadosDir",
    "sourceDbRedis": "Bancos de dados/Redis",
    "sourceDbRedisValue": "{{db}} bancos de dados · {{redis}} Redis",
    "orphanRemove": "Remova os restos de casa",
    "orphanRemoveTitle": "Excluir as sobras da página inicial do projeto?",
    "orphanRemoveDesc": "Exclua permanentemente {{path}} do disco. Este não é um projeto de loja. Precisa de YSK_EXECUTE=1.",
    "orphanRemovePhrase": "Escreva DELETE para confirmar.",
    "orphanRemoveNeedConfirm": "Requer confirmação",
    "orphanBackupFirst": "Faça backup primeiro (abra Backups)",
    "orphanMtime": "Última modificação {{at}}",
    "expandAllWarnings": "Mostrar todos os avisos {{n}}",
    "collapseWarnings": "Mostrar menos",
    "moreWarnings": "…e {{n}} mais",
    "authPassword": "senha root (mudar para chave após a instalação da chave temporária)",
    "authIdentity": "IdentityId do cofre de identidade SSH",
    "authAgent": "Agente/chave padrão local",
    "confirmMaint": "Confirmar janela de manutenção",
    "confirmMaintDesc": "· A fonte faz uma breve pausa para um despejo consistente (necessário para migração real)",
    "allowOverwrite": "Permitir a substituição de dados YSK existentes no destino",
    "allowOverwriteDesc": "· Obrigatório se o destino já tiver ysk.json",
    "dryRunOnly": "Somente teste a seco",
    "dryRunOnlyDesc": "· Estoque + pré-verificação somente; sem rsync ou gravações de destino",
    "executeNote": "O host precisa de YSK_EXECUTE=1 e API raiz. Após a migração, atualize o DNS A/AAAA e verifique o firewall da nuvem + PTR de correio.",
    "dnsCutover": "Substituição de DNS (manual)",
    "dnsCutoverDesc": "Aponte A/AAAA para esses nomes para o novo IP público;"
  },
  "multiCheck": {
    "customPlaceholder": "Código personalizado",
    "searchPlaceholder": "Procurar…",
    "emptyText": "Nenhum item correspondente",
    "removeTitle": "Clique para remover",
    "noneSelected": "Nada selecionado",
    "optionsAria": "Opções",
    "showingCapped": "Exibindo o primeiro {{shown}} de {{total}} — use a pesquisa para restringir",
    "add": "Adicionar",
    "bulkAria": "Seleção em massa",
    "selectAll": "Selecionar tudo",
    "selectAllTitle": "Selecione todos os itens {{n}}",
    "selectFiltered": "Selecione filtrado ({{n}})",
    "selectFilteredTitle": "Selecione todos os resultados de pesquisa {{n}}",
    "clearAll": "Limpar tudo",
    "clearFiltered": "Limpar filtrado",
    "selectedCount": "{{n}} / {{total}} selecionado",
    "chipsCollapsed": "{{n}} selecionado — expandir",
    "chipsCollapse": "Colapso"
  },
  "nav": {
    "dashboard": "Painel",
    "ai": "Tarefas de IA",
    "projects": "Projetos",
    "security": "Segurança da conta",
    "email": "E-mail",
    "files": "Arquivos",
    "system": "Aplicação do sistema",
    "updates": "Atualizações",
    "agents": "Agentes de IA (exp.)",
    "login": "Conecte-se",
    "logout": "Sair",
    "publicFiles": "Arquivos públicos",
    "ftp": "FTPS",
    "ftpService": "FTPS",
    "mysql": "MySQL",
    "mysqlService": "Serviço MySQL",
    "mariadb": "MariaDB",
    "mariadbService": "Serviço MariaDB",
    "postgres": "PostgreSQL",
    "postgresService": "Serviço PostgreSQL",
    "redis": "Redis",
    "redisService": "Serviço Redis",
    "cluster": "Aglomerados",
    "dns": "DNS",
    "ssl": "Certificados SSL",
    "nginx": "Nginx",
    "node": "Node.js",
    "php": "PHP",
    "python": "Python",
    "go": "Go",
    "rust": "Rust",
    "protection": "Centro de Defesa",
    "firewall": "Firewall",
    "fail2ban": "fail2ban",
    "users": "Usuários e pacotes",
    "services": "Serviços",
    "metrics": "Métricas",
    "network": "Rede",
    "logs": "Centro de registro",
    "cron": "Cron",
    "backups": "Cópias de segurança",
    "migrate": "Migração de host",
    "systemd": "systemd",
    "readiness": "Prontidão",
    "systemIndex": "Ferramentas do sistema",
    "sections": {
      "overview": "Visão geral",
      "sites": "Conta e sites",
      "mail": "E-mail",
      "files": "Arquivos e FTP",
      "databases": "Bancos de dados",
      "dnsSsl": "DNS e SSL",
      "runtimes": "Tempos de execução",
      "security": "Segurança",
      "system": "Sistema",
      "ai": "AI",
      "validators": "Validadores",
      "containers": "Contentores"
    },
    "java": "Java",
    "kotlin": "Kotlin",
    "bun": "Bun",
    "software": "Programas",
    "terminal": "terminal",
    "hostBrowse": "Navegação no host",
    "cdn": "CDN",
    "vpn": "VPN",
    "vnc": "VNC",
    "apache": "Apache",
    "bookmarkedProjects": "Projetos marcados",
    "bookmarkedEmailDomains": "Domínios marcados",
    "bookmark": "Fixar na barra lateral",
    "unbookmark": "Soltar da barra lateral",
    "bookmarkPinned": "Fixado",
    "bookmarkAdded": "Fixado na barra lateral",
    "bookmarkRemoved": "Removido da barra lateral",
    "btTracker": "BT Tracker",
    "support": "Apoiar",
    "noAccessTitle": "Sem acesso",
    "noAccessDesc": "A sua função não inclui esta página. Peça a um administrador se precisar dela.",
    "backToDashboard": "Voltar ao painel",
    "validators": "Validadores (Beta)",
    "docker": "Docker"
  },
  "network": {
    "title": "Interfaces de rede",
    "canMutate": "Mutável",
    "readOnlyBlocked": "Somente leitura/bloqueado",
    "statIfaces": "Interfaces",
    "statUp": "Acima",
    "oper": {
      "up": "Acima",
      "down": "Abaixo",
      "unknown": "Desconhecido",
      "loopback": "Sempre ligado",
      "loopbackHint": "O loopback está sempre disponível e não pode ser alterado.",
      "other": "Outro"
    },
    "statGateway": "Portal",
    "pageActions": "Ações da página",
    "loadingSnap": "Carregando instantâneo da rede…",
    "mutateHint": "As alterações são aplicadas ao vivo; pode ser redefinido na reinicialização.",
    "cannotMutate": "Não é possível alterar: precisa de EXECUTE e root.",
    "tabs": {
      "ifaces": "Interfaces",
      "routes": "Rotas",
      "dns": "DNS",
      "advanced": "Avançado",
      "about": "Sobre",
      "realip": "IP real/CDN"
    },
    "ifaceSummary": "{{count}} interface(s) · {{up}} UP",
    "noIfaces": "Sem interfaces",
    "noIfacesDesc": "ip indisponível ou sem permissão",
    "colName": "Nome",
    "colStatus": "Status",
    "ifaceOps": "{{name}} ações",
    "routeTable": "Tabela de rotas",
    "defaultGw": "Gateway padrão {{gw}}",
    "liveIpRoute": "Rota IP ao vivo",
    "noRoutes": "Nenhuma rota",
    "colDest": "Destino",
    "addRoute": "Adicionar rota",
    "persistNm": "Salvar na conexão do NetworkManager (sobrevive à reinicialização)",
    "ephemeralRoute": "Apenas rota IP ao vivo (pode desaparecer na reinicialização)",
    "destPlaceholder": "padrão ou 10.0.0.0/8",
    "devOptional": "Desenvolvimento (opcional)",
    "defaultDev": "Saída padrão: {{dev}}",
    "saveNm": "Salvar (NetworkManager, sobrevive à reinicialização)",
    "ephemeralHint": "Desmarcado = somente adição de rota ip ao vivo",
    "nmUnavailable": "O NetworkManager não está em execução — apenas uma rota ativa pode ser adicionada",
    "defaultRouteDownNeedName": "Esta é a saída da rota padrão. Digite o nome da interface para confirmar — o painel pode se desconectar.",
    "saveRoute": "Salvar rota",
    "dnsSettings": "Configurações de DNS",
    "dnsNmHint": "Grava a conexão NM “{{conn}}” e reconecta (persistente)",
    "dnsCannotApply": "Não é possível aplicar: precisa de conexão NM ativa + EXECUTE + root",
    "mode": "Modo",
    "connection": "Conexão",
    "source": "Fonte",
    "ignoreAutoDns": "Ignorar-auto-dns atual",
    "ignoreYes": "sim (ignorar DHCP DNS)",
    "ignoreNo": "não (seguir DHCP)",
    "nameserverEditHint": "Adicionar/remover servidores; apply grava o NetworkManager e reconecta",
    "routerDns": "Roteador {{dns}}",
    "current": "Atual",
    "serverList": "Lista de servidores",
    "emptyDnsTitle": "Ainda não há servidores DNS",
    "emptyDnsDesc": "Clique em “Adicionar servidor” para iniciar",
    "keepOneRow": "Mantenha pelo menos uma linha (limpe e exclua)",
    "removeServer": "Remover este servidor",
    "searchDomainsPlaceholder": "Opcional, separado por espaço",
    "ignoreDhcpDns": "Ignorar DNS automático DHCP (ipv4.ignore-auto-dns=yes)",
    "restoreDhcpHint": "“Restaurar DHCP DNS” é devolvido ao roteador",
    "noNmConnection": "Sem conexão NM — não editará cegamente /etc/resolv.conf (sem falso sucesso).",
    "needExecuteRoot": "Precisa de YSK_EXECUTE=1 e root para gravações reais.",
    "resolveTest": "Resolver teste",
    "resolveTestDesc": "getent ahosts (resolução local real)",
    "hostname": "Nome do host",
    "testFailed": "Falha no teste",
    "stackDetect": "Detecção de pilha de rede local",
    "available": "Disponível",
    "unavailable": "Indisponível",
    "persistNmCap": "Persistente (NM)",
    "ifaceDetail": "Interface {{name}}",
    "type": "Tipo",
    "addresses": "Endereços",
    "noAddresses": "Nenhum endereço",
    "ifaceAdjust": "Ajuste de interface",
    "addIpTitle": "Adicionar IP · {{name}}",
    "saveIp": "Salvar IP",
    "add": "Adicionar",
    "cidrPlaceholder": "por exemplo 10.0.0.5/24 ou 2001:db8::5/64",
    "saveIpHint": "Escreva connection +ipv4/ipv6.addresses e conecte",
    "confirmIfaceName": "Digite o nome da interface “{{name}}” para confirmar",
    "deleteRouteTitle": "Excluir rota?",
    "deleteRouteNamed": "Excluir rota {{dst}}?",
    "deleteRouteBody": "Remova {{dst}}{{via}}{{dev}} da tabela de roteamento ao vivo.",
    "viaGw": "através de {{gw}}",
    "onDev": "em {{dev}}",
    "deleteDefaultWarn": "— excluir o padrão pode interromper a conectividade.",
    "alsoRemoveNm": "Remova também da conexão do NetworkManager (desapareceu após a reinicialização)",
    "loadFailed": "Falha no carregamento",
    "loadNetworkFailed": "Falha ao carregar rede",
    "on": "Sobre",
    "off": "Desligado",
    "addServer": "Adicionar servidor",
    "applyDns": "Aplicar DNS",
    "restoreDhcpDns": "Restaurar DNS DHCP",
    "test": "Teste",
    "refresh": "Atualizar",
    "hostSettings": "Configurações do host",
    "protection": "Proteção",
    "defaultEgressBadge": "Padrão",
    "opsAria": "{{name}} ações",
    "details": "Detalhes",
    "addIp": "Adicionar IP",
    "reset": "Reiniciar",
    "ephemeralOnly": "Somente ao vivo",
    "saveRouteHint": "Salvar gravações conexão NM + conexão ativa;",
    "deleteShort": "Del",
    "resetForm": "Redefinir formulário",
    "applyDnsNotes": "Aplicar executa a conexão nmcli modificar + up; uma breve desconexão é normal. O stub 127.0.0.53 não foi gravado (local resolvido).",
    "testResolve": "Resolução de teste",
    "loadRaw": "Carregar saída bruta",
    "hideRaw": "Ocultar saída bruta",
    "rawLoadedAt": "Carregado {{time}}",
    "confirmDown": "Confirmar para baixo",
    "linkDownTitle": "Coloque {{name}} off-line",
    "linkDownNeedConfirm": "Digite o nome da interface para confirmar",
    "defaultRouteDownWarn": "Esta interface é a saída de rota padrão; para baixo pode cortar o acesso ao painel.",
    "deleteDefaultMayDrop": "— excluir o padrão pode interromper a conectividade.",
    "deleteDefaultPanelWarn": "Excluir a rota padrão pode encerrar esta sessão do painel. Digite DEFAULT para confirmar.",
    "deleteDefaultNeedConfirm": "Requer confirmação — escreva DEFAULT (pode interromper este painel)",
    "deleteRouteNeedConfirm": "Requer confirmação",
    "typeDefaultToConfirm": "Digite DEFAULT para confirmar",
    "gateway": "Portal",
    "nameservers": "Servidores de nomes",
    "searchDomains": "Domínios de pesquisa",
    "backend": "Back-end",
    "cidr": "CIDR",
    "realip": {
      "title": "CDN/IP do cliente real",
      "desc": "Restaure o IP do visitante atrás do CDN; confiar apenas em CIDRs de borda.",
      "provider": "Provedor padrão",
      "providerHint": "nenhum = origem direta; escolha CDN quando estiver atrás da borda.",
      "mode": "Modo de confiança",
      "modeSingle": "Cabeçalho de provedor único (recomendado)",
      "modeXff": "X-Forwarded-For + CIDRs CDN mesclados",
      "customCidrs": "CIDRs extra confiáveis",
      "customCidrsHint": "Um CIDR por linha.",
      "lastRefresh": "Última atualização do CIDR",
      "active": "Padrão ativo",
      "republishHint": "Publique novamente o projeto Nginx após salvá-lo.",
      "refresh": "Atualizar listas de IP CDN",
      "refreshOk": "Listas CIDR atualizadas",
      "providers": {
        "none": "Nenhum (origem direta)",
        "cloudflare": "nuvemflare",
        "fastly": "Rapidamente",
        "bunny": "Coelho CDN",
        "cloudfront": "AWS CloudFront",
        "azure_frontdoor": "Porta frontal Azure",
        "gcore": "CDN Gcore",
        "custom": "Proxies personalizados"
      },
      "needProvider": "Escolha um provedor de CDN antes de buscar sua lista de IPs.",
      "spoofWarn": "Confiar no CIDR errado permite que os clientes falsifiquem os cabeçalhos X-Forwarded-For/CDN como seu IP."
    },
    "linkUp": "Acima",
    "linkDown": "Abaixo",
    "linkDownDefault": "Rota padrão abaixo",
    "loopbackImmutable": "Loopback não pode ser alterado",
    "operUnknownHint": "O kernel não reportou UP/DOWN (comum para lo). A interface ainda pode ser usada.",
    "persistNmHint": "Persistente significa que as alterações podem sobreviver à reinicialização via NetworkManager."
  },
  "nginx": {
    "pillSites": "{{count}} sites",
    "statSites": "Locais",
    "statSslFlag": "Sinalizador SSL",
    "purgeOk": "Purgado",
    "projectSitesHint": "Os sites do projeto (gerenciado conf) e os sites independentes são listados separadamente. Edite o projeto Nginx em Projetos → Rede.",
    "purgeCache": "Limpar cache + recarregar",
    "purgeCacheTitle": "Limpar o cache do Nginx e recarregar?",
    "purgeCacheDesc": "Limpa o cache do disco e recarrega o Nginx. Os sites ativos permanecem ativos.",
    "notInstalled": "Nginx não está instalado",
    "listTitle": "Locais ({{count}})",
    "listDesc": "Após criar, clique em Aplicar para sincronizar com o sistema",
    "createSite": "+ Criar site",
    "colServerName": "Nome do servidor",
    "colKind": "Tipo",
    "kindProxy": "Proxy reverso",
    "kindStatic": "Estático",
    "kindPhp": "PHP-FPM",
    "colTarget": "A montante/raiz",
    "colStatus": "Status",
    "emptyTitle": "Nenhum site",
    "emptyDesc": "Use “Criar site” na barra de ferramentas da lista; então aplique",
    "applyTitle": "Escreva os dados do painel e tente sincronizar + nginx -t + recarregar",
    "applyToSystem": "Sincronizar com o sistema",
    "createTitle": "Criar site Nginx",
    "createDesc": "Aplicar obrigatório após a criação",
    "editTitle": "Editar site Nginx",
    "editDesc": "Aplicar obrigatório após salvar",
    "deleteTitle": "Excluir site?",
    "deleteDesc": "Excluir este site?",
    "deleteTitleNamed": "Excluir site {{name}}?",
    "deleteDescNamed": "Remova {{name}} do painel. Os sites aplicados também abandonarão sua configuração nginx gerenciada.",
    "invalidServerName": "Insira um nome de host válido (por exemplo, app.example.com).",
    "needUpstream": "O upstream é necessário para sites de proxy reverso.",
    "needRoot": "A raiz do documento é necessária para sites estáticos e PHP.",
    "serverNameHint": "nome_do_servidor, por ex. app.exemplo.com",
    "kindLabel": "Tipo de site",
    "upstreamLabel": "A montante",
    "upstreamHint": "por exemplo 127.0.0.1:3000 ou http://backend:8080",
    "rootLabel": "Raiz do documento",
    "rootHintPhp": "Raiz do documento do projeto PHP, por ex. /var/www/app/public",
    "rootHintStatic": "Caminho absoluto para arquivos estáticos",
    "sslLabel": "Habilitar bloqueio SSL",
    "sslDesc": "Emite escuta 443 ssl; vincular certificados da página SSL quando estiver pronto",
    "saveThenApply": "Depois de salvar, clique em Aplicar para escrever a configuração do nginx",
    "statProjectSites": "Projetos",
    "projectListTitle": "Locais do projeto ({{count}})",
    "projectListDesc": "Configuração gerenciada pelo painel da publicação do projeto / goLive - abra a guia Rede do projeto para alterar.",
    "colProject": "Projeto",
    "colRuntime": "Tempo de execução",
    "colConf": "Conferência",
    "confWritten": "Escrito",
    "confMissing": "Sem caminho",
    "projectEmptyTitle": "Nenhum projeto Nginx ainda",
    "projectEmptyDesc": "Publicar Nginx a partir de uma guia Rede do projeto após a implantação",
    "preview": "Visualização",
    "openProject": "Abrir projeto",
    "projectPager": "Páginas do site do projeto",
    "prevPage": "Anterior",
    "nextPage": "Próximo",
    "pageOf": "Página {{page}} / {{total}} · {{count}}",
    "projectConfEmpty": "(arquivo conf vazio)",
    "projectConfReadFail": "Falha ao ler a configuração do projeto",
    "projectPreviewPath": "{{path}}",
    "pageDesc": "Sites Nginx",
    "filterSource": "Fonte",
    "sourceAll": "Todos",
    "sourceProject": "Projeto",
    "sourceStandalone": "Autônomo",
    "colSource": "Fonte",
    "filterProject": "Filtrado por projeto",
    "globalSettings": "Configurações globais",
    "siteSettings": "Configurações do site",
    "saveApply": "Salvar e aplicar",
    "settingsSaved": "Salvo",
    "setGzip": "Gzip",
    "setShowVersion": "Mostrar versão do servidor",
    "setShowVersionDesc": "Desativado = server_tokens desativado",
    "setHttp2": "HTTP/2 (SSL)",
    "setBody": "Corpo máximo",
    "setKeepalive": "Manter ativo",
    "setAccessLog": "Registro de acesso",
    "logOn": "Sobre",
    "logBuffered": "Bufferizado",
    "logOff": "Desligado",
    "setForceHttps": "Forçar HTTPS",
    "setHsts": "HSTS",
    "setCfRealIp": "IP real da Cloudflare",
    "setIndexes": "Listagem de diretório",
    "bodyInherit": "Global",
    "stopSites": "{{n}} site(s) deixarão de responder HTTP."
  },
  "notFound": {
    "title": "Página não encontrada",
    "body": "Nenhuma página do painel em {{path}}.",
    "hint": "URLs desconhecidos não direcionam mais você para o painel.",
    "home": "Painel"
  },
  "notes": {
    "agents": {
      "sessionNotFound": "Sessão não encontrada: {{sessionId}}"
    },
    "notFound": "Não encontrado",
    "needPath": "Especifique um caminho",
    "needName": "Digite um nome",
    "needHost": "Insira um host",
    "needDomain": "Insira um domínio",
    "needProjectName": "Insira um nome de projeto",
    "needServerIp": "Especifique um IP do servidor",
    "passwordMin8": "A senha deve ter pelo menos 8 caracteres",
    "invalidPath": "Caminho inválido",
    "invalidIp": "IP inválido",
    "invalidIp46": "IPv4/IPv6 inválido",
    "invalidPackageName": "Nome de pacote inválido",
    "fileMissing": "O arquivo não existe",
    "notRegularFile": "Não é um arquivo normal",
    "readFailed": "Falha na leitura",
    "pathResolveFailed": "Falha ao resolver o caminho",
    "fieldInvalid": "Campo inválido {{field}}: {{value}}",
    "apt": {
      "updateIndex": "Atualizar índice do pacote"
    },
    "state": {
      "closed": "Fechado",
      "active": "Ativo"
    },
    "cat": {
      "security": "Segurança",
      "mail": "Correspondência",
      "database": "Banco de dados",
      "runtime": "Tempos de execução"
    },
    "ssh": {
      "identityNotFound": "Identidade não encontrada",
      "registrationNotFound": "Cadastro não encontrado",
      "keyOkNologin": "Key accepted. Account has no login shell (nologin) — use SFTP. Treated as PASS.",
      "keyOkSftp": "SFTP pwd foi bem-sucedido depois que o shell SSH foi recusado."
    },
    "cdn": {
      "siteNotFound": "Site CDN não encontrado",
      "nodeMissing": "O nó não existe",
      "loopbackOriginRemote": "A origem é 127.0.0.1 — este é o host, não uma borda remota. Defina um IP de origem acessível ou bind_ip.",
      "originRemoteRewrite": "As bordas remotas usarão origem acessível {{url}} em vez de loopback.",
      "originRemoteUnknown": "A origem é loopback e nenhum IP público/LAN ou bind_ip é conhecido — apply recusará bordas remotas até que uma seja definida.",
      "needSshOrFleet": "A borda remota precisa de uma identidade SSH de saída (ou nome de usuário) ou uma sessão de frota /agentes. O URL de saúde por si só não é aplicável ao transporte.",
      "probe": {
        "timeout": "Tempo limite de conexão após {{ms}}ms ({{detail}}). O peer pode estar protegido por firewall.",
        "dns": "Falha na pesquisa de DNS ({{detail}}).",
        "refused": "Conexão recusada após {{ms}}ms ({{detail}}). Porto fechado ou bloqueio de mão única.",
        "tls": "Falha na verificação de TLS ({{detail}}).",
        "unreach": "Host inacessível após {{ms}}ms ({{detail}}).",
        "http": "A sonda HTTP falhou após {{ms}}ms ({{detail}})."
      }
    },
    "backup": {
      "testUnsaved": "Testando valores de formulário não salvos (não gravados nas configurações).",
      "testIdentity": "ssh (identity) to {{spec}} ok",
      "sshAuthFailed": "Chave SSH ou senha rejeitada (publickey). Escolha uma identidade de saída ou instale o sshpass.",
      "remotePathIsFile": "O caminho remoto {{path}} é um arquivo. Use um diretório.",
      "remoteMkdirFailed": "Não foi possível criar o diretório remoto: {{detail}}",
      "sidecarPushed": "Também enviou sidecar SQL {{name}}",
      "fileNotFound": "Arquivo de backup não encontrado",
      "resticNoPassword": "restic está ativado, mas a senha não está definida",
      "resticNotInPath": "restic não está em PATH",
      "dbEnvUnreadable": "Não foi possível ler .db.env; despejo SQL ignorado.",
      "dbEnvNoName": ".db.env não possui nome de banco de dados; despejo SQL ignorado.",
      "targetOutside": "O destino de restauração deve estar dentro da página inicial do projeto ou na raiz dos arquivos públicos.",
      "controlPlaneDryRun": "Apenas visualização – nada escrito. No painel, use Restaurar e confirme a frase a ser escrita.",
      "controlPlaneNeedConfirm": "A restauração completa do plano de controle precisa da frase de confirmação RESTORE-CONTROL-PLANE.",
      "controlPlaneRestartAfter": "Reinicie a API após uma restauração bem-sucedida.",
      "movedToTrash": "Movido {{name}} para a lixeira. Exclusão permanente após {{days}} dias.",
      "restoreNameExists": "Não é possível restaurar {{name}} — já existe um arquivo ativo com esse nome.",
      "restoredFromTrash": "Restaurado {{name}} da lixeira.",
      "trashEmptied": "Arquivo(s) {{n}} excluídos permanentemente da lixeira.",
      "partialOk": "Sucesso parcial — {{n}} projeto(s) ignorados"
    },
    "health": {
      "portListening": "A porta {{port}} está escutando",
      "portNotListening": "A porta {{port}} não está escutando",
      "httpOk": "HTTP OK {{status}}",
      "httpFail": "Falha no HTTP: {{detail}}"
    },
    "redis": {
      "cliMissing": "redis-cli não está instalado",
      "requirepassAlreadySet": "O Redis já possui requirepass – não substituído.",
      "requirepassApplied": "requirepass aplicado em tempo de execução",
      "requirepassApplyFailed": "Não foi possível CONFIG SET requirepass (dependerá de restart + conf)",
      "generatedRequirepass": "Senha Redis gerada (mostrada uma vez): {{password}}"
    },
    "nginx": {
      "reloaded": "nginx recarregado",
      "configOk": "Verificação de configuração do Nginx aprovada",
      "reloadExit": "Código de saída de recarga do Nginx = {{code}}",
      "managedDir": "Diretório de configuração gerenciado: {{path}}",
      "includeHint": "No nginx: inclua {{path}}/*.conf;",
      "removedOrphan": "Removido conf órfão nginx {{path}}",
      "keptLiveSsl": "Mantido o bloco HTTPS ativo em {{path}} (o modelo gerenciado não tinha escuta 443)",
      "orphanCleanupFailed": "Falha na limpeza do nginx órfão: {{detail}}",
      "settingsWritten": "Trecho global Nginx escrito",
      "settingsNeedExecute": "Aplicar necessidades YSK_EXECUTE",
      "reloadFailed": "falha no recarregamento do nginx"
    },
    "ssl": {
      "requestCert": "Solicitar certificado"
    },
    "ftp": {
      "startVsftpd": "Inicie o vsftpd",
      "writeVsftpd": "Escreva a configuração do vsftpd",
      "vsftpdStarted": "vsftpd iniciado",
      "openPortsStep": "Portas de firewall (manual)",
      "openPortsReminder": "Abra portas TCP no firewall do host e no grupo de segurança da nuvem: {{ports}}. A aplicação FTPS não abre portas para você.",
      "openPortsPasvHint": "Se o login funcionar, mas o diretório LIST expirar, o intervalo de dados PASV será bloqueado - abra o arquivo completo",
      "publicPlaintextBlocked": "Recusando-se a iniciar FTP público sem FTPS. Vincule-se apenas a este host, ative o FTPS com um certificado ou confirme PLAINTEXT para expor o texto não criptografado no endereço público."
    },
    "deploy": {
      "nodeMissingIsolated": "Binário do nó ausente para implantação isolada: {{path}} — instale o conjunto de ferramentas do Node {{version}} e depois reimplante. Recusando-se a escrever uma unidade que seria 203/EXEC.",
      "nodeMissing": "Binário do nó ausente: {{path}} — instale o conjunto de ferramentas (Nó {{version}}) e reimplante",
      "nodeRejectedPath": "Binário do nó rejeitado para o usuário do projeto: {{path}} — use {{planned}}",
      "unitUnhealthy": "Unidade systemd não íntegra ({{detail}}). journalctl -u {{unit}} — 203/EXEC geralmente significa binário não executável pelo usuário do projeto",
      "skippedPanelNode": "Nó do painel ignorado em {{path}} (não executável pelo usuário do projeto; causaria systemd 203/EXEC)",
      "usingFallback": "Nó binário: usando {{path}} (planejado {{planned}} não encontrado)",
      "usingPanelExec": "Nó binário: fallback para painel execPath {{path}}",
      "usingPanelDegraded": "Binário do nó: implantação degradada usando o painel {{path}} (não para systemd User=ysks_*)",
      "nodeNotFoundPlanned": "Nó {{version}} binário não encontrado no host — a unidade usará {{planned}}; instale o conjunto de ferramentas e depois reimplante"
    },
    "files": {
      "needSrcDst": "Especifique os caminhos de origem e destino",
      "pathOutsideSandbox": "Caminho fora da sandbox: {{target}}",
      "notFoundRel": "Não encontrado: {{relPath}}",
      "fileNotFoundRel": "Arquivo não encontrado: {{relPath}}",
      "notFoundFrom": "Não encontrado: {{fromPath}}",
      "alreadyExists": "Já existe: {{name}}"
    },
    "dns": {
      "needZoneServerIp": "Insira a zona e o IP do servidor",
      "noClusterPeer": "Nenhum par de cluster registrado",
      "planOnly": "Apenas plano - defina apply=true (root + YSK_EXECUTE) para instalar em /etc/powerdns e redescobrir",
      "needRootNamed": "Precisa de root + EXECUTE para atualizar /etc/powerdns/named.conf e redescobrir zonas",
      "noManagedZonesClear": "Nenhum arquivo de zona gerenciada em dataDir/dns/zones — limpará a inclusão PowerDNS YSK",
      "bindRegistered": "PowerDNS BIND: zona(s) {{count}} registrada(s) (lista de zonas confirmadas)",
      "listZonesIncomplete": "As zonas nomeadas.conf/runtime foram atualizadas, mas as zonas de lista não confirmaram todas as zonas - não marcando como carregadas (verifique os logs pdns/bind-config)",
      "noLaunchDefaultBind": "no launch= found — padrão para vincular o caminho",
      "writeNotAnswerDig": "Escrever o arquivo de zona sozinho não responde ao dig - carregue no PowerDNS (bindnamed.conf + rediscover)",
      "bindDigFailed": "Zona listada, mas escavação SOA falhou - não reivindicando carga",
      "bindLoadedOk": "Zona {{zone}} registrada via PowerDNS BIND nomeado.conf + dig OK",
      "bindSyncFailed": "Falha na sincronização do BIND nomeado.conf ou dig não responde",
      "bindSkipPdnsutil": "Ignorando o caminho BIND (o backend prefere pdnsutil)",
      "pdnsCtlNoConfirm": "pdns_control presente mas zona não confirmada; verifique /etc/powerdns/named.conf ou use o backend pdnsutil",
      "usingExistingZone": "Usando arquivo de zona existente: {{path}}",
      "healNeedRoot": "Precisa de root + EXECUTE para reescrever o endereço local do pdns",
      "pdnsUnitActive": "unidade pdns: ativa",
      "pdnsUnitInactive": "unidade pdns: não ativa",
      "udp53Listening": "UDP/53: ouvindo",
      "udp53NotListening": "UDP/53: ainda não estou ouvindo",
      "healResyncOk": "Ouvinte curado + zonas gerenciadas ressincronizadas no PowerDNS BIND",
      "healResyncPartial": "Ouvinte curado, mas ressincronização de zona incompleta – clique em Gravar e carregar zona / carregamento powerdns",
      "installAfterLoad": "Após a instalação, aplique zonas DNS (escreve nomeado.conf + redescobrir) ou POST powerdns/load",
      "bindFileNotEnough": "Back-end do BIND: os arquivos de zona sozinhos não respondem dig até que o named.conf os inclua",
      "zeroDomainsHint": "Zonas de lista PowerDNS: 0 — os arquivos de zona no disco não são carregados (nomeados",
      "localAFailed": "local Uma investigação falhou para www/ftp/@ em {{zone}}",
      "publicNsCloudflare": "NS público é um DNS/CDN de terceiros (por exemplo, Cloudflare) — a escavação pública NÃO usará esta zona host",
      "publicNsOther": "NS público não é este host - verificações mundiais ignoram o PowerDNS local até que o NS do registrador mude",
      "publicNsHere": "NS público se parece com servidores de nomes na zona (ns1/ns2.zone) — o mundo pode consultar você",
      "firewall53Hint": "UDP/53 não escuta do ss — abra o firewall 53 ambos (TCP+UDP) se a escavação externa falhar",
      "applyDigOk": "PowerDNS BIND: zonas de lista + dig OK",
      "applyDigFail": "Zona registrada em conf mas dig ainda vazia/RECUSADA — sem marcação aplicada",
      "applySyncIncomplete": "Sincronização de ligação do PowerDNS incompleta — arquivo de zona apenas no disco (não aplicado). Corrija os logs EXECUTE/root ou pdns.",
      "writeOnlyHint": "Arquivo de zona somente gravado — o PowerDNS não responderá até carregar/aplicar registros nomeados",
      "noActiveUnit": "Nenhuma unidade nomeada/bind9/pdns ativa",
      "pdnsUnitRestarts": "Estado/reinicializações da unidade pdns: {{detail}}",
      "port53LoopbackOnly": "A porta 53 está apenas em loopback (127.0.0.53 resolvido pelo systemd) - não é um servidor de nomes autoritativo do produto",
      "port53Closed": "A porta 53 não está escutando (UDP/TCP)",
      "udp53NotPublic": "UDP/53 não está escutando em um endereço público",
      "tcp53NotPublic": "TCP/53 não está escutando em um endereço público",
      "noManagedZones": "Nenhum arquivo de zona gerenciada em dataDir/dns/zones",
      "pdnsListZones": "Zonas de lista PowerDNS: {{n}}",
      "lookupIgnoredAt": "dig não está disponível — @{{server}} foi ignorado. Não usar o resolvedor do sistema como resposta do servidor.",
      "digNotInstalled": "dig não está instalado",
      "digEmpty": "cavar: sem resposta",
      "localAOk": "local A {{name}} → {{ip}}"
    },
    "db": {
      "needExecuteCreate": "A execução do host está desativada; não é possível criar banco de dados a partir do painel",
      "dryRunMysql": "simulação: banco de dados não criado. Use --execute com YSK_EXECUTE=1 para provisionar",
      "remoteNoCreds": "Nenhum nome de usuário/senha armazenado — apenas TCP (o registro não é um login).",
      "remoteReachable": "TCP {{host}}:{{port}} aberto ({{ms}}ms).",
      "remoteUnreachable": "TCP {{host}}:{{port}} fechado ou filtrado ({{ms}}ms)."
    },
    "net": {
      "invalidIface": "Nome de interface inválido",
      "invalidDev": "Nome de dispositivo inválido",
      "needNmActive": "Não é possível persistir: é necessária uma conexão ativa do NetworkManager"
    },
    "project": {
      "notFound": "Projeto não encontrado: {{id}}",
      "docRootMustBeRelative": "A raiz do documento deve ser relativa à página inicial do projeto (não um caminho absoluto).",
      "docRootInvalid": "Raiz de documento inválida (sem .. ou caracteres ilegais).",
      "domainInvalid": "Nome de domínio inválido: {{domain}}",
      "domainInUse": "O domínio {{domain}} já é utilizado pelo projeto “{{other}}”."
    },
    "email": {
      "domainNotFound": "Domínio de correio não encontrado: {{id}}",
      "wroteNginx": "Escreveu a configuração do Nginx: {{nginxPath}}",
      "wrotePath": "Escreveu {{path}}",
      "domainDeleted": "Domínio excluído {{domain}} ({{mailboxes}} caixas de correio, {{aliases}} aliases)",
      "domainDataDirRemoved": "Diretório de dados local removido {{path}}",
      "domainDataDirRemoveFailed": "Não foi possível remover o diretório de dados {{path}}: {{detail}}",
      "domainDeleteSystemHint": "Plano de controle removido; reaplique os domínios restantes ou limpe os mapas MTA do sistema, se necessário",
      "mailboxDeleted": "Caixa de correio excluída {{address}}",
      "mailboxNotFound": "Caixa de correio não encontrada",
      "mailboxDataRemoved": "Caminho local removido {{path}}",
      "domainDeleteConfirmMismatch": "Confirme se o nome não corresponde ao domínio; exclusão recusada",
      "domainDataKept": "Dados de correio local dataDir mantidos (removeData=false)",
      "mailboxPasswordUpdated": "Senha atualizada para {{address}}",
      "mailboxStatusUpdated": "Status para {{address}} definido como {{status}}",
      "mailboxUpdateEmpty": "Nada para atualizar – forneça senha e/ou status",
      "mailboxStatusInvalid": "Status de caixa de correio inválido",
      "mailboxNoChanges": "Nenhuma alteração aplicada",
      "dovecotApplyNeedRoot": "A aplicação de autenticação virtual Dovecot precisa de root + YSK_EXECUTE",
      "dovecotNotInstalled": "Dovecot não está instalado neste host",
      "dovecotNoPassdbSnippets": "Nenhum snippet de passdb de domínio encontrado em dataDir/email",
      "dovecotApplyFailed": "Falha na aplicação de autenticação virtual Dovecot: {{detail}}",
      "dovecotApplyOk": "Autenticação virtual Dovecot instalada ({{conf}}, {{count}} snippet(s) de domínio)",
      "dovecotPassdbWrittenNeedApply": "Arquivo Passwd escrito em dataDir - execute apply (EXECUTE + root) para que o Dovecot o carregue",
      "postqueueSetgidBroken": "As ferramentas de fila do Postfix falharam: setgid_group está vazio em main.cf. Defina setgid_group=postdrop (o painel tenta corrigir quando YSK_EXECUTE está ativado).",
      "postqueueMailDown": "O Postfix não está em execução (showq indisponível). O painel tentou iniciá-lo quando YSK_EXECUTE estava ativado - verifique a guia Software / postfix de status do systemctl.",
      "postqueueSpoolMissing": "Os diretórios da fila Postfix estão faltando (por exemplo, hold/). O painel tentou criar a árvore de spool e iniciar o Postfix quando YSK_EXECUTE estava ativado.",
      "invalidDomain": "Insira um domínio de e-mail válido",
      "invalidServerIp": "Insira um IP de servidor válido",
      "mailboxLocalPartInvalid": "A parte local da caixa de correio só pode usar letras, dígitos, . _ + -",
      "passwordTooShort": "A senha deve ter pelo menos 8 caracteres"
    },
    "software": {
      "startUnit": "Iniciar {{u}}",
      "installedSpec": "Instalado {{title}}",
      "installPkg": "Instalar {{p}}",
      "npmGlobal": "instalação npm -g {{pkgs}}",
      "needNodeForNpm": "node/npm não encontrado — instale o Node.js antes de {{title}}",
      "uninstallNoTargets": "Nenhum software selecionado para desinstalação",
      "uninstallNothingInstalled": "Nada instalado para o escopo selecionado",
      "uninstallProtected": "Componentes protegidos ignorados: {{ids}}",
      "uninstallConfirmMismatch": "A frase de confirmação não corresponde",
      "uninstallOk": "Componente(s) {{n}} desinstalado(s)",
      "uninstallPartial": "Desinstalação concluída com erros – verifique as etapas"
    },
    "php": {
      "aptPackages": "Irá instalar pacotes {{count}}: {{list}}"
    },
    "runtime": {
      "plugins": "Ferramentas complementares: {{list}}",
      "pluginsOk": "Ferramentas complementares instaladas",
      "pluginsFailed": "Algumas ferramentas falharam ou foram ignoradas: {{list}}",
      "pluginsUninstall": "Ferramentas de desinstalação: {{list}}",
      "pluginsUninstallOk": "Ferramentas complementares desinstaladas",
      "pluginsUninstallFailed": "Algumas ferramentas não foram desinstaladas ou foram ignoradas: {{list}}",
      "pluginsNoneToUninstall": "Nenhuma ferramenta para desinstalar (já desaparecida ou necessária)"
    },
    "approval": {
      "notFound": "Aprovação não encontrada: {{id}}"
    },
    "readiness": {
      "core": "Plano de controle",
      "security": "Permissões e segurança",
      "binaries": "Binários/pacotes",
      "hosting": "Hospedagem",
      "dns": "DNS",
      "email": "E-mail",
      "isolation": "Isolamento do projeto",
      "ops": "Operações",
      "runtimesNode": "Node.js",
      "runtimesPhp": "PHP",
      "runtimesPython": "Pitão",
      "runtimesGo": "Go",
      "pm2": "PM2",
      "runtimesNodeFix": "Instale o nó de /runtimes/node",
      "runtimesPhpFix": "Instale o PHP em /runtimes/php",
      "runtimesPythonFix": "Instale o Python em /runtimes/python",
      "runtimesGoFix": "Instale o Go em /runtimes/go",
      "pm2Fix": "Instale o PM2 na página de tempo de execução do Node"
    },
    "needAdmin": "É necessária permissão de administrador",
    "notInstalled": "Não instalado",
    "unknown": "Desconhecido",
    "failed": "Fracassado",
    "running": "Correndo",
    "stopped": "Parou",
    "probe": "Sondar",
    "install": "Instalar",
    "port": "Porta",
    "git": {
      "missingBin": "git não está no PATH",
      "auth": "Falha na autenticação. Adicione uma chave de implantação ou um token HTTPS.",
      "hostkey": "A verificação da chave do host SSH falhou. Confirme e fixe a chave do host.",
      "dirty": "A árvore de trabalho possui {{count}} alterações locais. A tração está bloqueada.",
      "diverged": "Não é possível avançar rapidamente. Redefina para a referência remota se você pretende descartar o histórico local do Git.",
      "missingRef": "Esse branch, tag ou commit não está no controle remoto.",
      "shallow": "Este clone é superficial. Busque o histórico completo antes de fixar um commit antigo.",
      "notRepo": "app/ ainda não é um repositório Git.",
      "diffEmpty": "Nenhuma diferença não preparada (o .env protegido é excluído).",
      "unrelated": "Histórias não relacionadas. Reclone somente após confirmação – os arquivos personalizados serão perdidos.",
      "lock": "Git index.lock está presente. Remova-o somente se nenhum processo git estiver em execução.",
      "disk": "Disco cheio ou cota excedida.",
      "timeout": "O tempo limite do Git expirou.",
      "network": "Erro de rede ao falar com o controle remoto.",
      "lfs": "Este repositório usa Git LFS e git-lfs não está disponível.",
      "submodule": "Falha na atualização do submódulo.",
      "unknown": "Git falhou. Veja a saída do comando.",
      "fetchOk": "Obtido da origem.",
      "checkoutOk": "Verificado {{ref}}.",
      "resetOk": "Redefinir com força para {{ref}}.",
      "envRestored": "App/.env restaurado do plano de controle.",
      "needPinHost": "A chave do host SSH não está fixada. Digitalize e fixe-o antes de clonar ou buscar.",
      "tokenSaved": "Token HTTPS armazenado (nunca mostrado novamente).",
      "tokenCleared": "Token HTTPS removido.",
      "tokenInvalid": "O token deve ter pelo menos 8 caracteres.",
      "deployKeyCreated": "Chave de implantação criada. Adicione a chave pública no host Git.",
      "deployKeyCleared": "Implante a chave desanexada deste projeto.",
      "hostPinned": "Chaves de host SSH fixadas para {{host}}.",
      "hostUnpinned": "Chaves de host SSH fixadas limpas.",
      "hostScanFailed": "ssh-keyscan não retornou nenhuma chave para esse host.",
      "hookEnabled": "O gancho Git de entrada está ativado. Cole você mesmo o URL no GitHub, Gitea ou GitLab.",
      "hookDisabled": "O gancho de entrada do Git está desativado. O URL não será sincronizado.",
      "hookSecretOnce": "Copie este segredo do gancho agora. Não é mostrado novamente.",
      "refsNeedUrl": "Insira um URL do Git primeiro.",
      "refsOk": "Carregadas {{branches}} ramificações e {{tags}} tags.",
      "refsEmpty": "Remoto não anunciado sem filiais ou tags."
    },
    "auto": {
      "n0001": "Status: aplicado",
      "n0002": "Usuário não encontrado",
      "n0003": "bloqueado: requer YSK_EXECUTE=1",
      "n0004": "Recurso não encontrado",
      "n0005": "Não é possível aplicar no host: precisa de YSK_EXECUTE + root",
      "n0006": "Execução do host necessária",
      "n0007": "Estado: escrito",
      "n0008": "Privilégios de root são necessários para concluir este",
      "n0009": "banco de dados criado",
      "n0010": "feito",
      "n0011": "Não encontrado",
      "n0012": "Estado: falhou",
      "n0013": "não está funcionando",
      "n0014": "começar",
      "n0015": "MySQL não instalado",
      "n0016": "Psql não instalado",
      "n0017": "Firewall UFW",
      "n0018": "Tempos de execução",
      "n0019": "Cron não encontrado",
      "n0020": "",
      "n0021": "Política não aplicada: 0/1 administrador tem 2FA ativado",
      "n0022": "Autenticação de dois fatores do administrador",
      "n0023": "Log binário (replicação)",
      "n0024": "Não encontrado",
      "n0025": "Alterações do sistema desativadas",
      "n0026": "Disjuntor de proibição automática desarmado",
      "n0027": "Especifique o AgentId",
      "n0028": "Projeto não encontrado",
      "n0029": "requer nome",
      "n0030": "Emergência",
      "n0031": "banir não ativar",
      "n0032": "simulação: este não é um sistema",
      "n0033": "funcionamento a seco: não é sistema",
      "n0034": "1 réplica",
      "n0035": "sonda de nó com sucesso",
      "n0036": "A execução do serverHost não está habilitada, não é possível sincronizar novamente",
      "n0037": "reaplicar etapas principaisFalha",
      "n0038": "não é possível inicializar: não ativar YSK_EXECUTE",
      "n0039": "inicialização Requer YSK_EXECUTE = 1",
      "n0040": "Máximo de conexões",
      "n0041": "Endereço de vinculação",
      "n0042": "domínio",
      "n0043": "drenando",
      "n0044": "Nó CDN não encontrado",
      "n0045": "(Lançamentos do GitHub mais recentes)",
      "n0046": "execute (diretório do sistema YSK_EXECUTE)",
      "n0047": "simulação: adicione --execute primeiro ao sistema nginx",
      "n0048": "requer administrador",
      "n0049": "ID do projeto e nome",
      "n0050": "^.*conta ou senha.*$",
      "n0051": "^.*requer verificação.*$",
      "n0052": "echo \"pdnsutil Não encontrado: \" >&2",
      "n0053": ": ''}(Pode não persistir durante a reinicialização; use Salvar para persistir)",
      "n0054": "# rsa_cert_file= (não certificado)",
      "n0055": "$_GET / $_POST / $_COOKIE",
      "n0056": "--senha ou YSK_MIGRATE_SSH_PASSWORD",
      "n0057": "-1 desabilitar; 0",
      "n0058": "/proc/meminfo pode",
      "n0059": "/proc/stat pode – CPU% não pode",
      "n0060": "0 = limites; pode 256 MB",
      "n0061": "0 = usa todas as CPUs",
      "n0062": "0 (desligado)",
      "n0063": "Carga de 1 minuto excede CPU × 2",
      "n0064": "1. painel criar banco de dados MySQL",
      "n0065": "1 = mais seguro; 2 = melhor desempenho",
      "n0066": "2. WordPress para aplicativo/público",
      "n0067": "3. configurações wp-config.php",
      "n0068": "4. PHP + Nginx/SSL",
      "n0069": "Um IPv4",
      "n0070": "Um IPv4",
      "n0071": "AAA IPv6",
      "n0072": "AAA IPv6",
      "n0073": "AOF persistir",
      "n0074": "O arquivo Admin não existe; baixe: verdadeiro",
      "n0075": "O agente não pode escrever",
      "n0076": "Agente em execução",
      "n0077": "Lista de permissões",
      "n0078": "Axum + Tóquio; caixas de construção de carga ()",
      "n0079": "Axum: construção de carga --release crates.io",
      "n0080": "Ignorar resolução de nome",
      "n0081": "Servidor de agrupamento",
      "n0082": "Servidor de conjunto de caracteres",
      "n0083": "Nó de inicialização ()",
      "n0084": "Verificação de bot",
      "n0085": "CLI OPcache",
      "n0086": "Bancos de dados CONFIG SET não foram bem-sucedidos (podem ser reiniciados)",
      "n0087": "CPU para 1–10.000",
      "n0088": "Cloudflare UA não é sucesso",
      "n0089": "Cloudflare sob ataque, por favor",
      "n0090": "Cookies seguros (HTTPS)",
      "n0091": "Índice de banco de dados de 0 a 15",
      "n0092": "Usuário do sistema não criado para este projeto",
      "n0093": "ID do banco de dados Usuário não encontrado - criesystemuser",
      "n0094": "DB_PASSWORD para — crie a página MySQL ou WP_DB_*",
      "n0095": "DDoS",
      "n0096": "DKIM",
      "n0097": "DMARC",
      "n0098": "DNS escrito ≠ resolvedor (TTL/)",
      "n0099": "Registrador DS, por favor.",
      "n0100": "Django: pip install Django/gunicorn",
      "n0101": "Abaixo confirmName etcinterface",
      "n0102": "EmailService dataDir — banco de dados ( dataDir Maildir)",
      "n0103": "Falha no recarregamento do FPM",
      "n0104": "FTPS requer domínio",
      "n0105": "FastAPI + uvicórnio; requisitos.txt; / e /saúde",
      "n0106": "Frasco app.py; requisitos.txt; / e /saúde",
      "n0107": "GTID: conf gtid_mode = ON",
      "n0108": "Galera apoia mariadb",
      "n0109": "URL do Git inválido",
      "n0110": "GitHub package.json Versão ausente",
      "n0111": "Lançamento do GitHub Tag ausente",
      "n0112": "Vá em tempo de execução",
      "n0113": "certificadobot",
      "n0114": "Configuração HTTP com webroot ACME (não TLS)",
      "n0115": "Falha no HTTP",
      "n0116": "Habilitar HTTPS",
      "n0117": "Falha no IMAP/POP",
      "n0118": "IP não (/enriquecer)",
      "n0119": "IP inválido",
      "n0120": "IPv4 0–32",
      "n0121": "IPv6 0–128",
      "n0122": "Log de liberação do InnoDB no commit trx",
      "n0123": "Tamanho do arquivo de log do InnoDB",
      "n0124": "Tamanho do buffer pool do InnoDB",
      "n0125": "Instale e publique via painel de administração (instalação de Webmail).",
      "n0126": "Inundação L7/tráfego anormal",
      "n0127": "LLM anormal (ausente)",
      "n0128": "Let’s Encrypt HTTP-01 requer 80 latas; Token de API DNS-01.",
      "n0129": "LimiteNOFILE para 64–10000000",
      "n0130": "MTU 68–65535",
      "n0131": "Host de correio MX",
      "n0132": "MX: primeiro host (10 mail.example.com.)",
      "n0133": "Servidor MariaDB",
      "n0134": "Exigir que os clientes usem TLS",
      "n0135": "Servidor MySQL",
      "n0136": "Cliente MySQL/MariaDB",
      "n0137": "NetworkManager indisponível, não é possível gravar DNS",
      "n0138": "Limite de taxa mais restrito do Nginx (~8 req/s)",
      "n0139": "Limite estrito de taxa Nginx (~3 req/s)",
      "n0140": "Limite de taxa suave Nginx (~20 req/s)",
      "n0141": "fail2ban",
      "n0142": "Falha na instalação do nó",
      "n0143": "Node.js",
      "n0144": "OPcache (MB)",
      "n0145": "PHP docroot + wp-config()",
      "n0146": "firewall (UFW)",
      "n0147": "Processo PHPstartnot processo",
      "n0148": "PHP degradado - não com usuário do projeto Linux (requer root + createsystemuser)",
      "n0149": "PID para",
      "n0150": "PID inválido",
      "n0151": "PING bem-sucedido",
      "n0152": "Falha no início do PM2 - início do pidfile",
      "n0153": "pós-fixado",
      "n0154": "POST",
      "n0155": "Por remetente: mensagens do domínio do remetente do envelope/hora; DEFER_IF_PERMIT",
      "n0156": "Mapa de suspensão Postfix aplicado (check_recipient_access REJECT)",
      "n0157": "Servidor PostgreSQL",
      "n0158": "Servidor PostgreSQLNão instalado",
      "n0159": "Cliente PostgreSQL",
      "n0160": "Serviço PostgreSQL não está em execução",
      "n0161": "Ferramentas PowerDNS",
      "n0162": "Primário: criar usuário de replicação (SQL)",
      "n0163": "PythonDjango()",
      "n0164": "servidor redis",
      "n0165": "Comportamento Python",
      "n0166": "Regra RDB",
      "n0167": "RDB",
      "n0168": "RUSTFLAGS (construção)",
      "n0169": "Redis dbIndex para 0–15",
      "n0170": "Despejo Redis requer YSK_EXECUTE = 1",
      "n0171": "Servidor Redis",
      "n0172": "Servidor RedisNão instalado ou não pode conectar",
      "n0173": "O início do Redis não pode fazer PING",
      "n0174": "Cliente Redis",
      "n0175": "Início do Redis",
      "n0176": "A restauração do Redis requer YSK_EXECUTE",
      "n0177": "Renovação via certbot.timer (dns-01)",
      "n0178": "Construção / execução de ferrugem",
      "n0179": "Bucket/caminho S3 não configurações",
      "n0180": "SFTP.ssh chown Requer root + YSK_EXECUTE",
      "n0181": "SIGKILL confirmKill: verdadeiro",
      "n0182": "SMTP/",
      "n0183": "SPF",
      "n0184": "SRV: meta de porta de peso prioritária",
      "n0185": "SSH",
      "n0186": "Conexão SSH falhou",
      "n0187": "SSH requer YSK_EXECUTE=1",
      "n0188": "Verificação de SSO ()· senha",
      "n0189": "Verificação de SSO ()· senha",
      "n0190": "SST = mariabackup: nó mariadb-backup",
      "n0191": "Sessão",
      "n0192": "Sessão",
      "n0193": "Sessão",
      "n0194": "TCP (em uso)",
      "n0195": "Sucesso TOTP",
      "n0196": "TasksMax para 1–1000000",
      "n0197": "UFW não instalado",
      "n0198": "Falha na leitura de status do UFW",
      "n0199": "VACUUM",
      "n0200": "WAL etc.",
      "n0201": "Web + e-mail",
      "n0202": "UI da Web: não encontrado: (crie aplicativos/web ou defina YSK_WEB_ROOT)\\n",
      "n0203": "Hospedeiro",
      "n0204": "Interface web",
      "n0205": "Verificação do WebAuthn falhou",
      "n0206": "WebDAV não",
      "n0207": "Webmail Domínio inválido",
      "n0208": "Curinga/dns-01: certbot TXT; painel iniciará DS/TXT DNS concluído",
      "n0209": "WordPress (PHP)",
      "n0210": "YSK PHP OK — WordPress não instalado\\\\n",
      "n0211": "YSK_EXECUTE está ativado, mas o processo não é root - algumas recargas do systemctl/nginx serão bloqueadas",
      "n0212": "YSK_EXECUTE ativar",
      "n0213": "YSK_EXECUTE está desativado - escrito ≠ aplicado",
      "n0214": "YSK_EXECUTE está desativado – as mutações do host permanecem escritas/rascunho até que você defina YSK_EXECUTE=1",
      "n0215": "log de acesso falhou",
      "n0216": "access=frota requer frotaAgentId",
      "n0217": "ação para reinicialização | desligar | cancelar",
      "n0218": "ápice + www (borda) + host cdn",
      "n0219": "servidor CNAME apex/",
      "n0220": "app.py – ignorado",
      "n0221": "aplicado ≠ íntegro — por favor, investigue wsrep",
      "n0222": "aplicar recarga sshd; Error Match pode - primeiro teste",
      "n0223": "applySystem suspende/alteração de resposta automática",
      "n0224": "apply_status=write (Sucesso ≠ MTA do sistema; adicione applySystem:true firstapply)",
      "n0225": "apps/web/dist existe",
      "n0226": "apt list --upgradable: (pode atualizar ou o apt não está pronto)",
      "n0227": "instalação do apt falhou",
      "n0228": "apt-get disponível",
      "n0229": "desabilitar vácuo automático",
      "n0230": "bloqueado: requer HostExecutor + YSK_EXECUTE=1",
      "n0231": "bootstrap: Nó falhou",
      "n0232": "inicialização: apt falhou",
      "n0233": "etapas principais do bootstrapFailed",
      "n0234": "candidatoVersão não",
      "n0235": "carga / ferrugem",
      "n0236": "saída certbot 0 - verifique /etc/letsencrypt/live/",
      "n0237": "chown requer YSK_EXECUTE + root",
      "n0238": "clone (andaime / stub YSK)",
      "n0239": "cluster_size Desconhecido ou 0",
      "n0240": "comando ysk-servidor /@ysk/servidor",
      "n0241": "arquivo do plano de controle completo",
      "n0242": "cwd pode",
      "n0243": "dadosDir",
      "n0244": "dataDir ysk.json — Status completo",
      "n0245": "dataDir/email existe",
      "n0246": "dataDir/web existe",
      "n0247": "banco de dados não encontrado:",
      "n0248": "db-util (banco de dados de usuário FTP)",
      "n0249": "projeto do nó deployNode",
      "n0250": "df Montagem disponível (ou)",
      "n0251": "dig indisponível, nó DNS",
      "n0252": "dig: sem resposta (NXDOMAIN ou vazio)",
      "n0253": "dns-01: painel TXT — concluído\" SSL\"",
      "n0254": "dnssec-dsfromkey não DS",
      "n0255": "PATH dnssec-keygen (apt instalar bind9-dnsutils)",
      "n0256": "dnssec-keygen falhou",
      "n0257": "dnssec-signzone indisponível - keepkey/DS",
      "n0258": "dnssec-signzone não.assinado",
      "n0259": "domínio",
      "n0260": "domínio não encontrado:",
      "n0261": "falha no recarregamento do dovecot ou servicenot (peneira escrita; recarregamento com sucesso)",
      "n0262": "ensaio de envio da frota (não colocado em fila)",
      "n0263": "push de pares de simulação (não scp)",
      "n0264": "instalação remota de simulação (não ssh)",
      "n0265": "transferência de simulação concluída (bootstrap completo)",
      "n0266": "simulação – passar aplicar/executar home",
      "n0267": "simulação - passe aplicar/executar realmente ssh",
      "n0268": "simulação - não escreva /etc",
      "n0269": "simulação: adicione --execute firstapply ufw",
      "n0270": "simulação: inventário + comprovação aprovada, não pacote/transferência",
      "n0271": "Teste: apenas sonda/plano. Passe --execute com YSK_EXECUTE=1 para realmente provisionar.",
      "n0272": "Teste: gravou o arquivo gerenciado (dataDir). Passe --execute com YSK_EXECUTE=1 como root para instalar o sistema drop-in.",
      "n0273": "Funcionamento a seco: não proibido. Passe --execute com YSK_EXECUTE=1 para realmente banir.",
      "n0274": "Teste: não desbanido. Passe --execute com YSK_EXECUTE=1 para realmente cancelar o banimento.",
      "n0275": "dryRun=true — alterar API",
      "n0276": "dryRun: não escreve",
      "n0277": "dump Escreveu dataDir, não transferiu",
      "n0278": "falha na ativação",
      "n0279": "executar (YSK_EXECUTE=1 + raiz)",
      "n0280": "executar requer enfileiramento",
      "n0281": "administrador de exportação",
      "n0282": "fail2ban aplicarFalha",
      "n0283": "serviço fail2ban",
      "n0284": "fail2ban não ativo",
      "n0285": "fail2ban não",
      "n0286": "fail2ban",
      "n0287": "fail2ban StatusRead falhou",
      "n0288": "fail2ban: sshd, nginx-http-auth e prisões padrão",
      "n0289": "fd indisponível",
      "n0290": "arquivos (arquivo)",
      "n0291": "limpeza de frota bloqueada – enfileiramento ou SSH",
      "n0292": "frota por favor db-cluster frota --op probe --execute",
      "n0293": "administrador do painel",
      "n0294": "fromPanel requer step-up: POST /api/v1/auth/totp/step-up",
      "n0295": "certificado PEM fullchain",
      "n0296": "gateway para IP",
      "n0297": "geo apex: EDNS escreve geo edge multi-A (·usuário Anycast)",
      "n0298": "Borda do geoMapa — borda",
      "n0299": "geo: não configurações geoMap - etc multi_a (borda). por favor dns.geoMap região→nodeIds",
      "n0300": "git binário não encontrado: no PATH",
      "n0301": "git binário",
      "n0302": "vá binário",
      "n0303": "healthUrl URL http(s)",
      "n0304": "http-01 webroot — 80 podem espalhar ACME conf",
      "n0305": "identidade não linuxUser/project - não é possível autorizado_keys",
      "n0306": "ignoreip: dataDir/fail2ban/ignoreip.txt",
      "n0307": "index.html + CSS, raiz Nginx ou",
      "n0308": "instalar conf → systemctl reiniciar mariadb (não nó de inicialização)",
      "n0309": "interface ip -j endereço",
      "n0310": "manifesto de trabalho",
      "n0311": "jornal; pode permissão",
      "n0312": "journalctl pode requer root ou usuário systemd-journal/adm",
      "n0313": "chave",
      "n0314": "Chave ausente ou não excluída",
      "n0315": "kill -0 Sucesso: lata para zumbi ou permissão",
      "n0316": "matar -0 falhou",
      "n0317": "Falha na aplicação no host",
      "n0318": "Aplicação bloqueada no host",
      "n0319": "diretório de cache local/",
      "n0320": "localhost ou *",
      "n0321": "BD lógico 0... N-1; reiniciar",
      "n0322": "logrotate instalado",
      "n0323": "logrotate não instalado ou PATH",
      "n0324": "main.py - ignorado",
      "n0325": "manage.py + configurações mínimas/urls/wsgi; pip instalar Django",
      "n0326": "manifesto dumpRelPath - não?",
      "n0327": "manifesto rdbRelPath",
      "n0328": "memóriaMax 512M ou 1G",
      "n0329": "migrar host --execute + YSK_EXECUTE=1, ou --dry-run (inventário+preflight)",
      "n0330": "migrar postagem --execute YSK_EXECUTE=1 (alvo)",
      "n0331": "migrar postagem Requer YSK_EXECUTE=1",
      "n0332": "migrar postagem Requer YSK_EXECUTE=1 (alvo)",
      "n0333": "inicialização mínima falhou",
      "n0334": "cliente mysql/mariadb",
      "n0335": "réplica mysql Suporta mysql",
      "n0336": "nome mysql_databases",
      "n0337": "nomeado-checkzone PATH — Escreveu, não verificou",
      "n0338": "nginx -t ou recarregamento falhou",
      "n0339": "nginx -t não passou, não recarrega",
      "n0340": "nginx recarregar ok · Status: aplicado",
      "n0341": "falha no recarregamento do nginx",
      "n0342": "binário nginx",
      "n0343": "nginx não encontrado",
      "n0344": "serviço nginx",
      "n0345": "Binário não está em PATH; o serviço não pode ficar pronto",
      "n0346": "nó pode",
      "n0347": "npm última versão ausente",
      "n0348": "npm exit 0 Binário não encontrado - o pacote não pode CLI ou PATH não atualizar",
      "n0349": "nullok não é usuário",
      "n0350": "nullok:.google_authenticator userAvailable key",
      "n0351": "caminho open_basedir",
      "n0352": "openssl indisponível, hash YSK-SCRYPT",
      "n0353": "binário OpenSL",
      "n0354": "opcionalEtc Falha na transferência (pode direcionar o certificado)",
      "n0355": "escudo de origem: este nó para escudo, origem",
      "n0356": "projeto ou URL origin.kind",
      "n0357": "origin.project requer projectId",
      "n0358": "origem.url URL http(s)",
      "n0359": "originShieldNodeId edgeNodeIds",
      "n0360": "despejo de pacote incompleto - transferência",
      "n0361": "pacote falhou - transferência",
      "n0362": "pacote requer YSK_EXECUTE=1",
      "n0363": "pam.d/sshd não pam_google_authenticator (não aplicar)",
      "n0364": "painel sem configurações 2FA ou segredo - primeiro \"\" TOTP",
      "n0365": "segredo TOTP do painel - primeiro Web 2FA ou --from-panel",
      "n0366": "login do painel Failedwritecan fail2ban log (diário ou)",
      "n0367": "chave de acesso",
      "n0368": "senha falhou",
      "n0369": "sucesso da chave de acesso",
      "n0370": "pdnsutil Não encontrado: — instale as ferramentas PowerDNS ou execute o script auxiliar como root após a instalação",
      "n0371": "sonda SSH de peer YSK_EXECUTE=1 (local)",
      "n0372": "peer Não investigado (sondar local)",
      "n0373": "peer nodeapply conf e junte-se",
      "n0374": "binário php não encontrado: — instale php-cli",
      "n0375": "binário",
      "n0376": "php não PATH",
      "n0377": "pidfile com userstart (degradado)",
      "n0378": "pidfile startnot pid",
      "n0379": "pm2 PATH (pidfile/systemd disponível)",
      "n0380": "pm2 Não encontrado: no PATH - instale: npm i -g pm2",
      "n0381": "reaplicar pós-transferência",
      "n0382": "restauração pós-transferência",
      "n0383": "postconf não message_rate_limit (aplicado completo)",
      "n0384": "réplica do postgres Suporta postgres",
      "n0385": "nome postgres_databases",
      "n0386": "postqueue indisponível ou mailNão instalado",
      "n0387": "Instale o nginx no host ou use o software do painel/instalação em tempo de execução",
      "n0388": "Instale o nginx no sistema ou use o software do painel/instalação em tempo de execução",
      "n0389": "chave privada PEM",
      "n0390": "produçãoPronto não (datacan )",
      "n0391": "obs:",
      "n0392": "ps Degradado: --sort/",
      "n0393": "ps Degradado: pri/vsz/stat etc.",
      "n0394": "cliente psql",
      "n0395": "purgar falhou ou destino",
      "n0396": "binário python3",
      "n0397": "na fila ≠ eliminação de borda",
      "n0398": "enfileirado ≠ recarregamento de borda - agente e cdn.edge.apply",
      "n0399": "enfileirado ≠ borda — Saída dos agentes/JSON",
      "n0400": "caminho real",
      "n0401": "caminho real",
      "n0402": "reaplicar requer YSK_EXECUTE=1",
      "n0403": "cluster redisSuporta redis",
      "n0404": "registro shasum, não sha256 (npm sha1) - com integridade npm para",
      "n0405": "falha ao recarregar/reiniciar",
      "n0406": "postagem remota falhou - pode direcionar a postagem de migração",
      "n0407": "restic backupdone (saída restic escrita/aplicada)",
      "n0408": "restic está ativado, mas a senha não está definida - denypassword (favor backupsettings)",
      "n0409": "não descansar",
      "n0410": "restic not – não é possível capturar instantâneos",
      "n0411": "restic not — por favor primeiro \"/\" habilite e configure a senha",
      "n0412": "restic desabilitado (somente tar)",
      "n0413": "restic não (ignorado)",
      "n0414": "restic Não instalado (PATH), instale o sistema restic",
      "n0415": "restaurar ok; reaplicar/verificar",
      "n0416": "restauração concluída",
      "n0417": "falha na restauração",
      "n0418": "restaurar sem sucesso",
      "n0419": "restaurar requer YSK_EXECUTE=1",
      "n0420": "restaurar+reaplicar ok; verificar",
      "n0421": "rsync dataDir falhou",
      "n0422": "rsync requer YSK_EXECUTE=1",
      "n0423": "scp Wrote não pode recarregar: rndc/named/bind9/pdns",
      "n0424": "scp Sucesso ≠ reinicialização/junção de pares",
      "n0425": "chave secreta disponível",
      "n0426": "chave mestra secreta",
      "n0427": "sentinela, não sentinela",
      "n0428": "sentinela: replicação de INFO; por favor mestres sentinelas",
      "n0429": "IP do servidor IPv4",
      "n0430": "servidor IPv6 inválido",
      "n0431": "setquota PATH - (implantar du)",
      "n0432": "caminho do shell inválido",
      "n0433": "sinal para TERM | MATAR | HUP | USR1",
      "n0434": "ssh verdadeiro com sucesso → verificado",
      "n0435": "sshd teclado interativo / ativação de resposta a desafios",
      "n0436": "sshd não pode KbdInteractiveAuthentication — TOTP não pode SSH",
      "n0437": "sshpass disponível (senha)",
      "n0438": "strict Match Writeuser (senha desativada)",
      "n0439": "caminho do link simbólico",
      "n0440": "diretório de log de link simbólico",
      "n0441": "página inicial do projeto de link simbólico",
      "n0442": "systemctl falhou",
      "n0443": "Falha no systemd – PM2/pidfile",
      "n0444": "systemd not: permissão de execução do host necessária e administrador",
      "n0445": "alvo: usuário@host ou usuário@host:porta",
      "n0446": "ficha",
      "n0447": "ficha",
      "n0448": "top -b indisponível (com ps para)",
      "n0449": "transferência: dataDir rsync falhou",
      "n0450": "transferência: não é possível criar diretório",
      "n0451": "transferência concluída (bootstrap completo)",
      "n0452": "transferência concluída, restauração/reaplicação/verificação do destino falhou",
      "n0453": "transferência falhou",
      "n0454": "transferência falhou",
      "n0455": "transferência requer YSK_EXECUTE=1",
      "n0456": "transferência/inicialização falhou",
      "n0457": "ufw falhou",
      "n0458": "unidade e ação",
      "n0459": "useradd requer YSK_EXECUTE + root",
      "n0460": "valor (256 KB)",
      "n0461": "verificar",
      "n0462": "verificar se não foi aprovado - pronto",
      "n0463": "verificação aprovada - trabalho = concluído",
      "n0464": "Falha no início do vsftpd",
      "n0465": "vsftpd não foi iniciado com sucesso",
      "n0466": "ponderado: borda",
      "n0467": "wp-config.php – ignorado",
      "n0468": "escrito ≠ Dovecot Pigeonhole — ManageSieve ou link simbólico para a peneira do usuário",
      "n0469": "escrito ≠ Roundcube — enableSystem ou link simbólico",
      "n0470": "Escrito ≠ aplicado: sincronize com o sistema conf.d, execute nginx -t e recarregue",
      "n0471": "escrito ≠ can — proxy reverso para painel /webdav",
      "n0472": "escrito ≠ processreload",
      "n0473": "Falha na instalação da CLI do ysk-server - pode npm i -g ysk-server",
      "n0474": "ysk-web Nginx/www-data (não legível para todos)",
      "n0475": "ysk-web YSK_EXECUTE + root (Nginx não pode 750 home)",
      "n0476": "Impressão digital ysk.json (pode reaplicar) local≠fonte",
      "n0477": "impressão digital ysk.json e",
      "n0478": "impressão digital ysk.json e (bind_ip)",
      "n0479": "ysk.json",
      "n0480": "ysk.json falhou",
      "n0481": "aplicação de zona bloqueada ( EXECUTE)— atualizar",
      "n0482": "retificação de zona concluída",
      "n0483": "zona inválida",
      "n0484": "zona Não encontrada:",
      "n0485": "zona falhou",
      "n0486": "Formato de log binário",
      "n0487": "instalar",
      "n0488": "criado um (rascunho, por favor, para a página \"aplicar\")",
      "n0489": "e POSTAR",
      "n0490": "O último backup completo apresentou falhas",
      "n0491": ": escreva conf → aplique bordas → DNS (e pode SSL)",
      "n0492": ": PAM /etc/pam.d/sshd (nullok)",
      "n0493": ": systeminstall libpam-google-authenticator + PAM ()",
      "n0494": "pode excluir diretório",
      "n0495": "pode excluir diretório ou caminho",
      "n0496": "",
      "n0497": "esta operação",
      "n0498": "Suporta (permitir TERM/KILL/HUP/USR1)",
      "n0499": "dados",
      "n0500": "excluir administrador",
      "n0501": "porta válida",
      "n0502": "Aplicado ao sistema",
      "n0503": "settingsWrote dataDir (aplicar a systemenablesystemchange)",
      "n0504": "O uso de memória do host é superior a 90%",
      "n0505": "Métricas de host",
      "n0506": "Cache de dados principal do InnoDB",
      "n0507": "O binário não está no PATH; o serviço não pode ficar pronto",
      "n0508": "Expiração do log binário (segundos)",
      "n0509": "Tempo limite interativo",
      "n0510": ": firewall, correio PTR/rDNS, mantido",
      "n0511": "vácuo",
      "n0512": "para a página Cron \"instalar no crontab do sistema\" realmente",
      "n0513": "com raiz Nginx ou \"\" public/",
      "n0514": "Inicie o serviço ysk-server como root (unidade systemctl/control-plane)",
      "n0515": "Comece como root e defina YSK_EXECUTE=1 (veja configurações do host/documentos de implantação)",
      "n0516": "com usuário (degradado — não usuário do projeto Linux)",
      "n0517": "shell - negar",
      "n0518": "Registro de consulta lento",
      "n0519": "servidorNão instalado (comando -v)",
      "n0520": "Longo tempo de consulta (segundos)",
      "n0521": "servidor MySQL não instalado",
      "n0522": "servidorNão instalado PostgreSQL",
      "n0523": "servidorNão instalado Redis",
      "n0524": "serverNot instalado, não é possível concluir isso no painel de gerenciamento",
      "n0525": "servidor não habilitado YSK_EXECUTE",
      "n0526": "A execução do serverHost não está habilitada ou raiz ausente, não é possível paneldoneinstall",
      "n0527": "A execução serverHost não está habilitada, não é possível Redis",
      "n0528": "A execução do serverHost não está habilitada, não é possível instalar o Webmail no painel",
      "n0529": "A execução do serverHost não está habilitada, não é possível aplicar",
      "n0530": "A execução do serverHost não está habilitada, não é possível criar uma conexão SSH",
      "n0531": "A execução serverHost não está habilitada, não é possível despejar",
      "n0532": "A execução do host está desativada; o painel não pode concluir as operações no nível do sistema",
      "n0533": "A execução do serverHost não está habilitada: Escreveu o arquivo gerenciado, não foi possível nomear checkzone/recarregar",
      "n0534": "Porta TCP em que o servidor escuta",
      "n0535": "para",
      "n0536": "",
      "n0537": "Hash YSK-SCRYPT (para hash openssl)",
      "n0538": "YSK_SECRETS_KEY",
      "n0539": "caminho baseUrl/.ysk-cdn-health (C2 pode localizar a saúde)",
      "n0540": "versão (mais recenteOverride)",
      "n0541": "YSK_LATEST_VERSION (/)",
      "n0542": "indisponível",
      "n0543": "mysqldump — pacote não pode MySQL",
      "n0544": "pg_dump — o pacote não pode Postgres",
      "n0545": "redis-cli — o pacote não pode Redis RDB",
      "n0546": "sshpass",
      "n0547": "requer rsync (não instalado)",
      "n0548": "não passou",
      "n0549": "passou",
      "n0550": "128M, 256M, 512M, -1 ()",
      "n0551": "por exemplo 512 MiB; deixe em branco para desmarcar",
      "n0552": "900 1 300 10; desabilitar",
      "n0553": ": --membro 10.0.0.3=réplica:frota:SESSION_UUID",
      "n0554": "= ASN (sistema), não",
      "n0555": "22/80/443; não é possível portar",
      "n0556": "mantido: 10",
      "n0557": "processo do servidor ysk.pid",
      "n0558": "",
      "n0559": "detectar para pam_google_authenticator",
      "n0560": "O backup tar foi bem-sucedido, mas o remoto/restic teve problemas",
      "n0561": "administrador",
      "n0562": "administrador personificar",
      "n0563": "administrador pode operação",
      "n0564": "ápice A",
      "n0565": "Configurações gerenciadas listadas (não gravadas no sistema)",
      "n0566": "escreva as configurações do PM2, não inicie",
      "n0567": "arquivo gerenciado por gravação (não recarregar)",
      "n0568": "writemanagesettings — Preparar e recarregar",
      "n0569": "escrever (não ativar)",
      "n0570": "(aplicar:falso); senha",
      "n0571": "Suporta postgres + réplica do postgres",
      "n0572": "Suporta redis + redis-replica|redis-sentinel",
      "n0573": ", BATER",
      "n0574": "resolução de stub (127.0.0.53); DNS, por favor resolva",
      "n0575": "Aviso, pode",
      "n0576": "para; / Status do cache do log de acesso de borda CDN",
      "n0577": "willwrite systemd Ambiente / ambiente de processo",
      "n0578": "permitir URL incluir",
      "n0579": "permitir arquivo URL",
      "n0580": "arquivo permitido",
      "n0581": ": + / + (enriquecer)+ ASN; política da cidade desativada",
      "n0582": "espalhamento de borda aplicado",
      "n0583": "distribuição de borda falhou",
      "n0584": "purga de borda Sucesso",
      "n0585": "recarga de servidor de nomes de pares",
      "n0586": "falha no recarregamento de pares - arquivo não pode",
      "n0587": "par falhou",
      "n0588": "peer: zona e recarga remota Sucesso",
      "n0589": "Tudo bem sucedido",
      "n0590": "Todos ignorados (sem backup inicial) — não tratado como falha",
      "n0591": "",
      "n0592": "RDB, restaurar",
      "n0593": "Outras variáveis ​​de tempo de execução",
      "n0594": "",
      "n0595": "ou",
      "n0596": "— aplicação manual\"\" (Nunca automática)",
      "n0597": "A pontuação é muito alta – a predefinição de emergência precisa de confirmação manual (nunca automática)",
      "n0598": "diretório",
      "n0599": "processo",
      "n0600": "excluir padrão confirmDefault: true",
      "n0601": "deletefile ou diretório",
      "n0602": "deletesystemuser – negar",
      "n0603": "delete: A execução do host não está habilitada, caminho do diretório de dados gerenciados",
      "n0604": "para fail2ban aplicar e ativar o serviço",
      "n0605": "para ativar a página (suave/normal)",
      "n0606": "Endurecido",
      "n0607": "ou",
      "n0608": "Sob ataque",
      "n0609": "21 e PASV",
      "n0610": "Gravar apenas arquivo de painel",
      "n0611": "Pode ser aplicado ao sistema",
      "n0612": "pode dataDir/clusters/<id>/",
      "n0613": "Você pode visualizar as configurações; instalar, reiniciar e gravar configurações do sistema precisam de permissão de execução do host",
      "n0614": "pode \"\" ou \"adicionar\"",
      "n0615": "Instale e configure o Postfix do email",
      "n0616": "pode: SSL, WP-CLI,",
      "n0617": "",
      "n0618": "diretório permitirrestore para.restic-restore-*",
      "n0619": "Iniciar, parar, reiniciar, ativar na inicialização",
      "n0620": "iniciarprocesso não processo",
      "n0621": "OPcache",
      "n0622": "SSL",
      "n0623": "Ativo",
      "n0624": "arquivo",
      "n0625": "arquivo",
      "n0626": "nó wsrep, HA ≥2 nó",
      "n0627": "\"\"criar MySQL (ou banco de dados) e WP_DB_*",
      "n0628": "domínio – férias mantidas no nível do domínio",
      "n0629": "Domínio inválido",
      "n0630": "status do domínio: ativo ()",
      "n0631": "domainStatus: suspenso (; etc Postfix)",
      "n0632": "Porta, endereço de ligação, limites de conexão",
      "n0633": "portcheckAbnormal",
      "n0634": "Tempo de execução",
      "n0635": "Exigir transporte seguro (TLS)",
      "n0636": "(.gz etc.)",
      "n0637": "Robô",
      "n0638": "sonda",
      "n0639": "Último recurso quando fora de controle",
      "n0640": "pacote",
      "n0641": "packageinstallnot: permissão de execução do host necessária",
      "n0642": "atualização do pacote requer permissão de administrador do sistema",
      "n0643": "aplicar ao vsftpd",
      "n0644": "aplicar ao sistema",
      "n0645": "arquivo gerenciado applywill; YSK_EXECUTE=1 + raiz aplicada",
      "n0646": "",
      "n0647": "estagiário (MB)",
      "n0648": "senha",
      "n0649": "Erro, aplique",
      "n0650": "Segurança → Minha segurança → habilitar 2FA; a política pode definir requireAdminTotp",
      "n0651": "e caminho",
      "n0652": "instalar PAM",
      "n0653": "instalar vsftpd",
      "n0654": "Falha na instalação",
      "n0655": "pacote de instalação",
      "n0656": "instalação concluída",
      "n0657": "instalar",
      "n0658": "instalar configurações do sistema",
      "n0659": "",
      "n0660": "",
      "n0661": "senha",
      "n0662": "senha SQL CHANGE_ME",
      "n0663": "Senha armazenada como hash criptografado (não texto simples)",
      "n0664": "senha para",
      "n0665": "senha requer sshpass",
      "n0666": "passwordrequireslocalinstall sshpass",
      "n0667": "a senha requer 8",
      "n0668": "senha (8) - createnot writehash",
      "n0669": "configurações de senha",
      "n0670": "etc.",
      "n0671": "e por favor",
      "n0672": "negar",
      "n0673": "Grava NODE_OPTIONS=--max-old-space-size=N",
      "n0674": "escreva o Nginx drop-in",
      "n0675": "escreva para casa ≠ PAM",
      "n0676": "Falha na gravação",
      "n0677": "escrever",
      "n0678": "arquivo de gravação",
      "n0679": "",
      "n0680": "Incluir em sshd_config ou POST /api/v1/sftp/sshd-snippet/apply install",
      "n0681": "Isolamento de usuário do projeto Linux",
      "n0682": "ID do projeto",
      "n0683": "ID do projeto inválido, não é possível iniciar",
      "n0684": "ID do projeto, não é possível systemuser",
      "n0685": "projeto internal-sftp Corresponde ao shell interativo do usuário - TOTP SSH shell/scp",
      "n0686": "log gerenciado do projeto inválido",
      "n0687": "projeto",
      "n0688": "projeto ou não configurações home",
      "n0689": "projeto não pode ser sistemausuário",
      "n0690": "projeto",
      "n0691": "projeto (503)",
      "n0692": "falha na criação do projeto,",
      "n0693": "domínio do projeto - por favor firstsettingsdomain",
      "n0694": "projeto linux_user",
      "n0695": "diretório de cache nginx do host de limpeza do projeto (não por zona por vhost)",
      "n0696": "projectMissing linuxUser — não é possível criar FTP",
      "n0697": "projetoMissing linux_user",
      "n0698": "projeto; ＝",
      "n0699": "Detalhe do projeto → Recursos → criar usuário do sistema / migrar para /home/ysk-server-{id} (precisa de YSK_EXECUTE + root)",
      "n0700": "cadeia",
      "n0701": "Diretório inicial ausente ou não no layout de isolamento do projeto",
      "n0702": "não GeoIP - por favor atualize o \"IP\"",
      "n0703": "não é porta, por favor, primeiro projete",
      "n0704": "não para o sistema Nginx (arquivo gerenciado)",
      "n0705": "não servercreate Redis, por favor redis-cli, TCP e YSK_EXECUTE=1",
      "n0706": "Não aplicado ao serviço vsftpd - por favor, \"inscreva-se\" ou página de serviço vsftpd donestart",
      "n0707": "Não aplicadomaildomain",
      "n0708": "não interface da Web - API",
      "n0709": "não GeoIP - atualize",
      "n0710": "não é chave DNSSEC",
      "n0711": "não é nó CDN",
      "n0712": "não é senha",
      "n0713": "não (o pacote irá)",
      "n0714": "não configurações de conexão LLM",
      "n0715": "não zona: por favor painel",
      "n0716": "CDN",
      "n0717": "Nenhuma configuração gerenciada do Nginx ainda",
      "n0718": "HIT/MISS disponível – taxa de acerto geral desconhecida",
      "n0719": "Ainda não há projetos",
      "n0720": "- por favor, primeiro planeje",
      "n0721": "Preparar",
      "n0722": "e biscoito",
      "n0723": "ativar --agora fail2ban",
      "n0724": "galera_new_cluster (inicialização)",
      "n0725": "fail2ban recarregado",
      "n0726": "recarregar nginx",
      "n0727": "fail2ban reiniciado",
      "n0728": "zona scp (escrita em peer ≠ nomeada recarregada)",
      "n0729": "scp para peer /tmp (escrito em peer ≠ serviço reiniciado)",
      "n0730": "systemctl recarrega nginx",
      "n0731": "e cubo redondo",
      "n0732": "UFW desativado (Aviso: hostport)",
      "n0733": "projeto php.ini; aplicar FPM/",
      "n0734": "managesettings (não aplicado ao serviço do sistema)",
      "n0735": "configurações (não aplicar sistema)",
      "n0736": "Excluído",
      "n0737": "Chave excluída · chaves_autorizadas",
      "n0738": "Cluster excluído; manual de configuração do sistema (v1)",
      "n0739": "Chave local excluída",
      "n0740": "ip addr add (settingsWrote, reinicialização)",
      "n0741": "aplicar bancos de dados (reiniciar)",
      "n0742": "desligar/reiniciar",
      "n0743": "para sistema e recarregar",
      "n0744": "começar",
      "n0745": "HSTS ativado",
      "n0746": "Sincronização NTP habilitada",
      "n0747": "UFW ativado",
      "n0748": "WebDAV habilitado · Usuário básico ysk · senha para token ()",
      "n0749": "Serviço systemd ativado",
      "n0750": "parar de redis",
      "n0751": "diretório de cache nginx e recarregar (hostnot proxy_cache pode)",
      "n0752": "serverdonecertificatepor favor",
      "n0753": "UFW somente CF aplicado (CF de origem + porta mantida)",
      "n0754": "fail2ban aplicado",
      "n0755": "Configurações aplicadas ao sistema Postfix",
      "n0756": "Aplicado ao sistema Nginx",
      "n0757": "Regra de firewall aplicada",
      "n0758": "Instalado e ysk-server.service",
      "n0759": "Instalado no sistema do usuário crontab",
      "n0760": "Escreveu.google_authenticator (5 códigos de rascunho)",
      "n0761": "Escreveu multimap rspamd + snippet postfix",
      "n0762": "Escreveuinstalar",
      "n0763": "Escreveu; por favor \"aplicar limites ao sistema operacional\" ou implantar unidade de gravação",
      "n0764": "Escreveu gerenciamento jail.local (não aplicado ao sistema)",
      "n0765": "Gravado em arquivos gerenciados; ainda não aplicado ao sistema conf.d",
      "n0766": "Escreveu configurações (não pacote)",
      "n0767": "Escreveu; projeto irá processar",
      "n0768": "Arquivo gerenciado por gravação, configuração do sistema não aplicada: YSK_EXECUTE=1",
      "n0769": "Arquivo gerenciado por gravação, configuração não aplicada do sistema: requer root",
      "n0770": "bloco: candidateVersion",
      "n0771": "bloco: atualização",
      "n0772": "bloco: permissão de administrador necessária",
      "n0773": "criar diretório DNSSEC ()",
      "n0774": "de",
      "n0775": "de (instalação em disco não; desinstalar --purge)",
      "n0776": "de; conta do sistema DROP USER (: não descarta)",
      "n0777": "da conexão",
      "n0778": "negar",
      "n0779": "negar por lista de permissões",
      "n0780": "negar: aumentar a meta",
      "n0781": "verificar o log de acesso do nginx",
      "n0782": "MySQL/MariaDB criar usuário",
      "n0783": "Criação do PostgreSQL",
      "n0784": "versão ()",
      "n0785": "",
      "n0786": "",
      "n0787": "pega-tudo",
      "n0788": "DS (por favor, registrador - painelwill)",
      "n0789": "addbackup (chave mestra dataDir pode)",
      "n0790": "Senha hash SHA512-CRYPT (Dovecot)",
      "n0791": "verificação de configurações do Nginx ignorada (não instalado ou sem permissão de alteração do sistema)",
      "n0792": "caminho do certificado (arquivo /etc/ysk-server/certs)",
      "n0793": "UA",
      "n0794": "",
      "n0795": "",
      "n0796": "Removido",
      "n0797": "Removido",
      "n0798": ",",
      "n0799": "version = apt Candidato, Availableraise",
      "n0800": "Copiado para /etc/fail2ban/jail.local",
      "n0801": "(filenot; pode desinstalar)",
      "n0802": "reiniciar",
      "n0803": "desligado",
      "n0804": "reinicie o postgresql",
      "n0805": "reinicie o servidor redis",
      "n0806": "reinicie o servidor redis com applyrestart",
      "n0807": "reiniciar (recarregar)",
      "n0808": "Conexão reativada (persiste após reinicialização)",
      "n0809": "Configuração de borda TLS ()",
      "n0810": "Nginx recarregado (site estático ativo se o DNS apontar aqui)",
      "n0811": "Nginx recarregado",
      "n0812": "A permissão de alteração do sistema está ativada (YSK_EXECUTE)",
      "n0813": "senha – Roundcube pode fazer login",
      "n0814": "gerenciar; serviço FTP com permissão do sistema",
      "n0815": "conta (usermod -U)",
      "n0816": "conta (usermod -L)",
      "n0817": "varredura de caminho",
      "n0818": "este IP",
      "n0819": "createsystemuserrequiressystemadminpermission",
      "n0820": "createmaildomain e aplicação de página",
      "n0821": "feito",
      "n0822": "\"\"",
      "n0823": "Revise SSH e portas não essenciais",
      "n0824": "",
      "n0825": "1 réplica; pode conf primária",
      "n0826": "2 nós (3); pode",
      "n0827": "Considere o modo CDN sob ataque",
      "n0828": "ativar banimento",
      "n0829": "HTTPS (HTTP→301)",
      "n0830": "Plug-in de autenticação padrão",
      "n0831": "",
      "n0832": ": status = ativo",
      "n0833": "Caminho do log de erros",
      "n0834": "(EM)",
      "n0835": "Registro geral",
      "n0836": "certificado por favor falhou",
      "n0837": "≥ arquivo",
      "n0838": "configuraçõeskeptbackup",
      "n0839": "Sucesso significa que este destino aceita SSH BatchMode (não interativo). Não é uma concessão de acesso global.",
      "n0840": "ou 32767",
      "n0841": "software instalado",
      "n0842": "permissão/",
      "n0843": "",
      "n0844": "Binário CLI não encontrado – o systemd ativará o espaço reservado silencioso",
      "n0845": "Zona DNS não encontrada - dns.zoneId ou zona firstcreatedomain",
      "n0846": "PowerDNS não encontrado - instale pdns-server / pdns-tools",
      "n0847": "Diretório de plug-ins Roundcube não encontrado - Escrito; instale Roundcube ou roundcubePluginsDir",
      "n0848": "SQL não encontrado",
      "n0849": "Peneira não encontrada",
      "n0850": "Não encontrado config.inc.php — por favor: $config[\\'plugins\\'][] = \\'ysk_sso\\';",
      "n0851": "Não encontrado edge.conf — por favor primeiro",
      "n0852": "Não encontrado: chave",
      "n0853": "Não encontrado: tarefa de migração",
      "n0854": "Não encontrado pm2 — não é possível com a parada PM2",
      "n0855": "Não encontrado",
      "n0856": "Cluster não encontrado",
      "n0857": "Não encontrado pode recarregar o servidor de nomes local (rndc/named/bind9/pdns)",
      "n0858": "Não encontradoCertificado disponível — por favor, primeira página SSL ou LE",
      "n0859": "Não encontradoConexão NetworkManager disponível",
      "n0860": "Não encontrado",
      "n0861": "Não encontrado",
      "n0862": "Log de acesso do projeto não encontrado - por favor, caminho ou log nginx access_log",
      "n0863": "Não encontrado",
      "n0864": "Não encontrado",
      "n0865": "Versão não encontrada",
      "n0866": "Nó não encontrado",
      "n0867": "Banco de dados não encontrado",
      "n0868": "negar",
      "n0869": "negar loopback",
      "n0870": "negar Renice",
      "n0871": "deny systemctl enable: CLI do agente não instalado (espaço reservado em execução)",
      "n0872": "negar loopback ()",
      "n0873": "negar loopback",
      "n0874": "negar homeDir - substituaHome + confirmPhrase ou targetdirectory",
      "n0875": "negar PID 1 (init/systemd)",
      "n0876": "negar ysk; pode forçarControlPlane",
      "n0877": "negar (servidor ysk); requerpor favor, forceSelf",
      "n0878": "negar caminho de leitura",
      "n0879": "negar caminho ou não",
      "n0880": "persistir padrão requer Gateway",
      "n0881": "Persistência",
      "n0882": "para",
      "n0883": "Comando bloqueado: a alteração do host requer permissão de alteração do sistema (YSK_EXECUTE)",
      "n0884": "digitalizar",
      "n0885": "caminho de varredura",
      "n0886": "sondar replicação INFO",
      "n0887": "sonda MOSTRAR STATUS MASTER / REPLICA",
      "n0888": "sonda pg_is_in_recovery / pg_stat_replication",
      "n0889": "sonda wsrep (MOSTRAR STATUS COMO 'wsrep%')",
      "n0890": "O plano de controle gravou a configuração, mas não é aplicado no host - use Aplicar em cada página de recurso",
      "n0891": "O plano de controle permanece no modo normal",
      "n0892": "Degradação de emergência do plano de controle (operações locais)",
      "n0893": "Diretório de dados do plano de controle",
      "n0894": "O plano de controle entra na dica de proteção contra ddos",
      "n0895": "completo (parcial/com falha)",
      "n0896": "Autenticação mais rápida quando os clientes usam apenas IPs",
      "n0897": ": Zonas Cloudflare + CF_API_TOKEN firstcan Under Attack API",
      "n0898": "não posso fazer",
      "n0899": "Nginx e fail2ban",
      "n0900": "Desempenho e recursos",
      "n0901": "IP/domínio. por favor verifique Spamhaus etc, e.",
      "n0902": "A/AAAA (ápice e www)",
      "n0903": "DMARC TXT",
      "n0904": "DNS MX/SPF/DKIM",
      "n0905": "_dmarc TXT com e.",
      "n0906": "Método + limites",
      "n0907": "DNS MX, SPF (TXT) e DKIM (TXT). Cloudflare: mailoffplease DNS().",
      "n0908": "Instale as ferramentas PowerDNS da página DNS",
      "n0909": "Instale o certbot da página SSL",
      "n0910": "Instale o fail2ban do Defense Center ou do banner do software",
      "n0911": "Instale e habilite o UFW do Defense Center",
      "n0912": "Instale o Redis na página do Redis",
      "n0913": "Instale os pacotes necessários para esta verificação",
      "n0914": "Diário",
      "n0915": "Registros",
      "n0916": "diretório de logs logwriteproject",
      "n0917": "registro",
      "n0918": "registro",
      "n0919": "logpathallow",
      "n0920": "registrar etc.",
      "n0921": "logpathinválido",
      "n0922": "",
      "n0923": "e",
      "n0924": "Cache aberto de tabela",
      "n0925": "Versão PHP",
      "n0926": "Mais prisões fail2ban, proibições mais rápidas",
      "n0927": "por favor Redis",
      "n0928": "atualizar a prisão fail2ban (arquivo gerenciado)",
      "n0929": "atualizaçãoIncompleta",
      "n0930": "Limites Nginx mais rígidos (~1 req/s)",
      "n0931": "12 diretório",
      "n0932": "8 servidor de nomes",
      "n0933": "arquivo",
      "n0934": "",
      "n0935": "WAL",
      "n0936": "",
      "n0937": "",
      "n0938": "Máximo de erros de conexão",
      "n0939": "",
      "n0940": "Servidor HTTP (/health)+ diretório público",
      "n0941": "",
      "n0942": "",
      "n0943": "Aumento disponível",
      "n0944": "Quando verificações/força bruta aparecem",
      "n0945": "",
      "n0946": "banco de dados/despejo Redis falhou, (será transferido)",
      "n0947": "serviçoinválido",
      "n0948": "não WordPress (/) — WORDPRESS_INSTALL.txt",
      "n0949": "não com inicialização da unidade do sistema (requer root +) - pidfile",
      "n0950": "não para pam_google_authenticator - apto instalar libpam-google-authenticator",
      "n0951": "não 2FA",
      "n0952": "Resumo do plano de controle exportado apenas (Nginx não sincronizado)",
      "n0953": "Não aplicado ao sistema nginx ( YSK_EXECUTE + root)— Status: escrito",
      "n0954": "Não aplicado ao sistema: YSK_EXECUTE + root",
      "n0955": "redis-cli não está instalado",
      "n0956": "não gravar arquivo",
      "n0957": "não o sistema pode verificar a mudança - tudo bem",
      "n0958": "não para postgresql conf.d — conf dataDir; willAppliedsystem",
      "n0959": "não para secrets/ssh/.master.key YSK_SECRETS_KEY — targetcan não pode vault/2FA",
      "n0960": "não",
      "n0961": "Não investigado",
      "n0962": "não certbot/LE cron (sistema disponível certbot.timer)",
      "n0963": "não conf nginx",
      "n0964": "Senha desconhecida",
      "n0965": "Fonte desconhecida (diário:... / arquivo:... / projeto:...)",
      "n0966": "Desconhecido",
      "n0967": "Software desconhecido",
      "n0968": "ID de software desconhecido",
      "n0969": "Software desconhecido",
      "n0970": "Desconhecido",
      "n0971": "não, negar (despejar)",
      "n0972": "não projete home - escreva ftps/ssh; Partida sshd",
      "n0973": "não applyupdate: por favor, diretório git YSK_SOURCE_ROOT ou publique o pacote npm YSK_NPM_PACKAGE",
      "n0974": "não - vai\"\"",
      "n0975": "não - vai",
      "n0976": "não City Lite — /ASN; atualizarcan DB-IP ( CC BY)",
      "n0977": "não City Lite — /; por favor atualize (DB-IP)",
      "n0978": "não para /etc/nginx (não root ou não EXECUTE)— gerenciado conf dataDir",
      "n0979": "não configurações CF_API_TOKEN - não é possível API Cloudflare",
      "n0980": "não configurações Cloudflare API Token - simulação",
      "n0981": "não configurações (desativar)",
      "n0982": "Feito",
      "n0983": "não instale no sistema (installSystem=false)",
      "n0984": "YSK_EXECUTE não está habilitado",
      "n0985": "A alteração do sistema está desativada (o plano de controle só pode gravar configurações)",
      "n0986": "não enablesystemchange: não é possível dnssec-keygen",
      "n0987": "não senha – verificar e-mail ()",
      "n0988": "não verificar/recarregar: a execução do serverHost não está habilitada (arquivo gerenciado por gravação)",
      "n0989": "conf, por favor planeje primeiro",
      "n0990": "backup",
      "n0991": "zona",
      "n0992": "certificado (ou de não)",
      "n0993": "inválido",
      "n0994": "O limite da taxa de banimento atingiu esta hora – verifique o Centro de Defesa",
      "n0995": "ip local pode Suporta -j; por favor aumente iproute2 (notas)",
      "n0996": "local nginx -t OK (gerenciado conf, ≠ borda aplicada)",
      "n0997": "wsrep local pode, tamanho não nó",
      "n0998": "ysk.json local não pode ler / impressão digital",
      "n0999": "O nó local está OK; um status íntegro completo precisa de uma investigação de pares (não concluída).",
      "n1000": "local nginx — conf Escreveu, não recarregou",
      "n1001": "Conexão NM local disponível; seráSucesso. pode \"\" ou NetworkManager.",
      "n1002": "localAvailable ps — não é possível ()",
      "n1003": "conexão NM local; seráSucesso. pode \"\" ou NetworkManager.",
      "n1004": "pode proibir",
      "n1005": "inválido",
      "n1006": "status do serviço",
      "n1007": "O uso do sistema de arquivos raiz é superior a 90%",
      "n1008": "diretório inválido",
      "n1009": "Espaço em disco raiz",
      "n1010": "Visão geral",
      "n1011": "TcpListener (caixa); Carga.toml",
      "n1012": "rede/http; ir.mod; / e /saúde",
      "n1013": "Modo: produção pronta",
      "modeProductionCapable": "produção pronta",
      "modeDegraded": "degradado",
      "n1014": ": não",
      "n1015": "Teste concluído - nada copiado ou recarregado (desative o teste para sincronização real)",
      "n1016": "Teste concluído - a sincronização real precisa de root e YSK_EXECUTE",
      "n1017": "with.conf",
      "n1018": "with.sieve",
      "n1019": "Arquivos",
      "n1020": "arquivo e POST",
      "n1021": "O arquivo não existe ou pode",
      "n1022": "O arquivo não existe ou foi excluído",
      "n1023": "processo de verificação; hospedar",
      "n1024": "arquivo de verificação",
      "n1025": "verificar ()",
      "n1026": "verificar",
      "n1027": "pois, não posso escrever",
      "n1028": "permissão para 3–4",
      "n1029": "permissão e",
      "n1030": "OK",
      "n1031": "Operações do dia a dia",
      "n1032": "por favor SECRET_KEY/DEBUG e configdatabase",
      "n1033": "planejador Suporta mariadb + mariadb-galera",
      "n1034": "planejador Suporta mysql + réplica mysql",
      "n1035": "estehost systemd servicemanage",
      "n1036": "Este projeto Node runtime, por favor Node",
      "n1037": "thisproject Node runtime, por favor Node (ou runtime para estático)",
      "n1038": "esta atualização (/). por favor inscreva-se.",
      "n1039": "isso para (DNS /IP); não é possível PTR/25",
      "n1040": "isso se aplica ao sistema",
      "n1041": "pacote apt deste software",
      "n1042": "configurações;,, limites",
      "n1043": "projeto com usuário Linux/ativo",
      "n1044": "Limite de banimento automático por hora",
      "n1045": "(IPinfo Lite)",
      "n1046": "Banimento permanente",
      "n1047": "nó de borda - primeiro borda da página CDN",
      "n1048": "pode aplicar aumento (candidato ou versão)",
      "n1049": "projeto pode descansar",
      "n1050": "backup do projectcan (0) — para falha",
      "n1051": "pode para",
      "n1052": "registro/backup; configurações de host",
      "n1053": "regra de firewall - negar",
      "n1054": "exige e",
      "n1055": "criarsistemausuário...",
      "n1056": "navegador habilitado, concluído instalação do WP",
      "n1057": ".zone pode",
      "n1058": "HostExecutor — por favor chown arquivo",
      "n1059": "HostExecutor — chown (por favor, chown)",
      "n1060": "Gravação de IP DNS",
      "n1061": "Conexão NM pode;",
      "n1062": "Conexão NM pode;",
      "n1063": "Despejo de Redis",
      "n1064": "Despejo de banco de dados SQL",
      "n1065": "Alvo SSH",
      "n1066": "Alvo SSH/frota",
      "n1067": "status do cache de log de acesso, diretório de cache - taxa de acerto desconhecida (por favor, log_format ou primeiro aplique borda)",
      "n1068": "access=frota frotaAgentId",
      "n1069": "access=ssh — por favor crie:ssh ou membros",
      "n1070": "Escrito no plano de controle; não aplicado no host",
      "n1071": "apt-get",
      "n1072": "desafio de autenticação",
      "n1073": "bind_ip",
      "n1074": "dataDir — banco de dados atualizado",
      "n1075": "domínio vacation.sieve — ignorado por caixa de correio",
      "n1076": "borda pode ser aplicada (pular/drenar)— conf escrito",
      "n1077": "galera_new_cluster; reinicie o mariadb",
      "n1078": "home_dir",
      "n1079": "instalar — Status para armazenado",
      "n1080": "usuário linux",
      "n1081": "chave mestra / YSK_SECRETS_KEY",
      "n1082": "servidor de nomes (não é possível configurar)",
      "n1083": "rdbRelPath",
      "n1084": "desafio de registro",
      "n1085": "ponto ssh",
      "n1086": "ssh peer pode",
      "n1087": "sshpass (chave/agente)",
      "n1088": "férias.peneira pode",
      "n1089": "vhost requer atualização (ou servidor conf)",
      "n1090": "Status wsrep (não pode Galera ou servicenot )",
      "n1091": "prisão ativa ou fail2ban não está em execução",
      "n1092": "registro",
      "n1093": "sistema pode (escrito)",
      "n1094": "pode segmentar (healthUrl/baseUrl/publicIpv4)",
      "n1095": "Log de acesso disponível (ou)",
      "n1096": "Log de acesso disponível (disponível/banido)",
      "n1097": "Registro de acesso/autenticação disponível",
      "n1098": "IP de borda disponível – DNS (mantido gerenciado)",
      "n1099": "Usuário estrito disponível (ou não)",
      "n1100": "conf inválida",
      "n1101": "ID de exportação inválido",
      "n1102": "exportação inválida",
      "n1103": "linux_user inválido",
      "n1104": "Chave pública inválida",
      "n1105": "ID de instantâneo inválido",
      "n1106": "Token inválido",
      "n1107": "Unidade inválida",
      "n1108": "unidade inválida",
      "n1109": "tamanho de vácuo inválido (: 500M)",
      "n1110": "tempo de vácuo inválido (: 7d)",
      "n1111": "backup inválido",
      "n1112": "backup inválido",
      "n1113": "porta inválida",
      "n1114": "chave inválida",
      "n1115": "ID do projeto inválido",
      "n1116": "backup inválido",
      "n1117": "padrão inválido",
      "n1118": "regra inválida",
      "n1119": "banco de dados inválido",
      "n1120": "domínio - mapa para (systemapplywill postmap)",
      "n1121": "IP",
      "n1122": "Enriquecimento de banimento automático disponível",
      "n1123": "não é possível banir o sistema: YSK_EXECUTE; banir o painel",
      "n1124": "não é possível despejar Redis: redis-cli",
      "n1125": "não é possível despejar: a execução do serverHost não está habilitada",
      "n1126": "não é possível distribuir: a execução do host não está habilitada",
      "n1127": "não é possível importar: a execução do serverHost não está habilitada",
      "n1128": "não é possível listar: a execução do host não está habilitada",
      "n1129": "não é possível investigar o cluster DNS: a execução do host não está habilitada",
      "n1130": "não é possível investigar: a execução do host não está habilitada (SSH EXECUTE)",
      "n1131": "não é possível limpar o cache: a execução do host não está habilitada (YSK_EXECUTE)",
      "n1132": "não é possível limpar: a execução do host não está habilitada",
      "n1133": "não é possível recarregar remotamente: a execução do host não está habilitada",
      "n1134": "não pode descansar: a execução do host não está habilitada",
      "n1135": "não é possível restaurar: a execução do host não está habilitada",
      "n1136": "não é possível scp: YSK_EXECUTE=1",
      "n1137": "não consigo voltar para casa",
      "n1138": "não é possível criar link simbólico: a execução do host não está habilitada",
      "n1139": "não é possível cancelar o banimento: a execução do host não está habilitada",
      "n1140": "não é possível cancelar o banimento: YSK_EXECUTE",
      "n1141": "não é possível administrar: a execução do host não está habilitada",
      "n1142": "não é possível WordPress: a execução do serverHost não está habilitada",
      "n1143": "não é possível PM2, localprocessmanage",
      "n1144": "não é possível: não ativar YSK_EXECUTE",
      "n1145": "não é possível parar PM2: a execução do serverHost não está habilitada",
      "n1146": "não é possível SSL: a execução do host não está habilitada",
      "n1147": "Sincronização bloqueada: precisa de YSK_EXECUTE",
      "n1148": "não é possível para o sistema Nginx: permissão de execução do host necessária",
      "n1149": "não é possível iniciar PM2: a execução do serverHost não está habilitada",
      "n1150": "não é possível Apache: permissão de execução do host necessária",
      "n1151": "não é possível NTP: permissão de execução do host necessária e root",
      "n1152": "não é possível PHP-FPM: requer permissão de administrador do sistema",
      "n1153": "não é possível o serviço systemd (por favor, permissão)",
      "n1154": "não é possível o serviço systemd: requer permissão de administrador do sistema",
      "n1155": "não pode servir: requer permissão de administrador do sistema",
      "n1156": "não é possível segmentar o rsync, direcionar o rsync",
      "n1157": "não é possível systemcreateaccount: requer YSK_EXECUTE + root; (escrito/bloqueado)",
      "n1158": "não é possível certbot: a execução do host não está habilitada",
      "n1159": "não pode operação: permissão de execução do host necessária (YSK_EXECUTE) e root",
      "n1160": "não pode ser aplicado ao sistema: requer YSK_EXECUTE + root",
      "n1161": "canapplysystemsettings: permissão de execução do host necessária",
      "n1162": "não pode ser aplicado: falhou",
      "n1163": "não é possível instalar o PowerDNS: requer permissão de administrador do sistema",
      "n1164": "não é possível instalar em /etc/ssh: requer YSK_EXECUTE + root",
      "n1165": "não é possível instalar no sistema: a execução do serverHost não está habilitada (arquivo gerenciado por gravação)",
      "n1166": "não é possível: serverHost execute não está habilitado ou não instaladomailservice",
      "n1167": "não é possível criar banco de dados de usuário virtual (db_load)",
      "n1168": "não é possível criar banco de dados, pode haver falha",
      "n1169": "não é possível criar systemmailuser: requer permissão de administrador do sistema",
      "n1170": "não pode da versão npm ou GitHub (não)",
      "n1171": "não é possível sondar o sistemactl",
      "n1172": "não é possível cluster DNS: a execução do host não está habilitada",
      "n1173": "não é possível: a execução do host não está habilitada (backupSuccess)",
      "n1174": "não é possível medir",
      "n1175": "não é possível: a execução do serverHost não está habilitada",
      "n1176": "não é possível ACME: a execução do host não está habilitada",
      "n1177": "não é possível criptografar o passwordhash (requer openssl passwd)",
      "n1178": "não é possível: a execução do serverHost não está habilitada",
      "n1179": "não é possível tarefas (estado ps falhou)",
      "n1180": "não é possível zonear para o diretório dnssec",
      "n1181": "não é possível a impressão digital ysk.json",
      "n1182": "não é possível /etc/resolv.conf",
      "n1183": "não é possível ler cmdline (pode ou permissão)",
      "n1184": "não é possível ler a regra numerada",
      "n1185": "não consigo ler estatísticas",
      "n1186": "não é possível ler: a execução do serverHost não está habilitada",
      "n1187": "não é possível ler o usuário com verificação 2FA",
      "n1188": "não é possível ler o alvo",
      "n1189": "não é possível alterar o UFW: YSK_EXECUTE=1",
      "n1190": "canchangehost/: permissão de execução do host necessária e root",
      "n1191": "não pode mudar: permissão de execução do host necessária (YSK_EXECUTE) e root",
      "n1192": "não é possível zona PowerDNS: a execução do serverHost não está habilitada",
      "n1193": "não é possível IPv4/IPv6",
      "n1194": "não é possível conectar 127.0.0.1:6379",
      "n1195": "não é possível conectar o destino",
      "n1196": "",
      "n1197": "Não há bloqueadores rígidos nesta investigação",
      "n1198": "diretório-chave",
      "n1199": "usuário",
      "n1200": "- peneira do sistema",
      "n1201": "criardiretório",
      "n1202": "Disjuntor",
      "n1203": "Escreveu dataDir/security/fail2ban (não para /etc)",
      "n1204": "; por favor recarregue",
      "n1205": "Rascunho de status - por favor, para a página de serviço FTP \"apply\"willwrite vsftpd",
      "n1206": "Status e versão",
      "n1207": "Status:",
      "n1208": "Status: aplicado (bigorna + política por remetente + mapas)",
      "n1209": "Status: aplicado (link simbólico + plugins de configuração[] ativados)",
      "n1210": "Status: aplicado (diretório)",
      "n1211": "Status: aplicado ( homeDir)",
      "n1212": "Status: aplicado (systemSuccess)",
      "n1213": "Status: aplicado (zona chave+; não registrador)",
      "n1214": "Status: bloqueado – fileWrote gerenciado; não Postfix/Dovecot",
      "n1215": "Status: bloqueado (espaço reservado escrito)",
      "n1216": "Status: bloqueado (daemon de política; systemapply EXECUTE+root)",
      "n1217": "Status: executado ≠, para certbot recarregar",
      "n1218": "Status: falhou (nginx -t ou recarregamento falhou)",
      "n1219": "Status: parcial — será aplicado (sucesso)",
      "n1220": "Status: parcial – systemFailed",
      "n1221": "Status: parcial (link simbólico Sucesso; configuração adicionar plug-ins) - willcomplete aplicado",
      "n1222": "Status: somente visualização",
      "n1223": "Status: escrito/parcial (sistema/recarregamento/verificação sem sucesso)",
      "n1224": "Status: escrito/parcial (principais etapasFailed — aplicado)",
      "n1225": "Status: escrito (apply=false; Não aplicado ao sistema)",
      "n1226": "Status: escrito (aplica-se sistema bloqueado)",
      "n1227": "Status: escrito (conf Escreveu; recarregamento bloqueado)",
      "n1228": "Status: escrito ()— borda Não aplicado; Distribuição do PR-C3 + nginx -t/reload",
      "n1229": "Status: escrito (não aplicado ao sistema Postfix/Rspamd)",
      "n1230": "Status: escrito (não no sistema Nginx; applySystem tentará recarregar)",
      "n1231": "Status: escrito (gerenciar; live fail2ban-client YSK_EXECUTE ou \"→aplicar ao sistema\" jail.local)",
      "n1232": "Status: escrito (chave/DS; zona não ou não zona)",
      "n1233": "Status: escrito (não SSO)",
      "n1234": "Status: escrito (não /não) - Sucesso",
      "n1235": "Status: gravado (/arquivo gerenciado)",
      "n1236": "Status: Gravado e recarregado com sucesso o servidor de nomes",
      "n1237": "Status: Zona Writemanage (não para DNS, não recarrega servidor de nomes)",
      "n1238": "Status: Gravado no arquivo gerenciado (não aplicado ao sistema)",
      "n1239": "Status: dados (não)",
      "n1240": "TOTP (e operador de painel 2FA)",
      "n1241": "operador de painel 2FA",
      "n1242": "Vida útil",
      "n1243": "pode desligar e recarregar",
      "n1244": "por favor desabilite",
      "n1245": "Portão de produção: não totalmente atendido — revise os itens abaixo",
      "n1246": "Portão de produção: aprovado (permissões, Nginx, Node pronto)",
      "n1247": "Isolamento de produção: abra a guia Recursos do projeto para criar um usuário Linux e uma página inicial",
      "n1248": "usuário 2–32 [a-z0-9._-]",
      "n1249": "por favor SSL requer domínio e",
      "n1250": "limites; caminho:",
      "n1251": "sistema; pode caminho",
      "n1252": "",
      "n1253": "Ignorar resolução de nome DNS",
      "n1254": "pulei chown (não com root )",
      "n1255": "chown ignorado ( YSK_EXECUTE + root)— filecan para o usuário",
      "n1256": "nó de drenagem",
      "n1257": "recarga ignorada: zona verifyFailed",
      "n1258": "recarga remota (reload=false)— escrita ≠ aplicada",
      "n1259": "usermod (não os_provisioned)",
      "n1260": "aplicação de zona ignorada (applyZone=false) — atualizar registros",
      "n1261": "Nome de usuário inválido ignorado",
      "n1262": "DDoS – Degradado ativo",
      "n1263": "IP: negar",
      "n1264": ": ignorado",
      "n1265": "IP/domínio e",
      "n1266": "Endereços para vincular (0.0.0.0 = todos)",
      "n1267": "",
      "n1268": "com processo local",
      "n1269": "com PHP",
      "n1270": "permissão para firewallStatus (não )",
      "n1271": "Não rodando como root; algumas configurações do sistema não podem ser aplicadas",
      "n1272": "destino ysk.json falhou",
      "n1273": "CLI do target ysk-server - inicialize ou npm i -g ysk-server",
      "n1274": "dados YSK de destino, forceWipeTarget",
      "n1275": "destino rsync",
      "n1276": "para raiz",
      "n1277": "usuário alvo",
      "n1278": "alvo rsync (instalação de inicialização)",
      "n1279": "targetrequer sshpass (não instalado)",
      "n1280": "alvoFailed",
      "n1281": "alvo não aprovado",
      "n1282": "alvo passado",
      "n1283": "with.zip",
      "n1284": "realmente execute + YSK_EXECUTE=1",
      "n1285": "<?",
      "n1286": "ignorado: não os_provisioned",
      "n1287": "usuário convidado",
      "n1288": "80/443 pode de para (LE HTTP-01)",
      "n1289": "Tempo de execução PHP e pronto para FPM",
      "n1290": "Porta 25",
      "n1291": "Disco, backups, AOF/WAL",
      "n1292": "Pouco espaço em disco",
      "n1293": "",
      "n1294": "/local, aplicar geo",
      "n1295": "",
      "n1296": "; 0 = (CLI)",
      "n1297": "; por favor",
      "n1298": "pacote",
      "n1299": "Quanto tempo manter os logs binários",
      "n1300": "inválido",
      "n1301": "nó de borda",
      "n1302": "versão do host",
      "n1303": "host do nó inválido",
      "n1304": "nóinválido",
      "n1305": "drenagem de nó —, drenagem de status",
      "n1306": "systemapply YSK_EXECUTE + raiz",
      "n1307": "usuário do sistema (não provisionado ou )",
      "n1308": "Administrador do sistema (raiz)",
      "n1309": "Não root – os caminhos do sistema useradd / systemd / nginx são restritos",
      "n1310": "Permissão de alteração do sistema",
      "n1311": "Carga do sistema",
      "n1312": "Software do sistema",
      "n1313": "",
      "n1314": "",
      "n1315": "",
      "n1316": "(verificar porta não pode)",
      "n1317": "não é possível conectar",
      "n1318": "Rede",
      "n1319": "sincronizar novamente",
      "n1320": "ssh",
      "n1321": "ysk.json",
      "n1322": "Faltando conf, por favor planeje primeiro",
      "n1323": "DataDir ausente, não é possível instalar o tempo de execução",
      "n1324": "LinuxUser/homeDir ausente",
      "n1325": "Banimento temporário",
      "n1326": "chave falhou",
      "n1327": "falha na instalação da chave",
      "n1328": "VACUUM",
      "n1329": "banir → desligar ()",
      "n1330": "proibição: não enablesystemchange (YSK_EXECUTE)",
      "n1331": "proibir",
      "n1332": "Interruptor automático ou manual",
      "n1333": "desativar",
      "n1334": "IP: negar",
      "n1335": "",
      "n1336": ": Status escrito - não Dovecot/Pigeonhole (ManageSieve ou link simbólico)",
      "n1337": "escalonado automaticamente",
      "n1338": "permitir caminho",
      "n1339": "alvo",
      "n1340": "nó de borda",
      "n1341": "requer domínio",
      "n1342": "requer nó",
      "n1343": "requer (controle/origem/edge/dns)",
      "n1344": "e operador de painel 2FA",
      "n1345": "chaves_autorizadas remotas, atualizar ou autorizar-se",
      "n1346": "Domínio inválido",
      "n1347": "Tamanho da tabela Tmp",
      "n1348": "filtro/jail systemctl recarregar fail2ban",
      "n1349": "jail.local falhou",
      "n1350": "Ver registro de auditoria",
      "n1351": "Sucesso (segredo)",
      "n1352": "limite_req",
      "n1353": "inválido",
      "n1354": "Soma dos sinais 0–100 → nível de ameaça",
      "n1355": "Memória, buffers, simultaneidade",
      "n1356": "",
      "n1357": "Alto uso de memória",
      "n1358": "Pressão de memória",
      "n1359": "",
      "n1360": "Memória e V8",
      "n1361": "Tamanho máximo da tabela heap",
      "n1362": "pode para",
      "n1363": "",
      "n1364": "Erro ao registrar",
      "n1365": "",
      "n1366": "configurações DNS (PTR)",
      "n1367": "gerenciar configurações; permissão de configuração/reinicialização do sistema",
      "n1368": "configuraçõesWroteApply falhou",
      "n1369": "configuraçõesWroteconnectionRestart falhou; por favor conexão nmcli",
      "n1370": "settingsWroteconnectionFailed, por favor, conecte o nmcli",
      "n1371": "configurações do produto ysk-server",
      "n1372": "configuraçõesErro (para)",
      "n1373": "configuraçõesDados ausentesDir",
      "n1374": "bloqueie TCP 25. por favor, ou SMTP.",
      "n1375": "Pontuação",
      "n1376": ": criar, etc CDN",
      "n1377": ": o resolvedor irá A —; IP de borda ou Anycast",
      "n1378": "por favor CIDR, 192.168.1.10/24",
      "n1379": "por favor POST /api/v1/ssl/upload ou POST /api/v1/ssl/letsencrypt",
      "n1380": "por favor, primeiro nó CDN (PR-C1)",
      "n1381": "por favor primeira manutençãoAceito",
      "n1382": "Abra operações de backup e verifique os resultados laterais",
      "n1383": "Abra a página Backups para obter detalhes",
      "n1384": "Alertas abertos → auditoria de status de aplicação",
      "n1385": "Abra o Defense Center para revisar sinais e mudar a predefinição de proteção",
      "n1386": "por favor, instale o conf e reinicie / junte-se",
      "n1387": "Por favor insira o nome do servidor",
      "n1388": "por favor serverName e upstream",
      "n1389": "por favor serverName e diretório",
      "n1390": "por favor serverName, diretório e soquete FPM",
      "n1391": "Por favor insira a zona",
      "n1392": "por favor zona",
      "n1393": "por favor hospede",
      "n1394": "por favor agrupe (≤64)",
      "n1395": "por favor",
      "n1396": "por favor usuário, e",
      "n1397": "por favor, nó (IP indisponível)",
      "n1398": "por favor DNS A/AAAA IP; checkfirewall e mail PTR",
      "n1399": "por favor XML para o nome do host ou para o host DNS",
      "n1400": "Especifique o IP",
      "n1401": "por favor ação ou mtu",
      "n1402": "Especifique dataDir",
      "n1403": "Especifique listenHost",
      "n1404": "por favor zip caminho",
      "n1405": "por favor faça backup",
      "n1406": "por favor Estado (/)",
      "n1407": "por favor",
      "n1408": "por favor",
      "n1409": "por favor caminho de configuração",
      "n1410": "Especifique um caminho e permissão",
      "n1411": "Especifique um caminho e uma versão",
      "n1412": "Especifique um caminho e",
      "n1413": "por favor DKIM",
      "n1414": "por favor Git URL (ou primeiras configurações do projeto)",
      "n1415": "por favor IP",
      "n1416": "por favor empacote",
      "n1417": "por favor pacote e versão",
      "n1418": "por favor senha (8)",
      "n1419": "por favor",
      "n1420": "por favor",
      "n1421": "por favor - ativado",
      "n1422": "por favor \"aplicar ao sistema\" ou projeto PHP (pool php_admin_*)",
      "n1423": "por favor /etc/default/ufw IPV6=sim",
      "n1424": "Certifique-se de que dataDir exista e que o processo possa gravar nele",
      "n1425": "por favor, servidor de nomes ou \"restaurar DHCP DNS\"",
      "n1426": "por favor publicIpv4 / publicIpv6 / healthUrl / baseUrl",
      "n1427": "por favor",
      "n1428": "por favor arquive",
      "n1429": "limite a autenticação IP ou HTTP",
      "n1430": "Aviso: manifest packagedAt — DB, primeiro pacote",
      "n1431": "Aviso: unidade para binário CLI ativo não encontrado (pode ser unidade de espaço reservado)",
      "n1432": "Aviso: dados YSK de destino",
      "n1433": "Aviso: esta interface para painel inferior",
      "n1434": "Aviso: secrets/ssh/.master.key YSK_SECRETS_KEY (vault/2FA não pode)",
      "n1435": "Aviso: config.json (pode configurar)",
      "n1436": "leia banido falhou",
      "n1437": "leitura banida pode permissão; desbanir/banir YSK_EXECUTE",
      "n1438": "leitura banida Falha (permissão ou serviço)",
      "n1439": "leia banimentos de fail2ban Falha",
      "n1440": "leitura falhou",
      "n1441": "readlogFailed",
      "n1442": "arquivo lido",
      "n1443": "sistema de leitura",
      "n1444": "alterar padrão confirmDefault: true",
      "n1445": "arquivo gerenciado changewillwrite; \"apply to system\" irá /etc/php/.../conf.d e recarregará o FPM",
      "n1446": "Carga alta",
      "n1447": "dados podem; permissão de execução install/restartserviceHost necessária",
      "n1448": "banco de dados pode (>7 )— atualizar",
      "n1449": "banco de dados não criado. por favor mysql e YSK_EXECUTE=1.",
      "n1450": "banco de dados não criado. por favor psql, TCP e YSK_EXECUTE=1.",
      "n1451": "banco de dados",
      "n1452": "nome do banco de dados",
      "n1453": "banco de dados",
      "n1454": "diretório de dados",
      "n1455": "Abra a guia Recursos do projeto para criar o usuário do sistema",
      "n1456": "limites",
      "n1457": "",
      "n1458": "caminho permitir",
      "n1459": "caminho permitir diretório de log",
      "n1460": "Pathdeny",
      "n1461": "",
      "n1462": "home: alvo canônico completo",
      "n1463": "; setquota por favor \"aplicar limites ao sistema operacional\"",
      "n1464": "",
      "n1465": "dados inválidos",
      "n1466": "; pode embalar",
      "n1467": "para RAM 25%",
      "n1468": "Conexões e rede",
      "n1469": "(pode MATAR)",
      "n1470": "(matar -0 falhou)",
      "n1471": "Avançado",
      "n1472": ": painel secreto (e operador 2FA —)",
      "n1473": "Operações",
      "n1474": "Configurações SFTP concluídas (host/nome de usuário/caminho)",
      "n1475": "aplicado ≠ cluster íntegro — por favor, investigue --peers",
      "n1476": "migrar postagem falhou",
      "n1477": "mkdir falhou",
      "n1478": "postagem ok=falso",
      "n1479": "backupnot (ignorado)",
      "n1480": "instalar YSK_EXECUTE = 1",
      "n1481": "Não encontrado rndc / ativo nomeado|bind9|pdns",
      "n1482": "Falha no push remoto ou restic — o tar local pode ter sido bem-sucedido; veja resultados laterais",
      "n1483": "arquivo,,",
      "n1484": "ativo nomeado/bind9/pdns (pode arquivo scp)",
      "n1485": "nginx — conf scp (escrito em peer)",
      "n1486": "Etapas remotas/restic processadas",
      "n1487": "requer YSK_EXECUTE + raiz",
      "n1488": "restaurarnot chown (requer root + YSK_EXECUTE)",
      "n1489": "DNSBL não completoSuporta IPv6;",
      "n1490": "peer aplicado; escrito ou com falha – recarregamento do cluster",
      "n1491": "Sucesso na recarga do peer (parcial)",
      "n1492": "Alguns ou todos os backups falharam — veja os resultados",
      "n1493": "ou Não aplicado ao sistema ( YSK_EXECUTE)",
      "n1494": "Falha — verifique a chave SSH/firewall",
      "n1495": "Falha — etapas",
      "n1496": "sistema falhou",
      "n1497": "",
      "n1498": "PHP + Nginx (aplicativo/público)",
      "n1499": "Pode ser substituído no momento da implantação",
      "n1500": "irá construir -o aplicativo.; conjunto de ferramentas hostInstalled Go",
      "n1501": "vai venv + pip; ExecStart uvicorn principal:app",
      "n1502": "vai venv + pip; entrada app.py (não ASGI)",
      "n1503": "/apply pool FPM escreve php_admin_value",
      "n1504": ": painel\"\"iniciará server.js; escrito ≠",
      "n1505": "host de correio A",
      "n1506": "host de correio AAAA (IPv6)",
      "n1507": "Diretório de configurações de gerenciamento de email",
      "n1508": "ID inválido",
      "n1509": "inválido",
      "n1510": "para 1–1000000 MiB",
      "n1511": "1 MiB",
      "n1512": "reiniciar serviço do sistema",
      "n1513": "banir adicionar",
      "n1514": "recarregar vsftpd",
      "n1515": "serviço de recarga",
      "n1516": "Erro etc.",
      "n1517": "Log de erros, log de consulta lenta",
      "n1518": "Erro e registro",
      "n1519": "Números limite",
      "n1520": "ROW recomendado para replicação",
      "n1521": "Tempo limite de espera",
      "n1522": "Desligado",
      "n1523": "firewall (UFW não se aplica ao sistema)",
      "n1524": "firewall (): TCP 3306, 4567, 4444, 4568",
      "n1525": "Gravações predefinidas nginx limit_req",
      "n1526": "(manter), abaixar",
      "n1527": "Defesa: crítica",
      "n1528": "Defesa: predefinição de emergência sugerida",
      "n1529": "Defesa: possível ataque",
      "n1530": "limitesEscrito; aplicar ao SO YSK_EXECUTE + root",
      "n1531": "Limite de taxa",
      "n1532": "",
      "n1533": "/ BD; Postfix/Rspamd por favor \"aplicar/ao sistema\"",
      "n1534": ": degradado — build/processcan com o usuário; por favor criesystemuser",
      "n1535": ": degradado — processcan com usuário; por favor root + YSK_EXECUTE e createsystemuser",
      "n1536": "salvar; Segredo TOTP. O autenticador pode.",
      "n1537": "EXECUTAR + root firstcan vácuo",
      "n1538": "NetworkManager ativo persiste DNS (irá /etc/resolv.conf)",
      "n1539": "YSK_EXECUTE primeiro pode ser aplicado",
      "n1540": "YSK_EXECUTE irá realmente banir automaticamente",
      "n1541": "YSK_EXECUTE banip",
      "n1542": "Serviço YSK_EXECUTE fail2ban",
      "n1543": "YSK_EXECUTE=1 diário de aspiração pela primeira vez",
      "n1544": "execute:true ou dryRun:true",
      "n1545": "nginx log_format $upstream_cache_status (ou X-YSK-Cache)primeiro HIT/MISS",
      "n1546": "Requer root + YSK_EXECUTE será realmente adicionado pelo usuário; sucesso",
      "n1547": "Requer root journalctl --vacuum",
      "n1548": "Requer root firstcan UFW",
      "n1549": "hostInstalled cargo/rustc",
      "n1550": "hospedar Python e pip",
      "n1551": "hospedar Python e pip (installwillFailed)",
      "n1552": "instale bind9-dnsutils e enablesystemchangepermission, pode realmente dnssec-keygen.",
      "n1553": "Requer sequência de confirmação EMERGENCY; evite se trancar",
      "n1554": "as configurações de correspondência/usuário do sshd do sistema realmente",
      "n1555": "requer --target ou currículo --job",
      "n1556": "requer permissão de administrador do MySQL/MariaDB",
      "n1557": "requer YSK_EXECUTE",
      "n1558": "requer administrador YSK_EXECUTE",
      "n1559": "requer administrador",
      "n1560": "requer aws CLI (ou repositório restic s3)",
      "n1561": "requer id ou todos",
      "n1562": "requer ip",
      "n1563": "requer jobId",
      "n1564": "requer linuxUser ou projectId",
      "n1565": "requer nó mestre",
      "n1566": "requer nginx geoip2 (libnginx-mod-http-geoip2) primeiro será HTTP",
      "n1567": "requer nó primário",
      "n1568": "requer chave privada",
      "n1569": "requer projectId",
      "n1570": "requer raiz",
      "n1571": "requer fonte",
      "n1572": "requer sshpass, chave YSK (identityId) ou chave SSH local",
      "n1573": "requer destino (root@host) ou jobId com currículo",
      "n1574": "requer destino ou jobId de destino",
      "n1575": "requer nome de usuário e ssh-",
      "n1576": "requer domínio de zona",
      "n1577": "requer senha",
      "n1578": "requer e-mail",
      "n1579": "requer e-mail e domínio",
      "n1580": "requer versão e versão",
      "n1581": "requer candidateVersion (pode etc atual ou)",
      "n1582": "requer permissão de administrador do sistema concluída instalação",
      "n1583": "Root é necessário para ciclo de vida e gravações do sistema",
      "n1584": "Permissão de execução do host necessária/recarregar",
      "n1585": "Permissão de execução do host necessária para sistema e recarregar o Nginx",
      "n1586": "Permissão de execução do host necessária check_policy_service",
      "n1587": "Permissão de execução do host necessária nginx conf e recarregar",
      "n1588": "Sincronização bloqueada: precisa de root",
      "n1589": "requer nó primário",
      "n1590": "",
      "n1591": "Não root – os caminhos do sistema useradd / systemd / nginx são restritos",
      "n1592": "não seccomp requer runAsUser",
      "n1593": "Pedidos públicos / min",
      "n1594": "conexão do painel; Disponível\"\" ( )",
      "n1595": "O painel não está sendo executado como root",
      "n1596": "Disponível aplicar:falso",
      "n1597": "- não escreve arquivo",
      "n1598": "Trabalhadores uvicórnio padrão",
      "n1599": "com banco de dados Redis",
      "n1600": "",
      "n1601": "Arquivo local",
      "n1602": "logpathinválido",
      "n1603": "startError",
      "n1604": "Erro e etc.",
      "n1605": "Erro ()",
      "n1606": "construir pode; Notas/registro com falha",
      "n1607": "",
      "n1608": "verificar inválido",
      "n1609": "passou",
      "n1610": "Índice de pacotes não atualizado (YSK_EXECUTE desativado) — mostrando apenas apt list; habilite a execução para executar o apt-get update",
      "n1611": "UFW está inativo: {{n}} regra(s) de negação permanente são armazenadas em user.rules mas o kernel não as está aplicando.",
      "n1612": "UFW está inativo. Uma regra de negação seria escrita apenas em user.rules — o kernel não descartaria pacotes. Habilite o UFW primeiro. Não habilitando automaticamente.",
      "t0001": "listenPort inválido: {{v0}}",
      "t0002": "versão de restauração {{v0}}",
      "t0003": "arquivo (>{{v0}} bytes)",
      "t0004": ": {{v0}}",
      "t0005": "alvo: {{v0}}",
      "t0006": "não encontrado: {{v0}}",
      "t0007": "Falha: {{v0}}",
      "t0008": "{{v0}} → {{v1}}",
      "t0009": "não encontrado: {{v0}}",
      "t0010": "Falha: {{v0}}",
      "t0011": "{{v0}} → {{v1}}",
      "t0012": "não é possível partir do Status {{v0}} para",
      "t0013": "esta operação requer: {{v0}}",
      "t0014": "Status inválido: {{v0}}",
      "t0015": "{{v0}}",
      "t0016": "Desconhecido: {{v0}}",
      "t0017": "{{v0}} não pode {{v1}} ( {{v2}})",
      "t0018": "{{v0}} não leituraoperaçãorequer id",
      "t0019": "anfitrião: {{v0}}",
      "t0020": "permitir: {{v0}}",
      "t0021": "negar: {{v0}}",
      "t0022": "não encontrado Manual: {{v0}}",
      "t0023": "endereço ip -j falhou: {{v0}}",
      "t0024": "Falha na rota ip -j: {{v0}}",
      "t0025": "nmcli writeFailed: {{v0}}",
      "t0026": "{{v0}} → conexão\"{{v1}}\"",
      "t0027": "aviso de conexão: {{v0}}",
      "t0028": "Conexão reativada (persiste após reinicialização)",
      "t0029": "{{v0}} → {{v1}} (; reiniciar pode desaparecer)",
      "t0030": "da conexão\"{{v0}}\" {{v1}}",
      "t0031": "NM: {{v0}}",
      "t0032": "Excluído {{v0}} ← {{v1}}",
      "t0033": "falha no link inativo: {{v0}}",
      "t0034": "caiu {{v0}}",
      "t0035": "falha na ligação: {{v0}}",
      "t0036": "acordou {{v0}}",
      "t0037": "Falha na MTU: {{v0}}",
      "t0038": "Falha no gateway de gravação nmcli: {{v0}}",
      "t0039": "salvar gateway padrão {{v0}} → conexão\"{{v1}}\" (reinicializar)",
      "t0040": "rotas de gravação nmcli Falha: {{v0}}",
      "t0041": "salvar {{v0}} →\"{{v1}}\" (reiniciar)",
      "t0042": "falha na adição da rota ip: {{v0}}",
      "t0043": "adicione {{v0}}${gw?",
      "t0044": ": ''}(Pode não persistir durante a reinicialização; use Salvar para persistir)",
      "t0045": "da conexão\"{{v0}}\" ipv4.gateway",
      "t0046": "Gateway NM: {{v0}}",
      "t0047": "de \"{{v0}}\" {{v1}}",
      "t0048": "Rotas NM: {{v0}}",
      "t0049": "falha na rota ip: {{v0}}",
      "t0050": "{{v0}}",
      "t0051": "{{v0}}",
      "t0052": "DNS inválido: {{v0}}",
      "t0053": "IP DNS: {{v0}}",
      "t0054": "Falha na modificação do nmcli: {{v0}}",
      "t0055": "restaurar {{v0}} DHCP DNS (ignore-auto-dns=no)",
      "t0056": "Falha na modificação do nmcli: {{v0}}",
      "t0057": "Escreveu {{v0}}: DNS {{v1}}${search.length?",
      "t0058": "Falha: {{v0}}",
      "t0059": "{{v0}} → {{v1}}",
      "t0060": "{{v0}}",
      "t0061": "Token SSO ({{v0}} )",
      "t0062": "Falha na instalação do Webmail: {{v0}}",
      "t0063": "{{v0}}",
      "t0064": "falha no sistema: {{v0}}",
      "t0065": "férias para {{v0}} diretório de peneira (escrito)",
      "t0066": "peneira +.dovecot.sieve → {{v0}}@{{v1}}",
      "t0067": "Link de peneira ativa desativado → {{v0}}@{{v1}}",
      "t0068": "{{v0}}@{{v1}} peneira Falha: {{v2}}",
      "t0069": "Escreveu daemon de política por remetente (domínios {{v0}})",
      "t0070": "{{v0}} falhou (saída {{v1}}): {{v2}}",
      "t0071": "Escreveu o plugin {{v0}}",
      "t0072": "link simbólico falhou: {{v0}}",
      "t0073": "fez link simbólico {{v0}} → {{v1}}",
      "t0074": "Falha na configuração: {{v0}}",
      "t0075": "plug-in de configuração {{v0}}: {{v1}}",
      "t0076": "Escreveu {{v0}}: {{v1}}",
      "t0077": "{{v0}} e www.{{v1}} para o IP do servidor. CDN (Cloudflare)pode ou.",
      "t0078": "Configurações PTR VPS/IP e HELO/EHLO ({{v0}}). por favor (AWS/GCP).",
      "t0079": "{{v0}}",
      "t0080": "pós-super falhou: {{v0}}",
      "t0081": "domínio: {{v0}}",
      "t0082": ": {{v0}}",
      "t0083": "criar Maildir: {{v0}}",
      "t0084": "criar usuário do sistema {{v0}}",
      "t0085": "createsystemuserFailed: {{v0}}",
      "t0086": ": {{v0}}",
      "t0087": "gravação passdb falhou: {{v0}}",
      "t0088": ": {{v0}}",
      "t0089": "criar {{v0}}: {{v1}} → {{v2}}",
      "t0090": "Domínio de correio não encontrado: {{v0}}",
      "t0091": "Escreveu férias {{v0}}",
      "t0092": "Escreveu {{v0}}",
      "t0093": "alias_virtual: {{v0}} ({{v1}} )",
      "t0094": "Bigorna postfix: smtpd_client_message_rate_limit={{v0}} / 3600s (; taxa de domínio)",
      "t0095": "pós-conf: {{v0}}",
      "t0096": "Escreveu rspamd ratelimit.conf (~{{v0}}/h)",
      "t0097": "mapa ({{v0}} domínios)",
      "t0098": "{{v0}}: bloco (allowlocal LLM)",
      "t0099": "LLM por favor falhou: {{v0}}",
      "t0100": "{{v0}}–{{v1}} Não encontradoDisponívelporta",
      "t0101": "por favor confirme: {{v0}}",
      "t0102": "{{v0}}s vontade com 1 (desligamento +N com )",
      "t0103": "reiniciar ( {{v0}} )",
      "t0104": "desligado ( {{v0}} )",
      "t0105": "Falha na leitura: {{v0}}",
      "t0106": "Falha: {{v0}}",
      "t0107": "serviço inválido: {{v0}}",
      "t0108": "caminho permitir gravação: {{v0}}",
      "t0109": "falha na limpeza/recarregamento: {{v0}}",
      "t0110": "Banco de dados {{v0}}: chave {{v1}}",
      "t0111": "(digite {{v0}} — )",
      "t0112": "Escreveu {{v0}}",
      "t0113": "Falha na gravação: {{v0}}",
      "t0114": "Chave ausente ou não excluída",
      "t0115": "casa: {{v0}}",
      "t0116": "não é possível capturar instantâneos JSON: {{v0}}",
      "t0117": "{{v0}} restrito",
      "t0118": "home confirmarFrase=\"{{v0}}\"()",
      "t0119": "simulação: instantâneo {{v0}} {{v1}} caminho (100)",
      "t0120": "falha no teste: {{v0}}",
      "t0121": "restaurar instantâneo {{v0}} → {{v1}}",
      "t0122": "falha na restauração saída={{v0}}",
      "t0123": "Gerenciamento de escrita: {{v0}}",
      "t0124": "usuário do projeto Linux {{v0}} (Corresponder usuário ysks_*,ysk_*)",
      "t0125": "por favor: cp {{v0}} /etc/ssh/sshd_config.d/ && systemctl reload sshd",
      "t0126": "sshd -t Falha, não recarrega: {{v0}}",
      "t0127": "Instalado {{v0}} e recarregue o sshd",
      "t0128": "Falha no recarregamento instalado: {{v0}}",
      "t0129": "Escreveu {{v0}} ({{v1}} bytes)",
      "t0130": "Configurações gerenciadas do Nginx: {{v0}} (painel dataDir nginx/conf.d)",
      "t0131": "Desconhecido: {{v0}}",
      "t0132": "{{v0}}: {{v1}}",
      "t0133": "{{v0}} — ignorado (forçar pode)",
      "t0134": "Instalação do WordPress — {{v0}}",
      "t0135": "domínio: {{v0}}",
      "t0136": "entrada {{v0}}.wsgi:application (gunicorn)",
      "t0137": "irá carregar construir --release;./target/release/{{v0}}",
      "t0138": "Axum: construção de carga --release crates.io",
      "t0139": "./target/release/{{v0}}",
      "t0140": "criar {{v0}}, {{v1}}, Erro {{v2}}",
      "t0141": "{{v0}}doneproject usuário Linux (página → createsystemuser).",
      "t0142": "home: /home/ysk-server-{{v0}} · usuário: {{v1}}",
      "t0143": "fez chown {{v0}}:{{v1}} → {{v2}}",
      "t0144": "com usuário do projeto {{v0}}",
      "t0145": "pidfile com runuser -u {{v0}} iniciar",
      "t0146": "Conjunto FPM escrito: {{v0}}",
      "t0147": "Conjunto habilitado: {{v0}}",
      "t0148": "/etc/php/{{v0}}/fpm não encontrado — instale php{{v1}}-fpm",
      "t0149": "{{v0}} Instalado",
      "t0150": "instalar {{v0}}",
      "t0151": "não instale {{v0}}",
      "t0152": "Falha na sonda SSH: {{v0}}",
      "t0153": "servidor de nomes: {{v0}}",
      "t0154": "diretório de zona ({{v0}}.zone)",
      "t0155": "diretório de zona: {{v0}}",
      "t0156": "falha na recarga remota: {{v0}}",
      "t0157": "{{v0}}: falha no scp {{v1}}",
      "t0158": "scp {{v0}} OK → {{v1}}",
      "t0159": "scp /Falha (ok={{v0}} falha={{v1}})",
      "t0160": "falha na ativação: {{v0}}",
      "t0161": "falha na desativação: {{v0}}",
      "t0162": "UFW DENY de {{v0}} (regra,)",
      "t0163": "falha na negação: {{v0}}",
      "t0164": "UFW NEGAR {{v0}}",
      "t0165": "falha na exclusão: {{v0}}",
      "t0166": "regra #{{v0}}",
      "t0167": "#{{v0}} Falha: {{v1}}",
      "t0168": "permitir {{v0}}/{{v1}}",
      "t0169": "falha na permissão: {{v0}}",
      "t0170": "falha na recarga ({{v0}}): {{v1}}",
      "t0171": ": com usuário do projeto {{v0}} ativo",
      "t0172": "Nó: {{v0}}",
      "t0173": "porta: {{v0}}",
      "t0174": "Nó do painel aplicado ({{v0}})",
      "t0175": "aplicarNão encontrado: {{v0}}",
      "t0176": "com unidade systemd: {{v0}}",
      "t0177": "com PM2: {{v0}}",
      "t0178": "startprocessFailed: {{v0}}",
      "t0179": "iniciar pid={{v0}}, pidfile={{v1}}",
      "t0180": "Configurações Nginx (arquivo gerenciado): {{v0}}",
      "t0181": "criar página: {{v0}}",
      "t0182": ": {{v0}}",
      "t0183": "Configurações Nginx: {{v0}}",
      "t0184": "diretório: {{v0}}",
      "t0185": "HTTP: {{v0}} ({{v1}})",
      "t0186": ": {{v0}}",
      "t0187": "→ {{v0}}",
      "t0188": "certificado: {{v0}}",
      "t0189": "SSL ativado (caminho Let's Encrypt; ou certificado da página SSL {{v0}})",
      "t0190": "falha ao recarregar Nginx: {{v0}}",
      "t0191": "Anfitrião da escrita: {{v0}}",
      "t0192": "Tempo de execução {{v0}} — Git, processo de reinicialização",
      "t0193": "Escreveu {{v0}} ({{v1}})",
      "t0194": "Usuário do pool PHP-FPM: {{v0}} (projeto)",
      "t0195": "versão de tempo de execução → {{v0}}",
      "t0196": "painel php.ini ({{v0}} php_admin_*)",
      "t0197": "Configurações PHP-FPM Nginx: {{v0}}",
      "t0198": "Recarga Nginx ={{v0}}: {{v1}}",
      "t0199": "Servidor PHP pid={{v0}} @ 127.0.0.1:{{v1}}",
      "t0200": "TERMO SIG {{v0}}",
      "t0201": "SIGKILL {{v0}}",
      "t0202": "pid {{v0}}",
      "t0203": "Tempo de execução do deployProcess\"{{v0}}\"",
      "t0204": ": com projectuser {{v0}} e start",
      "t0205": "Tempo de execução: {{v0}} · porta {{v1}} · entrada {{v2}}",
      "t0206": ": {{v0}}",
      "t0207": "Falha: {{v0}}",
      "t0208": "Painel aplicado {{v0}} ({{v1}})",
      "t0209": "Escreveu systemd: {{v0}}",
      "t0210": "ativar --now unidade do projeto (Usuário = {{v0}})",
      "t0211": "Falha na inicialização do systemctl: {{v0}}",
      "t0212": "unidade writesystem falhou: {{v0}}",
      "t0213": "pidfile start pid={{v0}}${modo === 'isolado'?",
      "t0214": "Falha na inicialização do pidfile: {{v0}}",
      "t0215": "verificação não aprovada ({{v0}}ms): {{v1}}",
      "t0216": "verificação aprovada ({{v0}}ms)",
      "t0217": "Escreveu Nginx: {{v0}}",
      "t0218": "{{v0}} IP banido",
      "t0219": "cancelei o banimento {{v0}} @ {{v1}}",
      "t0220": "falha no desbanimento: {{v0}}",
      "t0221": "gerenciar: {{v0}} ({{v1}} )",
      "t0222": "sshd ignoreip {{v0}} {{v1}} · Status: aplicado",
      "t0223": "fail2ban-client ignoreip Falha: {{v0}} (arquivo gerenciadoWrote; aplicado)",
      "t0224": "Prisões fail2ban: {{v0}}",
      "t0225": "Unidade escrita {{v0}}",
      "t0226": "O status ainda é {{v0}} (não aplicado)",
      "t0227": "Apply_status inesperado: {{v0}}",
      "t0228": "banco de dados: {{v0}} ( 0–{{v1}})",
      "t0229": "para {{v0}}",
      "t0230": "não é possível acessar o diretório conf do sistema: {{v0}}",
      "t0231": "conf Falha: {{v0}}",
      "t0232": "reiniciar {{v0}}",
      "t0233": "para {{v0}} Falha: {{v1}}",
      "t0234": "diretório de negação: {{v0}}",
      "t0235": "diretório: {{v0}}",
      "t0236": "diretório ignorado (varredura): {{v0}}",
      "t0237": "{{v0}} (não)",
      "t0238": "diário php{{v0}}-fpm (log do pool não)",
      "t0239": "grep\"{{v0}}\": {{v1}} (varredura {{v2}} bytes)",
      "t0240": "{{v0}} (arquivo {{v1}} bytes, )",
      "t0241": "{{v0}} (arquivo {{v1}} bytes)",
      "t0242": "para {{v0}} log (não desligado)",
      "t0243": "não consigo ler: {{v0}}",
      "t0244": "\"{{v0}}\": {{v1}}, {{v2}}()",
      "t0245": "{{v0}} servidorNão instalado",
      "t0246": "{{v0}} serviço não está em execução",
      "t0247": "{{v0}} Não instalado",
      "t0248": ": {{v0}}",
      "t0249": "servidor: {{v0}}",
      "t0250": "{{v0}} Pronto",
      "t0251": "{{v0}} Instalação incompleta",
      "t0252": "{{v0}} início do serviço",
      "t0253": "Falha na inicialização: {{v0}}",
      "t0254": "Suporta Node.js {{v0}}; versões disponíveis: {{v1}}",
      "t0255": "Suporta versão PHP {{v0}}; Disponível: {{v1}}",
      "t0256": "Suporta versão Python {{v0}}; Disponível: {{v1}}",
      "t0257": "Suporta versão Go {{v0}}; Disponível: {{v1}}",
      "t0258": "Tempo de execução desconhecido: {{v0}}",
      "t0259": "dig: sem resposta (NXDOMAIN ou vazio)",
      "t0260": "{{v0}}",
      "t0261": "Falha no PostgreSQL: {{v0}}",
      "t0262": "Falha no MySQL: {{v0}}",
      "t0263": "{{v0}}: não é possível DROP — EXECUTE+root (expirado)",
      "t0264": "{{v0}}: Falha no DROP {{v1}}",
      "t0265": "{{v0}}: Falha no DROP {{v1}}",
      "t0266": "{{v0}}: expirado (não conta do sistema DROP)",
      "t0267": "Usuário FTP: {{v0}}",
      "t0268": "criar FTP {{v0}}",
      "t0269": "Caminho da prisão: {{v0}}",
      "t0270": "Senha armazenada como hash criptografado (não texto simples)",
      "t0271": "com usuário do projeto Linux: {{v0}} (aplicar vsftpd )",
      "t0272": "Nome de usuário inválido ignorado",
      "t0273": "{{v0}}: senha → hash criptografado",
      "t0274": "{{v0}} hashnot crypt (openssl indisponível)— pode falhar",
      "t0275": "{{v0}} hash de senha, não é possível",
      "t0276": "{{v0}} projeto linuxUser — convidado\"{{v1}}\" (por favor FTP)",
      "t0277": "Escreveu configurações {{v0}}",
      "t0278": "{{v0}}",
      "t0279": "{{v0}} Aplicado, vsftpd em execução",
      "t0280": "ignorado chown {{v0}}: usuário do sistema\"{{v1}}\" (por favor, primeiro crie o projeto do usuário do sistema)",
      "t0281": "chown falhou {{v0}}: {{v1}}",
      "t0282": "Diretório FTP ({{v0}})",
      "t0283": "diretório do projeto {{v0}}",
      "t0284": "projeto {{v0}} público",
      "t0285": "e-mail {{v0}}",
      "t0286": "não createsystemuser (requer permissão de administrador do sistema). casa: {{v0}}; diretório.",
      "t0287": "{{v0}}; casa {{v1}}",
      "t0288": "pare {{v0}}",
      "t0289": "Casa removida: {{v0}}",
      "t0290": "casa não (pode): {{v0}} — {{v1}}",
      "t0291": "denydelete caminho inicial: {{v0}}",
      "t0292": "não é o sistema operacional inicial (requer root): {{v0}}; usuário do sistema {{v1}} pode",
      "t0293": "Falha na zona de carregamento do pdnsutil: {{v0}}",
      "t0294": "zona pdnsutil {{v0}}",
      "t0295": "systemctl {{v0}} fail2ban ok",
      "t0296": "{{v0}} falhou: {{v1}}",
      "t0297": "banimento fail2ban {{v0}} @ {{v1}} (, limites de banimento)",
      "t0298": "banip falhou: {{v0}}",
      "t0299": "prisões: {{v0}}",
      "t0300": "ignoreip: dataDir/fail2ban/ignoreip.txt",
      "t0301": "verificação de instalação: {{v0}}",
      "t0302": "projeto {{v0}} (pacote: {{v1}})",
      "t0303": "{{v0}} (pacote: {{v1}})",
      "t0304": "banco de dados {{v0}} (pacote: {{v1}})",
      "t0305": "Escreveu {{v0}} (DB {{v1}}@{{v2}}; Disponível)",
      "t0306": "Falha na inicialização do pm2: {{v0}}",
      "t0307": "início pm2 {{v0}}",
      "t0308": "{{v0}} não está instalado",
      "t0309": "{{v0}}",
      "t0310": "Aplicado {{v0}}",
      "t0311": "com pode reiniciar: {{v0}}",
      "t0312": "aplicar {{v0}}",
      "t0313": "reinicie (por favor reinicie): {{v0}}",
      "t0314": "ALTER SYSTEM {{v0}} e recarregue",
      "t0315": "reiniciar: {{v0}}",
      "t0316": "fez {{v0}} {{v1}}",
      "t0317": "ini: {{v0}}",
      "t0318": "/etc/php/{{v0}}/fpm — primeiro instale o php{{v1}}-fpm",
      "t0319": "Aplicado {{v0}} e recarregado php{{v1}}-fpm",
      "t0320": "ini; falha ao recarregar: {{v0}}",
      "t0321": "Rascunho de zona DNS {{v0}} (para gravação/aplicação de DNS)",
      "t0322": "IPv6 {{v0}}",
      "t0323": "domínio de correio {{v0}}",
      "t0324": "Rascunho do banco de dados MySQL {{v0}} (para aplicação no banco de dados)",
      "t0325": "ignorado: diretório {{v0}}",
      "t0326": "Projeto(s) {{v0}}/{{v1}} com backup",
      "t0327": "(ignorado {{v0}} sem um diretório inicial)",
      "t0328": "diretório do projeto: {{v0}}",
      "t0329": "falha no tar: {{v0}}",
      "t0330": "Backup de gravação {{v0}}",
      "t0331": "simulação: arquivo {{v0}}+ ( {{v1}})",
      "t0332": "não pode: {{v0}}",
      "t0333": "restaurar (web) para {{v0}}",
      "t0334": "falha na restauração da web: {{v0}}",
      "t0335": "falha na restauração: {{v0}}",
      "t0336": "de {{v0}} restaurar para diretório do projeto",
      "t0337": "fez chown {{v0}}:{{v1}} → {{v2}}",
      "t0338": ": {{v0}}",
      "t0339": "gerenciar crontab: {{v0}}",
      "t0340": "falha no crontab: {{v0}}",
      "t0341": "pg_dump falhou: {{v0}}",
      "t0342": "falha no despejo: {{v0}}",
      "t0343": "psql falhou: {{v0}}",
      "t0344": "falha na importação: {{v0}}",
      "t0345": "target {{v0}} not git — nega clone com dados (.ysk-scaffold )",
      "t0346": "clonou {{v0}} → {{v1}}",
      "t0347": "puxar atualização: {{v0}}",
      "t0348": "linuxUser inválido: {{v0}}",
      "t0349": "Aplicado {{v0}}: {{v1}} + www-data/nginx; casa 750, público g+rX",
      "t0350": "ysk-web applyFailed: {{v0}}",
      "t0351": "caminho {{v0}}",
      "t0352": "configuração nginx: {{v0}}",
      "t0353": "Falha no download: {{v0}}",
      "t0354": "Administrador → {{v0}}",
      "t0355": "{{v0}}",
      "t0356": "configuração nginx: {{v0}}",
      "t0357": "→ {{v0}}",
      "t0358": "porta válida: {{v0}}",
      "t0359": "com o usuário {{v0}} instale o crontab",
      "t0360": "chave {{v0}}",
      "t0361": "zona → {{v0}} (recarregar DNS; registrador manual DS)",
      "t0362": "não para zona gerenciada ( dns/zones/{{v0}}.zone)—",
      "t0363": "{{v0}} arquivo em {{v1}}",
      "t0364": "TCP {{v0}}:{{v1}} OK ({{v2}}ms)",
      "t0365": "TCP {{v0}}:{{v1}} falhou: {{v2}}",
      "t0366": "Falha no PING: {{v0}}",
      "t0367": ": {{v0}}MB > {{v1}}MB",
      "t0368": "({{v0}} / {{v1}} MiB), não pode{{v2}}",
      "t0369": "O caminho inicial não está pronto ({{v0}})",
      "t0370": "Usuário Linux {{v0}} não provisionado",
      "t0371": "Pronto {{v0}} / degradado {{v1}} / não isolado {{v2}} ({{v3}} total)",
      "t0372": "· Pendente: {{v0}}{{v1}}",
      "t0373": "Isolamento do projeto \"{{v0}}\"",
      "t0374": "para caminho local {{v0}}",
      "t0375": "identidade {{v0}}: {{v1}}",
      "t0376": "sftp (identidade) para {{v0}} com êxito",
      "t0377": "sftp (identidade) falhou: {{v0}}",
      "t0378": "sftp para {{v0}} com êxito",
      "t0379": "sftp falhou: {{v0}}",
      "t0380": "sftp para {{v0}} com êxito",
      "t0381": "sftp falhou: {{v0}} (pode definir backup remote identityId)",
      "t0382": "S3 {{v0}}",
      "t0383": "S3 falhou: {{v0}}",
      "t0384": ": {{v0}}/{{v1}} admin Habilitado 2FA",
      "t0385": "Política não aplicada: {{v0}}/{{v1}} administradores têm 2FA habilitado",
      "t0386": "{{v0}} CAMINHO",
      "t0387": "{{v0}} não encontrado",
      "t0388": "Instale {{v0}} ou adicione-o ao PATH",
      "t0389": "Versões disponíveis: {{v0}}",
      "t0390": "{{v0}}% ({{v1}}MB)",
      "t0391": "{{v0}}% ({{v1}})",
      "t0392": "início do serviço {{v0}}",
      "t0393": "Modo: {{v0}}",
      "t0394": "Pronto {{v0}} / Degradado {{v1}} / Ausente {{v2}} ({{v3}} total)",
      "t0395": "Não encontrado ({{v0}})",
      "t0396": "nó host: {{v0}}",
      "t0397": "hostphp: {{v0}}",
      "t0398": "hospedeiro python: {{v0}}",
      "t0399": "anfitrião vai: {{v0}}",
      "t0400": "carga hospedeira: {{v0}}",
      "t0401": "Nó disponível: {{v0}}",
      "t0402": "PHP disponível: {{v0}}",
      "t0403": "Python disponível: {{v0}}",
      "t0404": "Disponível: {{v0}}",
      "t0405": "Ferrugem disponível: {{v0}}",
      "t0406": "instalar o nó {{v0}}",
      "t0407": "instalar PHP {{v0}}",
      "t0408": "instale Python {{v0}}",
      "t0409": "instale Go {{v0}} em /usr/local/ysk/go",
      "t0410": "instale Rust ({{v0}}) em /usr/local/ysk/rust",
      "t0411": "Falha na instalação: {{v0}}",
      "t0412": "Script de instalação do OpenJDK {{v0}} preparado",
      "t0413": "Script de instalação Kotlin {{v0}} preparado (precisa de JDK)",
      "t0414": "Script de instalação do pão preparado ({{v0}})",
      "t0415": "casa do projeto: {{v0}}",
      "t0416": "targetuser {{v0}} (inicial do projeto); please.ssh chown (API irá)",
      "t0417": "fez chown {{v0}} → {{v1}}",
      "t0418": "chown.ssh falhou: {{v0}}",
      "t0419": "Chave excluída · chaves_autorizadas",
      "t0420": "Suporta: {{v0}}",
      "t0421": "TTL {{v0}} 30–604800",
      "t0422": "{{v0}} CNAME e ()",
      "t0423": "{{v0}} Alvo CNAME",
      "t0424": "configuraçõesFalha: {{v0}}",
      "t0425": "{{v0}} Escreveu configurações de gerenciamento",
      "t0426": "não é possível arquivar: {{v0}}",
      "t0427": "{{v0}} configurações para diretório do sistema",
      "t0428": "{{v0}} inválido",
      "t0429": "casa, não caminho ({{v0}})",
      "t0430": "usermod -s falhou: {{v0}}",
      "t0431": "Falha: {{v0}}",
      "t0432": "Falha: {{v0}}",
      "t0433": "set-property falhou: {{v0}} (implantar unidade willwrite)",
      "t0434": "unidade {{v0}} não ativa — limita o banco de dados, implanta unidade de gravação",
      "t0435": "setquota não foi bem-sucedido (o sistema de arquivos não pode ser user_xattr/quota): {{v0}}",
      "t0436": "casa: {{v0}}",
      "t0437": "fez chown {{v0}} → {{v1}}",
      "t0438": "cabeçalho superior falhou: {{v0}}",
      "t0439": "ps completoFalha: {{v0}}",
      "t0440": "NI={{v0}}",
      "t0441": "PID {{v0}} (processo.pid)",
      "t0442": "ou sonda (kill -0 exit {{v0}})",
      "t0443": "kill -s {{v0}} falhou: ${err ||",
      "t0444": "{{v0}} → PID {{v1}}",
      "t0445": "{{v0}} projeto(s) suspenso(s)",
      "t0446": "{{v0}} projeto(s) com usuários do sistema ausentes",
      "t0447": "{{v0}} aprovação(ões) pendente(s)",
      "t0448": "Certificado expirado: {{v0}}",
      "t0449": "O certificado expira em {{v0}} dia(s): {{v1}}",
      "t0450": "Horário: {{v0}}",
      "t0451": "Listagem DNSBL: {{v0}}",
      "t0452": "{{v0}} aplicar falha(s)/bloqueado",
      "t0453": "{{v0}} item(s) ainda escrito(s)/rascunho",
      "t0454": "Predefinição de defesa automática: {{v0}}",
      "t0455": "Falha na operação: {{v0}}",
      "t0456": "Alto uso do disco do diário: ≈{{v0}} MB",
      "t0457": "Limite {{v0}} MB — aspire no Log Center ou ajuste a retenção",
      "t0458": "df falhou: {{v0}}",
      "t0459": "{{v0}} projeto ( {{v1}})",
      "t0460": "versão {{v0}} → {{v1}}",
      "t0461": "aumentar {{v0}}",
      "t0462": "Falha na saída={{v0}}",
      "t0463": "apt list --upgradable: {{v0}} pode aumentar",
      "t0464": "apt list --upgradable indisponível (saída {{v0}}); política do apt-cache",
      "t0465": "Política dpkg+apt-cache: pacote {{v0}}",
      "t0466": "Política dpkg/apt-cache Falhou ou (saída {{v0}})— pode apt ou permissão",
      "t0467": "Nó {{v0}} (não apt nodejs packagecan raise)",
      "t0468": "pode aumentar (candidato ≠ atual): {{v0}}",
      "t0469": "registro npm HTTP {{v0}}",
      "t0470": "GitHub lança HTTP {{v0}}",
      "t0471": "Pacote GitHub.json HTTP {{v0}}",
      "t0472": "npm: {{v0}}@{{v1}}",
      "t0473": "npm {{v0}} indisponível: {{v1}}",
      "t0474": "Versões do GitHub indisponíveis: {{v0}}",
      "t0475": "Pacote GitHub.json ({{v0}}): {{v1}}",
      "t0476": "Pacote GitHub.json indisponível: {{v0}}",
      "t0477": "atualização: {{v0}} → {{v1}}",
      "t0478": "diretório {{v0}} repositório git — pode YSK_SOURCE_ROOT ou npm (YSK_NPM_PACKAGE)",
      "t0479": "Falha no download do tarball do GitHub: {{v0}}",
      "t0480": "para {{v0}} (somente teste) — não Runninginstall; por favor /git diretório pronto",
      "t0481": "git: {{v0}}",
      "t0482": "git apply {{v0}} Falha (saída {{v1}}): {{v2}}",
      "t0483": "updatetarget {{v0}} e build - reinicie a versão do servidor ysk",
      "t0484": "Instalado {{v0}}",
      "t0485": "Falha na atualização do npm: {{v0}}",
      "t0486": "Instalação YSK_NPM_PACKAGE {{v0}}",
      "t0487": "Falha na instalação de YSK_NPM_PACKAGE: {{v0}}",
      "t0488": "pode aumentar {{v0}} → {{v1}} (CVE CRÍTICO,)",
      "t0489": "pode aumentar {{v0}} → {{v1}} (CVE ALTO,)",
      "t0490": "pode aumentar {{v0}} → {{v1}} (pode,)",
      "t0491": "pode aumentar {{v0}} → {{v1}} ()",
      "t0492": "pode aumentar {{v0}} → {{v1}} (candidato apto)",
      "t0493": "Aumento disponível, OSV {{v0}}",
      "t0494": "status do serviço: {{v0}}",
      "t0495": "detectar para poder: {{v0}}",
      "t0496": "Agente desconhecido em execução: {{v0}}",
      "t0497": "Agente de suporte: {{v0}}",
      "t0498": "instalaçãoFailed (willSuccess): {{v0}}",
      "t0499": "Sessão de agente não encontrada: {{v0}}",
      "t0500": "Não encontrado: {{v0}}",
      "t0501": "usuário: {{v0}}",
      "t0502": "usuário: {{v0}}",
      "t0503": "usuário SFTP do projeto (ysks_/ysk_, internal-sftp kbd-interactive): {{v0}}",
      "t0504": "do usuário estrito: {{v0}}",
      "t0505": "{{v0}} usuário chave pública+TOTP, desabilitar senha",
      "t0506": "arquivo gerenciado: {{v0}}",
      "t0507": "Instalado {{v0}} e recarregue o sshd",
      "t0508": "instalação/sshd -t Falha: {{v0}}",
      "t0509": "Arquivo gerenciado pelo PAM: {{v0}}",
      "t0510": "chown falhou: {{v0}}",
      "t0511": "Aviso: modo 400 (estatística: {{v0}})",
      "t0512": "PAM (arquivo gerenciado): {{v0}}",
      "t0513": "sshd (arquivo gerenciado): {{v0}}",
      "t0514": "scratch (este): {{v0}} — por favor salve",
      "t0515": "pam.d/sshd: {{v0}}",
      "t0516": "usuário {{v0}} SSH 2FA ({{v1}}). desabilitar/aposentar.",
      "t0517": "chave mestra secreta: {{v0}}",
      "t0518": "chown falhou: {{v0}}",
      "t0519": "ssh falhou: {{v0}}",
      "t0520": "chave mestra: {{v0}} (faça backup)",
      "t0521": "chave mestra: {{v0}}",
      "t0522": "impressão digital: {{v0}} ({{v1}})",
      "t0523": "Escreveu UFW somente CF: {{v0}}",
      "t0524": "porta: {{v0}}",
      "t0525": "CF IPv4: {{v0}}",
      "t0526": "CF IPv6: {{v0}}",
      "t0527": "ufw Falha: {{v0}}",
      "t0528": "IP com falha de autenticação: {{v0}}",
      "t0529": "IP principal {{v0}}",
      "t0530": "{{v0}} · {{v1}}",
      "t0531": "Predefinição de defesa comutada automaticamente → {{v0}}{{v1}}",
      "t0532": "Predefinição de defesa comutada automaticamente: {{v0}}",
      "t0533": "SSH falhou×{{v0}}",
      "t0534": "Falha na autenticação {{v0}} IP",
      "t0535": "por favor ×{{v0}}",
      "t0536": "digitalizar×{{v0}}",
      "t0537": "{{v0}}/{{v1}}",
      "t0538": "concluído {{v0}} IP: Sucesso {{v1}}",
      "t0539": ": banimento automático {{v0}}",
      "t0540": ": {{v0}}",
      "t0541": "banir {{v0}} IP",
      "t0542": "não é possível zonear {{v0}} (HTTP {{v1}})",
      "t0543": ": {{v0}} nível_de_segurança → {{v1}}",
      "t0544": ": {{v0}} → nível_de_segurança={{v1}}",
      "t0545": "({{v0}})",
      "t0546": "{{v0}}",
      "t0547": "confirme=\"{{v0}}\"",
      "t0548": "Escreveu limites de taxa Nginx: {{v0}}",
      "t0549": "Marcadores de limite de taxa injetados em {{v0}} vhost(s)",
      "t0550": "Predefinição de defesa ativa → {{v0}}",
      "t0551": "banir → {{v0}} ({{v1}} / {{v2}})",
      "t0552": "Predefinição de defesa aplicada: {{v0}}",
      "t0553": "fail2ban falhou: {{v0}}",
      "t0554": "ufw falhou: {{v0}}",
      "t0555": "{{v0}}",
      "t0556": "falha na exclusão do ufw: {{v0}}",
      "t0557": "{{v0}}",
      "t0558": "{{v0}}: {{v1}}",
      "t0559": "para {{v0}} vhost",
      "t0560": "cluster_size={{v0}} <nó {{v1}}",
      "t0561": "{{v0}} cluster de nós",
      "t0562": "sonda Suporta {{v0}}",
      "t0563": "mysql/mariadb falhou: {{v0}}",
      "t0564": "SHOW REPLICA/SLAVE falhou: {{v0}}",
      "t0565": "SHOW MASTER falhou: {{v0}}",
      "t0566": "réplica para recuperação, ={{v0}}",
      "t0567": "recuperação primária, ={{v0}}",
      "t0568": "réplica Função anormal={{v0}}",
      "t0569": "mestre, função={{v0}}",
      "t0570": "{{v0}} · {{v1}}",
      "t0571": "falha no tar: {{v0}}",
      "t0572": "{{v0}} ({{v1}} bytes)",
      "t0573": "{{v0}} alvo de pares",
      "t0574": "{{v0}}: identidade {{v1}} indisponível — chave",
      "t0575": "{{v0}}: ssh mkdir falhou {{v1}}",
      "t0576": "{{v0}}: {{v1}}",
      "t0577": "{{v0}}/{{v1}}: scp falhou {{v2}}",
      "t0578": "{{v0}} agente · op={{v1}}",
      "t0579": "{{v0}}: falha no enfileiramento {{v1}}",
      "t0580": "Desconhecido {{v0}}",
      "t0581": "Galera conf ({{v0}})",
      "t0582": "{{v0}} instale o conf e junte-se (/SSH/frota)",
      "t0583": "instalar conf → systemctl reiniciar mariadb (não nó de inicialização)",
      "t0584": "Configuração não encontrada: {{v0}}",
      "t0585": "aplicação local Suporta {{v0}}",
      "t0586": "Drop-in do sistema instalado: {{v0}}",
      "t0587": "writesystem conf Falha: {{v0}}",
      "t0588": "galera_new_cluster falhou: {{v0}}",
      "t0589": "reinicialização do systemctl {{v0}} (de /slot/sentinel scripts/)",
      "t0590": "o systemctl reiniciou {{v0}}",
      "t0591": "Falha na sonda ssh: {{v0}}",
      "t0592": "falha na sonda de réplica: {{v0}}",
      "t0593": "falha na sonda primária: {{v0}}",
      "t0594": "{{v0}} sonda de nó OK · tamanho={{v1}}",
      "t0595": "{{v0}} sonda de nó OK",
      "t0596": "instale em {{v0}} e {{v1}}",
      "t0597": "scp falhou {{v0}}",
      "t0598": "falha na instalação do conf: {{v0}}",
      "t0599": "conf Escreveu reinicialização {{v0}} Falha",
      "t0600": "Escreveu {{v0}}${reiniciar?",
      "t0601": "Suporta: {{v0}}",
      "t0602": "Suporta cluster: {{v0}}",
      "t0603": "parar {{v0}} unidade do projeto (ok-ish {{v1}})",
      "t0604": "pare, não saia ( {{v0}})— despejo",
      "t0605": "e {{v0}} RDB (despejo ignorado)",
      "t0606": "concluído → {{v0}}",
      "t0607": "criarusuário {{v0}} uid={{v1}}",
      "t0608": "usuário {{v0}}",
      "t0609": "falha na adição do usuário: {{v0}}",
      "t0610": "chown falhou: {{v0}}",
      "t0611": "casa, pulou chown: {{v0}}",
      "t0612": "despejar ou: {{v0}}",
      "t0613": "RDB: {{v0}}",
      "t0614": "restaurar RDB → {{v0}}",
      "t0615": "Falha no RDB: {{v0}}",
      "t0616": "início/ping do redis: {{v0}}",
      "t0617": ": {{v0}} — despeja dataDir rsync em (dumpRelPath)",
      "t0618": "não é possível segmentar sha256: {{v0}}",
      "t0619": "ysk.json sha256 {{v0}}...",
      "t0620": "ysk.json local={{v0}} remoto={{v1}}",
      "t0621": "diretório de dados local: {{v0}}",
      "t0622": "dadosDir: {{v0}}",
      "t0623": "pulou para casa: {{v0}}",
      "t0624": "dataDir inicial, dataDir: {{v0}}",
      "t0625": "falha no início do rsync {{v0}}",
      "t0626": "transferência: falha no rsync inicial {{v0}}",
      "t0627": "ignorado: {{v0}}",
      "t0628": "transferência concluída → {{v0}}:{{v1}}",
      "t0629": "projeto {{v0}} casa: {{v1}}",
      "t0630": "projeto {{v0}} bind_ip={{v1}} — pode ( IP )",
      "t0631": "projeto {{v0}} casa, não caminho: {{v1}}",
      "t0632": "Casa órfã no disco (sem projeto de loja correspondente): {{v0}}",
      "t0633": "Maildir: {{v0}}",
      "t0634": "{{v0}} — não é possível segmentar",
      "t0635": "não é possível sondar {{v0}}",
      "t0636": "{{v0}} · {{v1}}",
      "t0637": "projeto {{v0}} · {{v1}} · Banco de dados {{v2}} · Redis {{v3}}",
      "t0638": "Instalar software {{v0}} · homes {{v1}}",
      "t0639": "host de transição {{v0}}",
      "t0640": "{{v0}} aviso(s) — revisão antes da transição.",
      "t0641": "chave {{v0}}",
      "t0642": "não pode chave: {{v0}}",
      "t0643": "targetnot escrever chaves_autorizadas: {{v0}}",
      "t0644": "{{v0}} instalar (chave)",
      "t0645": "deletekeyFalha: {{v0}}",
      "t0646": "{{v0}} Disponível",
      "t0647": "dadosDir: {{v0}}",
      "t0648": "~{{v0}}",
      "t0649": "Disponível {{v0}} (despejo)",
      "t0650": ": Disponível {{v0}}, ≥ {{v1}}",
      "t0651": "Aviso {{v0}} (não)",
      "t0652": "Conexão SSH {{v0}}",
      "t0653": "usuário {{v0}} não root (MVP requer root)",
      "t0654": "Suporta SO ({{v0}}); requer Debian/Ubuntu",
      "t0655": "alvoDisponível {{v0}} ≥ {{v1}}",
      "t0656": "alvo: Disponível {{v0}}, requer {{v1}}",
      "t0657": "alvo {{v0}}/ysk.json — negar (forceWipeTarget)",
      "t0658": "diretório de destino ysk.json: {{v0}}",
      "t0659": "diretório de destinocriar: {{v0}}",
      "t0660": "{{v0}}s",
      "t0661": "{{v0}}s ≥ 120s (TLS/TOTP)",
      "t0662": "projeto {{v0}} bind_ip={{v1}} — para (interface)",
      "t0663": "{{v0}} projeto.bind_ip",
      "t0664": "não é possível persistir bind_ip: {{v0}}",
      "t0665": "sincronização nginx: {{v0}}",
      "t0666": ": {{v0}}",
      "t0667": "identidade {{v0}} indisponível",
      "t0668": "SSH falhou na saída={{v0}}: {{v1}}",
      "t0669": "caminho: {{v0}}",
      "t0670": "falha no rsync saída={{v0}}: {{v1}}",
      "t0671": "Redis RDB escreveu {{v0}} (--rdb)",
      "t0672": "--rdb falhou: {{v0}}",
      "t0673": "Falha no BGSAVE: {{v0}}",
      "t0674": "Redis RDB {{v0}} → {{v1}} (BGSAVE)",
      "t0675": "não é possível Redis RDB (src={{v0}})",
      "t0676": "{{v0}} {{v1}} {{v2}}",
      "t0677": "casa, pulou: {{v0}}",
      "t0678": "casa {{v0}}",
      "t0679": "Maildir: {{v0}}",
      "t0680": "maildir {{v0}}",
      "t0681": "Impressão digital ysk.json (pode reaplicar) local≠fonte",
      "t0682": "Erro de prontidão: {{v0}}",
      "t0683": "Substituição de DNS: com IP A/AAAA → {{v0}}{{v1}}",
      "t0684": "verificação falhou: {{v0}} incompatibilidade",
      "t0685": "verificação aprovada (incompatibilidades={{v0}})",
      "t0686": "destino inválido: {{v0}} (requer root@host ou host)",
      "t0687": "emprego não encontrado {{v0}}",
      "t0688": ": alvo YSK_EXECUTE = 1 postagem de migração do servidor ysk --job {{v0}} --data-dir {{v1}}",
      "t0689": "concluído → {{v0}}",
      "t0690": "host de transição: {{v0}}",
      "t0691": "postagem concluída @ {{v0}}",
      "t0692": "Trabalho não encontrado {{v0}} (dataDir rsync)",
      "t0693": "não sucesso ({{v0}})",
      "t0694": "inicialização concluída → {{v0}}",
      "t0695": "não falhou: {{v0}}",
      "t0696": "Modo de suporte: {{v0}}",
      "t0697": "Nó de borda não encontrado: {{v0}}",
      "t0698": "nó {{v0}} borda (ou origem)",
      "t0699": "Suporta DNS: {{v0}}",
      "t0700": "Suporta modo SSL: {{v0}}",
      "t0701": "CDN {{v0}}",
      "t0702": "O nó do escudo de origem não existe: {{v0}}",
      "t0703": "bordas: {{v0}}",
      "t0704": "URL de origem (do vínculo do projeto): {{v0}}",
      "t0705": "atualizar CDN {{v0}}",
      "t0706": "criar CDN {{v0}}",
      "t0707": "escudo de origem: escudo de borda {{v0}} → {{v1}}",
      "t0708": "origin.kind = projeto, não projectOriginUrl - {{v0}}",
      "t0709": "borda {{v0}} ({{v1}}): planejado (não espalhado - PR-C3)",
      "t0710": "borda {{v0}}: nó",
      "t0711": "Escreveu nginx gerenciado: {{v0}}",
      "t0712": "Borda escrita: {{v0}}",
      "t0713": "local nginx -t falhou (proxy_cache_path pode http{}): {{v0}}",
      "t0714": "certId={{v0}} domínio={{v1}}",
      "t0715": "certId={{v0}} Arquivo não existe: {{v1}}",
      "t0716": "não encontrado certId={{v0}}",
      "t0717": "certificado dataDir {{v0}}",
      "t0718": "local Vamos criptografar {{v0}}",
      "t0719": "scp falhou {{v0}}",
      "t0720": "mkdir falhou {{v0}}",
      "t0721": "certbot falhou: {{v0}}",
      "t0722": "originShieldNodeId={{v0}} — escudo",
      "t0723": "{{v0}}: Alvo SSH — aplicação SSH (frota ignorada)",
      "t0724": "frota não pode (bloqueado = {{v0}}) - enfileirar ou SSH",
      "t0725": "frota {{v0}} borda — na fila ≠ agente nginx recarregar; Agentes",
      "t0726": "FleetAgentId={{v0}} — requer enfileiramento de frota (API irá); ou SSH se aplicam",
      "t0727": "não encontrado conf: {{v0}}",
      "t0728": "conf Falha: {{v0}}",
      "t0729": "falha no enfileiramento da frota: {{v0}}",
      "t0730": "nginx -t falhou: {{v0}}",
      "t0731": "SSH mkdir falhou: {{v0}}",
      "t0732": "scp falhou: {{v0}}",
      "t0733": "falha na recarga remota: {{v0}}",
      "t0734": "FleetAgentId={{v0}} — limpar o enfileiramento da frota ou SSH",
      "t0735": "falha no enfileiramento: {{v0}}",
      "t0736": "falha na limpeza: {{v0}}",
      "t0737": "falha na limpeza remota: {{v0}}",
      "t0738": "purga de frota {{v0}} — na fila ≠ purga de borda",
      "t0739": "geo {{v0}}: Nó desconhecido {{v1}}",
      "t0740": "maxRr ponderado = {{v0}} ( {{v1}})",
      "t0741": "minHealthyEdges={{v0}} {{v1}} borda —: borda IP (offline)",
      "t0742": "borda {{v0}} — ignorada",
      "t0743": "sonda {{v0}}: {{v1}}",
      "t0744": "zonaId={{v0}} ({{v1}})",
      "t0745": "{{v0}} gerenciamento de usuário {{v1}} — gravação CDN gerenciadaBy=cdn (pode e; verifique a zona)",
      "t0746": "subdomínio geográfico {{v0}}: IP — ignorado",
      "t0747": "access_log {{v0}} ({{v1}} token de status do cache)",
      "t0748": "leia o registro {{v0}}",
      "t0749": "diretório de cache {{v0}} ≈ {{v1}} bytes (não)",
      "t0750": "cache {{v0}}/{{v1}}",
      "t0751": "IPv4 inválido: {{v0}}",
      "t0752": "IPv6 inválido: {{v0}}",
      "t0753": "Nó CDN {{v0}}",
      "t0754": "HTTP {{v0}} (para){{v1}}",
      "t0755": "Falha no HTTP: {{v0}}",
      "t0756": "TCP {{v0}}:443/80 não pode conectar",
      "t0757": "{{v0}}/{{v1}}",
      "t0758": "unidades da lista falharam: {{v0}}",
      "t0759": "{{v0}} unidades de serviço",
      "t0760": "unidade {{v0}}",
      "t0761": "{{v0}} bytes",
      "t0762": "jornalctl · {{v0}}",
      "t0763": "aspirou: {{v0}}",
      "t0764": "falha no vácuo: {{v0}}",
      "t0765": "filtro: {{v0}}",
      "t0766": "arquivo {{v0}} · {{v1}} bytes · {{v2}}",
      "t0767": "lista de permissões de caminho: {{v0}}",
      "t0768": "Diário: ≈{{v0}} MB ( {{v1}} MB)",
      "t0769": "projeto {{v0}} · {{v1}} log (diretório)",
      "t0770": "Exportado {{v0}} ({{v1}})",
      "t0771": "não para {{v0}}",
      "t0772": "(DB-IP City Lite {{v0}}; Falha)",
      "t0773": "substituto {{v0}}",
      "t0774": ": {{v0}} · {{v1}} · {{v2}} · {{v3}}{{v4}} · ASN {{v5}}",
      "t0775": "arquivo ({{v0}} B), pode falhar no download",
      "t0776": "{{v0}} substituto (sucesso)",
      "t0777": "atualização {{v0}} ({{v1}} B)",
      "t0778": "Falha na atualização {{v0}}: {{v1}}{{v2}}",
      "t0779": "Configurações não encontradas: {{v0}}",
      "t0780": "não é possível configurações: {{v0}}",
      "t0781": "Certificado não encontrado: {{v0}}",
      "t0782": "simulação: não systemctl {{v0}}. adicione --execute YSK_EXECUTE=1 + root primeiro, realmente",
      "t0783": "emprego não encontrado {{v0}}",
      "t0784": "UI da Web: não encontrada (crie aplicativos/web ou defina YSK_WEB_ROOT)\\n",
      "t0785": "Criação de zona DNS (rascunho): {{v0}}",
      "t0786": "Falha na criação da zona DNS: {{v0}}",
      "t0787": "domínio de correio: {{v0}}",
      "t0788": "maildomainCreate falhou: {{v0}}",
      "t0789": "para {{v0}} pode desligar o cron",
      "t0790": "restic {{v0}}/{{v1}} ok",
      "t0791": ": {{v0}} {{v1}}",
      "t0792": "configurações {{v0}}. --vigor.",
      "t0793": "configurações {{v0}}",
      "t0794": "Interface não encontrada {{v0}}",
      "t0795": "nome do host falhou: {{v0}}",
      "t0796": "lindo nome de host falhou: {{v0}}",
      "t0797": "fuso horário falhou: {{v0}}",
      "tScoreFrom": "pontuação={{score}} de={{from}}",
      "appliedTag": "(aplicado)",
      "writtenTag": "(apenas escrito)",
      "selfDestMissing": "Diretório de instalação em execução não encontrado (systemd ExecStart ou cli.js)",
      "selfDestUnwritable": "Não é possível escrever no diretório de instalação em execução {{v0}}",
      "selfApplied": "{{v0}} aplicado em {{v1}}",
      "selfVerifyFail": "O ficheiro de versão não contém {{v0}} após aplicar",
      "selfDownloadFail": "Não foi possível descarregar ou extrair o pacote oficial {{v0}}: {{v1}}",
      "selfOverlayFail": "Não foi possível aplicar o pacote oficial ao diretório em execução: {{v0}}",
      "selfUpgradeHint": "Falha ao aplicar o painel. Como root: curl -fsSL https://raw.githubusercontent.com/yanshekki/ysk-server/main/install.sh | bash -s -- --upgrade"
    },
    "tpl": {
      "deleted": "Excluído {{name}}",
      "removed": "Removido {{name}}",
      "failedDetail": "Falha: {{detail}}",
      "failedColon": "Falha: {{detail}}",
      "actionFailed": "{{action}} falhou: {{detail}}",
      "restartFailed": "Falha na reinicialização: {{detail}}",
      "chownFailed": "chown falhou: {{detail}}",
      "available": "Disponível: {{detail}}",
      "supportedNotProbed": "Suporta {{name}} — ainda não testado",
      "wrote": "Escreveu {{path}}",
      "wroteSettings": "Escreveu configurações {{path}}",
      "wroteManaged": "Escreveu arquivo gerenciado {{path}}",
      "copyFailed": "Falha na cópia: {{detail}}",
      "copyFailed2": "Falha na cópia: {{detail}}",
      "reloadFailed": "Falha ao recarregar: {{detail}}",
      "reloadFailed2": "Falha ao recarregar: {{detail}}",
      "nginxReloadFailed": "Falha no recarregamento do nginx: {{detail}}",
      "nginxTestFailed": "nginx -t falhou: {{detail}}",
      "nginxConfigFailed": "Falha na verificação de configuração do Nginx: {{detail}}",
      "psqlFailed": "psql falhou: {{detail}}",
      "redisCliFailed": "redis-cli falhou: {{detail}}",
      "restartFailed2": "falha na reinicialização: {{detail}}",
      "missing": "Desaparecido {{name}}",
      "project": "Projeto {{name}}",
      "logNotFound": "Registro não encontrado: {{path}}",
      "clusterNotFound": "Cluster não encontrado: {{id}}",
      "domainInvalid": "Domínio inválido: {{domain}}",
      "exported": "Exportado {{path}}",
      "reenabledLink": "Conexão reativada {{name}}",
      "installed": "Instalado",
      "missingDataDir": "DataDir ausente",
      "installIncomplete": "Instalação incompleta",
      "noPackages": "Sem pacotes",
      "recentlyUpdated": "Atualizado recentemente",
      "needRootRead": "Requer root para ler",
      "reenabledPersist": "Conexão reativada (sobrevive à reinicialização)",
      "runtimeOnlyHint": "(Pode não persistir durante a reinicialização; use Salvar para persistir)",
      "statusWrittenPartial": "Status: escrito/parcial",
      "keyMissingOrNotDeleted": "Chave ausente ou não excluída",
      "passwordCryptStored": "Senha armazenada como hash criptografado (não texto simples)",
      "skipInvalidUsername": "Nome de usuário inválido ignorado",
      "digNoAnswer": "dig: sem resposta (NXDOMAIN ou vazio)",
      "ipAddrAddFailed": "Falha na adição do endereço IP: {{detail}}",
      "ipAddrDelFailed": "endereço ip del falhou: {{detail}}",
      "connUpWarn": "aviso de conexão: {{detail}}",
      "ntpEnableFailed": "Falha ao ativar NTP: {{detail}}",
      "cancelFailed": "Falha no cancelamento: {{detail}}",
      "powerCmdFailed": "Falha no comando de energia: {{detail}}",
      "reniceFailed": "Renice falhou: {{detail}}",
      "pgIncludeHint": "Inclua este arquivo no postgresql.conf ou copie-o ao aplicar",
      "none": "nenhum",
      "success": "Sucesso",
      "on": "sobre",
      "off": "desligado",
      "continueOp": "continuar",
      "unavailable": "indisponível",
      "unknownError": "erro desconhecido",
      "noParen": "(nenhum)",
      "keepOldDb": "(mantive o banco de dados antigo)",
      "ufwNotDetected": "UFW não detectado neste host",
      "fail2banStartHint": "Inicie na página fail2ban",
      "hasExecuteNotRoot": "EXECUTE está ativado, mas o processo não é root",
      "notRootTarget": "Não é root (o destino useradd/apt será bloqueado)",
      "reapplyDone": "reaplicar as principais etapas concluídas",
      "someFailed": "Alguns falharam – veja os resultados",
      "securityDesc": "Senhas, TLS, limites locais",
      "yskControlPlane": "Plano de controle YSK",
      "sslDistributeNote": "Distribuição SSL: certificado no limite ≠ cadeia de confiança completa do navegador; verifique com dig / curl -vI https://",
      "autoNever": "Nunca automático",
      "autoManualEmergency": "Somente EMERGÊNCIA manual",
      "probeMech": "TCP público, solicitação de painel/min, uso de TCP, fail2ban, UFW",
      "probeTunable": "Aumentar/diminuir limites",
      "priorityBlockers": "Endereço {{count}} bloqueador(es) primeiro: {{list}}",
      "readinessNotProduction": "A prontidão não está pronta para produção: {{list}}",
      "noRestart": "sem reinicialização",
      "cityPolicyOff": "(política municipal desativada)",
      "pidStarted": "Processo iniciado pid={{pid}} {{extra}}",
      "pidUser": "(usuário={{user}})",
      "pidDegraded": "(degradado)",
      "killFailed": "kill -s {{sig}} falhou: {{detail}}",
      "routeAdded": "Rota adicionada {{dst}}{{via}}{{dev}}",
      "dnsWritten": "Escreveu {{conn}}: DNS {{dns}}{{search}}",
      "peerInstalled": "Instalado em {{dest}}{{restart}}"
    },
    "installedTool": "Instalado (ferramenta)",
    "cron": {
      "preserveHostLines": "Linha(s) crontab de host não-YSK preservadas {{count}} (não uma limpeza completa).",
      "noHostLinesOrEmpty": "Nenhuma linha crontab extra do host não-YSK (ou vazia).",
      "installReplacesYskOnly": "Instale atualizações apenas para trabalhos marcados com YSK; outros trabalhos de host foram mesclados e mantidos.",
      "hostScanNeedRoot": "A leitura dos crontabs de outros usuários requer o plano de controle como root; apenas o crontab do usuário do processo é listado.",
      "hostScanSkipUser": "Usuário ignorado {{user}} (sem permissão)",
      "hostUserInvalid": "Usuário crontab inválido.",
      "hostScheduleInvalid": "Agendamento cron do host inválido.",
      "hostLineNotJob": "Essa linha crontab não é um trabalho.",
      "hostLineMissing": "Nenhuma linha crontab correspondente (o crontab do host pode ter sido alterado).",
      "hostLineDuplicate": "Essa linha de trabalho aparece {{count}} vezes; edite uma linha exclusiva primeiro.",
      "hostReadFailed": "Não foi possível ler o crontab: {{detail}}",
      "hostWriteFailed": "falha na gravação do crontab: {{detail}}",
      "hostRewriteNeedExecute": "Escrever uma linha host crontab precisa de root e YSK_EXECUTE=1. Apenas visualização.",
      "hostRewriteNeedRoot": "A edição do crontab de outro usuário precisa do plano de controle como root.",
      "hostPreview": "Próxima linha: {{line}}",
      "hostPreviewDelete": "Próximo: remova essa linha.",
      "hostRewritten": "Escreveu crontab para {{user}}.",
      "hostRunNeedExecute": "A execução de um comando cron do host precisa de YSK_EXECUTE=1.",
      "hostRan": "Executei o comando host cron como {{user}}.",
      "hostAdoptNeedExecute": "Adotar uma linha host no painel precisa de YSK_EXECUTE=1 (caso contrário, a instalação a duplicaria).",
      "hostAdopted": "Linha host marcada como # ysk:{{id}} e registrada no painel.",
      "hostConfirmMismatch": "A confirmação deve corresponder ao comando.",
      "hostAdoptOnlyInstallUser": "Leve ao painel apenas para as gravações de instalação do crontab (usuário root/este processo). Outros usuários seriam duplicados na instalação.",
      "hostAdoptEnableFirst": "Habilite a linha host antes de colocá-la no painel.",
      "hostPercentNewline": "crontab trata % sem escape como uma nova linha. Escreva formatos de data como \\%Y (ou evite%)."
    },
    "dbBrowser": {
      "pmaInstalled": "phpMyAdmin instalado em {{path}}",
      "pmaConfigWritten": "Configuração do phpMyAdmin e tmp escrito (autenticação de cookie; HTTPS recomendado)",
      "pmaExtractFailed": "Falha no download/extração do phpMyAdmin: {{detail}}",
      "projectCreated": "Projeto criado {{id}} ({{name}})"
    },
    "firewallAllow": {
      "already": "{{port}}/{{proto}}{{from}}: já permitido",
      "partial": "Parcial: {{ok}} ok, {{fail}} falhou",
      "fromLabel": "de {{from}}"
    },
    "firewallDeleteByComment": {
      "removed": "Removidas {{n}} regras de firewall correspondentes a {{prefix}}",
      "none": "Nenhuma regra de firewall correspondeu {{prefix}}"
    },
    "serviceExposure": {
      "needsDecision": "{{service}}: confirme se deseja expor este serviço na rede",
      "private": "{{service}}: mantido privado (nenhum firewall público permite)",
      "restrictedEmpty": "O modo restrito precisa de pelo menos um IP/CIDR permitido",
      "badCountry": "Código de país inválido: {{cc}}",
      "zoneDownloadFail": "Falha no download da zona do país para {{cc}}: {{detail}}",
      "zoneEmpty": "A zona do país para {{cc}} está vazia",
      "zoneDownloaded": "CIDRs {{n}} baixados para {{cc}}",
      "zoneMissing": "Nenhum arquivo de zona para {{cc}} — coloque em geoip/country-zones ou permita o download",
      "zoneCidrCap": "Lista CIDR de países limitada a {{n}} entradas",
      "geoNeedExecute": "A lista de permissões do país precisa de YSK_EXECUTE",
      "geoNeedRoot": "A lista de permissões do país precisa de root",
      "geoNoCidrs": "Nenhum CIDR de país carregado – não é possível aplicar a lista de permissões geográficas",
      "ipsetMissing": "ipset não instalado – lista de permissões de países ignorada",
      "ipsetApplyFail": "Falha na aplicação de ipset/iptables: {{detail}}",
      "ipsetApplied": "Conjunto de lista de permissões de países {{set}} ({{countries}}, {{n}} CIDRs)",
      "ipsetCleared": "Ipset do país apagado {{set}}",
      "geoBestEffort": "A filtragem por país é de melhor esforço (ipset); grupos de segurança na nuvem são separados"
    },
    "goLive": {
      "deployIncomplete": "goLive: implantação incompleta",
      "deployFailed": "Falha na implantação do goLive: {{detail}}",
      "publishIncomplete": "goLive: publicação incompleta",
      "publishFailed": "Falha na publicação do goLive: {{detail}}"
    },
    "ops": {
      "projectNameExists": "O nome do projeto já existe: {{name}}",
      "sslNotReady": "SSL não está pronto: nenhum certificado para {{domain}}.",
      "sslNotReadyDetail": "SSL não está pronto: nenhum certificado para {{domain}} (painel SSL ou Let’s Encrypt live path).",
      "sslGoToPage": "Emita ou carregue um certificado em SSL e depois publique + SSL.",
      "sslRejectWrite": "Recusou-se a escrever SSL nginx conf para evitar falha nginx -t.",
      "installAborted": "Instalação abortada (cliente desconectado ou cancelado)",
      "phpPackagesPartialFail": "Alguns pacotes PHP falharam: {{list}} (a CLI central ainda pode funcionar)",
      "pdnsBindConflict": "PowerDNS não pode vincular 0.0.0.0:53 (em uso); frequentemente entra em conflito com o sistema resolvido. Vincule o IP público (painel: Fix PowerDNS)."
    },
    "webmail": {
      "notInstalled": "O webmail não está instalado; habilite o download e execute novamente",
      "needExecute": "O download do webmail precisa de permissão de alteração do sistema (YSK_EXECUTE) e rede de saída",
      "needExecuteBeforeCreate": "Não criará meio projeto até que EXECUTE esteja habilitado",
      "notRoundcubeTree": "A raiz do documento não é uma árvore Roundcube completa (ainda pode ser php-hello)",
      "notSnappyTree": "A raiz do documento não é uma árvore completa do SnappyMail",
      "installIncompleteHint": "O projeto existe, mas o webmail está incompleto — ative EXECUTE e depois reinstalar/atualizar",
      "extractFailed": "{{tool}} falha no download ou extração: {{detail}}",
      "roundcubeInstalled": "Roundcube instalado {{version}} → {{path}}",
      "roundcubeReuse": "Reutilizando o Roundcube instalado → {{path}}",
      "roundcubeConfigWritten": "Escreveu a configuração do Roundcube (SQLite, IMAP 993, SMTP 587)",
      "snappyInstalled": "SnappyMail instalado {{version}} → {{path}}",
      "snappyReuse": "Reutilizando o SnappyMail instalado → {{path}}",
      "snappyAdminHint": "Na primeira abertura, conclua a configuração do administrador do SnappyMail e adicione o domínio IMAP local",
      "imapSmtpHint": "IMAP {{imap}}:993 · SMTP {{smtp}}:587 (login com endereço completo da caixa de correio e senha)",
      "projectCreated": "Projeto PHP criado {{name}} ({{tool}}, {{id}})",
      "domainRequired": "O nome do host do webmail é obrigatório",
      "openHint": "Faça login com endereço de caixa postal e senha; abra o URL de Projetos ou desta página após a ativação",
      "sslHint": "Recomendo Let’s Encrypt para {{domain}} (página SSL)",
      "bootstrapLegacyHint": "Bootstrap não tinha serviço de projeto - escreveu o esqueleto dataDir; use Criar e entrar em operação no painel para o caminho do projeto PHP",
      "ssoPluginInstalled": "Plug-in SSO instalado → {{path}}",
      "forceHttpsOn": "Roundcube force_https ativado (HTTPS necessário)",
      "forceHttpsOff": "force_https desativado – após SSL, reinstale com forçar HTTPS verificado",
      "reinstallHint": "O projeto existe — use Reinstalar/Atualizar ou reinstalar:true",
      "reinstalling": "Reinstalando o webmail no projeto {{name}} ({{id}})",
      "reinstallStart": "Iniciando a reinstalação/atualização (pino de versão {{version}}, projeto {{id}})",
      "projectNotFound": "Projeto de webmail não encontrado",
      "snappyAdminOnce": "SnappyMail admin {{user}} — senha mostrada uma vez (ver resultado/arquivo ONCE)",
      "snappyAdminPassword": "Senha de administrador do SnappyMail (copie agora): {{password}}",
      "publicHtmlStub": "A raiz do documento ainda possui o stub do pacote SnappyMail/RainLoop. O HTTP deve servir a árvore de aplicativos public_html – reinstale o webmail após esta correção.",
      "goLiveFailed": "Arquivos de webmail instalados, mas falha na ativação/implantação do projeto — expanda os detalhes.",
      "forceHttpsNeedsSsl": "Roundcube force_https está ativado: vincule SSL para este nome de host antes de confiar em HTTPS público ou desmarque forçar HTTPS até então.",
      "roundcubePublicHtmlDocRoot": "Raiz do documento HTTP definida como Roundcube public_html ({{path}})",
      "docRootUpdated": "Raiz do documento do projeto atualizada para {{path}}",
      "docRootUpdateFailed": "Não foi possível atualizar a raiz do documento do projeto: {{detail}}",
      "sqliteSchemaReady": "Esquema Roundcube SQLite inicializado",
      "sqliteSchemaFailed": "Falha na inicialização do esquema Roundcube SQLite: {{detail}}",
      "snappyFullEmailLogin": "O login na caixa de correio deve usar email completo (usuário@domínio); parte local curta está desativada",
      "removedBogusPublicHtml": "Removido o restante de public_html (php-hello) para que o webmail não seja veiculado na árvore errada",
      "snappyDocRoot": "Raiz do documento HTTP SnappyMail: {{path}}",
      "phpHelloStillPresent": "Instale o php-hello esquerdo (YSK PHP OK) como raiz do site - a extração do webmail não o substituiu"
    },
    "vpn": {
      "needInstall": "Instalar {{engine}}",
      "openvpnComing": "O caminho completo do OpenVPN está preparado para a próxima versão.",
      "outlineComing": "Outline / Shadowsocks está preparado para um lançamento posterior.",
      "needExecuteServer": "A configuração do servidor VPN requer root e YSK_EXECUTE=1.",
      "serverStopped": "{{engine}} servidor parado.",
      "serverStopFailed": "Não foi possível parar o servidor {{engine}}: {{detail}}",
      "needExecuteClient": "A conexão do cliente VPN requer root e YSK_EXECUTE=1.",
      "keygenFailed": "A geração da chave WireGuard falhou (o wg está instalado?).",
      "serverKeysCreated": "Chaves do servidor WireGuard criadas.",
      "applyFailed": "Falha ao aplicar a configuração do WireGuard: {{detail}}",
      "serverActive": "Servidor WireGuard aplicado (UDP {{port}}).",
      "serverMissing": "Servidor WireGuard não inicializado — execute Iniciar servidor primeiro.",
      "peerCreated": "Cliente «{{name}}» criado.",
      "peerNotFound": "Cliente não encontrado.",
      "peerRemoved": "Cliente removido.",
      "peersSynced": "Lista de pares recarregada na interface WireGuard em execução.",
      "setEndpointHint": "Defina o endpoint público (host:porta) para que os clientes móveis possam acessar este servidor.",
      "invalidConf": "Conf deve incluir [Interface] e PrivateKey.",
      "clientImported": "Perfil «{{name}}» importado.",
      "profileNotFound": "Perfil do cliente não encontrado.",
      "clientUpFailed": "Falha na conexão: {{detail}}",
      "clientUp": "Conectado: {{name}}",
      "clientDown": "Desconectado: {{name}}",
      "clientDeleted": "Perfil excluído: {{name}}",
      "autostartOn": "Início automático ativado: {{name}}",
      "autostartOff": "Início automático desligado: {{name}}",
      "ovpnPkiStart": "Gerando OpenVPN PKI (pode levar um minuto para parâmetros DH)…",
      "ovpnPkiDone": "Pronto para OpenVPN PKI.",
      "ovpnServerActive": "Servidor OpenVPN aplicado ({{proto}} {{port}}).",
      "invalidOvpn": "A configuração do OpenVPN deve incluir diretivas cliente/remoto.",
      "ssHonest": "Usa shadowocks-libev ss-server - não o Outline Manager completo.",
      "ssKeysCreated": "Senha do servidor Shadowsocks gerada.",
      "ssServerActive": "Servidor Shadowsocks aplicado (porta {{port}}).",
      "ssSharedPassword": "Todos os rótulos ss:// compartilham uma senha de servidor (alterne garantindo novamente o servidor).",
      "ssPackageYielded": "Unidade padrão Debian shadowocks-libev interrompida/mascarada para que YSK possa vincular {{port}} público neste host.",
      "ssEndpointAutofilled": "Endpoint público definido como {{endpoint}}.",
      "ssClientsRewritten": "URI(s) {{n}} client ss:// regenerados para o endpoint/senha atual.",
      "ssUfwOpened": "UFW {{port}}/tcp+udp aberto para Shadowsocks (se o ufw estiver instalado).",
      "endpointAutofilled": "Endpoint público definido como {{endpoint}}.",
      "ovpnClientsRewritten": "Remote= atualizado em {{n}} perfis de cliente OpenVPN para download/QR.",
      "accessFullNat": "Internet completa habilitada (encaminhamento de IP + NAT)",
      "accessLanOnly": "Modo somente LAN (sem Internet NAT)",
      "accessReconnectHint": "Clientes já conectados devem se reconectar para escolher novas rotas",
      "ovpnNatDurable": "OpenVPN NAT/forward instalado para reinicialização (systemd ExecStartPost).",
      "clientFullTunnelProtect": "Cliente de túnel completo detectado (AllowedIPs 0.0.0.0/0). Proteção de host aplicada para que as respostas do painel/SSH permaneçam na NIC da LAN.",
      "clientFullTunnelHint": "Dica: apenas para acesso dividido, defina AllowedIPs como CIDRs VPN/LAN (não 0.0.0.0/0) no conf e reconecte."
    },
    "vnc": {
      "needInstall": "Instalar {{stack}}",
      "needExecute": "YSK_EXECUTE está desabilitado — não é possível instalar pacotes ou provisionar usuários Linux.",
      "needRoot": "Não executando como root – useradd do sistema e vncserver apply estão bloqueados.",
      "hostnameResolves": "Nome do host {{hostname}} é resolvido.",
      "hostnameUnresolvable": "Este host não pode resolver seu próprio nome de host ({{hostname}}). O início da sessão VNC falhará até que /etc/hosts seja corrigido.",
      "hostnameAlreadyResolves": "Hostname {{hostname}} já resolve — /etc/hosts inalterado.",
      "hostnameWouldAppend": "Anexaria a /etc/hosts: {{line}}",
      "hostnameAppended": "Anexado a /etc/hosts: {{line}}",
      "hostnameAppendFailed": "Não foi possível escrever /etc/hosts: {{detail}}",
      "hostnameAliasPresent": "Hostname {{hostname}} já é um alias exato de /etc/hosts — não anexado novamente.",
      "hostnameStillUnresolvable": "Escrevi /etc/hosts mas {{hostname}} ainda não resolve. Confirme se os hosts nsswitch incluem arquivos.",
      "skipStartHostname": "Não iniciou a exibição — primeiro corrija a resolução do nome do host.",
      "novncAssetsOnly": "ativos da web noVNC encontrados; O binário websockify ainda está faltando.",
      "viewerNeedExecute": "Iniciar uma área de trabalho VNC local para visualização do navegador precisa de root + YSK_EXECUTE",
      "browserSessionReady": "Sessão VNC do navegador pronta: {{name}}",
      "clientPathUserReachable": "Caminho: endpoint acessível pelo usuário — {{name}} → {{target}} (navegador via painel)",
      "clientPathServerProxy": "Caminho: proxy do servidor — {{name}} → {{target}} (saída através deste servidor)",
      "clientOpenInBrowserHint": "Use “Abrir no navegador” na lista de clientes do cliente VNC incorporado",
      "probeOk": "Acessibilidade OK: o plano de controle pode abrir TCP para {{target}}",
      "probeRefused": "Nada está escutando em {{target}} (conexão recusada). O VNC está sendo executado nesse host?",
      "probeTimeout": "Tempo limite de conexão com {{target}} esgotado deste servidor. Verifique firewall/roteamento.",
      "probeDns": "Não é possível resolver o nome do host «{{host}}».",
      "probeNet": "Rede inacessível para {{target}} deste servidor.",
      "probeFailed": "Não é possível alcançar {{target}}: {{detail}}",
      "probeInvalid": "Destino VNC inválido {{host}}:{{port}}",
      "probeHintUserReachable": "O caminho é “acessível pelo usuário”: este painel ainda deve abrir o TCP para o host público (o navegador não pode falar apenas com RFB).",
      "probeHintServerProxy": "O caminho é “proxy do servidor”: o destino deve ser acessível a partir da rede deste host do plano de controle.",
      "connectHostOverride": "Proxy do servidor: exibe host {{display}}, TCP se conecta a {{connect}}",
      "probeConnectHostHint": "Exibir destino {{display}}, endereço de sonda/conexão {{connect}} (substituição do host de conexão).",
      "accountNotFound": "Conta VNC não encontrada",
      "accountExists": "Já existe uma conta VNC com este nome ou usuário Linux",
      "accountCreated": "Conta VNC criada {{name}} ({{user}}, exibição:{{display}})",
      "accountUpdated": "Conta VNC atualizada {{name}}",
      "accountDeleted": "Conta VNC excluída {{name}}",
      "invalidName": "Nome de conta inválido",
      "invalidGeometry": "Resolução inválida (use, por exemplo, 1920x1080)",
      "displayBusy": "O número de exibição é inválido ou já está em uso",
      "displayExhausted": "Nenhum número de exibição VNC livre restante no alcance",
      "userWrittenOnly": "Usuário Linux {{user}} registrado apenas no plano de controle (precisa de root + YSK_EXECUTE para useradd)",
      "userExists": "O usuário Linux {{user}} já existe",
      "userCreated": "Usuário Linux criado {{user}}",
      "useraddFailed": "useradd falhou para {{user}}: {{detail}}",
      "userdelBlocked": "Não é possível remover o usuário Linux {{user}} sem root + YSK_EXECUTE",
      "userAlreadyGone": "Usuário Linux {{user}} já ausente",
      "userdelFailed": "userdel falhou para {{user}}: {{detail}}",
      "userdelLeftover": "Conta do painel removida, mas o usuário Linux {{user}} ainda está no host. Remova-o dos Usuários ou do host.",
      "userDeleted": "Usuário Linux removido {{user}}",
      "passwordTooShort": "A senha VNC deve ter pelo menos 6 caracteres",
      "passwordWrittenOnly": "Senha marcada apenas no plano de controle (precisa de root + YSK_EXECUTE para vncpasswd)",
      "passwordFailed": "Falha ao escrever a senha do VNC: {{detail}}",
      "passwordNeedTiger": "vncpasswd não encontrado. Instale TigerVNC (tigervnc-standalone-server) antes de definir uma senha.",
      "passwordSet": "Senha VNC definida para {{user}}",
      "passwordUpdated": "Senha atualizada para {{name}}",
      "passwordMetaOnly": "Senha armazenada como meta apenas até a aplicação do sistema",
      "xstartupWrittenOnly": "xstartup não gravado em home (precisa de root + YSK_EXECUTE)",
      "xstartupWriteFailed": "Falha ao gravar ~/.vnc/xstartup ({{detail}}). Precisa de root + YSK_EXECUTE.",
      "xstartupFailed": "VNC xstartup/desktop falhou na exibição: {{display}} ({{detail}}). Prefira o perfil XFCE ou instale um terminal.",
      "xstartupWritten": "Escreveu {{path}}",
      "sessionStartBlocked": "Não é possível iniciar a sessão VNC sem root + YSK_EXECUTE",
      "sessionStartFailed": "Falha ao iniciar a exibição :{{display}}: {{detail}}",
      "sessionStartHostname": "Falha ao iniciar a exibição :{{display}}: este host não pode resolver seu próprio nome de host. Adicione o nome do host a /etc/hosts (ou corrija o DNS) e inicie a sessão novamente.",
      "sessionStarted": "VNC iniciado para {{user}} em :{{display}} (porta {{port}})",
      "sessionStartUnverified": "O comando Iniciar retornou OK, mas a porta RFB ainda não está escutando",
      "sessionAlreadyRunning": "VNC já está em execução para {{user}} em :{{display}} (porta {{port}})",
      "vncserverMissing": "O wrapper do servidor TigerVNC (tigervncserver/vncserver) não está instalado — use a guia Instalar",
      "vncserverWrapperMissing": "Encontrado {{found}} mas nenhum wrapper tigrevncserver/vncserver — reinstale o tigrevnc-standalone-server",
      "vncPackageWithoutBin": "O pacote tigervnc-standalone-server está instalado, mas o script de início está faltando — reinstale o pacote",
      "needPasswordBeforeStart": "Defina uma senha VNC (≥6 caracteres) antes de iniciar",
      "displayPortBusy": "Display :{{display}} → porta {{port}} já está em uso — pare a outra sessão ou escolha outro display",
      "sessionStartPermission": "Permissão negada ao iniciar a exibição: {{display}}",
      "staleLockCleared": "Bloqueio obsoleto limpo para exibição: {{display}}, tentando novamente",
      "sessionStopBlocked": "Não é possível interromper a sessão VNC sem root + YSK_EXECUTE",
      "sessionStopped": "VNC interrompido para exibição {{user}}: {{display}}",
      "linuxUserKept": "Manteve o usuário Linux {{user}} no sistema",
      "novncStartBlocked": "Não é possível iniciar o noVNC sem root + YSK_EXECUTE",
      "novncAlreadyRunning": "noVNC já rodando na porta {{port}}",
      "novncStartFailed": "Falha ao iniciar o websockify: {{detail}}",
      "novncStarted": "noVNC ouvindo em 127.0.0.1:{{httpPort}} → RFB {{rfbPort}}",
      "novncNotRunning": "noVNC não estava rodando",
      "novncStopBlocked": "Não é possível parar o noVNC sem root + YSK_EXECUTE",
      "novncStopped": "Parou o noVNC na porta {{httpPort}}",
      "directNeedsAllBind": "A ligação RFB é localhost – clientes diretos não podem alcançar de fora sem túnel",
      "directOpenFirewall": "Abra TCP {{port}} no firewall para clientes diretos",
      "viaServerReady": "noVNC está ativo – abra o URL local ou use um túnel SSH",
      "viaServerStartFirst": "Inicie o noVNC para permitir o acesso do navegador através do servidor",
      "viewTicketIssued": "Emitido um ticket de visualização de curta duração",
      "invalidPort": "Número de porta inválido",
      "firewallNeedExecute": "A abertura de portas UFW requer YSK_EXECUTE",
      "firewallNeedRoot": "Abrir portas UFW requer root",
      "firewallFailed": "falha na permissão do ufw: {{detail}}",
      "firewallOpened": "UFW permitiu TCP {{port}}",
      "clientInvalid": "O nome do cliente e o host são obrigatórios",
      "clientNotFound": "Perfil do cliente não encontrado",
      "clientUpBlocked": "Não é possível conectar o cliente VNC sem root + YSK_EXECUTE",
      "clientUpFailed": "Falha na conexão do cliente: {{detail}}",
      "clientViaServerUp": "Cliente {{name}} pronto para navegador VNC via painel (nota herdada do websockify descontinuada). O destino permanece acessível por meio de Abrir no navegador.",
      "clientDirectUp": "O cliente {{name}} usa apenas VNC no navegador (caminho do host vncviewer removido). Abra no navegador → {{target}}.",
      "clientNeedViewer": "O desktop vncviewer é opcional. Use Abrir no navegador para o cliente VNC integrado.",
      "clientDownBlocked": "Não é possível desconectar sem root + YSK_EXECUTE",
      "clientDown": "Cliente desconectado {{name}}",
      "clientDeleted": "Perfil do cliente excluído",
      "sessionStartCwd": "Falha na inicialização do VNC: diretório de trabalho não acessível ao usuário da sessão (exibição: {{display}}). Corrigido começando em HOME.",
      "desktopRestarted": "Perfil de desktop aplicado e sessão reiniciada ({{desktop}}). Reconecte o VNC/noVNC.",
      "desktopNeedsStart": "Perfil da área de trabalho {{desktop}} gravado em xstartup. Inicie a sessão para se inscrever.",
      "linuxUserRolledBack": "Removido o usuário restante do Linux {{user}} após falha na senha do VNC.",
      "linuxUserOrphan": "Não foi possível remover o usuário restante do Linux {{user}} após falha na senha do VNC."
    },
    "apache": {
      "needServerName": "Nome do servidor obrigatório",
      "siteExists": "O site já existe",
      "siteNotFound": "Site não encontrado",
      "wroteConf": "Escreveu {{path}}",
      "needExecute": "Precisa de YSK_EXECUTE",
      "settingsWritten": "Padrões do Apache escritos",
      "managedDir": "Diretório gerenciado {{path}}",
      "dryRun": "Teste a seco",
      "copyFailed": "Falha na cópia: {{file}}",
      "configOk": "teste de configuração OK",
      "configFailed": "falha no teste de configuração: {{detail}}",
      "reloaded": "Apache recarregado",
      "reloadFailed": "Falha ao recarregar",
      "skippedOrphans": "Ignorado {{count}} conf(ões) órfãs (não pertencentes)",
      "artifactInvalid": "Nome conf do artefato inválido",
      "artifactOwned": "Conf {{file}} pertence a um projeto ou site independente",
      "artifactNotFound": "Configuração do artefato não encontrada: {{file}}",
      "artifactRemoveFailed": "Falha ao remover {{file}}: {{detail}}",
      "artifactRemoved": "Configuração órfã removida {{file}}",
      "artifactSystemPending": "DataDir limpo; sistema Apache twin precisa de YSK_EXECUTE/root para desabilitar",
      "artifactSystemDisabled": "Site do sistema desativado {{site}}",
      "artifactSystemFailed": "Falha na desativação do sistema: {{detail}}",
      "conflictProjectsOnly": "O domínio {{name}} é reivindicado por vários projetos — altere o domínio do projeto",
      "cleanupNothing": "Nenhuma configuração de artefato conflitante para remover",
      "conflictOwnedKeep": "Mantido conf de propriedade {{file}} (também ServerName {{domain}})",
      "retiredOrphan": "Configuração órfã aposentada {{file}} (Conflito de ServerName com {{domain}})"
    },
    "btTracker": {
      "needExecute": "YSK_EXECUTE está desativado — instalação/inicialização do rastreador e portas públicas precisam de permissão de alteração do sistema.",
      "startWithoutExecute": "Iniciar o rastreador sem YSK_EXECUTE — ouvir pode funcionar; o firewall do host não será aberto.",
      "alreadyRunning": "O rastreador BitTorrent já está em execução neste processo.",
      "notRunning": "O rastreador BitTorrent não está em execução.",
      "started": "Rastreador BitTorrent escutando na porta {{port}}.",
      "startFailed": "Falha ao iniciar o rastreador: {{detail}}",
      "stopped": "O rastreador BitTorrent parou.",
      "maxSeeds": "Máximo de sementes simultâneas atingidas ({{n}}).",
      "seedStarted": "Semeando compartilhamento {{id}}.",
      "seedStopped": "Parou de propagar o compartilhamento.",
      "seedPending": "A propagação ainda não está pronta – inicie o rastreador e garanta YSK_EXECUTE quando necessário.",
      "notSeeding": "Este compartilhamento não está atualmente propagado pelo plano de controle.",
      "btNeedsTracker": "O compartilhamento BT precisa de um rastreador em execução. Abra Arquivos → BT Tracker e inicie-o.",
      "restoreTrackerFailed": "O rastreador BT falhou ao iniciar durante a restauração da inicialização",
      "restoreDone": "Restauração BT: propagado {{seeded}}/{{attempted}} (falhou {{failed}})",
      "workerMissing": "Script de trabalho desanexado ausente; iniciado em processo (morre com este processo)",
      "startedDetached": "Trabalhador desanexado do rastreador BT iniciado (pid {{pid}}, porta {{port}})",
      "runningDetached": "Rastreador rodando como trabalhador desanexado (pid {{pid}})",
      "jobQueued": "Criação de torrent BT na fila (grande parcela)",
      "jobRunning": "Criação de torrent BT em execução",
      "libraryAdded": "Adicionado {{name}} à biblioteca WebTorrent",
      "libraryInspectFailed": "Não foi possível ler aquele .torrent ou magnet",
      "libraryDup": "Esse torrent já está na biblioteca",
      "libraryDestBad": "A pasta Salvar não é um caminho de arquivos válido",
      "libraryTorrentTooBig": "O arquivo .torrent é maior que 8 MiB",
      "libraryNotFound": "Item da biblioteca não encontrado",
      "libraryPaused": "Pausado",
      "libraryResumed": "Retomada",
      "libraryRemoved": "Removido da biblioteca",
      "libraryFilesRemoved": "Arquivos baixados excluídos",
      "libraryRestoreDone": "Restauração da biblioteca: iniciada {{started}}/{{attempted}} (falhou {{failed}})",
      "applyTrackersDone": "Aplicados rastreadores extras para slots de anúncio ao vivo {{n}}",
      "libraryNeedServe": "Salvo. Abra o painel (ysk-server serve) para que o WebTorrent possa fazer o download ou propagar.",
      "libraryDestIsFile": "Não é possível criar uma pasta chamada {{name}} — já existe um arquivo com esse nome.",
      "librarySeedMissing": "Não há arquivos correspondentes nessa pasta para propagar.",
      "libraryWaitingPeers": "Esperando por colegas. Se os arquivos já estiverem neste host, adicione novamente e escolha seed-existente."
    },
    "migrate": {
      "orphanConfirm": "Digite o caminho inicial exato que sobrou para confirmar a exclusão.",
      "orphanStillInStore": "Essa casa ainda pertence a um projeto da loja.",
      "orphanMissing": "Caminho não no disco: {{path}}",
      "orphanNeedExecute": "Removeria as sobras {{path}}. Precisa de YSK_EXECUTE=1.",
      "orphanRmFailed": "Não foi possível remover as sobras da casa: {{detail}}",
      "orphanRemoved": "Removidas as sobras da casa do projeto {{path}}."
    },
    "publicFiles": {
      "liveConf": "Conf Nginx em vigor: {{path}}",
      "publicRoot": "Raiz pública: {{path}}",
      "confNameStale": "O ficheiro {{file}} não coincide com o server_name atual {{serverName}}. Volte a aplicar os ficheiros públicos para o renomear."
    },
    "leftover": {
      "staleCliTitle": "CLI restante obsoleta",
      "staleCli": "CLI restante ainda presente: {{path}} (produto em execução {{version}}). PATH pode preferir. Remova com: rm -f {{path}}",
      "apacheDefaultTitle": "Site padrão restante do Apache",
      "apacheDefault": "O padrão Apache 000 ainda está ativado. Esse é o arquivo do site de estoque - isso não significa que o Apache esteja escutando em public :80 (o YSK Apache é esperado em 127.0.0.1:8080). A sobreposição não o desativa. Aplique o Apache no painel ou hospedando o apache apply --execute.",
      "nginxCatchAllTitle": "Nginx pega tudo faltando",
      "nginxCatchAll": "ysk-000-default.conf não está em /etc/nginx/conf.d. SNI desconhecido pode falhar. Execute projetos nginx-sync --execute.",
      "vsftpdTitle": "unidade vsftpd falhou",
      "vsftpd": "vsftpd falhou. A sobreposição não reescreve listen/listen_ipv6. Aplique FTP no painel.",
      "dovecotTitle": "Dovecot TLS aponta na falta de certificado",
      "dovecot": "Dovecot ssl_cert aponta faltando {{path}}. A sobreposição não reescreve SSL=no. Aplique TLS de e-mail após emitir o certificado ou aplique pilha de e-mail.",
      "overlayDoesNotHeal": "A sobreposição do produto não reescreve nginx, Apache, vsftpd ou Dovecot. Use os comandos de aplicação listados (root + YSK_EXECUTE=1).",
      "executeStaleCli": "Passe --execute (root + YSK_EXECUTE=1) para remover compartimentos CLI obsoletos.",
      "executeMissingTls": "Passe --execute (root + YSK_EXECUTE=1) para desativar o TLS de certificado ausente para que o vsftpd/Dovecot possa ser iniciado.",
      "executeGeneric": "Passe --execute (root + YSK_EXECUTE=1) para aplicar a limpeza restante das descobertas acima.",
      "staleCliRemoved": "CLI residual {{path}} removido.",
      "staleCliRemoveFailed": "Não foi possível remover o CLI residual {{path}}: {{detail}}",
      "vsftpdSslOff": "Sem certificado FTPS: vsftpd com ssl_enable=NO e reinício.",
      "dovecotSslOff": "Falta {{path}}: Dovecot com ssl=no e reinício.",
      "readinessTitle": "Sobras de host após a sobreposição",
      "readinessClean": "Nenhum padrão restante do Apache, nginx catch-all ausente, vsftpd com falha ou CLI obsoleto detectado.",
      "nginxRemoved": "Removido o restante do nginx conf {{path}}.",
      "nginxNotLeftover": "Não é uma configuração restante de arquivos públicos - recuse a exclusão.",
      "nginxUnusedKeep": "000-default não é usado, não sobra – não é excluído.",
      "nginxSystemCopy": "Cópia do sistema ainda presente: {{path}}. Precisa de YSK_EXECUTE + root para remover.",
      "nginxReloadFailed": "nginx -t ou reload falhou após remover {{path}}."
    },
    "defense": {
      "panelReqLabel": "Solicitações de painel/min",
      "panelReqExcluded": "Tráfego de painel autenticado — mostrado aqui, não contado na pontuação de ameaças",
      "tcpOk": "TCP {{target}} acessível",
      "tcpFail": "TCP {{target}} falhou",
      "dnsDegraded": "Caminho DNS degradado",
      "reqRateHigh": "Taxa de solicitação pública {{reqs}}/min ≥ {{threshold}}",
      "ddosHeuristic": "Alta taxa de solicitação pública mais falha na sonda de borda"
    }
  },
  "ops": {
    "blocked": {
      "needExecute": "A execução do host está desativada; esta ação não pode terminar no painel",
      "needExecuteShort": "A execução do host não está habilitada",
      "needExecuteBlocked": "Bloqueado: a execução do host está desativada",
      "needRoot": "Privilégios de root necessários",
      "needExecuteRoot": "Requer YSK_EXECUTE=1 e root",
      "needExecuteYsk": "Requer YSK_EXECUTE=1",
      "writeOutsideDataDir": "Gravação bloqueada: a execução do host está desativada e o caminho está fora do diretório de dados do painel",
      "nginxReload": "Não é possível recarregar o Nginx: execução do host necessária",
      "signal": "Não é possível enviar sinal: execução do host necessária (YSK_EXECUTE)",
      "signalNote": "YSK_EXECUTE=1 é necessário para uma morte real",
      "renice": "Não é possível renovar: execução do host necessária (YSK_EXECUTE)",
      "install": "A execução do host está desativada; a instalação não pode ser concluída no painel",
      "update": "A execução do host está desativada; a atualização não pode terminar no painel",
      "panel": "Não é possível concluir isso no painel de gerenciamento"
    },
    "honesty": {
      "blockedNotOk": "Correção de honestidade: bloqueado não pode ser ok = verdadeiro",
      "blockedNotApplied": "Correção de honestidade: bloqueado não pode ser apply_status=applied",
      "okFalseNotApplied": "Correção de honestidade: ok=false não pode ser apply_status=applied"
    },
    "status": {
      "applied": "Status: aplicado",
      "failed": "Estado: falhou",
      "written": "Estado: escrito",
      "blocked": "Estado: bloqueado"
    },
    "notes": {
      "writtenSettings": "Configurações escritas",
      "completed": "Concluído",
      "partialSuccess": "Operação apenas parcialmente bem-sucedida",
      "notInstalled": "Não instalado",
      "running": "Correndo",
      "stopped": "Parou",
      "unknown": "Desconhecido"
    }
  },
  "opsResult": {
    "title": "Resultado",
    "status": "Status",
    "port": "Porta",
    "url": "URL",
    "pid": "PID",
    "blocked": "Não é possível executar",
    "success": "Sucesso",
    "failed": "Fracassado",
    "retry": "Tentar novamente",
    "showDetails": "Detalhes ({{count}})",
    "hideDetails": "Ocultar detalhes",
    "stepBuildOk": "Versão concluída",
    "stepHealthOk": "Exame de saúde aprovado",
    "stepProcessStarted": "Processo iniciado",
    "stepSystemdFallback": "Unidade Systemd não pronta – processo iniciado via pidfile",
    "stepNginxWritten": "Configuração Nginx escrita",
    "stepConfigsSynced": "Configurações sincronizadas com o sistema",
    "stepStoppedOld": "Processo anterior interrompido",
    "stepTuningApplied": "Ajuste de tempo de execução aplicado",
    "stepUnitWritten": "Unidade de serviço escrita",
    "stepSystemdStartFailed": "Falha na inicialização do Systemd - usando fallback de processo",
    "portListening": "A porta {{port}} está escutando",
    "portNotListening": "A porta {{port}} não está escutando",
    "httpOk": "HTTP OK {{status}}",
    "httpFail": "Falha no HTTP: {{detail}}"
  },
  "pageGuide": {
    "missing": "Nenhum conteúdo de ajuda está disponível para esta página ainda.",
    "missingTitle": "Sem guia",
    "eyebrow": "Sobre",
    "canDoTitle": "O que você pode fazer",
    "workflowTitle": "Fluxo sugerido",
    "notesTitle": "Notas",
    "cliTitle": "Referência rápida da CLI",
    "cliFoot": "Para sinalizações completas, execute ysk-server <command> --help ou consulte a documentação.",
    "relatedTitle": "Relacionado"
  },
  "playbooks": {
    "discover-host": {
      "name": "Descoberta de host",
      "description": "Inventário de host somente leitura"
    },
    "nginx-health": {
      "name": "Verificação de integridade do Nginx",
      "description": "Verifique o status do serviço nginx"
    },
    "nginx-restart": {
      "name": "Reinicialização do Nginx (alto risco)",
      "description": "Reinicie o nginx após aprovação"
    },
    "local-llm-ops-only": {
      "name": "Somente operações locais de LLM",
      "description": "Descoberta de emergência no modo de proteção"
    },
    "disk-pressure": {
      "name": "Verificação da pressão do disco",
      "description": "Uso de disco somente leitura via df"
    },
    "mail-stack-status": {
      "name": "Status da pilha de mensagens",
      "description": "Verifique as unidades postfix + dovecot"
    },
    "security-units": {
      "name": "Unidades de segurança",
      "description": "status fail2ban + sshd (somente leitura)"
    },
    "web-stack-status": {
      "name": "Status da pilha da Web",
      "description": "sonda nginx + php-fpm"
    },
    "emergency-read-only": {
      "name": "Varredura somente leitura de emergência",
      "description": "Somente fatos seguros para proteção"
    },
    "backup-health": {
      "name": "Preparação de backup",
      "description": "Verifique o disco + lista de processos antes da janela de backup"
    },
    "db-stack-status": {
      "name": "Status da pilha do banco de dados",
      "description": "unidades mysql/mariadb/redis/postgres"
    },
    "ssl-nginx-check": {
      "name": "Verificação SSL + Nginx",
      "description": "status do nginx antes das operações de certificação"
    }
  },
  "presetChips": {
    "customPlaceholder": "Personalizado…"
  },
  "projects": {
    "title": "Projetos",
    "subtitle": "",
    "create": "Criar projeto",
    "createHint": "Depois de criar, abra detalhes para implantar, publicar e ajustar recursos",
    "empty": "Ainda não há projetos",
    "emptyHint": "Crie seu primeiro projeto, depois implante e publique o Nginx",
    "emptyFilter": "Nenhum projeto correspondente",
    "emptyFilterHint": "Limpe a pesquisa ou altere o filtro de tempo de execução",
    "name": "Nome",
    "domain": "Domínio (opcional)",
    "detail": "Detalhe do projeto",
    "deploy": "Implantar",
    "deployPhp": "Implantar PHP",
    "stop": "Parar",
    "health": "Verificação de saúde",
    "publishNginx": "Publicar Nginx",
    "publishNginxSsl": "Publicar Nginx + SSL",
    "opsResult": "Resultado das operações",
    "runtime": "Tempo de execução",
    "template": "Modelo (opcional)",
    "templateNone": "- nenhum -",
    "searchPlaceholder": "Pesquise nome, domínio ou ID…",
    "listDesc": "Gerencie sites neste host.",
    "filterAll": "Todos os tempos de execução",
    "statTotal": "Total",
    "statRunning": "Correndo",
    "statDegraded": "Degradado",
    "statUnhealthy": "Insalubre",
    "statStopped": "Parado / pronto",
    "statStoppedOnly": "Parou",
    "statReadyOnly": "Preparar",
    "statPendingOs": "SO pendente",
    "status": {
      "failed": "Fracassado",
      "failedHint": "Falha na implantação ou na verificação de integridade – verifique os registros",
      "unhealthy": "Insalubre",
      "unhealthyHint": "O processo está ativo, mas a verificação de integridade falhou",
      "pendingOs": "Usuário do SO pendente",
      "pendingOsHint": "Usuário do sistema não provisionado",
      "degraded": "Correndo (degradado)",
      "degradedHint": "O processo está ativo, mas não no modo de produção completo (por exemplo, não-root/pidfile)",
      "deploying": "Implantando",
      "published": "Publicado",
      "publishedHint": "Configuração Nginx escrita; o processo pode ser separado",
      "running": "Correndo",
      "stopped": "Parou",
      "ready": "Preparar",
      "readyHint": "Criado — implante para começar",
      "unknown": "Desconhecido"
    },
    "checklist": {
      "title": "Caminho de lançamento",
      "desc": "Conclua estas etapas para veicular o tráfego",
      "created": "Criado",
      "os": "Usuário do sistema operacional",
      "deploy": "Implantar",
      "nginx": "Nginx",
      "health": "Saúde"
    },
    "next": {
      "pendingOsTitle": "Usuário do sistema não provisionado",
      "provisionOsAction": "Criar usuário do sistema",
      "pendingOsBody": "Este projeto ainda não possui usuário de sistema isolado.",
      "pendingOsActions": "Você ainda pode implantar; o isolamento completo precisa de privilégios de administrador no host.",
      "deployTitle": "Próximo: Implantar",
      "deployBody": "Use Deploy no cabeçalho ou na guia Deploy do Git.",
      "nginxTitle": "Próximo: Publicar Nginx",
      "nginxBody": "Abra a guia Rede para publicar o Nginx (SSL opcional)."
    },
    "healthDetail": {
      "none": "Nenhum exame de saúde ainda",
      "overall": "Resultado",
      "nginxStatus": "Status do Nginx",
      "nginxReloaded": "Recarregar Nginx",
      "httpStatus": "HTTP",
      "latency": "Latência",
      "error": "Erro",
      "at": "Verificado em",
      "deployMode": "Modo de implantação",
      "edgeKind": "Borda",
      "goLiveOk": "Transmissão ao vivo",
      "goLiveAt": "Vá ao vivo em",
      "degraded": "Degradado"
    },
    "railPhp": "PHP/site",
    "railStatic": "Site estático",
    "sectionPhpDeploy": "Implantação de PHP",
    "sectionPhpDeployDesc": "Escreva o site/pool em PHP e aplique quando permitido",
    "sectionStaticDeploy": "Conteúdo estático",
    "sectionStaticDeployDesc": "Sites estáticos usam arquivos + Nginx — sem processo Node",
    "staticDeployHint": "Extraia conteúdo via Git e publique Nginx em Rede.",
    "noDomain": "Nenhum domínio",
    "lastDeploy": "Última implantação",
    "neverDeployed": "Nunca implantado",
    "created": "Criado {{name}}",
    "backToList": "Voltar aos projetos",
    "openUrl": "Abrir URL",
    "openUrlNeedDomain": "Defina um domínio primeiro – não abra 127.0.0.1 em seu navegador",
    "needOsUser": "Crie primeiro o usuário do sistema na guia Isolamento",
    "goIsolation": "Abra a guia Isolamento",
    "homeMissing": "O diretório inicial não existe",
    "homeMissingHint": "A mesma investigação em tempo real do inventário de migração — crie o usuário do sistema no isolamento",
    "stopTitle": "Pare este projeto (unidade systemd e site público)",
    "deployTitle": "Implantar este projeto",
    "httpStatsHint": "Do log de acesso deste projeto (última amostra)",
    "httpStatsNone": "Ainda não há registro de acesso ao projeto",
    "notFound": "Projeto não encontrado",
    "home": "Diretório inicial",
    "env": "Ambiente",
    "backup": "Backup",
    "resources": "Recursos",
    "quotaUnlimited": "Sem cota",
    "lastHealth": "Última saúde",
    "tabOverview": "Visão geral",
    "tabDeploy": "Implantar",
    "tabApp": "Aplicativo",
    "tabNetwork": "Rede",
    "tabResources": "Recursos",
    "tabIsolation": "Isolamento",
    "tabLogs": "Registros",
    "tabAdvanced": "Avançado",
    "tabMore": "Mais",
    "createGoLive": "Implante e publique o Nginx após a criação",
    "createPreferredPort": "Porta fixa (opcional)",
    "goLiveOk": "Implantado e publicado",
    "goLivePartial": "Criado; implantar/publicar incompleto",
    "nginxLive": "Ao vivo",
    "nginxWritten": "Escrito",
    "nginxNeedsDeploy": "Precisa de implantação",
    "nginxFailed": "Falha na publicação",
    "netEdgeStatus": "Status da borda",
    "netUpstream": "A montante",
    "netPortTitle": "Porta de processo",
    "netCurrentPort": "Porta atual",
    "netPublishTitle": "Publicar",
    "netConfPreview": "Conferência",
    "savePublishSsl": "Salvar e publicar + SSL",
    "retryLiveTitle": "Ativação incompleta",
    "retryLiveBody": "A implantação ou publicação do Nginx não foi concluída. Tente novamente abaixo.",
    "retryDeploy": "Tentar implantar novamente",
    "retryPublish": "Tente publicar novamente o Nginx",
    "preferredPortRedeployHint": "Salve e reimplante para que o processo use esta porta",
    "railProcess": "Processo",
    "railNginx": "Nginx",
    "railOs": "Usuário do sistema operacional",
    "railHealth": "Saúde",
    "nginxPublished": "Configuração publicada",
    "nginxNone": "Não publicado",
    "osProvisioned": "Usuário do sistema provisionado",
    "osPending": "Isolamento do sistema operacional pendente",
    "healthOk": "Saudável",
    "healthBad": "Fracassado",
    "healthUnknown": "Não verificado",
    "sectionRuntimeDeploy": "Implantação em tempo de execução",
    "sectionRuntimeDeployDesc": "Inicie o processo para este tempo de execução do projeto (Node/PHP)",
    "sectionGit": "Implantação do Git",
    "sectionGitDesc": "Retire do Git e reimplante",
    "sectionEnv": "Variáveis ​​de ambiente",
    "sectionEnvDesc": "Escreva linhas KEY=value no projeto .env",
    "gitUrl": "URL do Git",
    "gitDeploy": "Implantação do Git",
    "envFile": "Env (.env)",
    "saveEnv": "Salvar ambiente",
    "sectionNginx": "Nginx e SSL",
    "sectionNginxDesc": "Escreva e aplique a configuração do site",
    "domainHint": "Defina um domínio no momento da criação para uma publicação mais limpa",
    "sectionQuota": "Cota de disco",
    "sectionQuotaDesc": "Limitar o tamanho do diretório inicial (MiB)",
    "sectionLimits": "CPU/memória",
    "sectionLimitsDesc": "limites do sistema; reimplantar para aplicar a unidade",
    "quotaMb": "Cota (MiB)",
    "memoryMax": "Memória Max",
    "cpuQuota": "% de cota de CPU",
    "setQuota": "Definir cota",
    "setResources": "Economize limites de recursos",
    "sectionLogs": "Registros de aplicativos",
    "sectionLogsDesc": "Acompanhe os arquivos de log recentes na página inicial do projeto",
    "viewLogs": "Carregar registros",
    "logsEmpty": "Nenhum registro carregado ainda",
    "logsNoFiles": "(ainda não há arquivos de log – implante primeiro)",
    "sectionAdvanced": "Outras ações",
    "sectionAdvancedDesc": "Backups e conteúdo de modelo",
    "downloadWp": "BaixarWordPress",
    "dangerZone": "Zona de perigo",
    "dangerZoneDesc": "Excluir remove registros do projeto e recursos relacionados",
    "delete": "Excluir projeto",
    "confirmStopTitle": "Parar este projeto?",
    "confirmStopDesc": "Isso interromperá o processo de execução de “{{name}}”.",
    "confirmDeleteTitle": "Excluir este projeto?",
    "confirmDeleteDesc": "Excluir “{{name}}”? Isso não pode ser desfeito na IU.",
    "close": "Fechar",
    "statProjects": "{{count}} projetos",
    "noProjectsShort": "Ainda não há projetos",
    "runtimeStatic": "Estático",
    "logsLoadFailed": "Falha ao carregar registros",
    "deleteFailed": "Falha na exclusão",
    "tabAbout": "Sobre",
    "statusLabel": "Status",
    "userLabel": "Usuário",
    "nginxValuePublished": "Publicado",
    "nginxValueNone": "Não publicado",
    "osValueReady": "Preparar",
    "osValuePending": "Pendente",
    "openFiles": "Arquivos",
    "enableCdn": "Habilitar CDN",
    "openLogs": "Registros",
    "osUserReadyMsg": "Usuário do sistema pronto. {{detail}}",
    "osUserNeedRoot": "Não é possível criar usuário do sistema: precisa de YSK_EXECUTE + root. {{detail}}",
    "osUserIncomplete": "O provisionamento do usuário do sistema está incompleto",
    "saveLogDirsFailed": "Falha ao salvar diretórios de log",
    "createName": "Nome do projeto",
    "noPathSepHint": "O nome não pode conter / ou \\.",
    "createRuntime": "Tempo de execução",
    "createRuntimeHint": "Você pode alterar as opções de implantação posteriormente em detalhes",
    "createVersion": "Versão",
    "createVersionHint": "Armazenado como runtime_version; usado por implantação / FPM",
    "createVersionAria": "Versão de tempo de execução",
    "createPrimaryDomain": "Domínio primário",
    "createPrimaryDomainHint": "Opcional por enquanto",
    "createAliases": "Aliases",
    "createAliasesHint": "Vírgula ou nova linha separada",
    "createTemplate": "Modelo",
    "createTemplateHint": "Um Olá Mundo! demonstração por tempo de execução; escolher um modelo define esse tempo de execução",
    "createTemplateNote": "Os modelos escrevem apenas um esqueleto; implantar para construir/iniciar.",
    "createRuntimeNow": "Tempo de execução atual:",
    "createTemplateFooter": ". Modelo opcional para começar mais rápido ou deixar em branco.",
    "createDraftResources": "Crie também rascunhos de recursos com o domínio",
    "createNeedDomainFirst": "Insira primeiro o domínio principal para que as opções de rascunho sejam aplicadas em conjunto.",
    "createDnsZone": "Crie também uma zona DNS",
    "createDnsZoneDesc": "Grava apenas rascunho de gerenciamento - não DNS autoritativo ativo",
    "createMailDomain": "Registre também o domínio de correio",
    "createMailDomainDesc": "Conclua as caixas de correio e inscreva-se na página de correio mais tarde",
    "createServerIpv4": "Servidor IPv4",
    "createServerIpv4Hint": "Para modelos de DNS/mail",
    "createServerIpv4Ph": "Este host IPv4 público",
    "createServerIpv6": "Servidor IPv6 (opcional)",
    "createServerIpv6Ph": "IPv6 público (opcional)",
    "sshCardDesc": "As chaves de login decidem quem pode entrar;",
    "sshLoginKeys": "Chaves públicas de login permitidas",
    "sshKeyCount": "{{count}} chave(s)",
    "sshOutbound": "Identidade de saída",
    "sshOutboundNone": "Não criado",
    "sshOutboundCreated": "Identidade de saída criada (chave privada criptografada)",
    "sshCreateFailed": "Falha na criação",
    "sshWriteTried": "Tentei gravar no disco",
    "sshOutboundHint": "Após a criação, o usuário deste projeto pode usar git/scripts de saída.",
    "sshCreateOutbound": "Criar identidade de saída",
    "sshWriteHome": "Escreva para casa/.ssh",
    "sshOpenWorkspace": "Abra o espaço de trabalho SSH",
    "sshManageLoginKeys": "Gerenciar chaves de login",
    "logsSectionDesc": "Verificar logs/, log/ e diretórios extras; pesquisar por nome ou palavra-chave de conteúdo",
    "logsNameSearch": "Pesquisa de nome de arquivo",
    "logsNameSearchHint": "Corresponder ao caminho relativo, por ex. erro, app.out",
    "logsContentKw": "Palavra-chave de conteúdo",
    "logsContentKwHint": "Pesquisar caudas de arquivo (não arquivo completo)",
    "logsSearch": "Procurar",
    "logsRescan": "Digitalizar novamente",
    "logsRefreshFile": "Atualize este arquivo",
    "logsCopy": "Copiar conteúdo",
    "logsDownloadTail": "Baixar cauda",
    "logsCenter": "Centro de registro",
    "logsHitsTitle": "{{count}} arquivo(s) com hits — clique para abrir o final (com filtro de palavras-chave)",
    "logsLinesHit": "{{count}} ocorrência(s) de linha",
    "logsFileCount": "Arquivos de registro {{count}}",
    "logsNameFilter": "(o nome contém “{{q}}”)",
    "logsScanning": "Verificando registros…",
    "logsNoneYet": "Nenhum arquivo de log ainda — aparece após implantação/execução; diretórios extras também funcionam.",
    "logsNoContent": "Ainda não há conteúdo",
    "logsRelated": "Fontes relacionadas",
    "logsRelatedDesc": "journal / nginx / PHP-FPM (veja centro de log)",
    "logsAvailable": "Disponível",
    "logsMissing": "Ausente",
    "logsOpenInCenter": "Abrir no centro de log",
    "logsExtraDirs": "Diretórios de log extras",
    "logsExtraDirsDesc": "Caminhos relativos à página inicial do projeto (além de logs/ e log/)",
    "logsDirList": "Lista de diretórios",
    "logsDirListHint": "Um por linha; apenas caminhos relativos à casa",
    "logsReset": "Reiniciar",
    "logsSaveScan": "Salvar e digitalizar",
    "logsDefaultNote": "Sempre verifica logs/ e log/. Os diretórios extras incluem apenas *.log / *.out / *.err.",
    "resOsTitle": "Isolamento do usuário do sistema",
    "resOsDesc": "Cada projeto possui seu próprio usuário Linux;",
    "resLinuxUser": "Usuário Linux",
    "resOsIsolation": "Isolamento do sistema operacional",
    "resOsReady": "Preparar",
    "resOsNotCreated": "Não criado (precisa de administrador)",
    "resHomeDir": "Diretório inicial",
    "resCanonical": "Caminho pretendido",
    "resUserMissing": "Usuário ausente",
    "resShellLive": "Shell / bloqueio ao vivo",
    "resLocked": "Bloqueado",
    "resUnlocked": "Desbloqueado",
    "resHomeMode": "modo inicial",
    "resHomeExists": "Existe · modo {{mode}}",
    "resHomeMissing": "Ausente",
    "resIsolationOn": "Isolado",
    "resIsolationPending": "Isolamento pendente",
    "resOsHint": "Os processos são executados como usuário do projeto",
    "resProvisionUser": "Criar/reparar usuário do sistema",
    "resRefreshStatus": "Atualizar status",
    "resFixHome": "Corrigir a propriedade da casa",
    "resMigrateHome": "Migrar para /home/ysk-server-…",
    "resQuotaDesc": "Cota flexível (du antes da implantação) + aplicação rígida quando setquota existe",
    "resQuotaHint": "por exemplo 1024 = 1 GiB",
    "resSetSoftQuota": "Salvar cota flexível",
    "resLimitsTitle": "Limites de processo e conta",
    "resLimitsDesc": "systemd MemoryMax / CPUQuota / TasksMax / NOFILE + shell / bloqueio",
    "resLimitsDescSystemd": "cgroup systemd: MemoryMax / CPUQuota / TasksMax / NOFILE + shell / bloqueio",
    "resLimitsDescPm2": "PM2: mapas de memória para max_memory_restart; outros limites usam o systemd.",
    "resRunnerSystemd": "Gerenciador de processos: systemd",
    "resRunnerPm2": "Gerente de processos: PM2",
    "resMemMax": "Máximo de memória",
    "resMemHint": "por exemplo 512M ou 1G",
    "resMemHintSystemd": "systemd MemoryMax (capa rígida cgroup, por exemplo, 512M ou 1G)",
    "resMemHintPm2": "Grava o ecossistema max_memory_restart (limiar de reinicialização, não cgroup kill);",
    "resFieldSystemdOnly": "somente cgroup do systemd; ainda salvo no banco de dados para quando você voltar para o systemd",
    "resCpuHint": "100 = uma CPU",
    "resCustomPct": "Personalizado %",
    "resTasksHint": "Máximo de tarefas",
    "resNofileHint": "Limite de arquivos abertos",
    "resShellHint": "Nologin padrão",
    "resShellBashRisk": "bater · arriscar",
    "resLockAccount": "Bloquear conta Linux",
    "resLockDesc": "usuáriomod -L; desmarque para desbloquear",
    "resLimitsHint": "Salvar e aplicar grava o banco de dados e tenta usermod / setquota / systemctl set-property",
    "resLimitsHintSystemd": "Salvar e aplicar grava o estado do painel e os limites do sistema operacional/sistema quando permitido.",
    "resLimitsHintPm2": "Salvar e aplicar grava o estado do painel e o limite de memória PM2.",
    "resSaveApply": "Salve e aplique limites ao sistema operacional",
    "resSaveControlOnly": "Salve Mem/CPU apenas no plano de controle",
    "resReapply": "Candidate-se novamente uma vez (sem alteração de formulário)",
    "resMigrateDone": "Migração concluída",
    "resMigrateIncomplete": "Migração incompleta",
    "resMigrateTitle": "Migrar usuário do sistema para casa?",
    "resMigrateDesc": "Migra para /home/ysk-server-{id} e cria/repara o usuário do sistema",
    "resMigrate": "Migrar",
    "resWrittenOnly": "Escrito para controlar o plano; SO não aplicado (precisa de root). {{notes}}",
    "resAppliedOs": "Limites aplicados ao sistema operacional. {{notes}}",
    "resSaved": "Salvo",
    "resIncomplete": "Incompleto",
    "resApplyLimitsFailed": "Falha ao aplicar limites",
    "resApplied": "Aplicado",
    "resApplyFailed": "Falha na aplicação",
    "resChownOk": "chown completo",
    "resChownFailed": "chown falhou",
    "netSavedPublished": "Rede salva e Nginx publicado",
    "netSavedOnly": "Configurações de rede salvas (não publicadas)",
    "netSaveFailed": "Falha ao salvar",
    "netSuspended": "Projeto suspenso – visitantes recebem 503. Cancele a suspensão e publique.",
    "netDomainTitle": "Domínio",
    "netDomainDesc": "Domínio primário e aliases; save também pode escrever a configuração de gerenciamento do Nginx",
    "netPrimaryDomain": "Domínio primário",
    "netPrimaryHint": "Domínio do visitante, por ex. app.exemplo.com",
    "netAliases": "Aliases",
    "netAliasesHint": "Um por linha, por ex. www ou subdomínio do blog",
    "netNeedPrimary": "Insira o domínio principal primeiro",
    "netHttpsTitle": "HTTPS e redirecionamento de site",
    "netHttpsDesc": "Publique o Nginx após salvar. Site completo 301 substitui conteúdo proxy/PHP/estático",
    "netForceHttps": "Forçar HTTPS",
    "netForceHttpsDesc": "HTTP → HTTPS (301); precisa de certificado SSL e publicação SSL",
    "netForceHttpsOn": "O HTTP redirecionará para HTTPS depois que você publicar a borda.",
    "netForceHttpsOff": "Nenhum redirecionamento forçado é armazenado.",
    "netBoundCert": "Certificado associado",
    "netBoundCertExpiry": "expira {{at}}",
    "netNoBoundCert": "Não há certificado em disco para este nome",
    "netForceHttpsNeedCert": "Emita um certificado em /ssl para este domínio antes de forçar HTTPS.",
    "netHttpsLiveNotForced": "Existe um arquivo de borda; HTTPS já pode funcionar. Esta caixa força apenas HTTP→HTTPS.",
    "netHsts": "Habilitar HSTS",
    "netHstsDesc": "Os navegadores seguem HTTPS (recomendado após forçar HTTPS)",
    "netHstsNeedHttps": "Ative o HTTPS forçado primeiro",
    "netRedirectUrl": "URL de redirecionamento de site completo",
    "netRedirectHint": "Opcional. Site completo 301 para este URL (mover / apex→www)",
    "netBasicAuthTitle": "Autenticação básica HTTP (login do navegador)",
    "netBasicAuthDesc": "Grava htpasswd na publicação; nome de usuário vazio = desativado. Senha vazia = manter armazenada",
    "netAuthUserHint": "Vazio desativa autenticação",
    "netAuthPassHint": "Obrigatório na primeira vez; deixe vazio depois para guardar",
    "netAuthPassSet": "Definir ou atualizar senha",
    "netCacheNote": "Estático/PHP estático Cache-Control 7d por padrão; purge limpa o diretório de cache do host nginx (precisa de YSK_EXECUTE)",
    "netPurgeOk": "Tentei limpar o cache",
    "netPurgeFailed": "falha na limpeza",
    "netDocrootTitle": "Diretório de sites (docroot)",
    "netDocrootDesc": "Em relação à casa do projeto; usado como raiz Nginx na publicação (aplicativo/público padrão)",
    "netDocrootLabel": "Raiz do documento",
    "netDocrootFull": "Caminho completo: {{path}}",
    "netDocrootCustom": "Caminho relativo personalizado…",
    "netAdvancedTitle": "Avançado e publicar",
    "netAdvancedDesc": "Vincular IP, publicar no sistema Nginx",
    "netCollapseBind": "Recolher IP de vinculação",
    "netExpandBind": "Expandir IP de ligação",
    "netBindIp": "Vincular IP",
    "netBindHint": "Vazio = todas as interfaces",
    "netBindPh": "Vazio = todos; ou vincular IP",
    "netNeedDomainSave": "Insira e salve o domínio principal primeiro",
    "ovUsed": "Usado",
    "ovQuota": "Contingente",
    "ovQuotaUnset": "Desativar",
    "ovQuotaStatus": "Status da cota",
    "ovOverQuota": "Acima da cota",
    "ovQuotaOk": "OK",
    "ovDocroot": "Raiz do documento",
    "ovAccessSample": "Amostra de acesso",
    "ovLines": "{{count}} linhas",
    "ovDailyDays": "Dias de estatísticas diárias",
    "ovDailyTitle": "Estatísticas de visitas diárias (máximo de 60 dias)",
    "ovDailyDesc": "Rolando amostras de log de acesso",
    "ovQuickTitle": "Atalhos de sites",
    "ovQuickDesc": "Publicar e fazer backup (implantação principal via cabeçalho ou guia Implantar)",
    "ovNeedNetworkDomain": "Defina o domínio na guia Rede primeiro",
    "ovPublishNginx": "Publicar Nginx",
    "ovPublishSsl": "Publicar Nginx + SSL",
    "ovBackupProject": "Faça backup deste projeto",
    "ovOpenFiles": "Abra arquivos de projeto",
    "ovNoDomainHint": "Nenhum domínio – configure-o na guia Rede antes de publicar.",
    "ovPublishNote": "Publicar configuração de gerenciamento de gravações; O recarregamento Nginx ao vivo precisa de direitos de alteração do sistema.",
    "ovStatic": "Estático",
    "ovAliases": "Aliases",
    "ovForceOn": "Forçado",
    "ovForceOff": "Não forçado",
    "advFtpCreated": "FTP {{user}} criado (rascunho — aplicar na página FTPS)",
    "advCreateFailed": "Falha na criação",
    "advFtpFailed": "Falha na criação de FTP",
    "advMaintTitle": "Manutenção",
    "advMaintDesc": "Backup, suspensão/retomada, ferramentas opcionais",
    "advBackupProject": "Faça backup deste projeto",
    "advOneClickWp": "WordPress com um clique (download + configuração)",
    "advSuspendedHint": "Suspenso: processo interrompido, visitantes recebem 503.",
    "advSuspendHint": "Suspender interrompe o processo e mostra uma página de manutenção 503.",
    "advFtpTitle": "Projeto FTP (caminho da cadeia)",
    "advFtpDesc": "Conta presa no diretório do aplicativo do projeto; aplique na página do serviço FTPS após criar",
    "advFtpUserHint": "Opcional; sistema pode gerar",
    "advFtpPassHint": "Pelo menos 8 caracteres",
    "advDangerTitle": "Zona de perigo",
    "advDangerDesc": "A exclusão não pode ser desfeita na interface do usuário – faça backup primeiro.",
    "advDelete": "Excluir projeto",
    "deployPyHint": "Padrão: venv + pip; ASGI via uvicorn, Django via gunicorn.",
    "deployGoHint": "Padrão: vá build -o app . então ./app; pule a construção se o binário existir.",
    "deployRustHint": "Padrão: cargo build --release então target/release/{crate}; pular compilação opcional.",
    "deployNodeHint": "Iniciar processo do Node (entrada padrão server.js); systemd recomendado em prod.",
    "deployDefaultHint": "Comece pelo tempo de execução; externo somente após aplicar.",
    "deployOsStep": "Usuário Linux isolado + /home/ysk-server-{id do projeto} (a guia Recursos pode criar)",
    "deployPyReady": "Pronto para execução do Python",
    "deployPipNet": "requisitos.txt precisa de pip de saída",
    "deployCheckPort": "Após a implantação, verifique a porta e /health",
    "deployPublishProxy": "Publicar proxy reverso Nginx",
    "deployToolchainReady": "{{runtime}} conjunto de ferramentas pronto",
    "deployFirstBuild": "Primeiro implante compilações (pode demorar um pouco)",
    "deployNeedBinary": "Binário somente após compilação bem-sucedida",
    "deployPhpFpmOk": "Versão PHP-FPM OK",
    "deployPhpPool": "Implantar PHP/aplicar pool",
    "deployNginxSsl": "Publicar Nginx + SSL opcional",
    "deployPublicContent": "Confirme público/tem conteúdo",
    "deployNetPublish": "Publicar Nginx na guia Rede",
    "deployConfirmToolchain": "Confirme o conjunto de ferramentas instalado na página de tempo de execução (ou o host o possui)",
    "deployConfirmCode": "Confirme se o aplicativo/tem código (modelo ou Git)",
    "deployPressDeploy": "Pressione Implantar; então publique o Nginx na rede",
    "deployVersionSaved": "Versão {{runtime}} salva {{version}} (usada na implantação)",
    "deployVersionSaveFailed": "Falha ao salvar a versão de tempo de execução",
    "deployInstallingToolchain": "Instalando/confirmando o conjunto de ferramentas…",
    "deployToolchainIncomplete": "Instalação do conjunto de ferramentas incompleta (permissão ou rede); experimente a página Runtime",
    "deployToolchainDone": "Etapa do conjunto de ferramentas concluída, iniciando a implantação…",
    "deployToolchainFailed": "Falha na instalação do conjunto de ferramentas",
    "deployChecklistTitle": "Criado – lista de verificação de implantação",
    "deployChecklistDesc": "{{runtime}} esqueleto pronto; concluir as etapas para veicular o tráfego",
    "deploySectionTitle": "{{runtime}} implantar",
    "deploySectionDesc": "Iniciar processo {{runtime}} (porta / systemd ou pidfile)",
    "deployPhpVersion": "Versão PHP",
    "deployPhpVersionHint": "Versão PHP para este site (o FPM correspondente deve estar instalado)",
    "deployRuntimeVersion": "{{runtime}} versão",
    "deployRuntimeVersionHint": "Salvo no projeto; usado na implantação. Instalar na página Runtime",
    "deployRuntimeVersionCreateHint": "Escrito em criar; referenciado na implantação",
    "deployRuntimeVersionGeneric": "Versão de tempo de execução",
    "deployEntry": "Iniciar entrada",
    "deployEntryHint": "Vazio = padrão ({{hint}}); sincronizado com o servidor",
    "deploySkipBuild": "Pular compilação",
    "deploySkipBuildHint": "Se venv/binário existir; velocidades de reinicialização (preferência local)",
    "deployPort": "· porta {{port}}",
    "deployFpmApplied": "Conjunto PHP-FPM aplicado",
    "deployFpmIncomplete": "FPM incompleto",
    "deployFpmNote": "Grava a configuração do site/pool; a recarga ao vivo precisa de direitos de alteração do sistema.",
    "deployBuildNote": "Falhas de compilação/inicialização são exibidas no resultado das operações. A entrada grava no servidor; skip-build é a preferência local.",
    "deployPhpIniTitle": "Substituições do projeto php.ini",
    "deployPhpIniDesc": "Apenas chaves para alterar;",
    "deployPhpIniExample": "por exemplo 256 milhões; vazio = global",
    "deployGlobal": "Global",
    "deployCustom": "Personalizado",
    "deployOff": "Desligado",
    "deployOnCareful": "Ligado · cuidadoso",
    "deployPhpIniSaved": "Substituições do projeto php.ini salvas; implantar ou aplicar o FPM novamente",
    "deployHistory": "Histórico de implantação ({{count}})",
    "deployHistoryDesc": "Da auditoria; mais novo primeiro",
    "deployGitUrlHint": "URL do repositório HTTPS ou SSH; sincronizar e reimplantar por tempo de execução",
    "deployEnvHint": "Uma KEY=valor por linha; # comentários",
    "resume": "Retomar projeto",
    "suspend": "Suspender projeto",
    "goFtpsApply": "Vá se inscrever no serviço FTPS",
    "toolchainNote": "Instalando o conjunto de ferramentas ≠ o projeto está ativo; implantação com sucesso ≠ Nginx público (publicar na rede).",
    "installToolchainDeploy": "Instalar o conjunto de ferramentas e implementar",
    "deployOnly": "Implantar apenas",
    "openRuntime": "Abra o tempo de execução {{runtime}}",
    "later": "Mais tarde",
    "installToolchainDeployShort": "Conjunto de ferramentas + implantação",
    "runtimeEnv": "{{runtime}} ambiente",
    "applyFpmPool": "Aplicar conjunto FPM",
    "staticNginxHint": "Sites estáticos dependem do Publish Nginx – use atalhos de rede ou visão geral.",
    "fullIniLink": "Catálogo completo e opcache/sessão etc. em",
    "phpIniLink": "Tempo de execução do PHP → php.ini",
    "savePhpIniOverride": "Salvar substituições do php.ini",
    "scaffoldNote": "Se app/ for um andaime YSK (.ysk-scaffold), ele será limpo antes da clonagem; o conteúdo personalizado recusa a substituição.",
    "saveOnly": "Salvar apenas",
    "savePublishNginx": "Salvar e publicar Nginx",
    "needDomainToPublish": "Insira o domínio principal antes de publicar.",
    "savePublish": "Salvar e publicar",
    "saveAuth": "Salvar autenticação",
    "cacheZoneNote": "Zonas FastCGI/proxy_cache completas precisam de keys_zone no host nginx.conf; O painel oferece purga de melhor esforço.",
    "purgeNginxCache": "Limpar cache do Nginx",
    "nginxManageFile": "Arquivo de gerenciamento Nginx:",
    "publishRuntimeNote": "Publicar gravações proxy/PHP-FPM/static conf por tempo de execução (auth, redirecionamentos, docroot)",
    "publishStored": "Publicar com configurações salvas",
    "publishStoredSsl": "Publicar salvo + SSL",
    "publishNote": "Publicar conf de gerenciamento de gravações; sincronizar com /etc/nginx e recarregar precisa de direitos de alteração do sistema.",
    "hitsFiles": "{{count}} arquivo(s) com ocorrências — clique para abrir a cauda (filtro de palavras-chave)",
    "logFilesCount": "Arquivos de registro {{count}}",
    "defaultScanNote": "Sempre verifica logs/ e log/. Os diretórios extras incluem apenas *.log / *.out / *.err.",
    "opsOk": "{{label}} concluído{{url}}",
    "opsOkWithNote": "{{label}} concluído: {{note}}{{url}}",
    "opsFail": "{{label}} falhou: {{reason}}",
    "railPython": "Processo Python",
    "railGo": "Vá processo",
    "railRust": "Processo de ferrugem",
    "railNode": "Processo de nó",
    "runtimeName": {
      "php": "PHP",
      "node": "Node.js",
      "static": "Estático",
      "python": "Pitão",
      "go": "Ir",
      "rust": "Ferrugem",
      "java": "Java",
      "kotlin": "Kotlin",
      "bun": "Pão"
    },
    "netCacheTitle": "Cache",
    "logsDeepAccess": "Centro de registro · acesso",
    "logsDeepError": "Centro de registro · erro",
    "logsDeepNginxUnit": "Registros da unidade Nginx",
    "logsPresetAccess": "Filtrar acesso.log",
    "logsPresetError": "Filtrar erro.log",
    "railJava": "Processo Java",
    "railKotlin": "Processo Kotlin",
    "railBun": "Processo de pão",
    "deployProcessManager": "Gerente de processos",
    "deployProcessManagerSystemd": "systemd (recomendado)",
    "deployProcessManagerPm2": "PM2",
    "proc_restart": "Reiniciar",
    "proc_stop": "Parar",
    "proc_reload": "Recarregar",
    "procControlsHint": "Controles de processo ({{manager}})",
    "procActionOk": "{{action}} ok · {{notes}}",
    "procActionFail": "{{action}} falhou · {{notes}}",
    "procActionFailShort": "Falha na ação do processo",
    "procMissingUser": "O projeto não tem usuário Linux – não pode ser direcionado ao aplicativo PM2",
    "deploySystemdHint": "Padrão de produção: unidade ysk-project-*",
    "deployPm2Hint": "Inicia via pm2 (ecossistema",
    "deleteDialogTitle": "Excluir projeto permanentemente",
    "deletePermanent": "Excluir permanentemente",
    "deleteRemoveFiles": "Excluir disco inicial e usuário Linux",
    "deleteTypeName": "Digite o nome do projeto para confirmar",
    "deletedOk": "Projeto excluído",
    "sslRequiredFirst": "Ainda não há certificado SSL para este domínio. Crie ou carregue um em Certificados SSL antes de publicar + SSL.",
    "sslGateHint": "Ações SSL bloqueadas — vá para",
    "sslGateHint2": "para emitir/carregar um certificado para este domínio primeiro.",
    "netPublishPrimary": "Básico",
    "netPublishSsl": "HTTPS/SSL",
    "netPublishMaint": "Manutenção",
    "sslNeedDomain": "Defina um domínio antes de publicar Nginx/SSL.",
    "createTemplateMissing": "{{v0}} ；「— —」。",
    "deleteDialogDesc": "「{{name}}」。。",
    "deleteWillStop": "sistemad/PM2/",
    "deleteWillWeb": "Nginx conf, pool PHP-FPM, Apache vhost（）",
    "deleteWillOs": "Página inicial do Linux (）",
    "deleteKeepOs": "Linux doméstico (（）",
    "deleteWillDb": "…",
    "deleteRemoveFilesDesc": "Cancelar,",
    "deleteTypeNameHint": "「{{name}}」",
    "deleteDnsWarn": "Zona / domínio DNS.",
    "manageInNginx": "Gerenciar no Nginx",
    "advFtpHomeApp": "Diretório app do site",
    "advFtpHomeRoot": "Home do projeto (completo)",
    "advFtpManage": "Abrir página FTP",
    "resShell": "Concha de login",
    "resSaveHint": "Salve e aplique as alterações no sistema operacional ativo. O plano de controle armazena apenas o formulário. A reaplicação usa os últimos valores salvos.",
    "resBashConfirmTitle": "Permitir festa interativa?",
    "resBashConfirmDesc": "Isso concede um shell de login interativo ao usuário do projeto. Confirme apenas se precisar de SSH ou PTY como usuário.",
    "createGitHint": "Opcional. Armazenado no projeto; clone na guia Implantar (não clona na criação).",
    "gitTokenLaterHint": "O token HTTPS e a profundidade do clone são definidos na guia Implantar do projeto após a criação.",
    "gitBranch": "Filial",
    "gitBranchHint": "Branch or tag. Empty uses the remote default. First clone is shallow (depth 1).",
    "gitBranchAfterUrl": "Introduza primeiro o URL Git. Vazio usa o ramo predefinido remoto.",
    "gitLastRef": "Última sincronização: {{branch}} @ {{commit}}",
    "gitConfirmTitle": "Clonar neste projeto?",
    "gitConfirmBody": "Se app/ ainda for o espaço reservado do Hello World, ele será limpo e clonado. Arquivos personalizados que não são uma estrutura YSK são recusados.",
    "gitConfirmRemoteBody": "Isso aponta a origem para o novo URL e puxa. Histórias não relacionadas falham; arquivos personalizados não são apagados.",
    "runtimeActual": "Binário real {{path}}",
    "runtimeFallback": "O escolhido {{version}} não está neste host. O processo usa {{path}}.",
    "gitSync": "Sincronizar",
    "gitFetch": "Buscar",
    "gitCheckout": "Confira",
    "gitReset": "Redefinir para remoto",
    "gitResetNeedConfirm": "Requer confirmação — descarta commits locais",
    "gitDeepen": "Buscar histórico completo",
    "gitLogTitle": "Confirmações recentes",
    "gitDirtyTitle": "Mudanças locais bloqueiam pull",
    "gitDirtyBody": "{{count}} arquivo(s) diferente(s) do Git (edições de arquivos ou aplicativo). Descarte-os ou aborte.",
    "gitSyncBlockedDirty": "A sincronização é desativada até que as alterações locais sejam descartadas (redefinir) ou os arquivos correspondam ao Git.",
    "gitViewDiff": "Ver diferença",
    "gitDiscard": "Descartar arquivos locais",
    "gitOpenFiles": "Abrir em arquivos",
    "gitNotCloned": "Não clonado",
    "gitClean": "Limpar",
    "gitDirty": "Sujo",
    "gitBehind": "Atrás {{count}}",
    "gitAhead": "À frente {{count}}",
    "gitDetached": "Fixado",
    "gitShallow": "Raso",
    "gitMissing": "está faltando",
    "gitResetConfirmTitle": "Redefinir difícil para remoto?",
    "gitResetConfirmBody": "Isso descarta o histórico local do Git e os arquivos não rastreados, exceto .env, e depois restaura .env do plano de controle.",
    "gitHeads": "Filiais remotas",
    "gitToken": "Token HTTPS",
    "gitTokenHint": "Personal access token. Stored encrypted; never written into the remote URL.",
    "gitTokenPlaceholder": "ghp_… ou glpat-…",
    "gitTokenSet": "Conjunto de tokens",
    "gitSaveToken": "Salvar token",
    "gitClearToken": "Token claro",
    "gitDeployKey": "Implantar chave pública",
    "gitDeployKeyHint": "Adicione isso como uma chave de implantação somente leitura no host Git.",
    "gitDeployKeyOn": "Implantar chave",
    "gitMakeKey": "Criar chave de implantação",
    "gitCopyPub": "Copiar chave pública",
    "gitClearKey": "Limpar chave de implantação",
    "gitKeyCopied": "Chave pública copiada",
    "gitPinHost": "Fixar chave do host",
    "gitPinHostBody": "{{host}} não está fixado. Confirme as impressões digitais e fixe-as antes da clonagem SSH.",
    "gitHostUnpinned": "Chave de host não fixada",
    "gitHookTitle": "Inbound hook",
    "gitHookHint": "Paste POST /api/v1/hooks/git/<id> into GitHub / Gitea / GitLab yourself (push events). Not Slack. Secret is HMAC or X-YSK-Git-Hook.",
    "gitHookOn": "Hook on",
    "gitHookOff": "Hook off",
    "gitHookEnable": "Enable hook",
    "gitHookRotate": "Girar segredo",
    "gitHookDisable": "Disable hook",
    "gitHookSecretOnce": "Copy this secret now — it is not stored in the page after you leave.",
    "gitHookCopyUrl": "Copy URL",
    "gitHookCopySecret": "Copiar segredo",
    "gitHookCopied": "Copiado",
    "gitHookSetup": "Add the webhook yourself. Payload URL = the URL above. Content type application/json. Events: push only. Secret = the one-time value.",
    "gitHookGithub": "GitHub: Settings → Webhooks → Add webhook. Content type application/json. Events: Just the push event. GitHub.com requires HTTPS.",
    "gitHookGitea": "Gitea: Settings → Webhooks → Add Webhook → Gitea. HTTP Method POST. Push events.",
    "gitHookGitlab": "GitLab: Settings → Webhooks. Trigger: Push events. Secret token = the hook secret (sent as X-Gitlab-Token).",
    "gitHookHonesty": "The host unit must have YSK_EXECUTE=1. Without it the hook answers but does not clone or deploy.",
    "gitHookSkipOther": "Pushes to other branches are ignored. Only the project ref syncs.",
    "gitAuthHttps": "Token HTTPS",
    "gitAuthSsh": "Chave de implantação SSH",
    "gitLoadRefs": "Carregar filiais",
    "gitRefDefault": "Padrão remoto",
    "gitRefBranches": "Galhos",
    "gitRefTags": "Etiquetas",
    "gitRefOther": "Outras referências…",
    "gitRefCustom": "Confirmar ou ref",
    "gitRefsNeedUrl": "Insira um URL primeiro.",
    "gitRefsNeedAuth": "Salve um token ou uma chave de implantação e carregue as ramificações.",
    "gitRefsHint": "Carregado do controle remoto. Escolha um – não digite.",
    "gitHookSetupToggle": "Como colar isso",
    "gitHookOneLiner": "HMAC ou X-YSK-Git-Hook. Apenas a ref. deste projeto.",
    "gitHookExecuteHint": "Precisa de YSK_EXECUTE=1 para clonar ou implantar.",
    "gitShowKey": "Mostrar chave",
    "gitHideKey": "Esconder",
    "gitBehindShort": "↓{{count}}",
    "gitAheadShort": "↑{{count}}",
    "gitDirtyShort": "Sujo · {{count}}",
    "gitFilesLink": "Arquivos",
    "nameInvalid": "Use um nome em letras minúsculas: comece com uma letra e depois letras, dígitos ou hífen (máximo 31).",
    "deployVersionMissing": "O nó {{version}} não está instalado neste host. Escolha uma versão instalada ou instale-a primeiro.",
    "deployUsedBinary": "Implantar usado {{path}}"
  },
  "protection": {
    "levels": {
      "low": {
        "label": "OK",
        "verb": "Sistema estável",
        "hint": "Mantenha proteção diária"
      },
      "elevated": {
        "label": "Elevado",
        "verb": "Anomalias vistas",
        "hint": "Mude para IPs protegidos e observe IPs suspeitos"
      },
      "under_attack": {
        "label": "Sob ataque",
        "verb": "Provavelmente sob ataque",
        "hint": "Aplicar predefinição de sub-ataque + banimento em massa"
      },
      "critical": {
        "label": "Crítico",
        "verb": "Ameaça grave",
        "hint": "Considere emergência; certifique-se de estar na lista de permissões"
      }
    },
    "presetsWhen": {
      "daily": "Dia a dia",
      "hardened": "Digitalizar / bruto",
      "under_attack": "Inundação L7",
      "emergency": "Último recurso"
    },
    "note": {
      "notApplied": "Não aplicado no host (precisa de root + YSK_EXECUTE=1) — salvo nas configurações do painel",
      "nginxWritten": "Escreveu o arquivo do painel de limite de taxa Nginx",
      "f2bWritten": "Escreveu as configurações do painel fail2ban",
      "hintDropped": "Dica de proteção interna omitida",
      "nginxLimits": "Escreverá o snippet de limite de taxa Nginx"
    },
    "rel": {
      "justNow": "Agora mesmo",
      "minutesAgo": "{{n}} minutos atrás",
      "hoursAgo": "{{n}} horas atrás"
    },
    "apiUnreachable": "Não é possível acessar a API (o proxy/backend da web pode estar inativo)",
    "geoipLoadFailed": "Falha ao carregar GeoIP",
    "loadFailed": "Falha no carregamento",
    "previewDone": "Visualização concluída (não escrita)",
    "presetApplied": "Predefinição de proteção aplicada",
    "manualBan": "Banimento manual",
    "banSent": "Ban enviado para {{ip}}",
    "quickSelectBan": "Banimento de seleção rápida",
    "bulkBan": "Banimento em massa {{count}}",
    "autoBanStatus": "Banimento automático: {{onOff}} · {{mode}} · {{method}}",
    "autoBanUpdated": "Banimento automático atualizado",
    "automationMaster": "Mestre de automação: {{onOff}}",
    "autoPresetStatus": "Predefinição automática: {{onOff}}",
    "autoBanAutomation": "Banimento automático: {{onOff}} ({{mode}})",
    "automationSaved": "Configurações de automação salvas",
    "statFirewall": "Firewall",
    "statSuspects": "IPs suspeitos",
    "statSuspectsSplit": "{{actionable}} acionável / {{total}} listado",
    "suspectActionableCount": "IPs acionáveis ​​{{count}}",
    "scoreBasisHint": "A pontuação de ameaças usa firewall, volume de banimento fail2ban e sinais de taxa de solicitação – não a mesma contagem da lista de suspeitos da Intel.",
    "statAutoBan": "Banimento automático",
    "statApply": "Aplicação do sistema",
    "statActiveBans": "Banimentos ativos",
    "statPreset": "Predefinido",
    "threatPill": "Ameaça {{label}} · pontuação {{score}}",
    "reprobed": "Sondado novamente",
    "loadingStatus": "Carregando status de proteção…",
    "tabs": {
      "command": "Resposta",
      "automation": "Automação",
      "bans": "Proibições",
      "geo": "Acesso IP",
      "stack": "Pilha",
      "intel": "Informações",
      "about": "Sobre"
    },
    "reapply": "Reaplicar",
    "nginxLimits": "Limites de taxa Nginx",
    "notWritten": "Não escrito",
    "modeValue": {
      "normal": "Normal",
      "degraded": "Degradado",
      "ddos-protection": "Proteção DDoS",
      "offline": "Off-line"
    },
    "mode": "Modo",
    "controlPlane": "Plano de controle",
    "canApply": "Pode se inscrever",
    "needRoot": "Precisa de raiz",
    "writeOnly": "Gravar apenas arquivo",
    "autoRunning": "Correndo · a cada {{sec}}s · bane esta hora {{n}}",
    "autoOffManual": "Desligado – somente manual",
    "lastTick": "· último {{t}}",
    "nextTick": "· próximo {{t}}",
    "on": "Sobre",
    "off": "Desligado",
    "open": "Abrir",
    "ranAutomationTick": "Executei um tick de automação",
    "escalateHardened": "Endurecido ≥ pontuação",
    "escalateAttack": "Sob ataque ≥ pontuação",
    "deescalateDaily": "Voltar ao diário <pontuação",
    "zeroOff": "0 desligado",
    "holdAfterEscalate": "Espera mínima após escalar",
    "min5": "5 minutos",
    "min15": "15 minutos",
    "min30": "30 minutos",
    "hour1": "1 hora",
    "hour2": "2 horas",
    "hour6": "6h",
    "presetOrCustom": "Predefinido/personalizado",
    "autoBanMode": "Modo de banimento automático",
    "soft": "Macio",
    "normal": "Normal",
    "aggressive": "Agressivo",
    "custom": "Personalizado",
    "method": "Método",
    "banMethod": "Método de proibição",
    "both": "Ambos",
    "scoreGte": "Pontuação ≥",
    "hitsGte": "Solicitar acessos ≥",
    "hits429Gte": "429 ocorrências relacionadas ≥",
    "scanHitsGte": "Acertos do caminho de varredura ≥",
    "cooldown": "Esfriar",
    "maxPerHour": "Máximo por hora",
    "scanInterval": "Intervalo de verificação",
    "schedulerDefault": "padrão do agendador 120s",
    "collapse": "Colapso",
    "expand": "Expandir",
    "step": "Etapa",
    "mechanism": "Mecanismo",
    "youCanTune": "Você pode sintonizar",
    "probe": "Sondar",
    "probeSignals": "WAN / taxa necessária / TCP / f2b / UFW",
    "escalateThreshold": "Limite de escalada",
    "emergency": "Emergência",
    "neverAuto": "Nunca automático",
    "manualEmergency": "EMERGÊNCIA Manual",
    "signalNetworkDown": "WAN inativa",
    "signalHighReq": "Alta taxa de solicitação",
    "signalDdos": "Heurística DDoS",
    "signalTcp": "Conexões TCP",
    "signalUfwOff": "UFW desligado",
    "signalF2bBans": "contagem de banimentos fail2ban",
    "weightHint": "{{label}} peso 0–3",
    "detected": "(detectado)",
    "notSet": "(não definido)",
    "zonesComma": "Zonas (separadas por vírgula)",
    "underAttackRequested": "Sob ataque solicitado",
    "underAttackCleared": "Limpar UA solicitado",
    "autoBanOpen": "Em · {{mode}} · esta hora {{n}}/{{max}}",
    "autoBanClosed": "Desligado — somente manual/lista",
    "pausedNoExecute": "· pausado (sem EXECUTE)",
    "circuitOpen": "· circuito aberto",
    "autoBanModeLabel": "Modo de banimento automático",
    "scanned": "Digitalizado",
    "bulkOps": "Ações em massa",
    "fromAccessLog": "Do registro de acesso · um clique ou banimento em massa",
    "noSuspectIps": "Nenhum IP suspeito por enquanto",
    "noSuspectDesc": "Aparece quando o tráfego scan/429 é visto. Expanda para banimento manual.",
    "whitelistPlus": "Lista de permissões + {{ip}}",
    "whitelistAdded": "Adicionado à lista de permissões",
    "activeBansTitle": "Banimentos ativos ({{count}})",
    "activeBansDesc": "Agregado de proteção · unban via API de defesa (o mesmo que fail2ban-client)",
    "source": "Fonte",
    "unbanned": "Não banido",
    "noBans": "Sem proibições",
    "noBansDesc": "Proibições aparecem aqui",
    "collapseQuickAdd": "Recolher adição rápida",
    "quickAddOne": "Adicione um rapidamente",
    "removeItem": "Remover {{w}}",
    "updated": "Atualizado",
    "ipOrCidr": "IPv4/IPv6 ou CIDR",
    "autoBanWhitelistAdded": "Adicionado à lista de permissões de banimento automático",
    "added": "Adicionado",
    "banIpPlaceholder": "IPv4 ou IPv6 para banir",
    "reason": "Razão",
    "scanBrute": "Digitalizar / bruto",
    "noSignals": "Ainda não há sinais",
    "pressReprobe": "Pressione re-sondar",
    "points": "pontos",
    "noTopIps": "Ainda não há IPs principais",
    "topIpsAfterLog": "Mostra após a existência de logs",
    "noManagedVhost": "Nenhum vhost gerenciado",
    "afterPresetMarker": "Preset aplicar injeta marcador",
    "injected": "YSK_DEFENSE injetado",
    "notInjected": "Não injetado",
    "noEvents": "Nenhum evento ainda",
    "eventsAfterOps": "Aparece após aplicação/banimento",
    "geoipUpdated": "Banco de dados GeoIP atualizado",
    "dbReady": "Banco de dados pronto",
    "stale": "Obsoleto",
    "older7d": ">7 dias",
    "freshnessNa": "n / D",
    "freshnessMissing": "Nenhum banco de dados",
    "freshnessStale": "Obsoleto",
    "freshnessFresh": "Atual",
    "lastSuccess": "Último sucesso",
    "downloaded": "Baixado",
    "missing": "Ausente",
    "geoMode": "Modo de acesso geográfico",
    "denyList": "Lista de negações",
    "allowListHighRisk": "Lista de permissões · alto risco",
    "autoUpdateDb": "Atualizar banco de dados automaticamente",
    "countriesSelected": "Países ({{n}} selecionados)",
    "searchCountry": "Pesquise nome chinês ou ISO",
    "countryPlaceholder": "China/CN",
    "regionsSelected": "Regiões ({{n}} selecionadas)",
    "regionsHint": "De países selecionados; personalizado CN-GD OK",
    "pickCountryFirst": "Escolha os países primeiro para restringir a lista",
    "customRegion": "Personalizado, por ex. CN-GD",
    "regionPlaceholder": "Guangdong / CA / Tóquio",
    "continentsSelected": "Continentes ({{n}} selecionado)",
    "continentsHint": "Continentes opcionais",
    "continentPlaceholder": "Ásia/UE",
    "asnsSelected": "ASN do provedor ({{n}} selecionado)",
    "asnsHint": "Nuvem/ISP; ASN personalizado OK",
    "customAsn": "ASN personalizado, por ex. 13335",
    "asnPlaceholder": "Cloudflare/ISP",
    "cityExample": "por exemplo CN|Shenzhen ou EUA|Ashburn",
    "policySaved": "Política salva · países {{c}} · regiões {{r}} · ASN {{a}}",
    "ipPolicySaved": "Política de acesso IP salva",
    "nginxGeoWritten": "Escreveu o trecho geográfico nginx",
    "ipAddress": "Endereço IP",
    "lookupPlaceholder": "IPv4 ou IPv6 para procurar",
    "wouldBlock": "Bloquearia · {{reason}} · {{matched}}",
    "wouldAllow": "Permitir · {{reason}}",
    "lookupDone": "Pesquisa concluída",
    "item": "Campo",
    "value": "Valor",
    "country": "País",
    "region": "Região",
    "city": "Cidade",
    "continent": "Continente",
    "coords": "Coordenadas",
    "provider": "Provedor",
    "policy": "Política",
    "block": "Bloquear",
    "allow": "Permitir",
    "matched": "Correspondido",
    "applyStricterTitle": "Aplicar predefinições mais rigorosas?",
    "applyStricterDesc": "Pode ativar o banimento automático. Confirme se seu IP está na lista de permissões.",
    "confirmEmergencyTitle": "Confirmar predefinição de emergência",
    "confirmEmergencyDesc": "Limites de taxa extremamente emergenciais. Confirme a lista de permissões e digite EMERGÊNCIA.",
    "confirmString": "Confirmar sequência",
    "applyEmergency": "Aplicar emergência",
    "sectionPreset": "Predefinições",
    "sectionAutoPreset": "① Predefinição automática",
    "sectionAutoBan": "② Banimento automático",
    "unban": "Desbanir",
    "ban": "Proibir",
    "banConfirmTitle": "Banir {{ip}}?",
    "banConfirmMethod": "Método: {{method}}",
    "banConfirmUntilUnban": "Permanece banido até que você o cancele (ou expire o fail2ban).",
    "banConfirmDesc": "Este IP será bloqueado no host. Confirme que não é um painel ou endereço de sessão atual.",
    "wlRemovedUndo": "Removido {{ip}} da lista de permissões. Desfaça em 5 segundos.",
    "undo": "Desfazer",
    "banSelectedConfirmTitle": "Banir {{count}} IPs selecionados?",
    "banSelectedConfirmDesc": "Esses endereços serão bloqueados no host: {{ips}}",
    "save": "Salvar",
    "yes": "Sim",
    "no": "Não",
    "oneClickSuggested": "Aplicar predefinição sugerida",
    "stackApply": "Aplicar pilha de proteção (UFW, fail2ban, predefinição)",
    "stackApplyDone": "Aplicação de pilha de proteção solicitada",
    "stackApplyHint": "Isso habilita o UFW e aplica o fail2ban mais a predefinição sugerida. Confirme que você não ficará bloqueado em um painel remoto.",
    "viewPresets": "Ver predefinições",
    "suspectIpsCount": "IPs suspeitos {{count}}",
    "goBans": "Vá para proibições",
    "singleEntryPrefix": "Entrada única:",
    "singleEntryBody": " ",
    "emergencyNeverAuto": "emergência nunca automático",
    "writeOnlyBanner": "Somente gravação: a aplicação do sistema precisa de EXECUTE=1 e root.",
    "readiness": "Prontidão",
    "goTo": "Abrir",
    "presetGuide": "",
    "active": "Ativo",
    "recommended": "Sugerido",
    "useCarefully": "Cuidado",
    "preview": "Visualização",
    "stackToolsSee": "Ferramentas de empilhamento na guia Pilha ·",
    "readinessCheck": "Verificação de prontidão",
    "automationMasterLabel": "Chave mestre de automação",
    "runOneTick": "Execute um tick agora",
    "suggestEmergencyBanner": "Pontuação muito alta — o sistema sugere emergência, mas não se aplica automaticamente. Confirme na guia Resposta.",
    "autoPresetDesc": "Troca automática diariamente/endurecido/sob ataque por pontuação. Emergência nunca automática.",
    "allowDeescalate": "Permitir redução automática",
    "autoBanThresholdHint": "limites de preenchimento suave/normal/agressivo;",
    "sectionMechanism": "③ Como funciona",
    "lastNotes": "Último: {{notes}}",
    "sectionWeights": "④ Pesos de sinal (0–3)",
    "weightsDesc": "Padrão 1;",
    "needCfToken": "Precisa de ambiente CF_API_TOKEN",
    "cfOnEscalate": ". Pode chamar a API ao escalar para ataque insuficiente ou aplicação manual.",
    "ufwOnlyCf": "Sob ataque: UFW permite apenas intervalos CF (+SSH)",
    "ufwOnlyCfHint": "Redefine o UFW somente para IPs da Cloudflare; precisa de direitos de mudança de sistema.",
    "saveZones": "Salvar zonas",
    "uaNow": "Sob ataque agora",
    "uaClear": "Claro (→ alto)",
    "stackRoleNote": "UFW e fail2ban são páginas de ferramentas em Proteção (não na navegação de nível superior). A barra lateral mantém apenas esta página.",
    "fwUfwTitle": "Firewall UFW",
    "fwStats": "Política portuária · NEGAR permanente · permitir {{allow}} · negar {{deny}}",
    "fwRulesProfiles": "Regras e perfis da UFW",
    "f2bStats": "Registrar banimentos temporários · {{jails}} prisões · banidos {{banned}}",
    "jailsWhitelistPolicy": "Prisões · lista branca · política",
    "divisionTitle": "Divisão do trabalho",
    "divisionUfw": "UFW = quais portas abrem, negação permanente de IP",
    "divisionF2b": "fail2ban = banimento temporário após verificação de log",
    "divisionDefense": "Esta página = orquestração de ataque (predefinições de taxa + banimento automático + suspeitos)",
    "autoBanLabel": "Banimento automático",
    "scanOnce": "Digitalize uma vez",
    "selectedIps": "{{count}} IP(s) selecionados",
    "banSelected": "Banimento selecionado",
    "suspectIps": "IPs suspeitos",
    "selectAll": "Selecionar tudo",
    "alreadyBanned": "Banido",
    "whitelist": "Lista de permissões",
    "bansWorkflow": "Resposta: lista de suspeitos → banir/desbanir. Política de prisão, ignoreip, ciclo de vida do serviço:",
    "f2bTool": "ferramenta fail2ban",
    "noSecondJail": "(nenhum segundo editor de prisão aqui).",
    "autoBanWhitelistTitle": "Lista de permissões de banimento automático",
    "autoBanWhitelistDesc": "Isenções de banimento automático de proteção (sincroniza fail2ban ignoreip",
    "ufwOff": "UFW (desligado)",
    "ufwOffHint": "UFW não está ativo – fail2ban é o alvo utilizável.",
    "whitelistSyncHint": "{{n}} entradas do painel · fail2ban ignoreip sync: {{sync}}",
    "whitelistSyncOn": "sobre",
    "whitelistSyncOff": "desativado (as listas podem ser diferentes)",
    "ignoreipWhitelist": "lista de permissões ignorarip",
    "notSetSuggestAdmin": "Não definido (adicione seu IP de administrador)",
    "moreItems": "… {{n}} mais · veja a lista de permissões do fail2ban",
    "add": "Adicionar",
    "manualBanTitle": "Banimento manual",
    "methodFollows": "O método segue a seleção acima (fail2ban/UFW)",
    "preferSuspectList": "Normalmente a lista de suspeitos é suficiente.",
    "threatSignals": "Sinais de ameaça",
    "scoreSource": "Fontes de pontuação · pesos ajustáveis",
    "accessAuthSample": "acesso + amostras de autenticação",
    "fullLogsAt": "Registros nginx/auth completos:",
    "logCenter": "Centro de registro",
    "colScore": "Pontuação",
    "colHits": "Acessos",
    "col429": "429",
    "topIpsTitle": "IPs de topo",
    "hitsCount": "{{n}} acessos",
    "sampleWindowHint": "As contagens vêm da janela de amostras access + auth atual, não do ficheiro de registo completo.",
    "banShort": "Proibir",
    "vhostLimits": "Limites de taxa Vhost",
    "eventStream": "Fluxo de eventos",
    "eventKind": {
      "preset": "Predefinido",
      "auto_preset": "Predefinição automática",
      "cloudflare_ua": "nuvemflare",
      "ban": "Proibir",
      "unban": "Desbanir"
    },
    "hours48": "48 horas",
    "geoipDb": "Banco de dados GeoIP",
    "refreshStatus": "Atualizar status",
    "updateDbNow": "Atualize o banco de dados agora",
    "geoipSourceHint": "Usa banco de dados GeoIP local por padrão; token IPinfo opcional.",
    "retry": "Tentar novamente",
    "loadingGeoip": "Carregando status GeoIP…",
    "nextScheduledUpdate": "Próxima atualização agendada: {{at}}",
    "statusNotLoaded": "Status não carregado",
    "load": "Carregar",
    "accessPolicy": "Política de acesso",
    "enable": "Habilitar",
    "freeGranularity": "Máx. gratuito: país + região + ASN; cidade opcional (padrão desativado, menor precisão). Provedor = ASN. Lista de permissões sempre isenta. Clique no chip para remover.",
    "allowListDanger": "O modo de lista de permissões é de alto risco: IPs públicos não listados (incluindo localização geográfica desconhecida) são bloqueados. Certifique-se de que o IP do administrador esteja na lista de permissões de páginas banidas.",
    "dailySchedule": "Programação diária",
    "cityPolicy": "Política municipal (baixa confiança · opcional)",
    "useCityAccess": "Use a cidade para acesso",
    "cityPolicyHint": "A precisão da cidade do banco de dados gratuito é limitada",
    "noCitiesYet": "Nenhuma cidade ainda",
    "savePolicy": "Salvar política",
    "applyNginxSnippet": "Aplicar trecho Nginx",
    "nginxSnippetHint": "O bloqueio HTTP precisa do módulo nginx geoip2.",
    "testIp": "Testar IP",
    "lookup": "Pesquisa",
    "plusCountry": "+ país {{v}}",
    "plusRegion": "+ região {{v}}",
    "plusCity": "+ cidade {{v}}",
    "lastTickPrefix": "· último {{t}}",
    "nextTickPrefix": "· próximo {{t}}",
    "cannotBanSelf": "Não é possível bloquear {{ip}} — é o anfitrião, o IP de início ou ignoreip",
    "selfIp": "Este anfitrião",
    "selfHostIp": "IP do host",
    "selfLoginIp": "Seu IP de login",
    "showZeroScore": "Mostrar pontuação 0",
    "hideZeroScore": "Ocultar pontuação 0",
    "geoDraftOnly": "Política desligada — Guardar só grava rascunho. O Nginx não aplica até a ativar.",
    "geoNeedDb": "Os bancos de dados GeoIP estão faltando — atualize os arquivos MMDB primeiro",
    "uaNeedZones": "Defina uma zona Cloudflare primeiro",
    "selectAllCountriesWarn": "Selecionar todos os países em lista de bloqueio? Pode bloquear este anfitrião e o país de início.",
    "badgeRecommendPreset": "Recomenda-se um predefinição mais forte para a ameaça atual",
    "badgeAutomationOn": "A automatização está ligada",
    "badgeBanCount": "Bloqueios ativos",
    "badgeGeoOn": "A política de acesso Geo está ligada",
    "badgeGeoNotReady": "A base GeoIP não está pronta",
    "badgeIntelSignals": "Sinais que somam pontuação agora",
    "signalActive": "Ativo",
    "signalInactive": "Inativo",
    "signalJails": "{{n}} cadeia(s)",
    "dbReadyHint": "Ficheiros MMDB presentes",
    "dbNotReadyHint": "Descarregue primeiro uma base GeoIP",
    "staleHint": "Se a última atualização bem-sucedida tem mais de 7 dias",
    "draftBadge": "Rascunho",
    "banIsSelf": "Este IP corresponde à origem do painel atual ou a este host.",
    "banNotSelf": "Este IP não é a fonte atual do painel.",
    "geoSourceLocal": "Biblioteca GeoIP local (sapics + DB-IP)",
    "nginxPreviewHint": "Snippet Nginx que esta predefinição escreveria (somente visualização):"
  },
  "publicFiles": {
    "notSet": "Não definido",
    "quota": "Contingente",
    "reloadOnApply": "Ao aplicar",
    "path": "Caminho",
    "fileManager": "Gerenciador de arquivos",
    "overview": "Visão geral",
    "overviewDesc": "Configurações a serem aplicadas (resumo somente leitura)",
    "serverName": "Nome do servidor",
    "reloadNginx": "Recarregar Nginx",
    "reloadTry": "Experimente aplicar",
    "siteSettings": "Configurações do site",
    "siteSettingsDesc": "Grava conf gerenciada; pode recarregar o Nginx na aplicação (acessível somente após a aplicação)",
    "serverNameHint": "Nginx server_name, por exemplo. arquivos.exemplo.com",
    "notes": {
      "noManagedConf": "Nenhuma configuração Nginx gerenciada ainda – clique em Aplicar",
      "notSynced": "O conf gerenciado existe, mas não está em /etc/nginx/conf.d — aplique novamente como root com YSK_EXECUTE"
    },
    "quotaMiB": "Cota (MiB)",
    "quotaHint": "Opcional; tamanho do diretório público caps",
    "unlimited": "Ilimitado",
    "quotaInvalid": "Insira um número inteiro de MiB ou escolha Ilimitado.",
    "serverNameRequired": "Insira um nome de servidor.",
    "serverNameInvalid": "Use um nome de host, curinga ou IP — sem espaços ou pontuação.",
    "applyHint": "Aplicar apenas grava configuração;",
    "appliedOk": "Site de arquivos públicos aplicado",
    "applyReload": "Aplicar e recarregar o Nginx",
    "statusLive": "Ao vivo no nginx",
    "statusDraft": "Rascunho/não aplicado",
    "statusManagedOnly": "Somente gerenciado",
    "statusNotApplied": "Não aplicado",
    "nginxLive": "em conf.d",
    "nginxNotLive": "não em conf.d",
    "openSite": "Abrir site",
    "notLiveHint": "O domínio 404 geralmente significa que conf está apenas em dataDir, não foi copiado para /etc/nginx/conf.d ou o nginx não foi recarregado. Aplique novamente com root + YSK_EXECUTE. Use http:// até que o SSL seja emitido para este nome de host.",
    "diskRoot": "Raiz do disco",
    "executeFlag": "Executar",
    "asRoot": "Raiz",
    "filesInRoot": "Entradas",
    "managedConf": "Configuração gerenciada",
    "systemConf": "Configuração do sistema.d",
    "autoindex": "Listagem de diretório (autoindex)",
    "liveSystemConf": "Conf. de sistema em direto: {{path}}",
    "publicRootNote": "Raiz pública: {{path}}",
    "applyConfirmTitle": "Aplicar o sítio de ficheiros públicos?",
    "applyConfirmDesc": "Escrever Nginx server_name {{name}} e recarregar o Nginx.",
    "serverNameMismatch": "A conf. em direto usa {{live}}; o formulário tem {{draft}}. Aplique para substituir.",
    "liveName": "Nome ativo",
    "draftName": "Nome do rascunho",
    "draftUnapplied": "Este rascunho não é aplicado. Nginx ainda serve o nome ativo.",
    "discardDraft": "Descartar rascunho"
  },
  "rbac": {
    "permissions": "Permissões",
    "permissionsDesc": "Adicione ou remova recursos por função. Padrões de fábrica com restauração com um clique.",
    "rolePolicy": "Política de função",
    "dirty": "Personalizado",
    "factory": "Padrão de fábrica",
    "maxLevel": "Nível máximo",
    "save": "Salvar política",
    "saved": "Política {{role}} salva",
    "restoreRole": "Restaurar esta função",
    "restoreAll": "Restaurar todas as funções",
    "restoreRoleTitle": "Restaurar {{role}} para os padrões de fábrica?",
    "restoreRoleDesc": "Os recursos personalizados para esta função serão apagados.",
    "restoreAllTitle": "Restaurar todas as funções para os padrões de fábrica?",
    "restoreAllDesc": "Todas as políticas de função personalizada serão apagadas.",
    "restoredRole": "Restaurado {{role}}",
    "restoredAll": "Restaurados todos os padrões de função",
    "bandAllOn": "Habilitar tudo",
    "bandAllOff": "Desativar tudo",
    "diffFromFactory": "Difere do padrão",
    "effectivePreview": "Capacidades eficazes",
    "userOverrides": "Substituições de usuário",
    "extraGrants": "Subsídios extras",
    "extraRevokes": "Revogações extras",
    "restoreUserOverrides": "Limpar substituições de usuário",
    "restoreUserOverridesTitle": "Limpar substituições para {{name}}?",
    "restoreUserOverridesDesc": "Somente concessões/revogações extras são liberadas; a política de função permanece inalterada.",
    "overridesBadge": "Substituições",
    "promoteAdminTitle": "Promover a administrador?",
    "promoteAdminDesc": "O administrador pode gerenciar usuários, alterar RBAC, personificar, restaurar backups e muito mais.",
    "level": {
      "read": "Ler",
      "write-low": "Escreva (baixo)",
      "write-high": "Escreva (alto)",
      "destructive": "Destrutivo",
      "privilege": "Privilégio"
    },
    "cap": {
      "dashboardRead": "Painel",
      "logsRead": "Registros",
      "metricsRead": "Métricas",
      "projectsRead": "Projetos (ler)",
      "mailRead": "Correio (ler)",
      "dnsRead": "DNS (ler)",
      "sslRead": "SSL (ler)",
      "backupsRead": "Backups (ler)",
      "updatesRead": "Atualizações (ler)",
      "servicesRead": "Serviços (ler)",
      "firewallRead": "Firewall (ler)",
      "approvalsView": "Aprovações (visualização)",
      "usersSelf": "Autoperfil / 2FA",
      "projectsWrite": "Criar/editar projetos",
      "mailWrite": "Caixas de correio/aliases",
      "dbWrite": "Criar bancos de dados",
      "sslUpload": "Carregar certificados",
      "filesProject": "Arquivos de projeto",
      "approvalsRespond": "Responder às aprovações",
      "cronManage": "Gerenciamento de cron",
      "servicesControl": "Controle de serviço",
      "updatesApply": "Aplicar atualizações de pacote",
      "dnsApply": "Aplicar DNS",
      "sslIssue": "Emitir SSL",
      "publishApply": "Publicar / Nginx",
      "firewallEdit": "Editar firewall",
      "mailApply": "Aplicar mapas de correio",
      "runtimeTuning": "Ajuste de tempo de execução",
      "mysqlConsoleWrite": "Console de gravação MySQL",
      "projectsDelete": "Excluir projetos",
      "dbDrop": "Eliminar bancos de dados",
      "backupsRun": "Execute backups",
      "backupsRestore": "Restaurar backups",
      "firewallFlush": "Limpar firewall",
      "logsPurge": "Limpar registros",
      "usersManage": "Gerenciar usuários",
      "packagesManage": "Gerenciar pacotes",
      "usersImpersonate": "Personificar",
      "securityPolicy": "Política de segurança",
      "rbacPolicy": "Política RBAC",
      "settingsSystem": "Configurações do sistema",
      "auditExport": "Exportação de auditoria",
      "securityApiKeysAdmin": "Administrador de chaves de API",
      "networkBrowse": "Navegação na web mediada por host",
      "networkVnc": "Área de trabalho remota VNC",
      "validatorsRead": "Validadores (leitura)",
      "validatorsManage": "Validadores gerir",
      "validatorsWipe": "Validadores limpar dados",
      "dockerRead": "Docker (leitura)",
      "dockerManage": "Docker gerir",
      "dockerWipe": "Docker remover / limpar"
    },
    "aboutRoles": "Funções (padrões de fábrica)",
    "aboutRolesBody": "As funções definem recursos padrão; os usuários podem substituir os individuais.",
    "aboutQuota": "Cotas",
    "aboutQuotaBody": "As cotas de pacotes são principalmente totais de host/painel, e não isolamento rígido de vários locatários",
    "dangerPolicyTitle": "Conceder capacidades destrutivas/privilegiadas?",
    "dangerPolicyDesc": "Você está adicionando limites destrutivos ou de privilégios ou aumentando maxLevel para esta função",
    "needRbacPolicy": "rbac.policy é necessário para editar políticas de função.",
    "adminLockedFull": "Admin totalmente aberto (bloqueado)",
    "adminLockedHint": "A função do sistema administrativo está sempre totalmente aberta e não pode ser reduzida",
    "maxLevelHint": "Os grupos de capacidades acima deste nível permanecem bloqueados.",
    "capabilities": "Capacidades",
    "capabilitiesHint": "Alternar o que esta função pode fazer",
    "enabledCount": "{{enabled}} de {{total}} ativado",
    "bandAboveMax": "Acima do nível máximo",
    "roleUnavailable": "Não disponível para esta função",
    "dirtyHint": "Personalizado (diferente da fábrica)",
    "unsaved": "Não salvo",
    "unsavedHint": "Edições não salvas nesta função",
    "nothingToSave": "Nada para salvar",
    "saveRole": "Salvar política {{role}}",
    "discardTitle": "Descartar política não salva?",
    "discardDesc": "A troca de funções descarta edições de recursos não salvas."
  },
  "readiness": {
    "cat": {
      "core": "Plano de controle",
      "security": "Permissões e segurança",
      "binaries": "Software do sistema",
      "hosting": "Tempos de execução",
      "dns": "DNS",
      "email": "E-mail",
      "isolation": "Isolamento do projeto",
      "ops": "Operações"
    },
    "level": {
      "ready": "Preparar",
      "degraded": "Degradado",
      "missing": "Ausente",
      "unknown": "Desconhecido"
    },
    "severity": {
      "critical": "Crítico",
      "recommended": "Recomendado",
      "optional": "Opcional"
    },
    "fix": "Consertar",
    "passed": "Passar",
    "checkFailed": "Falha na verificação de prontidão",
    "gatePass": "Portão passado · {{pct}}%",
    "gateFail": "Não estou pronto · {{pct}}%",
    "gateBlocked": "Não aprovado · {{n}} ausente",
    "executeOn": "Sobre",
    "executeOff": "Desligado",
    "blockers": "Bloqueadores",
    "blockersHint": "Os bloqueios são o subconjunto crítico de Em falta — não são verificações extra.",
    "requireAdminTotp": "exigir política 2FA do administrador",
    "listenBind": "endereço de escuta",
    "item": {
      "admin2fa": "Administração de dois fatores"
    },
    "dataDirPerms": "permissões do diretório de dados do painel",
    "mode750": "modo 750",
    "totalChecks": "Todas as verificações",
    "totalChecksHint": "Pronto + degradado + faltando = esse total. Os bloqueadores são o subconjunto crítico ausente.",
    "probing": "Sondagem…",
    "reprobe": "Sondar novamente",
    "exportReport": "Exportar relatório",
    "exportStarted": "Baixando {{name}}",
    "firstBlocker": "Corrija o primeiro bloqueador",
    "viewRecommended": "Ver recomendado",
    "loadingProbe": "Testando os recursos do host…",
    "priorityTab": "Correções prioritárias",
    "checklistTab": "Lista de verificação completa",
    "summaryTab": "Resumo e atalhos",
    "priorityTitle": "Correções prioritárias",
    "prioritySub": "Manuseie em ordem; re-sondar depois de limpar os bloqueadores",
    "nItems": "{{count}} itens",
    "noHardBlockers": "Sem bloqueadores rígidos",
    "noHardBlockersTitle": "Sem bloqueadores rígidos",
    "prodGate": "Portão de produção",
    "gatePassed": "passou",
    "gateMaybePerm": "ainda pode falhar devido a permissões",
    "viewDegradedHint": "Revise recomendações degradadas (e-mail, DNS, tempos de execução opcionais).",
    "viewDegraded": "Ver degradado",
    "fullChecklist": "Lista de verificação completa",
    "showing": "Exibindo {{shown}} / {{total}}",
    "filterAria": "Filtro de status",
    "all": "Todos",
    "category": "Categoria",
    "allCategories": "Todas as categorias",
    "searchPh": "Título, detalhe, id, dica de correção…",
    "quickCatAria": "Categorias rápidas",
    "noMatchTitle": "Nenhum item correspondente",
    "noMatchDesc": "Limpe a pesquisa ou altere os filtros.",
    "resetFilters": "Redefinir filtros",
    "summary": "Resumo",
    "shortcuts": "Atalhos",
    "opsShortcutsAria": "Atalhos de operações",
    "scHost": "Configurações do host",
    "scHostD": "nome do host · poder · NTP",
    "scUnit": "Unidade de plano de controle",
    "scUnitD": "instalar / ativar o systemd",
    "scServices": "Matriz de atendimento",
    "scServicesD": "nginx · Banco de dados · ciclo de vida",
    "scMetrics": "Métricas de host",
    "scMetricsD": "carregar · memória · alertas",
    "scProtection": "Centro de defesa",
    "scProtectionD": "resposta · UFW · fail2ban",
    "policyNote": "Política: correio PTR / porta 25 / DNS do registrador nunca são reivindicados automaticamente como completos. HTTP 503 = relatório não pronto, mas completo (não é um sucesso falso).",
    "notProbedTitle": "Ainda não foi investigado",
    "notProbedDesc": "Clique em “Re-sondar” para iniciar uma verificação de prontidão somente leitura.",
    "runCheck": "Execute a verificação de prontidão",
    "reportFormatError": "Formato de relatório de preparação inválido",
    "checkFailedHttp": "Falha na verificação de prontidão ({{status}})",
    "itemAdminPassword": "Força da senha do administrador",
    "itemAdminPasswordWeak": "{{count}} admin(s) sinalizado(s) must_change_password / bootstrap inseguro — alteração antes da produção",
    "itemAdminPasswordOk": "Nenhum sinalizador de bootstrap/senha fraca nas contas de administrador",
    "itemAdminPasswordFix": "Alterar senha de administrador (Segurança/Usuários)",
    "itemListenBind": "Ligação de escuta do plano de controle",
    "itemListenBindPublic": "A escuta pode ser pública (0.0.0.0/::). Prefira 127.0.0.1 + proxy reverso/firewall.",
    "itemListenBindLoopback": "Prefira loopback bind (padrão 127.0.0.1)",
    "itemDataDirPerms": "permissões dataDir",
    "itemDataDirWorldW": "chmod 750 (ou 700) dataDir; chown para o usuário do painel",
    "itemDataDirOtherR": "Prefira chmod 750 dataDir para que outros usuários não possam ler JSON do plano de controle",
    "itemRustToolchain": "Conjunto de ferramentas de ferrugem",
    "itemWebBuildFix": "Clique em “Corrigir agora” para construir a UI da Web (requer monorepo neste host) ou execute: pnpm --filter ysk-server-web build",
    "itemWebBuildManual": "Nenhum monorepo ou SPA empacotado neste host – a correção com um clique não está disponível. Em uma máquina com fonte: pnpm --filter ysk-server-web build, copie apps/web/dist/* para dataDir/web (por exemplo, /var/lib/ysk-server/web) ou defina YSK_WEB_ROOT e reinicie.",
    "itemStateStore": "Armazenamento de estado do plano de controle",
    "itemStateStoreSqliteHint": "Opcional: YSK_STORE=sqlite para armazenamento de documentos WAL",
    "itemBackupFreshness": "Última execução de backup completo",
    "itemBackupNone": "Nenhum last_backup_run registrado – execute o backup completo ou agende",
    "itemBackupFix": "backup de todos os servidores ysk · agendamento de backup --install",
    "itemFleetSessions": "Sessões de agente de frota",
    "itemFleetNone": "Opcional para host único; multi-edge precisa de execução do agente + pulsação",
    "itemFleetNoHb": "Sessões registradas, mas sem pulsação — iniciar agente de borda",
    "itemPdnsutil": "pdnsutil (PowerDNS)",
    "apachePort80Title": "Apache vs público: 80",
    "apachePort80Detail": "O Apache está escutando em :80 e o Nginx não está em HTTP público – entra em conflito com a topologia Nginx como borda.",
    "apachePort80Both": "Tanto o Apache quanto o Nginx aparecem em :80 – revincule o Apache para 127.0.0.1:8080.",
    "apachePort80Ok": "O Apache está rodando, mas não possui apenas public :80 (topologia OK).",
    "apachePort80Fix": "Existem auxiliares de religação de instalação; desative os vhosts do Apache em 80 ou verifique com ss -lntp após recarregar.",
    "fixNow": "Corrigir agora",
    "fixFailed": "Falha na correção",
    "fixDone": "Permissões dataDir reforçadas (chmod 750)",
    "fixDoneWebUi": "UI da Web construída/instalada",
    "rootLabel": "Superusuário",
    "techDetails": "Detalhes técnicos",
    "missingOwner": "Nenhum proprietário de painel atribuído (atribuição de cota de pacote)",
    "notOsProvisioned": "Usuário/home do SO ainda não provisionado",
    "isolationPendingOs": "Igual ao status do projeto: usuário do SO pendente. Abra o Isolamento para provisionar o usuário do sistema e a casa.",
    "ondrejNone": "Nenhuma fonte ondrej Launchpad PHP detectada",
    "ondrejFound": "Fontes herdadas ondrej/php encontradas que entram em conflito com packages.sury.org: {{paths}}",
    "ondrejTitle": "Fonte apt PHP (ondrej residual)",
    "systemctlActive": "O serviço está em execução",
    "systemctlStatus": "Status do serviço: {{status}}",
    "binInPath": "{{bin}} em PATH",
    "leftoverApache": "Site padrão restante do Apache",
    "leftoverVsftpd": "unidade vsftpd falhou",
    "leftoverCli": "CLI restante obsoleta",
    "leftoverNginx": "Nginx pega tudo faltando",
    "leftoverDovecot": "Dovecot TLS aponta na falta de certificado",
    "leftoverOther": "Sobras de host",
    "leftoverApply": "Sobras aplicam-se",
    "isolationOwnerDegrades": "Owner_user_id ausente afeta a atribuição de cota do pacote – o status é degradado, não está pronto."
  },
  "redis": {
    "neverExpire": "Nunca expira",
    "ttlSeconds": "{{ttl}}s",
    "ttlMinutes": "{{n}} minutos",
    "ttlHours": "{{n}}h",
    "ttlDays": "{{n}}d",
    "typeString": "Corda",
    "typeHash": "Hash",
    "typeList": "Lista",
    "typeSet": "Definir",
    "typeZset": "Conjunto classificado",
    "keysLoadFailed": "Falha ao carregar chaves",
    "writeFailed": "Falha na gravação",
    "saved": "Salvo",
    "deleted": "Excluído",
    "offline": "Off-line",
    "connections": "Conexões",
    "totalKeys": "Total de chaves",
    "writable": "Gravável",
    "connected": "Conectado",
    "notConnected": "Não conectado",
    "keys": "Chaves",
    "selected": "Selecionado",
    "softwareMissing": "O software Redis não está instalado",
    "notConnectedTitle": "Não conectado ao Redis",
    "installThenStart": "Instale o Redis por meio do banner e inicie o serviço.",
    "installedNotConnected": "Instalado, mas não conectado – inicie o serviço para procurar chaves.",
    "keysCountSuffix": "· {{n}} chave(s)",
    "searchPlaceholder": "Chaves de pesquisa, por ex. usuário:* ou *",
    "searchKeys": "Chaves de pesquisa",
    "scanHint": "Usa SCAN, não KEYS. Retorna no máximo {{n}} chaves — evite * em bancos de dados enormes.",
    "scanCapped": "Mostrando as primeiras {{n}} partidas.",
    "rows": "{{n}} linha(s)",
    "content": "Contente",
    "noMatchingKeys": "Nenhuma chave correspondente",
    "dbEmpty": "O banco de dados {{db}} está vazio.",
    "noMatchPattern": "Nenhuma chave correspondente a “{{pattern}}”.",
    "opsResult": "Resultado das operações",
    "addStringKey": "Adicionar chave de string",
    "writeToDb": "Escreva para Redis DB {{db}} (ao vivo - tenha cuidado)",
    "keyName": "Chave",
    "keyNameHint": "Use namespaces de dois pontos, por exemplo. sessão:usuário:1",
    "ttlLabel": "TTL (segundos)",
    "ttlHint": "Vazio = nunca expira",
    "m1": "1m",
    "m5": "5m",
    "h1": "1h",
    "d1": "1d",
    "d7": "7d",
    "customSeconds": "Segundos personalizados",
    "stringValue": "Valor da string via SET",
    "stringContent": "Conteúdo de string",
    "deleteKeyTitle": "Excluir esta chave?",
    "deleteKeyDesc": "Excluir “{{key}}” do banco de dados {{db}}? Isto não pode ser desfeito.",
    "installedOk": "Redis instalado",
    "startedOk": "Redis iniciado",
    "memory": "Memória",
    "addKey": "Adicionar chave",
    "dbLabel": "BD {{i}}",
    "keysInDb": "· {{n}} chave(s)",
    "dbOptionKeys": "Banco de dados {{i}} · {{n}} chaves",
    "dbOptionEmpty": "BD {{i}} · vazio",
    "dbRange": "{{n}} bancos de dados (0–{{max}}).",
    "serviceLink": "Contagem de alterações nas configurações de serviço",
    "dbsWithData": "Bancos de dados com dados (rápido)",
    "keysShort": "{{k}} teclas",
    "keyList": "Lista de chaves",
    "pickKey": "Selecione uma tecla à esquerda para visualizar o conteúdo.",
    "ttlPrefix": "TTL: {{ttl}}",
    "writeLiveHint": "Grava Redis ao vivo; não é possível desfazer no painel com um clique.",
    "refPath": "Referência: {{path}}",
    "dbEmptyMark": " · vazio",
    "noRequirepass": "O modo protegido está ligado, mas requirepass está vazio ou não foi lido — sem palavra-passe.",
    "insecureShort": "Sem senha",
    "setRequirepass": "Definir palavra-passe",
    "generateRequirepass": "Gerar e aplicar senha",
    "generateRequirepassTitle": "Gerar uma senha Redis?",
    "generateRequirepassDesc": "Grava requirepass e reinicia o Redis. A senha é mostrada uma vez. A mudança de host precisa de EXECUTE.",
    "generateRequirepassDone": "Senha Redis aplicada",
    "generatedOnce": "Senha gerada (mostrada uma vez): {{password}}",
    "rdbOnlyLossHint": "AOF desligado e RDB ligado. Um reinício ou falha pode perder escritas recentes.",
    "dirDataContainer": "/dados (contêiner)",
    "dirHostDefault": "/var/lib/redis",
    "dirDefaultInstance": "/var/lib/redis/default",
    "dirDataWarn": "/data geralmente é um caminho de contêiner; este painel não pode confirmar que existe.",
    "saveOff": "Desativar instantâneos (não recomendado)",
    "saveOffWarn": "A string de salvamento vazia desativa os instantâneos RDB. Uma falha pode perder todos os dados se o AOF também estiver desativado.",
    "dirMoveWarn": "Alterar o diretório não move dump.rdb/AOF. A próxima inicialização usa o novo caminho como está.",
    "passwordUnset": "Não definido no serviço",
    "passwordSetHidden": "Conjunto (não mostrado)"
  },
  "resources": {
    "created": "Criado",
    "updated": "Atualizado",
    "deleted": "Excluído",
    "applyDone": "Inscrição concluída",
    "applyIncomplete": "Candidatura incompleta"
  },
  "roles": {
    "admin": "Administrador",
    "operator": "Operador",
    "viewer": "Visualizador",
    "agent": "Agente"
  },
  "runtime": {
    "probed": "Sondado",
    "notProbed": "Não investigado",
    "probe": "Sondar",
    "read": "Ler",
    "targetVersion": "Versão de destino",
    "nodeMissing": "Node.js não está instalado",
    "probeResult": "Resultado da sonda",
    "readonly": "Somente leitura",
    "installNode": "Instale o Node.js.",
    "needExecuteAdmin": "Precisa de direitos de alteração do sistema e administrador",
    "nodeMajor": "Versão principal do nó",
    "nodeMajorHint": "LTS geralmente 20 ou 22; alinhar com o tempo de execução do projeto",
    "installedNode": "Nó instalado {{version}}",
    "installPm2": "Instale PM2",
    "installPm2Desc": "Um clique npm install -g pm2 (gerenciador de processos). Requer Node.js primeiro.",
    "installPm2Btn": "Instale PM2",
    "reinstallPm2": "Reinstale o PM2",
    "installedPm2": "PM2 instalado",
    "pm2Status": "Estado PM2",
    "pm2Ready": "Preparar",
    "pm2MissingShort": "Não instalado",
    "pm2NeedNodeFirst": "Instale o Node.js primeiro e depois o PM2.",
    "pm2InstallHint": "Executa npm -g como root com direitos de alteração do sistema;",
    "pm2ReadyHint": "PM2 está no PATH; os projetos podem usar o modo de processo PM2.",
    "opsResult": "Resultado das operações",
    "unlimited": "Ilimitado",
    "zeroUnlimited": "0 = ilimitado",
    "m24": "24m",
    "h1": "1h",
    "d1": "1d",
    "d7": "7d",
    "phpIniLoadFailed": "Falha ao carregar php.ini",
    "loaded": "Carregado",
    "default": "Padrão",
    "phpMissing": "PHP não está instalado",
    "overview": "Visão geral",
    "fpmSites": "FPM/sites",
    "tools": "Ferramentas",
    "about": "Sobre",
    "installPhp": "Instalar PHP",
    "versionAlreadyInstalled": "A versão {{version}} já está no host",
    "installedVersionBtn": "Instalado {{version}}",
    "newerVersionAvailable": "Atual {{current}}; mais recente suportado: {{newer}} (selecione para instalar)",
    "switchToNewer": "Selecione {{version}}",
    "installedVersionsHint": "Detectado: {{list}}",
    "phpInstallHint": "Precisa de direitos de alteração do sistema e administrador;",
    "phpVersion": "Versão PHP",
    "phpExtHint": "Escolha extensões para instalar",
    "phpExtSelect": "Extensões PHP",
    "phpExtSelectHint": "Os pacotes são instalados como php{{version}}-…;",
    "phpExtRequired": "Obrigatório (núcleo)",
    "phpExtRecommended": "Conjunto recomendado",
    "phpExtSelectAll": "Selecione todas as extensões",
    "phpExtCoreOnly": "Somente núcleo",
    "phpExtSearch": "Extensões de pesquisa (mysql, gd, redis…)",
    "phpExtEmpty": "Nenhuma extensão correspondente",
    "pluginsSelect": "Ferramentas/plug-ins comuns",
    "pluginsSelectHint": "Selecione para instalar com o tempo de execução (por exemplo, PM2 para Node, Poetry para Python)",
    "pluginsSearch": "Ferramentas de pesquisa (pm2, poesia, maven…)",
    "pluginsEmpty": "Nenhuma ferramenta correspondente",
    "pluginsRecommended": "Conjunto recomendado",
    "pluginsSelectAll": "Selecione todos disponíveis",
    "pluginsNone": "Sem ferramentas complementares",
    "pluginsInstallNote": "Selecione ferramentas e instale selecionado. A primeira instalação em tempo de execução pode incluir ferramentas; se o tempo de execução estiver presente, use apenas o botão acima.",
    "installPluginsOnly": "Instale as ferramentas selecionadas ({{version}} já presentes)",
    "installExtOnly": "Instale extensões selecionadas (PHP {{version}} presente)",
    "pluginAlreadyOnHost": "já está no anfitrião",
    "installAddonsOnly": "Instale complementos selecionados ({{version}} presentes)",
    "remoteNewerHint": "Instalado {{current}} · upstream mais recente {{remote}}{{source}}",
    "installedPhp": "PHP instalado {{version}}",
    "nextSteps": "Próximo",
    "suggestedFlow": "Fluxo sugerido",
    "globalPhpIni": "PHP.ini global",
    "globalPhpIniDesc": "Uma configuração por linha",
    "managePath": "Caminho de gerenciamento",
    "loading": "Carregando",
    "probing": "Sondagem…",
    "noBinaryPath": "Nenhum caminho binário",
    "hostDefaultError": "Padrão de host indisponível",
    "pm2Tick": "{{at}} · projetos {{projects}} · PM2 {{pm2}} · em execução {{run}}",
    "cannotLoadSettings": "Não é possível carregar a tabela de configurações",
    "reloadFailed": "Falha ao recarregar",
    "sensitive": "Configuração sensível – cuidado",
    "on": "Sobre",
    "off": "Desligado",
    "customNumber": "Número personalizado",
    "customExample": "Personalizado, por ex. 768 milhões",
    "advancedExtra": "Avançado: chaves extras e raw",
    "advancedExtraDesc": "Diretivas não catalogadas; uma chave=valor por linha; raw acrescenta ao ini tail",
    "extraDirectives": "Diretivas extras",
    "extraDirectivesHint": "Uma chave=valor por linha (chaves que ainda não estão acima)",
    "rawAppend": "Anexar raw ao final do ini",
    "phpIniSaved": "php.ini salvo",
    "appliedSystem": "Aplicado ao sistema",
    "demoVhost": "Ferramentas do sistema: demonstração vhost/pool",
    "demoVhostDesc": "Avançado/depuração; sites diários usam Projetos → Implantar",
    "domain": "Domínio",
    "domainRequired": "Insira um domínio válido antes de aplicar o vhost.",
    "vhostServerName": "Host virtual nome_servidor",
    "poolName": "Nome do pool",
    "poolNameHint": "ID digitado manualmente (demo); caminhos do projeto usam usuários ysks_*",
    "enableReload": "Habilitar e recarregar serviços",
    "enableReloadHint": "Precisa de direitos de mudança de sistema; off = apenas gerenciamento de gravação",
    "applyFailed": "Falha na aplicação",
    "phpVhostApplied": "PHP vhost/pool aplicado",
    "composerTools": "Compositor / WP-CLI / módulos",
    "composerToolsDesc": "Teste ao vivo de ferramentas PATH e php -m (somente leitura)",
    "toolsProbed": "Ferramentas sondadas",
    "notFound": "Não encontrado",
    "available": "Disponível",
    "moduleCount": "Módulos",
    "installNodeV": "Instale o nó {{v}}",
    "installPhpV": "Instale o PHP {{v}}",
    "installPythonV": "Instale Python {{v}}",
    "installGoV": "Instale Go {{v}}",
    "installRustV": "Instale Ferrugem {{v}}",
    "pythonMissing": "Python não está instalado",
    "goMissing": "Go não está instalado",
    "rustMissing": "Ferrugem/carga não está instalada",
    "tuneLoadFailed": "Falha ao carregar o ajuste",
    "availableCount": "{{n}} disponível",
    "notDetected": "Não detectado",
    "binaryPath": "Caminho do binário",
    "targetMissing": "Versão de destino não instalada",
    "targetMissingHint": "O destino {{version}} não está neste anfitrião. Ligue uma versão instalada ou instale este pin.",
    "target": "Alvo",
    "tune": "Sintonia",
    "loadedShort": "Carregado",
    "host": "Hospedar",
    "tabOverviewInstall": "Visão geral",
    "tabTune": "Afinação",
    "probeReadonlyInstall": "Somente leitura · teste novamente após a instalação",
    "hostDefault": "Padrão de host",
    "panelSupport": "Suporte de painel",
    "ready": "Preparar",
    "notDetectedYet": "Ainda não detectado",
    "install": "Instalar",
    "installHint": "Precisa de direitos de alteração do sistema e administrador; instalando o conjunto de ferramentas ≠ o projeto é público",
    "panelTune": "Afinação do painel",
    "panelTuneDesc": "Gerenciamento de escrita; injetar ambiente na implantação",
    "bindVersion": "Versão fixa",
    "onePerRow": "Uma configuração por linha",
    "zeroAll": "0 = todos",
    "custom": "Personalizado",
    "extraEnv": "Variáveis ​​de ambiente extras",
    "extraEnvHint": "Uma CHAVE = valor por linha",
    "customEnv": "Ambiente personalizado",
    "envPreview": "Visualização do ambiente",
    "envPreviewDesc": "Resultado mesclado após salvar/último carregamento",
    "unsupported": "Não compatível",
    "tuneSaved": "Ajuste salvo",
    "nodeDetectedHint": "Nó detectado no host; a reinstalação segue privilégios e pode sobrescrever.",
    "nodeProbeAfter": "Após a instalação, teste novamente para confirmar o PATH e a versão.",
    "installNodeVBtn": "Instale o nó {{version}}",
    "installPhpVBtn": "Instale o PHP {{version}}",
    "phpIniSteps1": "Projete valores globais na aba php.ini e salve",
    "phpIniSteps2": "Opcional: Aplicar ao sistema (grava /etc/php/…/conf.d, precisa de root)",
    "phpIniSteps3": "A implantação do projeto injeta ini mesclado como php_admin_* no pool FPM",
    "phpIniSteps4": "Os projetos podem substituir chaves individuais (Projeto → Implantar)",
    "phpIniNote": "As alterações são salvas primeiro no painel dataDir; Aplique às cópias do sistema em /etc/php e recarregue o FPM. Pools de projetos injetam php_admin_value na implantação.",
    "phpIniLoading": "Carregando formulário php.ini…",
    "phpIniEmpty": "Catálogo vazio – recarregue ou certifique-se de que a API esteja ativa.",
    "reloadForm": "Recarregar formulário",
    "savePhpIni": "Salve php.ini",
    "prodUseProjects": "A produção deve usar projetos",
    "prodPathDesc": ": criar projeto PHP → implantar/aplicar FPM (pool = usuário do projeto Linux + home isolado)",
    "systemDemo": "demonstração/ferramentas em nível de sistema",
    "demoNotBind": "(nome do pool digitado manualmente) e não vincula automaticamente o isolamento do projeto. O php.ini global está na guia php.ini.",
    "applyOkWritten": "Aplicar sucesso = arquivos gravados. Prefira a implantação do projeto, então Usuário = usuário do projeto Linux.",
    "applyPhpVhost": "Aplicar PHP vhost/pool",
    "applyPhpVhostTitle": "Precisa de confirmação – grava arquivos pool/vhost",
    "applyPhpVhostDesc": "Escreverá o pool {{pool}} e o {{domain}} vhost. Serviços de recarga: {{reload}}.",
    "reprobeTools": "Ferramentas de nova sondagem",
    "pressReprobe": "Pressione Re-sondar as ferramentas para carregar",
    "installNodeLabel": "Instale o nó {{v}}",
    "installPhpLabel": "Instale o PHP {{v}}",
    "installPythonLabel": "Instale Python {{v}}",
    "installGoLabel": "Instale Go {{v}}",
    "installRustLabel": "Instale Ferrugem {{v}}",
    "readShort": "Ler",
    "pressReprobeHost": "Pressione Re-sondar para carregar a matriz de versão do host",
    "installScriptNote": "Grava script de instalação; é executado apenas com privilégios. O ajuste está na guia Ajuste; reimplantar projetos para mudanças de processo.",
    "envNote": "Nó: max-old-space-size mescla-se em NODE_OPTIONS. Go/Python/Rust usam env vars oficiais.",
    "saveTune": "Salvar ajuste",
    "pressReprobeLoad": "Pressione Re-sondar as ferramentas para carregar",
    "installJavaLabel": "Instalar/atualizar OpenJDK",
    "installKotlinLabel": "Instalar/atualizar Kotlin",
    "installBunLabel": "Instalar / atualizar o Bun",
    "javaMissing": "Java (OpenJDK) não detectado",
    "kotlinMissing": "Compilador Kotlin não detectado",
    "bunMissing": "Pão não detectado",
    "phpIniCatalog": {
      "groups": {
        "resource": {
          "title": "Limites de recursos",
          "description": "Memória, tempo de execução e limites de entrada"
        },
        "upload": {
          "title": "Carregar e POSTAR",
          "description": "Uploads de arquivos e tamanho do corpo do POST"
        },
        "session": {
          "title": "Sessão",
          "description": "Armazenamento de sessão e cookies"
        },
        "error": {
          "title": "Erros e registro",
          "description": "Exibir erros, registro e nível de relatório"
        },
        "opcache": {
          "title": "OPcache",
          "description": "Cache de bytecode"
        },
        "security": {
          "title": "Segurança e caminhos",
          "description": "Arquivos remotos, exposição e funções desabilitadas"
        },
        "locale": {
          "title": "Fuso horário e conjunto de caracteres"
        },
        "misc": {
          "title": "Outras configurações comuns"
        }
      },
      "fields": {
        "memory_limit": {
          "label": "Limite de memória",
          "hint": "por exemplo 128M, 256M, 512M, -1 (ilimitado)"
        },
        "max_execution_time": {
          "label": "Tempo máximo de execução",
          "hint": "Segundos; 0 = ilimitado (CLI)"
        },
        "max_input_time": {
          "label": "Tempo máximo de entrada",
          "hint": "Segundos; tempo máximo para analisar a solicitação"
        },
        "max_input_vars": {
          "label": "Máximo de variáveis ​​de entrada",
          "hint": "Limite para variáveis ​​$_GET / $_POST / $_COOKIE"
        },
        "max_input_nesting_level": {
          "label": "Nível máximo de aninhamento de entrada"
        },
        "file_uploads": {
          "label": "Permitir uploads de arquivos"
        },
        "upload_max_filesize": {
          "label": "Tamanho máximo do arquivo para upload"
        },
        "post_max_size": {
          "label": "Tamanho máximo do POST",
          "hint": "Deve ser ≥ tamanho máximo do arquivo para upload"
        },
        "max_file_uploads": {
          "label": "Máximo de arquivos por solicitação"
        },
        "session_save_handler": {
          "label": "Manipulador de salvamento de sessão"
        },
        "session_gc_maxlifetime": {
          "label": "Duração da sessão (segundos)",
          "hint": "Segundos"
        },
        "session_cookie_httponly": {
          "label": "Cookie HttpOnly"
        },
        "session_cookie_secure": {
          "label": "Cookies seguros (somente HTTPS)",
          "hint": "Recomendado para sites HTTPS"
        },
        "session_use_strict_mode": {
          "label": "Modo estrito de sessão"
        },
        "display_errors": {
          "label": "Erros de exibição (na página)",
          "hint": "Desativar em produção"
        },
        "display_startup_errors": {
          "label": "Exibir erros de inicialização"
        },
        "log_errors": {
          "label": "Erros de registro"
        },
        "error_reporting": {
          "label": "Nível de relatório de erros",
          "hint": "Ou um número inteiro como 32767"
        },
        "error_log": {
          "label": "Caminho do log de erros",
          "hint": "Vazio = padrão do sistema; caminho absoluto permitido"
        },
        "opcache_enable": {
          "label": "Habilitar OPcache"
        },
        "opcache_enable_cli": {
          "label": "Habilitar OPcache para CLI"
        },
        "opcache_memory_consumption": {
          "label": "Memória OPcache (MB)",
          "hint": "Unidade: MB"
        },
        "opcache_interned_strings_buffer": {
          "label": "Buffer de strings internas (MB)"
        },
        "opcache_max_accelerated_files": {
          "label": "Máximo de arquivos acelerados"
        },
        "opcache_validate_timestamps": {
          "label": "Validar carimbos de data/hora",
          "hint": "Na produção você pode desabilitar e recarregar manualmente"
        },
        "opcache_revalidate_freq": {
          "label": "Revalidar frequência (segundos)"
        },
        "allow_url_fopen": {
          "label": "Permitir abertura de URL"
        },
        "allow_url_include": {
          "label": "Permitir inclusão de URL"
        },
        "expose_php": {
          "label": "Expor o cabeçalho da versão do PHP"
        },
        "open_basedir": {
          "label": "restrição de caminho open_basedir",
          "hint": "Vazio = sem limite; caminhos separados com:"
        },
        "disable_functions": {
          "label": "Funções desativadas",
          "hint": "Separados por vírgula; muito rigoroso pode quebrar pacotes"
        },
        "date_timezone": {
          "label": "Fuso horário"
        },
        "default_charset": {
          "label": "Conjunto de caracteres padrão"
        },
        "short_open_tag": {
          "label": "Permitir tags abertas curtas (<?)"
        },
        "realpath_cache_size": {
          "label": "Tamanho do cache do caminho real"
        },
        "realpath_cache_ttl": {
          "label": "TTL do cache Realpath (segundos)"
        },
        "cgi_fix_redirect": {
          "label": "Redirecionamento de caminho de correção CGI"
        }
      },
      "options": {
        "sessionFiles": "Arquivos",
        "sessionRedis": "Redis",
        "sessionMemcached": "Memcached",
        "errorReportingProd": "Produção (E_ALL menos obsoleto/estrito)",
        "errorReportingAll": "Tudo (E_ALL)",
        "errorReportingQuiet": "Mais silencioso (sem AVISO/DESCONTINUADO)",
        "errorReportingMinimal": "Erros/avisos/somente análise",
        "errorReportingOff": "Desligado (0)",
        "openBasedirNone": "Sem restrição (vazio)",
        "openBasedirVarWww": "/var/www",
        "openBasedirHome": "/home",
        "openBasedirWwwTmp": "/var/www e /tmp",
        "errorLogDefault": "Padrão do sistema (vazio)",
        "errorLogPhp": "/var/log/php/error.log",
        "errorLogFpm": "Caminho de registro do FPM",
        "errorLogSyslog": "registro de sistema"
      },
      "disableFn": {
        "groups": {
          "process": "Execução do processo",
          "dynamic": "Carregamento dinâmico",
          "info": "Divulgação de informações",
          "filesystem": "Sistema de arquivos",
          "network": "Rede / outro"
        },
        "extraHint": "Não está no catálogo (host existente)",
        "customPlaceholder": "Outro nome de função…",
        "searchPlaceholder": "Funções de pesquisa…",
        "emptyText": "Nenhuma correspondência"
      }
    },
    "pluginsAvailableTitle": "Disponível para instalar",
    "pluginsInstalledTitle": "Instalado no host",
    "pluginsInstalledHint": "Detectado em PATH; excluído da seleção de instalação. A desinstalação é o melhor esforço.",
    "pluginsAllInstalled": "Todas as ferramentas de catálogo já estão neste host.",
    "pluginStatusInstalled": "Instalado",
    "pluginUninstall": "Desinstalar",
    "pluginUninstallConfirmTitle": "Ferramenta de desinstalação?",
    "pluginUninstallConfirm": "Remova \"{{name}}\" deste host (via npm/apt/pip conforme aplicável). Interrompa primeiro os serviços que dependem dele.",
    "pluginUninstalled": "Desinstalado {{name}}",
    "pluginUninstallFailed": "Falha ao desinstalar {{name}}",
    "pluginUninstallBlocked": "O painel não pode ser desinstalado (precisa de root + EXECUTE)",
    "phpExtAlreadyOnHost": "Extensões instaladas",
    "pluginsInstallSelected": "Instalar selecionado ({{n}})",
    "pluginInstallOk": "Ferramentas {{n}} instaladas",
    "pluginInstallFailed": "Falha na instalação da ferramenta",
    "phpExtUninstallHint": "Desinstale extensões opcionais (apt remove; nunca FPM/CLI)",
    "phpExtUninstallConfirmTitle": "Desinstalar a extensão PHP?",
    "phpExtUninstallConfirm": "Provavelmente removerá “{{pkg}}” ({{name}}). O Core FPM/CLI nunca é removido.",
    "phpExtOpsTitle": "Resultado das operações de extensão",
    "pluginsOpsTitle": "Resultado de operações de ferramentas",
    "pluginBatchUninstall": "Desinstalar selecionado ({{n}})",
    "pluginBatchUninstallConfirm": "Desinstalar {{n}} ferramentas selecionadas?",
    "pluginBatchUninstalled": "Ferramentas {{n}} desinstaladas",
    "pluginBatchLabel": "ferramentas selecionadas",
    "addonsInstallAbove": "Use “Instalar selecionado…” acima para ferramentas/extensões. Este botão apenas instala/confirma a versão do runtime.",
    "phpExtInstallSelected": "Instale extensões selecionadas ({{n}})",
    "phpExtInstallNote": "Selecione extensões e instale selecionadas. O PHP pela primeira vez usa Instale o PHP abaixo (core+ext); quando instalado, apenas o botão de extensões é mostrado.",
    "phpExtInstallNoteInstalled": "Selecione extensões e instale selecionadas. Esta versão já está no host — sem reinstalação em tempo de execução.",
    "phpExtInstallNoteFirst": "PHP {{version}} não está instalado: selecione as extensões e use Instalar PHP {{version}} abaixo (um botão de instalação, núcleo + extensões).",
    "installPhpWithExt": "Instale PHP {{version}} (com extensões selecionadas)",
    "installLogTitle": "Log de instalação (ao vivo)",
    "installLogStreaming": "Transmissão…",
    "installLogDone": "Finalizado",
    "installLogWaiting": "Aguardando saída do servidor…",
    "activeDefault": "padrão",
    "switchDefaultBtn": "Defina o padrão do host como {{version}}",
    "switchDefaultHint": "Esta versão está instalada, mas não é o padrão ativo",
    "installedNotActive": "{{version}} instalado (não padrão)",
    "multiVersionHint": "Go/Rust mantém múltiplas versões: instale as que faltam e depois mude o padrão para PATH",
    "tabProcesses": "Processos",
    "pm2": {
      "title": "Frota PM2",
      "desc": "Visualização somente leitura do pm2 jlist (usuário do painel PM2_HOME). O SSE ao vivo é atualizado a cada 2s.",
      "glossary": "PM2 = gestor de processos; SSE = transmissão ao vivo.",
      "live": "Ao vivo",
      "installed": "PM2 instalado",
      "version": "versão pm2",
      "path": "caminho pm2",
      "counts": "Processos",
      "countsValue": "{{n}} total · {{run}} on-line · {{stop}} parado · {{err}} errou",
      "updatedAt": "Última atualização",
      "notInstalled": "PM2 não está no PATH.",
      "installHint": "Instale o plugin complementar na Visão geral",
      "tableTitle": "Lista de processos",
      "yskOnly": "Somente aplicativos YSK (ysk-*)",
      "filterPh": "Nome do filtro/script/pid…",
      "emptyTitle": "PM2 não disponível",
      "emptyDesc": "Instale o plugin pm2 para Node e atualize.",
      "noApps": "Nenhum processo",
      "noAppsDesc": "Nenhum aplicativo PM2 para o usuário do painel",
      "streamLog": "Registro de ticks ao vivo",
      "streamLogDesc": "Uma linha por tick SSE (não processa stdout).",
      "col": {
        "name": "Nome",
        "status": "Status",
        "mem": "Memória",
        "restarts": "Reinicia",
        "uptime": "Tempo de atividade",
        "mode": "Modo",
        "script": "Roteiro",
        "interpreter": "Intérprete",
        "user": "Usuário",
        "unit": "Unidade",
        "runtime": "Tempo de execução",
        "pid": "PID"
      },
      "projectsTitle": "Processos do projeto YSK",
      "projectsDesc": "unidades systemd para projetos de painel (caminho de implantação padrão - não PM2).",
      "projectsCount": "Projetos YSK",
      "noProjects": "Nenhum projeto",
      "noProjectsDesc": "Nenhum projeto de nó/bun no painel ou usuário do sistema operacional não provisionado.",
      "pm2OnlyDesc": "Somente aplicativos iniciados com PM2 no usuário do painel. As implantações do systemd aparecem acima.",
      "startupTitle": "Comece na inicialização",
      "startupDesc": "Registre o PM2 para que os processos voltem após a reinicialização.",
      "systemdActionsHint": "As ações do systemd precisam de root e YSK_EXECUTE.",
      "startupOk": "Inicialização registrada. {{notes}}",
      "startupFail": "Não foi possível registrar a inicialização. {{notes}}",
      "actionOk": "{{action}} {{name}} — {{notes}}",
      "actionFail": "Não foi possível {{action}} {{name}}. {{notes}}",
      "startupReady": "Preparar",
      "startupReadyYes": "Sim",
      "startupReadyNo": "Não",
      "startupUnit": "Unidade",
      "startupDump": "Jogar fora",
      "startupInstall": "Instalar inicialização",
      "startupSave": "Salvar lista de processos",
      "actRestart": "Reiniciar",
      "actStop": "Parar",
      "actReload": "Recarregar",
      "pm2ActionsHint": "As ações PM2 aplicam-se apenas à lista de processos do usuário do painel.",
      "noteUnparsed": "A lista PM2 não pôde ser analisada (saída vazia ou inesperada).",
      "notePanelUserOnly": "A lista PM2 é apenas para o usuário do processo do painel.",
      "noteProjectUnits": "{{n}} Unidade(s) do projeto YSK listadas"
    },
    "recordedInstalled": "Gravado {{v}}",
    "remoteSourceSuffix": "({{source}})",
    "nodePathYskMissingTitle": "O caminho do nó gerenciado não está pronto",
    "nodePathYskMissing": "O nó gerenciado por YSK para a versão {{version}} não está pronto. Teste novamente ou reinstale.",
    "managedPathMissingTitle": "Caminho {{name}} gerenciado não está pronto",
    "managedPathMissing": "{{name}} gerenciado por YSK para a versão {{version}} não está pronto. Teste novamente ou reinstale.",
    "nodePathUnsafeTitle": "O caminho do nó não é seguro",
    "nodePathUnsafe": "O caminho {{path}} está fora da árvore gerenciada; as implantações do projeto podem falhar.",
    "recordedButProbeEmpty": "O painel registrou a instalação {{v}}, mas a análise do host não encontrou nenhum binário. Não instalado – teste novamente ou reinstale.",
    "installedLabel": "Instalado",
    "installedHint": "Resultado da investigação do host — não o registro do plano de controle",
    "targetHint": "Versão que esta página irá instalar ou fixar",
    "panelDefaultHint": "Novos projetos preferem o painel padrão {{version}} (a CLI do host pode ser diferente).",
    "rebuildFromHost": "Reconstruir registro do host",
    "rebuiltFromHost": "Registro atualizado da sonda do host",
    "tabTuning": "Afinação",
    "versionPlaceholder": "Mais recente,",
    "pluginsBundleWithRuntime": "Ferramentas「Instalar tempo de execução」Instalar（Instalar）。",
    "tabSoftware": "Programas",
    "overviewSoftwareHint": "Instale versões, defina o padrão do host e desinstale do",
    "versionReadyTitle": "{{name}} {{version}} está pronto",
    "versionReadyHint": "Você pode definir o host padrão ou desinstalar nesta guia.",
    "softwareVersionTitle": "Versão {{version}}",
    "setHostDefault": "Definir como host padrão",
    "alreadyHostDefault": "{{version}} é o host padrão",
    "setHostDefaultConfirmTitle": "Definir o padrão do host como {{version}}?",
    "setHostDefaultConfirm": "A CLI do sistema (node/go/…) apontará para {{version}}. Os projetos que fixam uma versão permanecem inalterados.",
    "hostDefaultUnsupported": "Este tempo de execução não suporta a alternância do padrão do host no painel. Use o pino de instalação ou de nível de projeto.",
    "versionInventory": "Inventário de versões",
    "versionInventoryDesc": "Todas as versões suportadas pelo painel. Selecione uma linha para instalar ou definir como padrão.",
    "selectToInstall": "Selecione",
    "advancedFeatureUninstall": "Avançado: remova toda a pilha {{name}}…",
    "advancedFeatureUninstallHint": "Remove todas as versões {{name}} gerenciadas pelo painel (e complementares como PM2 para Node), com visualização de impacto e confirmação dupla. Prefira remover as versões individuais acima, quando possível.",
    "probeReadonly": "Análise somente leitura do host",
    "uninstallVersion": "Desinstalar {{version}}",
    "uninstallVersionTitle": "Desinstalar {{version}}?",
    "uninstallVersionConfirm": "Remova {{name}} {{version}} gerenciado deste host (caminho de instalação YSK ou conjunto de ferramentas de ferrugem). Se for o padrão do host, os links simbólicos da CLI para esse tempo de execução serão limpos. Projetos que fixam outra versão permanecem inalterados.",
    "uninstallVersionDone": "Desinstalado {{version}}",
    "uninstallVersionUnsupported": "A desinstalação por versão ainda não está disponível para este tempo de execução.",
    "setPanelDefault": "Definir como padrão do painel",
    "alreadyPanelDefault": "Padrão do painel · {{version}}",
    "panelDefaultSaved": "Padrão do painel definido como {{version}}",
    "panelDefaultExplain": "Padrão do painel = versão preferida para novos sites/projetos. Host padrão = CLI do sistema (php/python/node…).",
    "stackReadyTitle": "{{name}} pilha pronta",
    "softwareIntro": "Gerencie versões instaladas, host CLI padrão e a versão preferida para novos projetos.",
    "panelDefaultLabel": "Padrão do painel",
    "panelDefaultNone": "Não definido",
    "versionsTitle": "Versões",
    "versionsDesc": "Selecione uma versão. Instale, configure a CLI do host ou defina o padrão do painel na linha.",
    "roleHost": "Hospedar",
    "rolePanel": "Painel",
    "rowUninstall": "Remover esta versão",
    "moreActions": "Mais ações",
    "selectedVersion": "Selecionado · {{version}}",
    "selectedInstalledDesc": "Ferramentas complementares abaixo. Remova esta versão somente se não precisar mais dela.",
    "selectedMissingDesc": "Instale esta versão no host. Ferramentas complementares podem ser adicionadas após a instalação.",
    "path": "Caminho",
    "fullVersion": "Versão completa",
    "useListForDefaults": "Para alterar o host ou o padrão do painel, ou remover esta versão, use a lista acima.",
    "alreadyHostDefaultShort": "Padrão de host",
    "installRecordedCta": "Instalação gravada {{v}}",
    "needsInstall": "é preciso instalar",
    "needsInstallHint": "Não está neste anfitrião. Instale-o ou escolha uma versão instalada.",
    "unitBytes": "bytes",
    "headerSizeKb": "{{n}}KB",
    "phpIniChipEmpty": "Não carregado — abra o separador php.ini",
    "phpFpmService": "PHP-FPM",
    "phpFpmServiceDesc": "Iniciar, parar, recarregar ou reiniciar a unidade PHP-FPM",
    "rustupDefaultMissingTitle": "Sem toolchain predefinida do rustup",
    "rustupDefaultMissing": "O rustup não tem predefinição. Defina stable no separador Software.",
    "rustupDefaultMissingShort": "Nenhum conjunto de ferramentas padrão",
    "rustupSetDefaultHint": "Definir conjunto de ferramentas padrão",
    "uninstalledCountHint": "{{n}} versão(ões) não estão neste anfitrião"
  },
  "search": {
    "placeholder": "Pesquisar páginas e recursos…",
    "aria": "Pesquisa global",
    "results": "Resultados da pesquisa",
    "loading": "Procurando…",
    "noResults": "Nenhuma correspondência",
    "kinds": {
      "page": "Páginas",
      "project": "Projetos",
      "email": "E-mail",
      "mailbox": "Caixas de correio",
      "ssl": "SSL",
      "dns": "DNS",
      "nginx": "Nginx",
      "share": "Ações",
      "ftp": "FTP",
      "mysql": "MySQL",
      "postgres": "PostgreSQL",
      "redis": "Redis",
      "cron": "Cron",
      "user": "Usuários",
      "other": "Outro"
    },
    "alias": {
      "ssl": "certificado certificado certificados",
      "projects": "locais do projeto"
    }
  },
  "security": {
    "title": "Segurança e Aprovações",
    "allowlist": "Lista de permissões de ferramentas (padrão somente leitura; alto risco precisa de aprovação humana)",
    "llmUntrusted": "A saída do LLM sempre não é confiável e nunca deve ser executada diretamente",
    "pending": "Aprovações pendentes",
    "runSysInfo": "Execute sys.info",
    "none": "Nenhuma aprovação pendente",
    "pillPending": "{{count}} pendente",
    "pillReady": "Preparar",
    "pill2faOff": "2FA desativado",
    "stat2fa": "2FA",
    "statApi": "API",
    "statApiSessions": "Sessões de API",
    "revokeOtherTitle": "Sair de {{n}} outras sessões",
    "statSsh": "SSH",
    "statSshValue": "{{keys}} chaves · {{auth}} autorizado",
    "statSshHint": "Identidades de saída/chaves de login autorizadas",
    "statPending": "Pendente",
    "on": "Sobre",
    "off": "Desligado",
    "output": "Saída",
    "tabAccount": "Minha segurança",
    "tabApiKeys": "Chaves de API",
    "tabSsh": "SSH",
    "tabApprovals": "Aprovações",
    "tabAllowlist": "Ferramentas do agente",
    "apiTokenOnce": "Token de API (mostrado uma vez):",
    "copiedToken": "Token copiado",
    "totpTitle": "Dois fatores (TOTP)",
    "totpStatus": "Status:",
    "totpEnabled": "Habilitado",
    "totpEnrolledUnconfirmed": "Em andamento – digitalize e confirme",
    "totpNotSet": "Não definido",
    "totpLead": "O login requer um código de aplicativo de 6 dígitos.",
    "totpWhy1": "Senhas roubadas por si só não podem fazer login sem o código do aplicativo",
    "totpWhy2": "Ações sensíveis podem solicitar novamente TOTP (avanço)",
    "totpWhy3": "Funciona com Google Authenticator, Authy, NordPass, 1Password e muito mais",
    "totpAppsHint": "Aplicativos sugeridos: Google Authenticator, Authy, Microsoft Authenticator, NordPass, 1Password",
    "totpStepsLabel": "Etapas de configuração",
    "totpStepReauth": "Verifique a senha",
    "totpStepScan": "Digitalize QR / tecla Enter",
    "totpStepConfirm": "Confirme o código de 6 dígitos",
    "totpStepBackup": "Salvar códigos de recuperação",
    "totpScanTitle": "Digitalize o código QR",
    "totpScanHint": "Abra seu aplicativo autenticador → Adicionar conta → Digitalize este QR.",
    "totpManualTitle": "Ou insira a chave manualmente",
    "totpManualHint": "Se você não conseguir digitalizar, escolha a entrada manual no aplicativo e cole este segredo Base32.",
    "totpShowOtpauth": "Mostrar URL otpauth:// (avançado)",
    "totpQrAlt": "Código QR de configuração TOTP",
    "totpQrFailed": "Não foi possível renderizar o QR — use a chave secreta abaixo",
    "totpSecretCopied": "Segredo copiado",
    "hideSecret": "Ocultar segredo",
    "showSecret": "Mostrar segredo",
    "totpEnabledDesc": "Habilitado.",
    "totpRecoveryRemaining": "{{n}} códigos de recuperação restantes",
    "totpResetSummary": "Redefinir ou desligar 2FA…",
    "totpResetHint": "A redefinição emite um novo QR/segredo (as entradas antigas do aplicativo param de funcionar)",
    "totpDisableCodeHint": "Código de 6 dígitos do aplicativo ou código de recuperação",
    "disable2fa": "Desligue 2FA",
    "totpDisabledOk": "Autenticação de dois fatores desativada",
    "reauthPassword": "Digite novamente a senha",
    "reauthPasswordHint": "Iniciar/redefinir 2FA requer senha novamente (proteção de sessão roubada)",
    "reauthPasswordRequired": "Digite sua senha de login primeiro",
    "needCurrentPassword": "Digite a senha atual primeiro",
    "passwordMin8": "A nova senha deve ter pelo menos 8 caracteres",
    "totpSecretGenerated": "Segredo pronto – digitalize o QR ou copie a chave e insira o código de 6 dígitos do aplicativo",
    "reset2fa": "Redefinir 2FA",
    "start2fa": "Configurar 2FA",
    "secretLabel": "Segredo:",
    "confirmCode": "Código de 6 dígitos do aplicativo",
    "confirmCodeHint": "Após a digitalização, insira os 6 dígitos mostrados atualmente no seu autenticador.",
    "confirmCodeInvalid": "Insira um código de verificação de 6 dígitos",
    "totpEnabledSaveCodes": "2FA ativado – salve os códigos de recuperação abaixo agora (mostrado uma vez)",
    "confirmEnable": "Confirmar e ativar",
    "recoveryCodesHint": "Os códigos de recuperação são mostrados apenas uma vez",
    "copiedRecoveryCodes": "Códigos de recuperação copiados",
    "downloadRecovery": "Baixar .txt",
    "recoveryDownloaded": "Arquivo de códigos de recuperação baixado",
    "copyAll": "Copiar tudo",
    "savedClose": "Eu os salvei - pronto",
    "sessionsTitle": "Sessões",
    "sessionsDesc": "",
    "revokeOtherSessions": "Desconectar outros dispositivos",
    "revokedOtherSessions": "Desconectado {{count}} outra(s) sessão(ões)",
    "noSessions": "Nenhuma sessão ativa",
    "currentSession": "Este dispositivo",
    "revoke": "sair",
    "passkeyTitle": "Chave de acesso / WebAuthn",
    "passkeyDesc": "",
    "passkeyRegistered": "Chave de acesso registrada",
    "webauthnFailed": "Falha no WebAuthn",
    "webauthnUnsupported": "Esta página não possui API WebAuthn. No Brave/Chrome/Firefox evite modos restritos; use um gerenciador de senhas, se necessário, e abra o painel em um domínio via HTTPS.",
    "webauthnInsecureContext": "Esta página não é um contexto seguro ({{origin}}). Os navegadores exigem HTTPS ou localhost para chaves de acesso – não relacionado ao Brave/NordPass. Abra https://seu-domínio.",
    "webauthnIpHost": "Você abriu o painel via IP ({{origin}}). WebAuthn proíbe IP como RP ID, então Brave/NordPass irá falhar. Vincule um domínio + HTTPS (por exemplo, https://panel.example.com) e tente novamente.",
    "webauthnEnvOk": "Chave de acesso pronta ({{origin}})",
    "webauthnEnvCurrent": "Página atual: {{origin}}",
    "webauthnCancelled": "Cancelado ou expirado. Tente novamente.",
    "webauthnUnavailableHint": "A senha precisa de domínio HTTPS +.",
    "registerPasskey": "Registrar senha",
    "noPasskey": "Sem senha",
    "passkeyVerifyOk": "Chave de acesso verificada (etapa concluída)",
    "verifyFailed": "Falha na verificação",
    "verifyWithPasskey": "Verifique com senha (step-up)",
    "passkeyHint": "Para intensificação de alto risco; precisa de domínio HTTPS +.",
    "devicesTitle": "Dispositivos/backup",
    "devicesDesc": "",
    "viewTrustedDevices": "Ver dispositivos confiáveis",
    "trustedDevicesCount": "Dispositivos confiáveis: {{count}}",
    "revokeAllDevices": "Revogar todos os dispositivos",
    "revokedAllDevices": "Todos os dispositivos confiáveis ​​revogados",
    "export2faBackup": "Exportar backup criptografado 2FA",
    "fail2banSnippetMsg": "Trechos de fail2ban: {{written}} — {{notes}}",
    "generatefail2ban": "Gerar trechos fail2ban",
    "generateFail2ban": "Gerar fragmentos fail2ban",
    "adminPolicyTitle": "Política 2FA do administrador",
    "adminPolicyDesc": "",
    "requireAdmin2fa": "Exigir 2FA de administrador",
    "strictAdmin2fa": "Estrito: bloquear login sem 2FA",
    "confirmTotpPolicy": "Confirme o TOTP (ao alterar a política)",
    "confirmTotpPolicyHint": "A política de viabilização necessita de intensificação",
    "totp6digitPlaceholder": "Código de 6 dígitos",
    "policyUpdated": "Política de segurança atualizada",
    "savePolicy": "Salvar política",
    "recentProbe": "Sondagem recente",
    "apiKeysTitle": "Chaves de acesso à API",
    "apiKeysDesc": "",
    "createKey": "+ Criar chave",
    "colName": "Nome",
    "colPrefix": "Prefixo",
    "colCreated": "Criado",
    "apiKeysEmpty": "Ainda não há chaves de API",
    "apiKeysEmptyHint": "Crie na barra de ferramentas; em seguida, chame a API com o token do portador",
    "approve": "Aprovar",
    "allowlistTitle": "Ferramentas do agente ({{count}})",
    "allowlistEmpty": "Não há ferramentas no catálogo",
    "totpStatusLoadFailed": "Não foi possível carregar o estado 2FA",
    "createApiKeyTitle": "Criar chave de API",
    "createApiKeyDesc": "O token completo é mostrado apenas uma vez após a criação",
    "createKeyBtn": "Criar chave",
    "apiKeyNameHint": "Fácil de reconhecer, por ex. CI/script de backup",
    "apiKeyScope": "Escopo",
    "apiKeyScopeHint": "read = somente leitura (sem mutação completa)",
    "scopeFull": "completo (API completa)",
    "scopeRead": "ler (somente leitura)",
    "apiKey2faHint": "Se o 2FA estiver ativado, a criação de uma chave requer um código de verificação (step-up).",
    "apiKeyCreated": "Chave de API criada",
    "export2faBackupTitle": "Exportar backup 2FA",
    "createApiKeyStepUp": "Criar chave de API · avançar",
    "enterTotpCode": "Insira o código TOTP atual",
    "export": "Exportar",
    "backupCopied": "Backup criptografado copiado para a área de transferência (armazenar offline)",
    "digit6Placeholder": "Código de 6 dígitos",
    "ssh": {
      "workspaceTitle": "Espaço de trabalho SSH",
      "workspaceDesc": "Escolha um emprego primeiro",
      "subOutbound": "IDs de saída",
      "subOutboundHint": "Chaves privadas para saída de painel/projeto",
      "subLogin": "Autenticação de login",
      "subLoginHint": "Quem pode usar SFTP/SSH em",
      "sub2fa": "Entrar 2FA",
      "sub2faHint": "SSH TOTP (≠ painel 2FA)",
      "subSshd": "SSD do sistema",
      "subSshdHint": "Configurações de SFTP do usuário do projeto",
      "jobOutboundTitle": "Conectar saída",
      "jobOutboundDesc": "Criar chaves de identidade de saída · par de painel/projeto git",
      "jobLoginTitle": "Permitir login de entrada",
      "jobLoginDesc": "Registre chaves públicas na página inicial do projeto · chaves_autorizadas",
      "job2faTitle": "O login SSH precisa de 2FA",
      "job2faDesc": "Usuário Linux TOTP (separado do painel 2FA)",
      "jobSshdTitle": "Habilitar SFTP do sistema",
      "jobSshdDesc": "Instale snippets de correspondência sshd (usuários do projeto)",
      "purposePanel": "Painel para outros hosts",
      "purposeUser": "Saída do usuário do projeto",
      "purposeUnbound": "Objetivo não definido",
      "purposePanelHint": "Ponto de cluster, scp de backup, análises remotas",
      "purposeUserHint": "Usuário do projeto Linux git/scp/scripts",
      "purposeDefaultHint": "Vincular mais tarde",
      "statusStored": "Armazenado",
      "statusInstalled": "No disco",
      "statusVerified": "Verificado",
      "statusMissing": "Faltando no disco",
      "statusRetired": "Aposentado",
      "statusError": "Erro",
      "actionInstall": "Gravar no disco",
      "actionTest": "Conexão de teste",
      "actionCopyPub": "Copiar chave pública",
      "pipelineStored": "Armazenado",
      "pipelineInstalled": "No disco",
      "pipelineVerified": "Verificado",
      "progressAria": "Progresso",
      "loginTitle": "Autorização de login (chaves públicas)",
      "loginDesc": "Quem pode entrar",
      "loginAdd": "Adicionar chave pública de login",
      "loginEmpty": "Ainda não há chaves públicas de login",
      "loginEmptyHint": "Cole uma chave pública de laptop ou CI, vincule-se a um usuário do projeto para SFTP/SSH (precisa do snippet sshd)",
      "loginAddFirst": "Adicione a chave pública do primeiro login",
      "boundProject": "Projeto",
      "unboundProject": "Nenhum projeto",
      "loginRemoved": "Chave pública removida",
      "remove": "Remover",
      "loginModalTitle": "Autorizar uma chave pública",
      "loginModalDesc": "Depois de selecionar um projeto, a chave é gravada nesse usuário Linux home/",
      "addAuth": "Adicionar autorização",
      "selectOption": "— Selecione —",
      "publicKey": "Chave pública",
      "publicKeyHint": "Cole a linha completa, por ex. ssh-ed25519 AAAA… comentar",
      "commentOptional": "Comentário (opcional)",
      "commentPlaceholder": "laptop / CI",
      "loginNeedProject": "Crie um projeto primeiro. A vinculação funciona melhor quando o usuário do sistema está pronto.",
      "loginNeedPub": "Selecione um projeto e cole uma chave pública começando com ssh-",
      "loginNoProjects": "Sem projetos. Autorize um usuário Linux existente (root/testador) abaixo. Escrever /root/.ssh precisa de YSK_EXECUTE=1.",
      "loginLinuxHint": "Usado quando não há projeto. Exemplo: root ou testador.",
      "loginAdded": "Adicionado",
      "sshdTitle": "Usuário do projeto SFTP (sshd)",
      "sshdDesc": "Deixe ysks_* / ysk_* projetar usuários SFTP com chaves públicas",
      "sshdStep1": "Adicione chaves públicas em autenticação de login para projetos",
      "sshdStep2": "Visualize e instale os snippets de correspondência do sistema aqui",
      "sshdStep3": "A instalação precisa de direitos de execução do sistema; tentarei recarregar o sshd",
      "sshdPreview": "Pré-visualização da configuração",
      "loadingSnippet": "(Carregando…)",
      "reloadedCopied": "Recarregado; trecho copiado para a área de transferência",
      "reloadAndCopy": "Recarregar e copiar",
      "installedOk": "Instalado",
      "installToSystem": "Instalar no sistema",
      "sshdManualHint": "Se a execução estiver bloqueada, execute o plano de controle com privilégios ou coloque o snippet em",
      "outboundTitle": "Chaves de identidade de saída",
      "outboundDesc": "Chaves privadas criptografadas no plano de controle",
      "outboundAdd": "Adicionar identidade de saída",
      "filterActive": "Ativo",
      "filterPanel": "Painel",
      "filterUser": "Usuário do projeto",
      "filterRetired": "Aposentado",
      "filterAll": "Todos",
      "searchIdentity": "Pesquisar nome ou impressão digital…",
      "searchIdentityAria": "Pesquisar identidades",
      "identityCount": "{{count}} identidades",
      "identityList": "Identidades",
      "outboundEmpty": "Ainda não há identidades de saída",
      "outboundEmptyFilter": "Nenhum item correspondente",
      "outboundEmptyHint": "Crie uma chave em aproximadamente 30 anos: escolha propósito → nome → concluído. Use para peer/backup/git.",
      "outboundEmptyFilterHint": "Tente alterar os filtros ou limpar a pesquisa",
      "outboundAddFirst": "Adicione a primeira identidade de saída",
      "userPrefix": "Usuário {{user}}",
      "createFailed": "Falha na criação",
      "identityCreatedOnce": "Identidade criada (chave privada mostrada uma vez)",
      "writtenToDisk": "Gravado no disco",
      "cannotWriteNeedExecute": "Não é possível gravar no sistema: ativar execução (YSK_EXECUTE)",
      "notDone": "Não concluído",
      "installFailed": "Falha na instalação",
      "testPassed": "Conexão OK",
      "testFailed": "Falha na conexão",
      "testError": "Falha no teste",
      "copiedPubPaste": "Chave pública copiada – cole em peerauthorized_keys ou chave de implantação do Git",
      "deletedNamed": "Excluído \"{{name}}\"",
      "rotated": "Girado: chave antiga retirada, nova chave criada",
      "detailStatus": "Status",
      "detailPurpose": "Propósito",
      "detailLinuxUser": "Usuário Linux",
      "detailDiskPath": "Caminho do disco",
      "detailLastTest": "Último teste",
      "suggestFlow": "Sugerido: armazenar → gravar disco → colocar chave pública no par → testar conexão",
      "suggestFlowPrefix": "Sugerido: armazenar → gravar disco → colocar",
      "suggestFlowSuffix": "no peer → testar conexão",
      "publicKeyStrong": "chave pública",
      "copiedPub": "Chave pública copiada",
      "allowLocalLogin": "Permitir login local com esta chave",
      "localLoginOk": "Chave pública adicionada à autorização de login local",
      "testingConnection": "Testando conexão…",
      "rotateKey": "Girar chave",
      "wizStepPurpose": "Para que serve esta chave?",
      "wizStepProject": "Qual projeto?",
      "wizStepPanelConfirm": "Confirmar saída do painel",
      "wizStepName": "Nome e opções",
      "wizStepPurposeDesc": "Escolha o propósito, então liste e instale o alinhamento do caminho",
      "wizStepProjectDesc": "Chave vinculada ao usuário Linux e à página inicial desse projeto",
      "wizStepPanelDesc": "A chave privada permanece nos segredos do plano de controle para scp/ssh para outros hosts",
      "wizStepNameDesc": "Nome para reconhecimento; opções avançadas podem esperar",
      "prevStep": "Voltar",
      "nextStep": "Próximo",
      "createIdentity": "Criar identidade",
      "purposePanelTitle": "Painel para outros hosts",
      "purposePanelSub": "Ponto de cluster, backup remoto, sondagens",
      "purposePanelRec": "Recomendado para a maioria das operações administrativas",
      "purposeUserTitle": "Saída do usuário do projeto",
      "purposeUserSub": "git pull, script do projeto scp",
      "purposeUserPath": "Grava o projeto home/.ssh",
      "selectProject": "— Selecione o projeto —",
      "noProjectsHint": "Nenhum projeto ainda – crie primeiro um projeto e um usuário do sistema",
      "afterCreatePub": "Depois de criar, coloque o",
      "afterCreatePubMid": "no host alvo",
      "afterCreatePubEnd": "e use Testar conexão.",
      "privKeyStayLocal": "A chave privada permanece neste plano de controle; nunca em listas ou logs.",
      "displayName": "Nome de exibição",
      "displayNameHint": "por exemplo peer-prod, myapp-git",
      "algorithm": "Algoritmo",
      "algoSuggested": "Recomendado",
      "algoLegacy": "Sistemas legados",
      "installImmediately": "Grave no disco imediatamente após criar",
      "installImmediatelyHint": "(precisa da execução do sistema; caso contrário, você será informado de que não pode ser aplicado)",
      "savePrivTitle": "Salve a chave privada agora",
      "savePrivDesc": "Após o fechamento, a chave privada completa não será mostrada novamente",
      "copiedPriv": "Chave privada copiada",
      "copyPriv": "Copiar chave privada",
      "nextInstallDisk": "Próximo: gravar no disco",
      "savedCloseBtn": "Salvo – fechar",
      "privKeyOnce": "Chave privada (só desta vez)",
      "privSavedConfirm": "Armazenei a chave privada com segurança (gerenciador de senhas/backup offline)",
      "testConnTitle": "Conexão de teste",
      "testConnDesc": "Tente ssh… true com esta identidade. O sucesso significa apenas que esta meta é alcançável.",
      "startTest": "Iniciar teste",
      "testTarget": "Alvo",
      "testTargetHint": "Formatar usuário@host ou usuário@host:porta",
      "deleteIdentityTitle": "Excluir identidade?",
      "rotateKeyTitle": "Girar chave?",
      "deleteIdentityDesc": "Exclua \"{{name}}\" e tente remover o arquivo de chave privada do disco",
      "rotateKeyDesc": "\"{{name}}\" será retirado e uma nova chave será criada. Atualize as chaves_autorizadas do par.",
      "rotate": "Girar",
      "enrollStatusSecret": "Segredo gerado",
      "enrollStatusConfirmed": "Aplicativo confirmado",
      "enrollStatusWritten": "Escrito para casa",
      "enrollStatusRetired": "Aposentado",
      "needProjectOrUser": "Selecione um projeto ou insira um nome de usuário Linux",
      "enrollFailed": "Falha na inscrição",
      "totpGenerated": "TOTP somente SSH gerado (separado do painel 2FA, a menos que você sincronize)",
      "confirmed": "Confirmado",
      "codeWrong": "Código errado",
      "gaWritten": "Escreveu .google_authenticator",
      "needExecute": "Precisa de execução do sistema ativada",
      "ssh2faTitle": "Segundo fator de login SSH",
      "ssh2faDesc": "Protege o login ssh para usuários Linux",
      "ssh2faStep1": "Inscreva-se no TOTP para um usuário Linux (digitalize QR)",
      "ssh2faStep2": "Confirme o código de 6 dígitos do aplicativo",
      "ssh2faStep3": "Escreva o arquivo inicial",
      "ssh2faStep4": "Instale o módulo PAM e mescle os snippets (abaixo)",
      "pkgLabel": "Pacote {{name}}",
      "pkgStatus": "Pacote {{status}}",
      "pamStatus": "PAM {{status}}",
      "kbdStatus": "teclado sshd interativo {{status}}",
      "light": {
        "green": "OK",
        "yellow": "verificar",
        "red": "ausente"
      },
      "enrollForUser": "Inscrever SSH 2FA para usuário",
      "ssh2faEmpty": "Nenhum usuário Linux tem SSH 2FA ainda",
      "ssh2faEmptyHint": "Prefira o login com chave primeiro;",
      "startEnroll": "Iniciar inscrição",
      "fromPanelBadge": "Igual ao painel",
      "enterCode": "Insira o código",
      "rewriteHome": "Reescrever o arquivo inicial",
      "writeHome": "Escreva para casa",
      "retiredOk": "Aposentado",
      "retire": "Aposentar",
      "pamTitle": "Sistema: PAM / sshd (manual ou aplicar quando permitido)",
      "pamDesc": "nullok evita bloquear usuários sem arquivos. Arquivo escrito ≠ TOTP necessário.",
      "pamSnippet": "Snippet PAM (mesclar em /etc/pam.d/sshd)",
      "sshdHint": "dicas de sshd",
      "rescueUsers": "Usuários de resgate (separados por vírgula, nunca em correspondência estrita)",
      "strictPreview": "Visualização de correspondência estrita (chave pública + TOTP, senha desativada)",
      "copiedPam": "Trecho PAM copiado",
      "copyPam": "Copiar PAM",
      "applyStrict": "Aplicar Estrito ao sistema",
      "pamPkgHint": "Pacote:",
      "pamRescueHint": ". Mantenha pelo menos um administrador de resgate sem um arquivo 2FA (root padrão).",
      "enrollModalTitle": "Inscrever SSH 2FA",
      "enrollModalDesc": "Padrão: segredo independente (não compartilhado com o painel)",
      "generateShowSecret": "Gerar e mostrar segredo",
      "projectSuggested": "Projeto (recomendado)",
      "orManualUser": "— ou insira o usuário manualmente —",
      "linuxUser": "Usuário Linux",
      "advancedSharePanel": "Avançado: use o segredo TOTP do operador do painel atual (digite SHARED para confirmar)",
      "setupAuthTitle": "Configurar autenticador",
      "setupAuthDesc": "Digitalize ou insira o segredo e confirme com o código de 6 dígitos do aplicativo",
      "later": "Mais tarde",
      "confirmCodeBtn": "Confirmar código",
      "secretBase32": "Segredo (base32)",
      "copiedSecret": "Segredo copiado",
      "copySecret": "Copiar segredo",
      "scanThenCode": "Se já digitalizado, insira o código atual de 6 dígitos.",
      "verifyCode": "Código de verificação",
      "applyStrictStepUp": "Aplicar Estrito · intensificar",
      "enterPanelTotp": "Insira o código TOTP do painel atual",
      "applyBtn": "Aplicar",
      "appliedOk": "Aplicado",
      "sharePanelTitle": "Compartilhar segredo TOTP do painel?",
      "sharePanelDesc": "Alto risco. Digite COMPARTILHADO para confirmar.",
      "confirmString": "Sequência de confirmação",
      "enableShare": "Ativar compartilhamento",
      "invalidPub": "Cole uma linha completa de chave pública OpenSSH (ssh-ed25519 / ssh-rsa / ecdsa…).",
      "dryRunOk": "Pré-visualização concluída. Reveja o conteúdo abaixo.",
      "strictDryRun": "Pré-visualização do modo estrito",
      "errorNoDetail": "Teste falhou (sem detalhes)",
      "strictBlocked": "O pacote ou o PAM não está pronto; a aplicação Strict está desativada.",
      "privCloseWithoutAck": "Fechado. A chave privada não será mostrada novamente; gere um novo se você não o salvou."
    },
    "sessionsActive": "Sessões ativas",
    "sessionsOther": "Outros dispositivos",
    "sessionsHint": "",
    "noSessionsHint": "Quando você fizer login novamente, este dispositivo aparecerá aqui.",
    "sessionOtherBadge": "Outro",
    "sessionThisDevice": "Você está aqui",
    "sessionDeviceOn": "{{browser}} em {{os}}",
    "sessionIpUnknown": "IP desconhecido",
    "sessionLastActive": "Último ativo {{when}}",
    "sessionStarted": "Conectado {{when}}",
    "sessionIdShort": "ID {{id}}…",
    "sessionJustNow": "agora mesmo",
    "sessionMinAgo": "{{n}} minutos atrás",
    "sessionHourAgo": "{{n}} horas atrás",
    "sessionDayAgo": "{{n}} dias atrás",
    "revokeSessionTitle": "Desconectar este dispositivo?",
    "revokeSessionDesc": "Encerrar sessão para {{device}} ({{ip}}). Esse dispositivo precisará fazer login novamente.",
    "revokeOthersTitle": "Desconectar todos os outros dispositivos?",
    "revokeOthersDesc": "Isso encerrará {{count}} outras sessões. Seu navegador atual permanece conectado.",
    "sessionRevoked": "Sessão desconectada",
    "mySecurityHint": "",
    "policyTotpHint": "Política do site: cada administrador deve habilitar seu próprio 2FA (QR individual)",
    "requireUser2fa": "Exigir 2FA para todos os utilizadores do painel",
    "changePasswordTitle": "Alterar a palavra-passe de início de sessão",
    "currentPassword": "Palavra-passe atual",
    "newPassword": "Nova palavra-passe",
    "confirmNewPassword": "Confirmar nova palavra-passe",
    "passwordMismatch": "As novas palavras-passe não coincidem.",
    "changePassword": "Alterar palavra-passe",
    "passwordChanged": "Palavra-passe atualizada.",
    "strictNeedsEnrolled": "Pelo menos um administrador deve ter 2FA antes de ativar o Strict.",
    "policyTotpNeedSelf": "Ative primeiro o 2FA nesta conta; caso contrário o código de confirmação não pode ser preenchido.",
    "policyNoTotpHint": "This account has no 2FA yet — saving policy does not need a TOTP. Set up 2FA above if you want to require it for others.",
    "policyNeedSelf2fa": "Habilite 2FA nesta conta primeiro e depois confirme com um código TOTP",
    "revokeAllDevicesTitle": "Revogue todos os dispositivos lembrados – você e outros administradores devem verificar o 2FA novamente",
    "sessionCli": "CLI",
    "sessionApi": "API",
    "fail2banSnippetTitle": "Fragmento fail2ban",
    "fail2banSnippetEmpty": "Nenhum fragmento foi escrito.",
    "trustedDevicesTitle": "Dispositivos de confiança",
    "noTrustedDevices": "Não há dispositivos de confiança.",
    "strictConfirmTitle": "Ativar 2FA Strict?",
    "strictConfirmDesc": "Utilizadores sem 2FA serão recusados. Confirme que já tem TOTP ou Passkey a funcionar.",
    "revokeDevicesTitle": "Revogar dispositivos de confiança?",
    "revokeDevicesDesc": "Os browsers memorizados voltarão a pedir 2FA.",
    "approvalsHint": "As aprovações aparecem quando uma ferramenta de alto risco precisa de um segundo operador. Configure permissões em Utilizadores → Permissões.",
    "allowlistReadonly": "Catálogo de ferramentas do agente (só leitura). As capacidades configuram-se em Utilizadores → Permissões.",
    "colTool": "Ferramenta",
    "colAllowed": "Permitido",
    "colRisk": "Risco",
    "colApproval": "Aprovação",
    "risk": {
      "low": "Baixo",
      "medium": "Médio",
      "high": "Alto",
      "critical": "Crítico"
    },
    "confirmDeleteApiKey": "Excluir esta chave de API?",
    "confirmDeleteApiKeyDesc": "“{{name}}” irá parar de autenticar. Isto não pode ser desfeito."
  },
  "serviceExposure": {
    "title": "Acesso à rede",
    "manage": "Gerenciar acesso",
    "manageTitle": "Acesso à rede de serviço",
    "manageDesc": "Controle como {{service}} pode ser acessado no firewall do host.",
    "mode": "Modo de acesso",
    "modePrivate": "Somente locais",
    "modePublic": "Público",
    "modeRestricted": "Restrito",
    "modeUndecided": "Não definido",
    "modePublicLive": "Público (vinculação ao vivo)",
    "summaryPublicLive": "Ouvindo em {{bind}} — acessível em todas as interfaces. Confirme o modo de acesso; isso não é privado.",
    "modeLoading": "Carregando",
    "summaryPrivate": "Não aberto no firewall público.",
    "summaryPublic": "Aberto · {{ports}}",
    "summaryUndecided": "Modo de acesso não confirmado (padrão do catálogo: {{suggested}}).",
    "summaryNotEnforced": "O firewall está desligado — o painel não está abrindo ou bloqueando essas portas.",
    "roleSmtp": "Envio SMTP",
    "roleImap": "Caixa de correio IMAP/POP3",
    "summaryRestricted": "Restrito · {{count}} fonte(s)",
    "summaryFirewallOff": "Firewall do host: {{detail}} — regras não aplicadas até que o UFW esteja ativo.",
    "summaryFirewallOffOnly": "O firewall do host não está ativado, portanto as regras de porta não são aplicadas.",
    "outOfSync": "Fora de sincronia",
    "openButStopped": "Portas abertas – serviço não está em execução",
    "openNoTenants": "Portos públicos sem inquilinos",
    "firewallOff": "Firewall desativado",
    "ufwMissing": "UFW não instalado",
    "ufwInactive": "inativo",
    "firewallLink": "Firewall",
    "portsLabel": "Portas",
    "allowFrom": "Fontes permitidas (IP/CIDR)",
    "allowCountries": "Países permitidos (ISO)",
    "hintPrivate": "O serviço ainda pode escutar no host local; nenhum UFW público permite regras.",
    "hintPublic": "Atenção: abre esta porta para toda a Internet. Prefira restrito para bancos de dados.",
    "hintRestricted": "IPs ou CIDRs separados por vírgula. Somente essas fontes podem se conectar.",
    "hintCountries": "Melhor esforço L2 via ipset + CIDRs de zona de país. Requer root, EXECUTE e ipset. Os grupos de segurança na nuvem são separados.",
    "restrictedNeedIp": "Adicione pelo menos um IP ou CIDR para modo restrito.",
    "restrictedNeedSource": "Adicione pelo menos um IP/CIDR ou código de país para modo restrito.",
    "privateStartTitle": "Expor {{service}} na rede?",
    "confirmAndStart": "Confirme e comece",
    "cloudSgNote": "Somente firewall de host — grupos de segurança em nuvem (AWS/GCP/Azure) não são alterados.",
    "serviceNotInstalled": "Este serviço não está instalado, portanto as regras de firewall não se aplicam."
  },
  "services": {
    "enabledBoot": "Na inicialização",
    "unitNotFound": "Unit not installed",
    "bootNa": "Não aplicável",
    "unitNa": "Não aplicável",
    "permLabel": "Permissão",
    "permCanChange": "Pode mudar o sistema (superusuário)",
    "permBlocked": "Não é possível alterar o sistema",
    "permHint": "Mudança de sistema {{exec}} · Superusuário {{root}}",
    "clusterLegend": "Planejado = salvo no painel, não aplicado no host.",
    "active": {
      "active": "Correndo",
      "inactive": "Parou",
      "not-found": "Não instalado",
      "failed": "Fracassado",
      "tool": "Ferramenta",
      "activating": "Começando"
    },
    "unitStatic": "estático",
    "unitIndirect": "indireto",
    "action": {
      "start": "Começar",
      "stop": "Parar",
      "restart": "Reiniciar",
      "reload": "Recarregar",
      "enable": "Ativar no arranque",
      "disable": "Desativar no arranque"
    },
    "enabledOk": "{{label}} ativado no arranque",
    "bootDisabledWarn": "{{label}} está a correr mas não arranca no boot. Ative para persistir após reinício.",
    "bootDisabledShort": "Não no arranque",
    "sshdBootOffWarn": "sshd não está habilitado na inicialização. Após a reinicialização, este host não terá nenhum caminho de resgate SSH.",
    "mariadbNotInstalled": "MariaDB não está instalado",
    "mariadbNotInstalledMysqlOk": "Não instalado: MariaDB (MySQL está instalado)",
    "lifecycleTitle": "Controlo do serviço {{label}}",
    "startedOk": "{{label}} iniciado",
    "stoppedOk": "{{label}} parado",
    "needRunning": "{{label}} não está em execução",
    "restartedOk": "{{label}} reiniciado",
    "reloadedOk": "{{label}} recarregado",
    "reloadTitle": "Recarregue a configuração {{label}} sem reiniciar completamente",
    "stopNeedConfirm": "Requer confirmação",
    "stopNeedConfirmPhrase": "É necessário escrever a frase de confirmação",
    "stopNeedConfirmImpact": "Pare {{label}}? As conexões ativas com este serviço serão interrompidas.",
    "stopConfirmTitle": "Parar {{label}}?",
    "stopConfirmDesc": "{{label}} deixa de escutar. Pode iniciá-lo de novo nesta página.",
    "stopConfirmEdgeDesc": "Parar {{label}} tira os sítios e o proxy inverso do ar até voltar a iniciar.",
    "stopConfirmEdgeConsequence": "Enquanto {{label}} estiver parado, este anfitrião não serve HTTP/HTTPS.",
    "stopConfirmSshdTitle": "Parar sshd?",
    "stopConfirmSshdDesc": "Parar sshd fecha o SSH remoto. Confirme consola ou outro acesso.",
    "stopConfirmSshdToken": "parar sshd",
    "stopConfirmSshdConsequence": "Novas sessões SSH falham até iniciar o sshd na consola do anfitrião.",
    "stopConfirmPanelTitle": "Parar YSK Server?",
    "stopConfirmPanelDesc": "O painel e a API ficam offline até iniciar a unidade no anfitrião.",
    "stopConfirmPanelSshdOffDesc": "O painel e a API ficarão offline. O sshd não está habilitado na inicialização, portanto o SSH pode não ser um caminho de resgate após a reinicialização.",
    "stopConfirmPanelSshdOffConsequence": "sshd não está habilitado na inicialização. Após a reinicialização, você pode não ter nenhum caminho de resgate SSH.",
    "ufwNoLifecycle": "O UFW não é iniciado ou interrompido nesta matriz.",
    "restartConfirmPanelTitle": "Reiniciar o servidor YSK?",
    "restartConfirmPanelDesc": "O painel e a API serão suspensos brevemente enquanto a unidade é reiniciada.",
    "restartConfirmTitle": "Reiniciar {{label}}?",
    "restartConfirmDesc": "Reinicie {{label}} agora. As conexões ativas podem cair.",
    "restartConfirmConsequence": "{{label}} interromperá brevemente as conexões e continuará servindo HTTP/HTTPS.",
    "reloadConfirmTitle": "Recarregar {{label}}?",
    "reloadConfirmDesc": "Recarregue a configuração {{label}}. As sessões existentes devem permanecer ativas.",
    "enableConfirmTitle": "Habilitar {{label}} na inicialização?",
    "enableConfirmDesc": "Habilite {{label}} para que ele inicie na inicialização.",
    "startVerifyFailed": "{{label}} início não permaneceu saudável.",
    "stopConfirmPanelToken": "pare o servidor ysk",
    "stopConfirmPanelConsequence": "Esta sessão do browser desliga-se. Inicie a unidade por SSH ou consola.",
    "stopConfirmFail2banTitle": "Parar o fail2ban?",
    "stopConfirmFail2banDesc": "Interromper o fail2ban desativa os banimentos automáticos de IP. Sites e SSH continuam funcionando.",
    "stopConfirmFail2banConsequence": "Novos invasores não são banidos até que o fail2ban seja reiniciado.",
    "actionDone": "{{action}} concluído",
    "runningOf": "{{running}}/{{total}} em execução",
    "statusFilter": {
      "all": "Todos os estados",
      "running": "Correndo",
      "failed": "Fracassado",
      "missing": "Não instalado"
    },
    "canMutate": "Mutável",
    "locked": "Bloqueado",
    "controlUnit": "Unidade de plano de controle",
    "logs": "Registros",
    "dbHa": "Banco de dados HA",
    "clusterCount": "{{count}} cluster(s)",
    "mariadbCluster": "Cluster MariaDB",
    "probing": "Sondando matriz de serviço…",
    "lifecycleLocked": "Ações de ciclo de vida bloqueadas: precisam de root + YSK_EXECUTE. As sondas ainda funcionam. Ver",
    "hostSettings": "Configurações do host",
    "matrixTab": "Matriz de atendimento ({{count}})",
    "stackTab": "Pilha de software",
    "stackTitle": "Pilha de software host",
    "stackHint": "Instalar ou remover componentes do host conforme planejado; Os mecanismos do SQL Server são exclusivos.",
    "protectionTab": "Sonda de proteção",
    "knownServices": "Serviços conhecidos",
    "showing": "Exibindo {{shown}} / {{total}}",
    "all": "Todos",
    "searchPh": "Nome/unidade/categoria",
    "noMatch": "Nenhum serviço correspondente",
    "bootPrefix": "Inicialização {{state}}",
    "controlPage": "Página de controle",
    "manageRuntime": "Instalar / atualizar",
    "installOrOpen": "Instalar / abrir",
    "protectionTitle": "Sonda de proteção",
    "protectionSub": "Somente leitura; não altera firewall/fail2ban",
    "protectionDoneNote": "Sonda de proteção concluída",
    "probeDone": "Sondagem concluída",
    "runProtection": "Executar investigação de proteção",
    "notProbedYet": "Ainda não foi investigado",
    "cat": {
      "web": "Rede",
      "db": "Bancos de dados",
      "mail": "Correspondência",
      "dns": "DNS",
      "ftp": "FTP",
      "cache": "Cache",
      "panel": "Painel",
      "ssh": "SSH",
      "other": "Outro",
      "runtime": "Tempos de execução"
    }
  },
  "software": {
    "title": "Programas",
    "desc": "Todo o software gerenciado: status de instalação, integridade do serviço, versões mais recentes e links para uso em projetos.",
    "tabs": {
      "overview": "Visão geral",
      "runtimes": "Tempos de execução",
      "databases": "Bancos de dados",
      "edge": "Domínios e borda",
      "mailFiles": "Correio e arquivos",
      "host": "Serviços de hospedagem"
    },
    "stat": {
      "catalog": "Itens de catálogo",
      "runtimesInstalled": "Tempos de execução instalados",
      "updates": "Atualizações / expansíveis",
      "attention": "Precisa de atenção"
    },
    "quickTitle": "Atalhos",
    "quickDesc": "Vá para uma seção ou hospede ferramentas",
    "updatesTitle": "Atualizações e versões instaláveis",
    "updatesDesc": "Pinos upstream ou de painel mais recentes. Instale e selecione o tempo de execução em um projeto.",
    "allSoftware": "Todos os softwares",
    "status": {
      "unknown": "—",
      "installed": "Instalado",
      "notInstalled": "Não instalado",
      "running": "Correndo",
      "missing": "Não detectado",
      "failed": "Fracassado",
      "stopped": "Parou"
    },
    "badge": {
      "update": "Atualização disponível",
      "upToDate": "Atualizado"
    },
    "meta": {
      "installed": "Instalado: {{list}}",
      "default": "Padrão {{v}}",
      "remote": "Rio acima ~{{v}}",
      "openManage": "Abra a página de gerenciamento para instalar ou configurar",
      "aptCurrentLatest": "Instalado {{v}} · repositório é o mais recente",
      "aptVersion": "Instalado {{v}}",
      "aptUpgrade": "{{from}} → {{to}} disponível",
      "aptUpgradeMulti": "{{n}} pacotes atualizáveis: {{list}}",
      "aptNotInstalled": "Pacote não instalado (abra a página de gerenciamento para instalar)",
      "hostUpgradable": "~{{n}} pacotes atualizáveis ​​no host",
      "checking": "Verificando versões… ou abrindo a página de gerenciamento"
    },
    "action": {
      "manage": "Gerenciar",
      "useInProject": "Usar no projeto",
      "useInProjectTitle": "Abra projetos para definir este tempo de execução",
      "update": "Atualizar",
      "updateTitle": "Instale ou mude para {{v}}",
      "updateTo": "Atualizar para {{v}}",
      "installVersion": "Instalar {{v}}",
      "applyAptTitle": "Confirmar atualização {{pkg}}",
      "updateN": "Atualizar {{n}} itens",
      "installTitle": "Instalar {{list}}",
      "install": "Instalar",
      "updateAptTitle": "Abra atualizações para {{pkg}}"
    },
    "apply": {
      "blockedShort": "Bloqueado",
      "failedShort": "Fracassado",
      "failed": "Falha na atualização",
      "blocked": "Bloqueado",
      "confirm": "Confirmar atualização",
      "confirmTitle": "Confirmar atualização de software?",
      "confirmBody": "Atualização {{pkg}}: {{from}} → {{to}}. Precisa de direitos de mudança de sistema.",
      "ok": "Aplicado {{pkg}}",
      "progress": "Atualizando {{n}}/{{total}}: {{pkg}}",
      "okMulti": "Atualizado: {{list}}",
      "okMultiTitle": "{{label}} atualizado",
      "partial": "Sucesso parcial",
      "partialTitle": "Algumas atualizações falharam",
      "failedTitle": "{{label}} atualização falhou",
      "progressDetail": "{{from}} → {{to}}",
      "confirmBodyMulti": "Atualização {{label}}: {{list}}"
    },
    "version": {
      "loading": "Carregando versões…",
      "installed": "Instalado",
      "latest": "Mais recente",
      "upToDate": "Atualizado/repo mais recente",
      "refresh": "Verifique novamente o mais recente",
      "refreshHasUpdate": "Versão mais recente disponível",
      "refreshLatest": "Já é a última versão gravada",
      "pick": "Escolha a versão",
      "noTarget": "Sem meta de atualização",
      "needRuntimePage": "Instale esta versão na página de tempo de execução",
      "noAptCandidate": "Nenhuma versão candidata adequada",
      "sourceLabel": "Fonte"
    },
    "install": {
      "progress": "Instalando: {{list}}…",
      "progressHint": "Pode demorar um ou dois minutos",
      "blockedTitle": "{{label}} não foi possível instalar",
      "ok": "Instalação na fila: {{list}}",
      "okTitle": "{{label}} instalado/enfileirado",
      "failedTitle": "{{label}} falha na instalação",
      "confirmTitle": "Confirmar instalação do software?",
      "confirmBody": "Instale {{label}}: {{list}}. Precisa de direitos de mudança de sistema.",
      "confirm": "Confirmar instalação"
    },
    "runtime": {
      "installing": "Instalando/atualizando {{kind}} {{v}}…",
      "installingHint": "Pode demorar um ou dois minutos",
      "blockedTitle": "{{kind}} {{v}} não foi possível instalar",
      "installed": "Instalado/atualizado {{kind}} {{v}}",
      "installedDetail": "Selecione esta versão em um projeto",
      "failedTitle": "{{kind}} {{v}} falha na instalação",
      "installingShort": "Instalando…"
    },
    "aptSummaryTitle": "Atualizações de repositório disponíveis",
    "aptSummaryDesc": "As contagens de catálogo e pacote host são separadas; aplique a partir de atualizações ou de um cartão.",
    "aptSummary": {
      "catalog": "Catálogo {{n}}",
      "host": "Pacotes de hospedagem {{n}}",
      "openUpdates": "Abrir atualizações"
    },
    "navBadgeTitle": "Atualizações de catálogo: {{n}}",
    "projectHint": "Tempo de execução {{runtime}} pré-preenchido — crie um projeto",
    "projectHintWithVersion": "Tempo de execução {{runtime}} {{version}} pré-preenchido — crie um projeto"
  },
  "softwareBanner": {
    "titleDefault": "O software necessário não está instalado",
    "missing": "Faltando: {{names}}",
    "nameSep": ", ",
    "installOneClick": "Instale agora",
    "installing": "Instalando…",
    "reprobe": "Verifique novamente",
    "close": "Fechar",
    "resultTitle": "Resultado da instalação",
    "probeFailed": "Falha na investigação",
    "installIncomplete": "Instalação incompleta",
    "installedOne": "Instalado {{name}}",
    "allInstalled": "Software necessário instalado"
  },
  "softwareLifecycle": {
    "kindInstall": "Instalar",
    "kindUninstall": "Desinstalar",
    "dockBusy": "{{kind}} · {{title}}",
    "dockFail": "Falhou · {{title}}",
    "dockDone": "Concluído · {{title}}",
    "minimize": "Minimizar",
    "maximize": "Ampliar",
    "restore": "Restaurar",
    "liveLog": "Registro ao vivo",
    "uninstall": "Desinstalar…",
    "uninstallTitle": "Desinstalar {{name}}",
    "impactIntro": "Esses componentes e serviços serão afetados. Revise cuidadosamente antes de continuar.",
    "nothingInstalled": "Nada instalado para este recurso.",
    "packagesList": "Pacotes: {{list}}",
    "noPackages": "Nenhum pacote apt listado",
    "unitsList": "Serviços: {{list}}",
    "dataPolicy": "Política de dados",
    "policyKeep": "Manter configurações e dados",
    "policyPurge": "Limpar configurações e dados (perigoso)",
    "purgeWarning": "A limpeza exclui permanentemente os diretórios de configuração e de dados. Isto não pode ser desfeito facilmente.",
    "keepHint": "Os pacotes serão removidos; os diretórios de configuração e dados são mantidos no disco.",
    "summaryLine": "{{packages}} pacote(s), {{units}} unidade(s) de serviço serão processadas.",
    "doubleConfirmIntro": "É necessária confirmação dupla para desinstalação.",
    "ackLabel": "Entendo que os serviços podem parar e li a lista de impactos.",
    "typePhrase": "Digite {{phrase}} para confirmar",
    "confirmUninstall": "Confirmar desinstalação",
    "protected": "Protegido",
    "readyHint": "O software necessário está instalado. Você pode desinstalar aqui, se necessário.",
    "readyTitle": "Pronto para software",
    "jobInProgress": "Outra instalação/desinstalação já está em execução",
    "uninstallDone": "Desinstalação concluída",
    "uninstallFailed": "Falha na desinstalação",
    "impact": {
      "sitesDown": "Sites públicos podem ficar off-line",
      "reverseProxy": "O proxy reverso irá parar",
      "phpBackend": "O back-end do PHP pode parar",
      "mailOutbound": "Os e-mails enviados serão interrompidos",
      "mailInbound": "O correio recebido será interrompido",
      "mailQueue": "Ferramentas de fila de correio indisponíveis",
      "mailDkim": "A assinatura DKIM será interrompida",
      "database": "O serviço de banco de dados será interrompido",
      "dataLossPurge": "Purge exclui diretórios de dados",
      "cache": "O serviço de cache será interrompido",
      "firewall": "O firewall do host será removido",
      "intrusion": "O bloqueio de intrusão será interrompido",
      "ftp": "O serviço FTPS irá parar",
      "dns": "O servidor DNS irá parar",
      "vpn": "Os serviços VPN serão interrompidos",
      "vnc": "Os serviços VNC serão interrompidos",
      "controlPlane": "Tempo de execução do plano de controle (protegido)",
      "generic": "Serviços relacionados podem parar",
      "containers": "Os contentores em execução vão parar",
      "validators": "As pilhas de validador que usam Docker Compose vão parar",
      "purgeData": "Os caminhos de dados serão excluídos",
      "protectedSkipped": "Os componentes protegidos são ignorados",
      "runtimeStack": "Todas as versões gerenciadas pelo painel deste ambiente de execução serão removidas"
    },
    "requestCancel": "Solicitar cancelamento",
    "cancelling": "Cancelando…",
    "dockCancelling": "Cancelando · {{title}}",
    "dockCancelled": "Cancelado · {{title}}",
    "cancelHint": "Cancelar solicitado. O cliente parou de ouvir; o host pode terminar o apt/step atual. Teste novamente o status após um momento.",
    "cancelledToast": "Operação cancelada (o cliente interrompeu o streaming)",
    "kindApply": "Aplicar",
    "kindScan": "Digitalizar",
    "kindDeploy": "Implantar",
    "kindRuntime": "Tempo de execução",
    "jobDone": "Concluído · {{title}}",
    "jobFailed": "Falhou · {{title}}",
    "uninstallUfwWarn": "Remover o UFW deixa este anfitrião sem a firewall de portas gerida pelo painel.",
    "uninstallFail2banWarn": "Remover o fail2ban para as jails e liberta os bloqueios. Se o mantiver, adicione o IP de início a ignoreip."
  },
  "sqlEngineHealth": {
    "finding": {
      "package_missing": "O pacote do servidor para {{flavor}} não está instalado.",
      "client_missing": "As ferramentas cliente SQL não estão instaladas.",
      "frozen_marker": "Marcador de congelamento do Debian presente (modo: {{mode}}). O início do daemon é bloqueado até ser liberado.",
      "datadir_uninitialized": "O diretório de dados não possui catálogo de sistema – precisa de inicialização.",
      "config_flavor_mismatch": "my.cnf aponta para o mecanismo errado para {{flavor}} ({{path}}).",
      "residual_foreign_plugins": "Configurações/plugins residuais de outro mecanismo SQL podem travar este daemon.",
      "unit_failed": "A unidade de serviço {{unit}} falhou.",
      "unit_not_active": "A unidade de serviço {{unit}} é {{active}} (não ativa).",
      "port_conflict": "A porta 3306 está em uso enquanto este mecanismo está inativo (possível conflito)."
    },
    "action": {
      "stop_unit": "Pare a unidade de serviço",
      "clear_frozen": "Limpar marcador de congelamento",
      "sanitize_config": "Alinhe my.cnf e desative plug-ins de mecanismos externos",
      "init_datadir": "Inicialize o diretório de dados vazio",
      "reset_failed": "Redefinir o estado da unidade com falha",
      "enable_unit": "Habilitar serviço na inicialização",
      "start_unit": "Iniciar serviço",
      "verify_active": "Verifique se o serviço está ativo"
    },
    "note": {
      "alreadyHealthy": "Mecanismo SQL já íntegro — nenhum reparo é necessário.",
      "needsConfirm": "O reparo precisa de confirmação ({{count}} etapas: {{findings}}).",
      "installPackageFirst": "Instale o pacote do servidor {{flavor}} primeiro e depois repare.",
      "stepFailed": "Etapa de reparo {{action}} falhou: {{detail}}",
      "repairOk": "Reparo concluído — {{unit}} está ativo.",
      "repairIncomplete": "O reparo foi concluído, mas a unidade ainda está {{active}}."
    }
  },
  "sqlEngineSwitch": {
    "title": "Mude para {{target}}",
    "subtitle": "Substitua {{from}} por {{to}}. Apenas um servidor SQL é permitido neste host.",
    "confirm": "Confirme a mudança e migre",
    "success": "Mecanismo SQL trocado e dados migrados",
    "bannerHint": "Se o outro motor já estiver instalado, você deve confirmar uma troca exclusiva (desinstalar",
    "flowAria": "Direção da mudança do mecanismo SQL",
    "from": "Atual",
    "to": "Alvo",
    "calloutTitle": "Difícil de desfazer sem backups",
    "calloutBody": "{{from}} os pacotes são removidos somente após uma exportação bem-sucedida",
    "sectionImpact": "O que vai acontecer",
    "sectionLimits": "Limitações e riscos",
    "dbListTitle": "Bancos de dados para migrar ({{count}})",
    "dbMigrateBadge": "{{count}} banco(s) de dados de usuários",
    "dbEmptyBadge": "Nenhum banco de dados de usuário",
    "noUserDbs": "Nenhum banco de dados de usuário detectado (somente esquemas de sistema). O mecanismo do servidor ainda será substituído.",
    "tableCount": "{{count}} mesa(s)",
    "ackLabel": "Eu entendo que os motores são exclusivos. Desinstale {{from}} e migre os dados para {{to}}.",
    "phraseLabel": "Digite {{phrase}} para confirmar",
    "phraseMismatch": "A frase não corresponde. Digite SWITCH exatamente.",
    "warn": {
      "replace_engine": "Desinstale {{from}} e instale {{to}}.",
      "exclusive": "MySQL e MariaDB não podem ser executados juntos como servidores em um host (exclusivo).",
      "uninstall_packages": "Os pacotes atuais do SQL Server serão removidos do sistema.",
      "logical_dump": "Os bancos de dados do usuário são exportados logicamente e depois importados. Os esquemas do sistema não são copiados como arquivos.",
      "dialect_risk": "SQL específico do MariaDB ou MySQL pode falhar na importação.",
      "no_replication": "Configurações de replicação, plug-ins e logs binários não são migrados.",
      "root_auth": "A autenticação de soquete raiz ou senha pode precisar de reconfiguração após a troca.",
      "no_user_dbs": "Nenhum banco de dados de usuário detectado — apenas os pacotes de mecanismo serão alterados.",
      "has_user_dbs": "{{count}} bancos de dados de usuários serão exportados e importados."
    },
    "note": {
      "needsSwitch": "Este host já executa {{other}}. MySQL e MariaDB são exclusivos - confirme a opção (exportar → desinstalar outro → instalar → importar).",
      "invalidTarget": "Destino inválido (somente mysql ou mariadb).",
      "badConfirmPhrase": "A frase de confirmação deve ser exatamente SWITCH.",
      "needAck": "Você deve reconhecer a opção exclusiva (MySQL ou MariaDB, não ambos).",
      "switchNotNeeded": "A opção não é necessária – use a instalação normal.",
      "migrateDataRequired": "A migração de dados deve ser habilitada quando existirem bancos de dados de usuários.",
      "dumpFailed": "Falha na exportação — fonte {{source}} deixada em execução. {{detail}}",
      "datadirBackupFailed": "Falha no backup do Datadir – abortado antes da desinstalação. Tente iniciar o serviço de origem manualmente.",
      "waitFailed": "O serviço de destino não ficou pronto. Backup: {{dumpPath}}. Datadir antigo: {{datadir}}. Recuperação manual necessária.",
      "incomplete": "Troca incompleta. Exportação retida em {{dumpPath}}. Datadir antigo em {{datadir}}. Não purgue novamente às cegas.",
      "switched": "Alternado {{from}} → {{to}}. Bancos de dados {{imported}}/{{total}} importados.",
      "dumpPath": "Caminho lógico de exportação: {{path}}",
      "datadirBackup": "Backup antigo do datadir: {{path}} (remova quando estiver satisfeito: rm -rf {{path}})",
      "grantsExported": "Subsídios exportados ({{detail}})",
      "frozenDetected": "MySQL/MariaDB está CONGELADO (não é uma falha do apt). Caminho {{path}} (modo: {{mode}}). O pacote pode estar instalado, mas o daemon se recusa a iniciar após uma troca de motor ou downgrade. Limpe o congelamento e reinicie o datadir vazio, se for seguro. Trecho: {{snippet}}",
      "frozenCleared": "Marcador de congelamento removido {{path}}.",
      "frozenClearFailed": "Não foi possível remover o marcador de congelamento {{path}} — remova manualmente como root.",
      "datadirNotEmptySkipInit": "O diretório de dados já possui tabelas de sistema – reinicialização ignorada.",
      "datadirInitialized": "Diretório de dados vazio inicializado para {{flavor}}.",
      "datadirInitFailed": "Falha ao inicializar o diretório de dados: {{detail}}",
      "unitNotActive": "A unidade {{unit}} é {{active}} (ativa esperada).",
      "nginxPortConflict": "Unidade Nginx não ativa — o Apache ainda pode vincular public :80; religue o Apache para 127.0.0.1:8080 e reinicie o Nginx.",
      "nginxConfigFailed": "nginx -t falhou: {{detail}}",
      "frozenShort": "CONGELADO ({{mode}}) — daemon bloqueado; descongelar e reparar necessário.",
      "unfreezeNeedsConfirm": "Confirme a necessidade de descongelar (congelado={{frozen}}, vazioDatadir={{empty}}). POST com confirmação: verdadeiro.",
      "unfreezeOk": "O serviço {{unit}} está ativo após o reparo descongelado.",
      "unfreezeStartFailed": "Ainda não ativo após descongelar: {{detail}}",
      "unfreezePrompt": "Clique em “Descongelar e reparar” para limpar CONGELADO e reiniciar o datadir vazio.",
      "configSanitized": "Configuração SQL alinhada para {{flavor}} (my.cnf → {{target}}). Remanescentes do plugin MariaDB desabilitados ao direcionar para MySQL.",
      "configSanitizeFailed": "Falha ao limpar a configuração SQL: {{detail}}"
    },
    "step": {
      "dump": "Exportar {{db}}",
      "exportGrants": "Subsídios de exportação",
      "stop": "Pare {{unit}}",
      "backupDatadir": "Backup de dados",
      "purge": "Desinstalar {{pkg}}",
      "wait": "Aguarde {{unit}}",
      "importDb": "Importar {{db}}",
      "importGrants": "Subsídios de importação",
      "verify": "Verificar",
      "preflight": "Comprovação",
      "confirm": "Confirmar",
      "clearFrozen": "Limpar MySQL CONGELADO",
      "initDatadir": "Inicializar datadir vazio",
      "startUnit": "Iniciar {{unit}}",
      "sanitizeConfig": "Sanitizar plug-ins my.cnf/residuais"
    }
  },
  "ssl": {
    "status": {
      "uploaded": "Enviado",
      "issued": "Publicado",
      "planned": "Em andamento",
      "failed": "Fracassado",
      "missing": "Arquivos faltando",
      "ready": "Preparar",
      "processing": "Em andamento"
    },
    "step": {
      "ok": "Feito",
      "blocked": "Não é possível executar",
      "failed": "Fracassado",
      "skipped": "Ignorado"
    },
    "pillCount": "{{count}} certificado(s)",
    "statCerts": "Certificados",
    "panelCertHint": "O painel HTTPS usa {{path}} (expira em {{exp}}). Não está listado como um certificado de site.",
    "openPanelTls": "Abrir painel HTTPS",
    "statWithFiles": "Com arquivos",
    "statBindings": "Ligações",
    "statFailed": "Fracassado",
    "requestLe": "Solicitar vamos criptografar",
    "openLetsEncryptLog": "Abra letsencrypt.log no Log Center",
    "uploadCert": "+ Carregar certificado",
    "certbotNotInstalled": "Certbot não está instalado",
    "leFailNxdomain": "DNS não tem registro para {{domain}} (NXDOMAIN) — Let's Encrypt não pode validar sem um A/AAAA público.",
    "leFailNxdomainHint": "Adicione um registro A para {{domain}} ao IP público deste servidor no DNS, escreva a zona, confirme",
    "leFailDns": "Resolução de erro de DNS {{domain}} (SERVFAIL ou similar).",
    "leFailDnsHint": "Verifique os servidores de nomes e se a zona está publicada na Internet pública.",
    "leFailHttp01": "{{domain}} resolve, mas HTTP-01 falhou (porta 80 inacessível ou resposta errada).",
    "leFailHttp01Hint": "Abra a porta 80, certifique-se de que o nginx escute em 80 e que {{domain}} aponte para este host",
    "leFailRateLimit": "Vamos criptografar o limite de taxa atingido.",
    "leFailRateLimitHint": "Aguarde e tente novamente ou evite solicitações repetidas para o mesmo nome.",
    "leFailCaa": "Bloco de registros CAA Let's Encrypt para {{domain}}.",
    "leFailCaaHint": "Adicione um CAA permitindo letsencrypt.org ou remova o CAA de bloqueio.",
    "leFailChallenge": "Falha na validação do domínio Let's Encrypt ({{domain}}).",
    "leFailChallengeHint": "Confirme o registro DNS A e a acessibilidade da porta 80 e tente novamente; veja letsencrypt.log.",
    "leFailUnknown": "Falha na solicitação de criptografia ({{domain}}).",
    "leFailUnknownHint": "Abra letsencrypt.log para obter detalhes.",
    "leFailRawTail": "Detalhe técnico (trecho): {{snippet}}",
    "requestFailedWhy": "Por que falhou",
    "requestFailedNext": "Próximas etapas",
    "retryRequest": "Tentar novamente a solicitação",
    "retryRequestFor": "Tentar novamente a solicitação para {{domain}}",
    "retryInTableHint": "Tente novamente a partir da linha do domínio com falha na lista abaixo",
    "bindingsTitle": "Vinculações e renovação",
    "autoRenewLabel": "Renovação automática",
    "autoRenewYes": "Habilitado",
    "autoRenewNo": "Não ativado/não confirmado",
    "autoRenewYesDetail": "Mecanismo de renovação detectado: {{source}}. Os certificados Let's Encrypt devem ser renovados antes de expirarem quando o certbot estiver íntegro.",
    "autoRenewNoDetail": "Nenhum certbot.timer ativado ou cron de renovação encontrado. Habilite certbot.timer ou os certificados expirarão, a menos que você renove manualmente.",
    "renewSourceCron": "cron do painel/sistema",
    "renewTimerEnabled": "temporizador do systemd ativado: {{unit}}",
    "renewTimerDisabled": "Encontrado {{unit}} mas não está habilitado (systemctl enable --now {{unit}})",
    "renewTimerInstalledUnknown": "Host possui arquivo de unidade {{unit}}; confirme systemctl enable --now",
    "renewTimerActive": "{{unit}} está ativo",
    "renewViaCron": "Encontrados {{count}} trabalhos cron mencionando certbot/renew",
    "renewNone": "Nenhum certbot.timer ou LE renova cron registrado",
    "expiresUnknown": "Desconhecido",
    "expiresUnknownHint": "Arquivo de certificado ilegível (permissões/caminho);",
    "expiresInDays": "em {{n}} dias",
    "expiresAt": "· Expira em {{date}}",
    "projectsAt": "· Projetos: {{names}}",
    "mailAt": "· E-mail: {{domains}}",
    "noBindings": "Nenhuma vinculação de projeto/e-mail detectada",
    "certsTitle": "Certificados ({{count}})",
    "colDomain": "Domínio",
    "colProvider": "Fonte",
    "providerUpload": "Carregar",
    "colLocalFiles": "Arquivos locais",
    "filesYes": "Sim",
    "filesNo": "Não",
    "colExpires": "Expira",
    "renew": "Renovar",
    "renewFor": "Renovar Let’s Encrypt para {{domain}}",
    "deleteDomain": "Excluir {{domain}}",
    "colStatus": "Status",
    "emptyTitle": "Ainda não há certificados",
    "emptyDesc": "Use “Carregar certificado” ou “Solicitar Let’s Encrypt” acima",
    "uploadTitle": "Carregar certificado",
    "uploadDesc": "Cole o conteúdo PEM; o painel grava arquivos no servidor",
    "domainHint": "Domínio principal para este certificado, por ex. exemplo.com",
    "fullchainLabel": "Cadeia de certificados (cadeia completa)",
    "fullchainHint": "PEM com certificado de servidor e CA intermediária",
    "privkeyLabel": "Chave privada (privkey)",
    "privkeyHint": "Chave privada PEM correspondente ao certificado – mantenha-a em segredo",
    "uploadHint": "Upload apenas grava arquivos;",
    "leTitle": "Solicitar vamos criptografar",
    "leDesc": "O painel solicita o certificado no servidor — sem certificado manual",
    "requestCert": "Solicitar certificado",
    "domainLeHint": "Apex/domínio ou curinga *.example.com",
    "domainLePlaceholder": "exemplo.com ou *.exemplo.com",
    "emailLabel": "E-mail de contato",
    "emailHint": "Para avisos de expiração do Let’s Encrypt; deixe em branco para usar admin@domain",
    "leDns01Hint": "Os curingas usam dns-01: o painel inicia um desafio manual do certbot – conclua o registro TXT",
    "leHttp01Hint": "Domínios normais usam http-01 (plugin nginx)",
    "deleteTitle": "Excluir certificado?",
    "deleteDesc": "Remove arquivos de certificado e registro para {{domain}}.",
    "deleteNeedDomain": "Exclua este certificado – digite o nome de domínio para confirmar",
    "savedCert": "Certificado salvo para {{domain}}",
    "uploadFailed": "Falha no upload",
    "requestBlocked": "Não é possível concluir a solicitação de certificado no painel de administração",
    "requestDone": "Solicitação de certificado concluída",
    "requestFailed": "A solicitação de certificado não foi bem-sucedida",
    "applyFailed": "Falha na solicitação",
    "deletedCert": "Excluído {{domain}}",
    "uninstallCertbotWarn": "A remoção do certbot interrompe a renovação automática dos certificados Let's Encrypt existentes.",
    "uninstallCertbot": "Desinstalar o certbot (perde a renovação automática)",
    "domainRequired": "Introduza um domínio.",
    "domainInvalid": "O formato do domínio não é válido.",
    "domainKnownHint": "Escolha um domínio de projeto, DNS ou correio, ou escreva um."
  },
  "stackWizard": {
    "purgeConfirm": "Confirmar a purga? Os caminhos de dados registrados (bancos de dados/correio) serão excluídos permanentemente.",
    "installedCount": "Instalado {{installed}} · Ausente {{missing}}",
    "countHint": "Essas contagens são pacotes de sistema operacional no plano de software — e não as unidades de matriz de serviços na outra guia.",
    "executeRoot": "Mudanças no sistema {{execute}} · administrador {{root}}",
    "manifestPlan": "Plano {{plan}} ({{bundles}})",
    "manifestHint": "Último plano de software e pacotes escolhidos",
    "needRootExecute": "A instalação/remoção ao vivo precisa de direitos de administrador e permissão de alteração do sistema. Você ainda pode fazer o teste.",
    "modeInstall": "Instalar plano",
    "modeUninstall": "Desinstalar",
    "plan": "Plano",
    "customBundles": "Pacotes personalizados",
    "sqlExclusive": "Servidor SQL (exclusivo)",
    "clamavOptional": "opcional, grande",
    "componentsTitle": "Componentes para instalar",
    "dryRun": "Visualização de simulação",
    "installNow": "Instale agora",
    "uninstallHint": "Selecione os pacotes a remover. Sem seleção não é possível remover. Os dados são conservados por omissão.",
    "dataPolicy": "Política de dados",
    "keepData": "Mantenha os dados",
    "purgeData": "Limpar dados",
    "uninstallNow": "Desinstalar agora",
    "uninstallNeedSelect": "Selecione pelo menos um pacote. A seleção vazia não significa mais remover tudo.",
    "uninstallConfirmTitle": "Remover pacotes selecionados?",
    "uninstallConfirmDesc": "{{count}} pacote(s) serão removidos. Digite REMOVER para confirmar.",
    "bundle": {
      "control-plane": "Plano de controle",
      "web": "Hospedagem na web",
      "database": "Bancos de dados",
      "email": "Pilha de correio",
      "dns": "DNS",
      "ftp": "FTP / FTPS",
      "defense": "Defesa do anfitrião",
      "runtimes": "Tempos de execução de linguagem"
    },
    "planTitle": {
      "minimal": "Somente plano de controle",
      "recommended": "Hospedagem recomendada",
      "full": "Todos os softwares"
    }
  },
  "support": {
    "title": "Suporte",
    "sub": "Creator, donativos e YSK Limited — produto gratuito, ajuda real",
    "creatorTitle": "Criador",
    "creatorBody": "YSK Server é um plano de controlo de um só anfitrião, gratuito e honesto, para operadores que querem possuir a sua stack. O projeto é mantido em aberto; comentários e relatórios de erros mantêm-no afiado.",
    "donateTitle": "Apoio / Donativo",
    "donateBody": "Se o YSK Server lhe poupa tempo, considere patrocinar o desenvolvimento. Cada contributo ajuda a manter o produto gratuito para todos.",
    "donateGithub": "Patrocinadores do GitHub",
    "donateOther": "Outras formas de contribuir",
    "yskTitle": "YSK Limited",
    "yskIntro": "Precisa de ajuda prática para além do painel gratuito? A YSK Limited pode ajudar com:",
    "yskSvc1": "Instalação, endurecimento e operação contínua do servidor",
    "yskSvc2": "Desenho da stack de alojamento (web, correio, DNS, bases de dados)",
    "yskSvc3": "Migração, automatização e integração à medida",
    "yskSvc4": "Resposta a incidentes e revisões de prontidão de produção",
    "yskNoPrice": "Não há preços aqui — contacte-nos para uma conversa adaptada ao seu ambiente.",
    "yskWebsite": "ysk.hk",
    "helpTitle": "Tem um problema?",
    "helpBody": "Envie-nos um e-mail com o SO, o caminho do registo de instalação e o que esperava vs o que aconteceu. Lemos todas as mensagens.",
    "docsHint": "A documentação completa está no repositório em",
    "donateLinktree": "Linktree",
    "cryptoTitle": "Cripto / identificadores Web3",
    "cryptoHint": "Envie apenas na rede correspondente. Confirme o endereço antes de enviar.",
    "cryptoNetwork": "Rede",
    "cryptoAddress": "Endereço",
    "copy": "Copiar",
    "copied": "Copiado",
    "copyTitle": "Copiar {{address}}",
    "docsLink": "Documentação",
    "diagTitle": "Resumo de diagnóstico",
    "diagBody": "Copie a versão, execute e hospede dados para colar em um e-mail. Este não é um pacote de log completo.",
    "diagCopy": "Copiar resumo de diagnóstico",
    "diagCopied": "Resumo de diagnóstico copiado",
    "diagCopyTitle": "Copiar versão, EXECUTE e dados do anfitrião",
    "diagPreview": "Pré-visualizar o que será copiado",
    "diagLoading": "Carregando diagnóstico…",
    "diagLoadFailed": "Não foi possível carregar o diagnóstico",
    "copiedAddr": "Copiado {{addr}}",
    "diagStatus": "Status",
    "diagMode": "Modo",
    "diagProtection": "Proteção",
    "diagHostname": "Nome do host",
    "diagOs": "OS"
  },
  "system": {
    "exportLoadFailed": "Falha ao carregar dados de exportação",
    "dryRunDone": "Teste completo (sistema inalterado)",
    "rebuildDone": "Solicitação de reconstrução concluída — veja o resultado das operações",
    "exportWritten": "Exportar conf escrito/gerenciado listado",
    "rebuildFailed": "Falha na reconstrução",
    "hostFallback": "Hospedar",
    "mem": "Memória",
    "diskPeak": "Pico do disco",
    "exportRebuild": "Exportar/Reconstruir",
    "dnsCerts": "DNS / certificados",
    "editIdentity": "Editar identidade",
    "power": "Poder",
    "metrics": "Métricas",
    "writeExports": "Escrever diretório de exportação",
    "dryRunSync": "Sincronização de teste",
    "hostConsole": "Console anfitrião",
    "loadingHost": "Carregando visão geral do host…",
    "identity": "Identidade",
    "identityReadonly": "Somente leitura – precisa de YSK_EXECUTE + root para aplicar",
    "identityTools": "Defina o nome do host e o fuso horário por meio das ferramentas do sistema",
    "hostnameHint": "Nome do host do sistema",
    "writable": "Gravável",
    "locked": "Bloqueado",
    "hostname": "Nome do host",
    "prettyName": "Nome bonito",
    "optional": "Opcional",
    "prettyPh": "Nome de exibição amigável",
    "timezone": "Fuso horário",
    "timezoneHint": "Escolha um fuso horário da IANA na lista (por exemplo, Ásia/Hong_Kong)",
    "timezoneNow": "Horário do anfitrião agora: {{time}} ({{tz}})",
    "timezoneBrowserDiff": "Este host usa {{host}}; seu navegador usa {{browser}}. Alterar o fuso horário aqui altera o relógio do host, não o navegador.",
    "timezoneSelect": "Selecione o fuso horário",
    "notExported": "Ainda não exportado",
    "dns": "DNS",
    "updated": "Atualizado",
    "applyIdentity": "Aplicar identidade",
    "identitySetHostname": "Nome do host definido como {{name}}",
    "identitySetPretty": "Nome de host bonito definido como {{name}}",
    "identityClearPretty": "Nome de host bastante limpo",
    "identitySetTimezone": "Fuso horário definido como {{tz}}",
    "panelSsl": "Painel SSL",
    "panelTls": {
      "title": "Painel HTTPS",
      "sub": "O plano de controle (ysk-server) atende TLS em listenPort; WebAuthn/chaves de acesso precisam de HTTPS",
      "domain": "Domínio do painel",
      "domainHint": "Usado para emissão/vinculação de certificado, por ex. demo.ysk.hk",
      "email": "Vamos criptografar e-mail",
      "status": "Status",
      "enabled": "TLS habilitado na configuração",
      "disabled": "TLS desativado (HTTP)",
      "serving": "Esta conexão: HTTPS",
      "servingHttp": "Esta conexão: HTTP",
      "expires": "O certificado expira",
      "certPath": "Caminho do certificado",
      "issueEnable": "Emitir certificado e ativar HTTPS",
      "enableExisting": "Habilitar com certificado existente",
      "disable": "Desativar painel HTTPS",
      "disableNeedConfirm": "Requer confirmação — escreva DISABLE-HTTPS",
      "needDomain": "Digite o nome do host/domínio primeiro",
      "needFqdn": "Precisa de um FQDN (exemplo.com), não de um nome de host simples",
      "urlHint": "Após reiniciar, abra {{url}}",
      "certMissing": "TLS ativado, mas faltam arquivos de certificado/chave",
      "restartToApply": "Reinicie o ysk-server para aplicar HTTPS",
      "noConfig": "config.json não encontrado (comece com --config)",
      "usingExisting": "Usando certificado local existente",
      "usingLe": "Usando o Let's Encrypt Live Paths",
      "needCertFirst": "Nenhum certificado para {{domain}}; emitir ou fazer upload primeiro",
      "configWritten": "Configurações TLS do painel escritas",
      "disabledNote": "Painel TLS desativado",
      "certAlreadyPresent": "Certificado já presente; reedição ignorada",
      "restartManual": "Reinicie manualmente: systemctl restart ysk-server",
      "restarted": "servidor ysk reiniciado",
      "restartFailed": "Falha na reinicialização: {{detail}}",
      "firewallHint": "Se estiver acessando pela Internet, permita a porta do painel (padrão 9287/tcp)",
      "restartNow": "Reinicie o ysk-server imediatamente após",
      "restartNowHint": "Encerra esta sessão;",
      "restartConfirm": "Reiniciar o serviço do painel agora? Esta conexão pode cair – reabra por HTTPS.",
      "manualRestart": "Reinicie manualmente e abra {{url}}",
      "reconnectHttps": "O serviço pode ter reiniciado. Reconecte em {{url}}.",
      "leStrategies": "Certificado do painel: tente webroot → nginx certonly → autônomo (sem --redirect)",
      "leOk": "Vamos criptografar o certificado obtido para {{domain}}",
      "leFailed": "Falha na solicitação de certificado: {{detail}}",
      "leHint": "Certifique-se de que o DNS A aponte aqui e que a porta 80 esteja acessível (ou o nginx sirva o domínio)",
      "openFirewall": "Se público: permitir porta do painel {{port}}/tcp (Firewall → porta aberta → Painel 9287)",
      "disableConfirmTitle": "Desativar painel HTTPS?",
      "disableConfirmDesc": "O painel servirá HTTP. WebAuthn/Passkey irá parar de funcionar até que o HTTPS seja ativado novamente.",
      "disablePasskeyWarn": "As chaves de acesso registradas precisam de HTTPS – elas falharão no HTTP.",
      "listenPublic": "O painel está escutando em um endereço público (0.0.0.0/::). Restrinja com um firewall ou vincule-se a 127.0.0.1.",
      "bootstrapCert": "Este é o certificado de inicialização autoassinado – os navegadores avisarão. Emita um certificado confiável para o domínio do painel.",
      "cliNoSocket": "CLI não possui soquete HTTP ativo; servindoHttps é inferido dos soquetes de configuração e escuta (ss).",
      "listenHost": "Endereço de escuta",
      "currentHost": "Esta sessão",
      "replaceCert": "Substitua por um certificado confiável"
    },
    "timeNtp": "Tempo e NTP",
    "clockStatus": "Status do relógio do sistema",
    "local": "Local",
    "utc": "UTC",
    "source": "Fonte",
    "ntpService": "Serviço NTP",
    "ntpServiceActive": "Correndo",
    "ntpServiceInactive": "Parou",
    "ntpServiceNa": "N / D",
    "ntpSync": "Sincronização do relógio",
    "ntpSyncedYes": "Sincronizado",
    "ntpSyncedNo": "Não sincronizado",
    "ntpSyncedUnknown": "Desconhecido",
    "ntpRequested": "Ativação de sincronização NTP solicitada",
    "ntpFailed": "Falha ao ativar o NTP",
    "enableNtp": "Habilitar sincronização NTP",
    "network": "Rede",
    "networkSub": "Somente leitura · netplan completo não está nesta página",
    "noIp": "Não foi possível ler IPs",
    "storage": "Armazenar",
    "metricsDetail": "Detalhe das métricas",
    "noDisk": "Não foi possível ler os discos",
    "avail": "Disponível {{v}}",
    "shortcuts": "Atalhos de operações",
    "shortcutsAria": "Atalhos de operações",
    "scServices": "Matriz de atendimento",
    "scServicesD": "ciclo de vida da unidade",
    "scUnit": "Unidade de plano de controle",
    "scUnitD": "Unidade de sistema de painel",
    "scReadiness": "Prontidão",
    "scReadinessD": "Portão de produção",
    "scUpdates": "Atualizações do sistema",
    "scUpdatesD": "Pacotes / CVE",
    "scMetrics": "Métricas de host",
    "scMetricsD": "Carregar alertas",
    "scLogs": "Centro de registro",
    "scLogsD": "diário / arquivos",
    "powerTitle": "Potência (zona de perigo)",
    "powerWarn": "A reinicialização/desligamento interrompe todos os serviços e o painel. O painel não consegue ligar o host — precisa de acesso físico ou hipervisor.",
    "unlocked": "Desbloqueado",
    "powerUnlock": "Desbloquear zona de perigo",
    "powerLock": "Bloquear zona de perigo",
    "noScheduledPower": "Nenhuma reinicialização ou desligamento está agendado",
    "powerCaps": "Precisa de YSK_EXECUTE=1 e root. Agora EXECUTE={{exec}}, root={{root}}.",
    "scheduledPower": "Desligamento/reinicialização programado detectado",
    "cancelScheduleHint": ". Use “Cancelar agendamento” para retirar.",
    "rebootHost": "Reinicialize o host…",
    "poweroffHost": "Desligue…",
    "cancelled": "Cancelado",
    "cancelFailed": "Falha no cancelamento",
    "cancelSchedule": "Cancelar agendamento",
    "confirmStrings": "Confirme com REBOOT / POWEROFF. Atraso padrão ~1 min para desligamento e reinicialização (desligamento +N). Escrito para auditoria.",
    "confirmReboot": "Confirmar reinicialização do host?",
    "confirmPoweroff": "Confirmar desligamento?",
    "confirmRebootDesc": "Todos os serviços e sessões do painel serão suspensos. Digite REBOOT para confirmar.",
    "confirmPoweroffDesc": "O host será desligado; o painel não pode ser ligado remotamente. Digite POWEROFF para confirmar.",
    "typeToUnlock": "Digite {{need}} para desbloquear",
    "confirmRebootBtn": "Confirmar reinicialização",
    "confirmPoweroffBtn": "Confirme o desligamento",
    "sentDisconnect": "Enviado – a conexão será interrompida",
    "powerFailed": "Falha na ação de energia",
    "exportExplain": "Exportar = painel de resumo do banco de dados JSON. Reconstruir = conf gerenciado → /etc/nginx/conf.d + recarregar. A sincronização precisa de root + EXECUTE.",
    "controlSummary": "Resumo do plano de controle",
    "controlSummarySub": "Instantâneo de banco de dados ao vivo · visualizar/baixar/gravar no servidor",
    "snapshotLoaded": "Resumo carregado · {{at}}",
    "previewSummary": "Resumo de visualização",
    "downloadedJson": "JSON baixado para o navegador",
    "downloadJson": "Baixar JSON",
    "snapshotMeta": "Gerado {{at}} · usuários {{users}} · pacotes {{packages}}",
    "previewHint": "Clique em “Visualizar resumo” para carregar o instantâneo do plano de controle.",
    "managedNotEtc": "dataDir/nginx/conf.d — diferente do aplicado em /etc",
    "nFiles": "{{count}} arquivos",
    "noManaged": "Nenhuma configuração gerenciada ainda",
    "noManagedDesc": "Aparece após a publicação do projeto Nginx",
    "readFailed": "Falha na leitura",
    "preview": "Visualização",
    "previewModalDesc": "Conteúdo conf gerenciado (dataDir)",
    "prevPage": "Anterior",
    "nextPage": "Próximo",
    "pageOf": "Página {{page}} / {{total}} · {{count}} arquivos",
    "managedPager": "Páginas de configuração gerenciadas",
    "syncToSystem": "Sincronizar com o sistema",
    "syncSub": "Copie para /etc/nginx/conf.d e recarregue - precisa de root + EXECUTE",
    "syncReload": "Sincronizar + recarregar",
    "syncReloadNeedConfirm": "Precisa de confirmação — escreve /etc/nginx/conf.d e recarrega o Nginx",
    "exportOnly": "Exportar apenas + lista conf",
    "dryRun": "Teste a seco",
    "dryRunNote": "O funcionamento a seco não altera o sistema.",
    "exportHistory": "Histórico de exportação do servidor",
    "exportHistorySub": "dataDir/exportações · download autenticado",
    "noExports": "Ainda não há arquivos de exportação do servidor",
    "noExportsDesc": "Clique em “Escrever diretório de exportação” para criar",
    "downloaded": "Baixado {{name}}",
    "download": "Download",
    "syncConfirmTitle": "Sincronizar o Nginx com o sistema?",
    "syncConfirmDesc": "Sincronize o conf gerenciado do Nginx com /etc/nginx/conf",
    "uptime": "Tempo de atividade",
    "load1m": "Carregar 1m",
    "executeLabel": "EXECUTE",
    "rootLabel": "Raiz",
    "managedLabel": "Gerenciou",
    "managedCount": "Gerenciou",
    "exportsCount": "Exportações",
    "managedNginxTitle": "Nginx gerenciado",
    "exportPath": "Caminho de exportação",
    "mode": "Modo",
    "managedConf": "Configuração gerenciada",
    "dryRunFlag": "Teste a seco",
    "timezoneSearch": "Filtrar fusos horários…",
    "resyncNtp": "Sincronizar novamente o NTP",
    "storageSub": "Uso de disco",
    "nginxLeftover": "Residual",
    "nginxUnused": "Não usado",
    "nginxLeftoverHint": "Conf residual (p.ex. public-files). Incluída na sincronização até agir.",
    "nginxUnusedHint": "Conf de origem / catch-all (000-default). Incluída na sincronização até agir.",
    "nginxRemoveLeftover": "Remova as sobras",
    "nginxRemoveLeftoverTitle": "Remover sobras do nginx conf?",
    "nginxRemoveLeftoverDesc": "Exclui {{name}} do inventário do painel. A cópia live /etc/nginx é removida apenas com YSK_EXECUTE + root. 000-default não sobra e não pode ser excluído aqui.",
    "needExecuteRoot": "Precisa de YSK_EXECUTE + root"
  },
  "systemd": {
    "enabled": "Habilitado",
    "disabled": "Desabilitado",
    "notInstalled": "Não instalado",
    "running": "Correndo",
    "notRunning": "Não está em execução",
    "failed": "Fracassado",
    "activating": "Ativando",
    "unitMissing": "Unidade ausente",
    "loadFailed": "Falha ao carregar",
    "opFailed": "Falha na operação",
    "installedEnabled": "Instalei e tentei ativar",
    "unitTemplateWritten": "Modelo de unidade escrito",
    "writeTemplate": "Escrever modelo de diretório de gerenciamento",
    "writeTemplateDesc": "Cria ysk-server.service em dataDir/systemd (não altera /etc)",
    "templateExists": "O modelo de gerenciamento já existe",
    "installEnable": "Instale em /etc/systemd e ative",
    "installEnableDesc": "Copiar unidade → daemon-reload → habilitar --now",
    "needExecuteRoot": "Precisa de YSK_EXECUTE e root",
    "serviceNotRunning": "Serviço não está funcionando",
    "serviceNotRunningHint": "A unidade pode estar instalada, mas inativa - tente Instalar e ativar ou a matriz de serviços",
    "controlRunning": "Serviço de plano de controle em execução",
    "unlockApply": "Desbloquear capacidade de aplicação do sistema",
    "startAsRoot": "Comece como root com YSK_EXECUTE=1",
    "status": "Status",
    "bootEnabled": "Comece na inicialização",
    "on": "Sobre",
    "off": "Desligado",
    "yes": "Sim",
    "no": "Não",
    "canInstall": "Instalável",
    "copyEnable": "Copie para /etc/systemd e habilite --now",
    "needExecuteRootShort": "Precisa de EXECUTE + root",
    "probing": "Verificando o status do systemd…",
    "suggestedSteps": "Etapas sugeridas",
    "install": "Instalar",
    "policy": "Política",
    "about": "Sobre",
    "exists": "Existe",
    "missing": "Ausente",
    "notWritten": "Ainda não foi escrito",
    "related": "Relacionado",
    "opsResult": "Resultado das operações",
    "writeTemplateOnly": "Escrever apenas modelo",
    "installAndEnable": "Instalar e ativar",
    "stepReport": "Relatório de etapas",
    "installEnableShort": "Instalar ativar",
    "cannotInstall": "Ainda não é possível instalar no sistema: necessidades",
    "andRoot": "e raiz. O modelo de gravação ainda cria arquivos de gerenciamento. Ver",
    "probeDetail": "Detalhe da sonda",
    "probeDetailSub": "Estado do systemd ativo e arquivos de unidade no disco",
    "unit": "Unidade",
    "manageTemplate": "Modelo de gerenciamento",
    "installOps": "Instalar ações",
    "twoModes": "Dois modos para necessidades diferentes – escolha por ambiente",
    "writeOnlyTitle": "Escrever apenas modelo",
    "writeOnlyBody": "Cria o arquivo de unidade management-dir. Bom para revisão ou preparação sem root.",
    "willNotEnable": "Não habilita o serviço.",
    "writeTemplateBtn": "Modelo de gravação",
    "installEnableTitle": "Instalar e ativar",
    "installEnableBody": "Copie para /etc/systemd/system, daemon-reload, habilite --now. Precisa de root + EXECUTE.",
    "policyWrite": "Gravar apenas modelo - apenas dataDir, não /etc",
    "policyInstall": "Instalar e habilitar – cp + daemon-reload + enable",
    "policyBlocked": "Sem EXECUTE ou não root → claramente bloqueado, sem sucesso falso",
    "policyNotEqual": "Modelo de gravação ≠ serviço habilitado ≠ escuta",
    "shortcutPower": "EXECUTAR / poder",
    "shortcutOther": "Outras unidades",
    "cannotInstallFull": "Ainda não é possível instalar no sistema: precisa de YSK_EXECUTE=1 e root. O modelo de gravação ainda cria arquivos de gerenciamento. Ver",
    "policyWriteFull": "Gravar apenas modelo - apenas dataDir, não /etc",
    "policyNotEqualFull": "Modelo de gravação ≠ serviço habilitado ≠ escuta",
    "controlPlaneUnit": "Unidade de plano de controle",
    "kpiRuntime": "Tempo de execução",
    "rawStateHint": "Estado bruto da unidade na dica de ferramenta",
    "bootHint": "Se a unidade inicia na inicialização",
    "kpiBoot": "Habilitação de inicialização",
    "kpiCaps": "Aplicar capacidade",
    "capsReady": "Pode instalar no sistema",
    "capsBlocked": "Não é possível aplicar",
    "unitFiles": "Arquivos de unidade",
    "unitFilesSub": "Caminho do sistema versus modelo gerenciado por painel (funções diferentes)",
    "systemUnitFile": "Unidade do sistema (/etc)",
    "systemUnitHint": "Cargas do sistema unitário; aparece após instalar e ativar.",
    "managedUnitFile": "Modelo gerenciado (dataDir)",
    "managedUnitHint": "Modelo escrito em painel — não é o mesmo instalado em /etc.",
    "managedPathHint": "dataDir/systemd/ysk-server.service",
    "fragmentPath": "Caminho do fragmento",
    "fromSystemd": "Do sistema",
    "pid": "PID {{pid}}",
    "nextAction": "Próxima etapa sugerida",
    "controlRunningHint": "systemctl está-ativo = ativo",
    "aboutPolicyTitle": "Aplicar política",
    "aboutPolicySub": "A gravação do modelo e a instalação do sistema são etapas separadas. A nova execução após a instalação é uma operação normal, não uma etapa perdida.",
    "policyInstallFull": "Instale e habilite: copie para /etc/systemd/system, daemon-reload, habilite --now. Precisa de root + EXECUTE.",
    "policyBlockedTitle": "Bloqueado sem privilégio",
    "policyNotEqualTitle": "Estados não são equivalentes"
  },
  "tabs": {
    "scrollLeft": "Rolar as guias para a esquerda",
    "scrollRight": "Rolar as guias para a direita",
    "about": "Sobre",
    "main": "Ações",
    "stack": "Programas",
    "unknown": "Não existe essa guia",
    "unknownHint": "Esta página não possui nenhuma guia chamada {{tab}}."
  },
  "terminal": {
    "tabSession": "Sessão",
    "target": "Faça login como",
    "connect": "Conectar",
    "disconnect": "Desconectar",
    "user": "Usuário",
    "size": "Tamanho",
    "stateConnected": "Conectado",
    "stateConnecting": "Conectando",
    "stateIdle": "Parado",
    "connecting": "Sessão de abertura…",
    "connectedAs": "Logado como {{user}}",
    "disconnected": "Desconectado",
    "error": "Erro de terminal",
    "wsError": "Falha no WebSocket",
    "exitCode": "Código de saída {{code}}",
    "needRootExecute": "Requer root + YSK_EXECUTE=1 para shells do sistema.",
    "groupSystem": "Sistema",
    "groupProject": "Projeto",
    "unavailable": "indisponível",
    "copyAll": "Copiar tudo",
    "copyAllNeedConn": "Conecte primeiro – o buffer fica vazio enquanto desconectado",
    "placeholder": "Escolha uma identidade e conecte-se",
    "aboutTitle": "Sobre o terminal",
    "aboutSub": "Shell interativo do sistema operacional no navegador (usuários locais). Não é um cliente SSH remoto arbitrário.",
    "aboutWhat": "O que é isso",
    "aboutWhatBody": "Shell de login PTY real (bash -l). Usuários do projeto via runuser; raiz através do shell raiz.",
    "aboutReq": "Requisitos",
    "aboutReqBody": "O plano de controle deve ser executado como root com YSK_EXECUTE habilitado.",
    "aboutUsers": "Identidades",
    "aboutUsersBody": "Usuários do projeto Linux root ou provisionado pelo sistema operacional.",
    "stepUpRequired": "O shell raiz precisa de um código TOTP/recuperação",
    "stepUpHint": "O login root requer aumento de 2FA quando sua conta tem TOTP ativado.",
    "stepUpTitle": "Confirme o shell raiz",
    "stepUpDesc": "Digite seu código autenticador ou um código de recuperação.",
    "totpLabel": "TOTP/código de recuperação",
    "sessionStillOpen": "Um live shell ainda está conectado enquanto você lê esta página.",
    "rootConfirmTitle": "Abrir um shell de root?",
    "rootConfirmDesc": "Esta sessão é um PTY raiz irrestrito no host. Os comandos são auditados.",
    "rootConfirmBody": "Continue apenas se pretender executar comandos de host privilegiados."
  },
  "uiInline": {
    "s27d9daa5": "tempo de execução {{v0}} {{v1}}，",
    "sb8eaefa3": "tempo de execução {{v0}}，",
    "s7d540128": "· {{v0}}",
    "s814bcc7c": "· {{v0}}",
    "s3f7c3eae": "Atualizar",
    "s92e48065": "Pular",
    "sdff0f697": "Assistir",
    "s012f2d7e": "Atualizar",
    "s20455064": "…",
    "s9b34f8c3": "…",
    "s8e3824cb": "Atualização 0/{{v0}}：…",
    "sc2570ff7": "Atualização {{v0}}/{{v1}}：{{v2}}",
    "s0bd0c471": "： {{v0}}，Falha {{v1}}",
    "s2980553a": "…",
    "s303ee0f7": "Cancelar…()",
    "s21858fe5": "Cancelar",
    "sddc05404": "Fechar",
    "saf251c2a": "Atualizar()",
    "s5929623c": "…",
    "s18b08919": "…",
    "se2b088fc": "Atualizar ({{v0}})",
    "sb2848bc7": "Atualizar?",
    "sc1910cf2": "{{v0}} 。 root EXECUTE。",
    "sc13bb38c": "／；。",
    "sea4ba90a": "Carregado",
    "sdd78429a": "Escrito",
    "s9b6c1b03": "Sobre",
    "s858f4eca": "…",
    "s090aa1a7": "Gerenciar。 Projetos Nginx → → 。",
    "sac96ec39": "O painel registrou a instalação {{v0}}, mas a análise do host não encontrou nenhum binário. Não instalado – teste novamente ou reinstale.",
    "sf7f7807b": "Padrão",
    "sc9530028": "Mais recente,",
    "s9602769e": "Instalado {{v0}} · upstream mais recente {{v1}}",
    "sb8b5a353": "Go／Rust ：「Instalar」，「Padrão」 PATH。",
    "sac155c20": "Extensões não essenciais removíveis (apt remove; mantém FPM/CLI)",
    "s23379974": "「Instalar」。, tempo de execução。",
    "s7b6d4414": "PHP não instalado {{v0}}：「Instalar PHP {{v0}}」+（Instalar）。",
    "s2e9a1b03": "Instale o PHP {{v0}}（）",
    "s62b73dd7": "…",
    "se23513e5": "PHP？",
    "sf8c8ff4b": "Provavelmente removerá \"{{v0}}\". O Core FPM/CLI não será removido.",
    "s7aa09150": "Instalado",
    "sbcbdbc49": "Não instalado",
    "sae7738d0": "Correndo",
    "sf3af7c5e": "Não detectado",
    "sa1d77833": "Fracassado",
    "s75dddf52": "Parou",
    "s4e7f6152": "Atualizar… {{v0}}/{{v1}}：{{v2}}",
    "s72cac69e": "{{v0}}: {{v1}}",
    "sd1c15b6d": "{{v0}}: {{v1}}",
    "s7a90f74c": "Atualização:{{v0}}",
    "s0aa24093": "{{v0}} Atualização",
    "s5d92ffc3": "：{{v0}}；Falha：{{v1}}",
    "sa15a291f": "Atualização falhou",
    "sbb823c06": "Fracassado",
    "s68db1348": "{{v0}} Falha na atualização",
    "s84a4e7c6": "Instalar:{{v0}}…",
    "s2ca8a4f5": "raiz + EXECUTAR;。",
    "sd9419dc9": "Instalar (raiz + EXECUTAR)",
    "s3ec3d449": "{{v0}} Instalar",
    "sbb8dfdeb": "Instalar:{{v0}}",
    "s18bb4b62": "{{v0}} Instalar／",
    "se9a47def": "Instalar",
    "sdc0528a2": "{{v0}} Falha na instalação",
    "s69e60fb5": "Sem meta de atualização",
    "s3f50fa6e": "Instalar／Atualizar {{v0}} {{v1}}…（）",
    "s1f5eef17": "Mostrar servidor,Fechar。",
    "s2bf6b642": "Atualização（ raiz YSK_EXECUTE=1）",
    "s9b4a58e8": "{{v0}} {{v1}} Instalar",
    "s6dc82720": "Instalado／Atualização {{v0}} {{v1}}",
    "s94a1f025": ".Mostrar,.",
    "s73cae5a0": "{{v0}} {{v1}} Falha na instalação",
    "se1050a28": "Visão geral",
    "s8c29cb38": "…",
    "s583f0654": "…",
    "s4344c486": "…",
    "sed2550e1": "…",
    "scb435db5": "Serviço",
    "s97bbc1b7": "…",
    "s60a23151": "Gerenciar：Instalar、Serviço、；Gerenciar。",
    "s5387b55b": "…",
    "s0b582c70": "…",
    "s4be2a3a4": "Instalado",
    "s259e6f0e": "／",
    "s13b3f970": "Precisa de atenção",
    "sdd33adf9": "…",
    "sdfaaf946": ";Atualizar.",
    "s78f03e20": "{{v0}}",
    "sbf368054": "{{v0}}",
    "s235a7426": "Atualizar",
    "s14249f75": "Rápido",
    "saff76d0a": "Serviço",
    "s24f12f4f": "Atualizar／Instalar",
    "s43a9fd7a": "：Upstream／；Serviço：。Atualização。",
    "sc45743bd": "…",
    "s00338fde": "Atualizar?",
    "s0e05f4b7": "Atualizar",
    "s4d0b4688": "Cancelar",
    "s92b8bf67": "Instalar?",
    "s9af27043": "Instale {{v0}}：{{v1}}。 root YSK_EXECUTE=1。",
    "s28263d85": "Instalar",
    "s2e37cbfa": "Instalado:{{v0}}",
    "s7d52bb0c": "Padrão {{v0}}",
    "s9f898b85": "Rio acima {{v0}}",
    "s93dde991": "{{v0}} → {{v1}}",
    "s9071dcb7": "Instalado {{v0}} · repositório é o mais recente",
    "s0b09f444": "{{v0}}",
    "sf6cc774f": "Não instalado（ManageInstall）",
    "s42f9c88b": "{{v0}}",
    "sb72e8ebc": "Verificando versões… ou abrindo a página de gerenciamento",
    "sabac942e": "Abra a página de gerenciamento para instalar ou configurar",
    "sbd26894e": "Atualização disponível",
    "s5985ee9a": "Atualizado",
    "s090e6a43": "Escolha a versão",
    "s8253535d": "Instalar／Atualizar {{v0}}",
    "s1723f1d7": "Instalar……",
    "sd9db02d0": "Atualizar",
    "sba60558e": "Atualização {{v0}}",
    "s706de938": "Atualização {{v0}}",
    "s0f9ddc70": "Instalar {{v0}}",
    "sef864639": "Instalar",
    "s59f613d5": "Instalar／ {{v0}}",
    "s78b1688f": "Atualização {{v0}}",
    "s4989b5cf": "Gerenciar",
    "s72203f17": "Serviço",
    "s75817a35": ", tempo de execução",
    "s6d449473": "…",
    "s777e90e0": "Gerenciar",
    "sd8bc8ab3": "Nome:{{name}}",
    "s09877be5": "Gerenciar",
    "sd95910ce": "…",
    "sa72ef18d": "Ferramentas",
    "s4b2bec80": "Nome",
    "sd00c0d39": "PHP;Nome",
    "sd7c669ac": "phpMyAdmin（）",
    "s9e5d3a97": "： {{v0}}，Falha {{v1}}",
    "s1f0a4bf9": "Cancelar()",
    "s7193f51b": "： {{v0}}，Falha 0",
    "sd93b8620": "{{v0}} Ferramentas",
    "sd0ef129c": "({{v0}})",
    "se6d47d0b": "Ferramentas",
    "se6436711": "Ferramentas de instalação ({{v0}})",
    "s1a27a3c4": "Ferramentas「Instalar tempo de execução」Instalar（Instalar）。",
    "s32add03e": "{{v0}} Ferramentas。",
    "s3bca33b2": "Ferramentas",
    "s8072fa0d": "{{v0}} Instalar（Padrão）",
    "s2bf2b4c4": "InstallDefault。「Padrão」；Instalar。",
    "s42f3d613": "Padrão {{v0}}",
    "sdcdc5029": "Ativação incompleta",
    "s55cc91e0": "Publicação Nginx,。",
    "s303f6113": "Tentar implantar novamente",
    "s3265f9ed": "Publicar Nginx",
    "s99cc48c1": "{{v0}} ；「— —」。",
    "sa87ceeff": "Publicar Nginx",
    "s38a63bcb": "Porta fixa（）",
    "s5ac95c29": "Não publicado",
    "sc8f34a0d": "Escrito（recarregar）",
    "s07fb5671": "Implante primeiro",
    "sa5f994e3": "Falha na publicação",
    "s32dd17d9": "SSL 。「SSL 」／，Publicar + SSL。",
    "s5516cb5b": "Estado do site",
    "sed38f4ea": "A montante",
    "sadb6ef47": "Porta de processo",
    "se7a422dd": "Porta fixa",
    "s2eff57b7": "Porta de processo",
    "s110671e6": "Porta atual",
    "s549ea65e": "Publicar",
    "s9dc5c003": "Básico",
    "s04a32a1e": "SSL:",
    "s564d50b7": "／Publicar + SSL。",
    "sbb6c72f1": "({{v0}})",
    "sd9b695a5": "，Publicar Nginx / SSL。",
    "scb85cfff": "SSL",
    "s18c1af46": "Publicar + SSL",
    "s6a284cb0": "Publicar Nginx + SSL",
    "s85483ffb": "Manutenção",
    "s6993c6ba": "Esconder",
    "s15671929": "Mostrar",
    "s56f99a6b": "Excluir projeto permanentemente",
    "sa0f2f5c6": "「{{v0}}」。。",
    "sa6710b42": "Excluir permanentemente",
    "s06569331": "sistemad/PM2/",
    "sd20a5b0c": "Nginx conf, pool PHP-FPM, Apache vhost（）",
    "s4ff53acc": "Página inicial do Linux (）",
    "s50dda2df": "Linux doméstico (（）",
    "sa7f90a4a": "…",
    "se0d24557": "Nome",
    "s9a9e4e32": "casa Linux",
    "s1cf2a97b": "Cancelar,",
    "s51af87fd": "Nome",
    "s8b04d62f": "「{{v0}}」",
    "s49d55c8f": "Zona / domínio DNS.",
    "s239f6551": "：{{v0}}",
    "sa00380bd": "：{{v0}}",
    "sb4e3bb0b": "Instalar",
    "sae926193": "…",
    "s52573ef8": "Atualizar (raiz + EXECUTAR)",
    "s872d2fe0": "{{v0}} Atualização",
    "s6a93c0ec": "Carregando versões…",
    "s378e49b6": "Instalado",
    "s7e805a12": "Mais recente",
    "s74b39712": "Atualizado/repo mais recente",
    "s03a87d5d": "Verifique novamente o mais recente",
    "s53c07a48": "Atualização {{v0}}",
    "s425e8381": "Instalar {{v0}}",
    "s5bd1242f": "{{v0}}：{{v1}} → {{v2}}。 root EXECUTE。",
    "s296817b1": "Instalar()",
    "s3568a3da": "…",
    "s28256229": "Finalizado",
    "s3971290f": "servidor…"
  },
  "updates": {
    "title": "Atualizações inteligentes",
    "body": "",
    "risk": {
      "critical": "Crítico",
      "high": "Alto",
      "medium": "Médio",
      "low": "Baixo"
    },
    "justNow": "Agora mesmo",
    "secAgo": "{{n}}s atrás",
    "minAgo": "{{n}}m atrás",
    "hourAgo": "{{n}}h atrás",
    "highRiskN": "{{count}} alto risco",
    "panelUpdate": "Atualização do painel disponível",
    "footerNewVersion": "Nova versão {{version}}",
    "riskOk": "Risco gerenciável",
    "riskUnevaluated": "Não avaliado — execute Scan + OSV",
    "pendingScan": "Aguardando verificação",
    "packages": "Pacotes",
    "highRisk": "Alto risco",
    "needApproval": "Precisa de aprovação",
    "hasCve": "Tem CVE",
    "panel": "Painel",
    "schedule": "Agendar",
    "reload": "Recarregar",
    "osvTitle": "Consulte o OSV para obter os 12 principais pacotes sugeridos (precisa de rede)",
    "scanOsv": "Digitalizar + OSV",
    "cveNotChecked": "Não verificado",
    "scanPkgs": "Digitalizar pacotes",
    "tabInventory": "Inventário de pacotes",
    "tabSelf": "Painel próprio",
    "badgeUpdate": "Atualizar",
    "tabSchedule": "Agendar",
    "tabPolicy": "Política",
    "scanning": "Digitalizando…",
    "inventoryTitle": "Inventário de pacotes",
    "inventoryDesc": "Exibindo {{shown}} / {{total}} · inventariado {{when}}",
    "riskFilterAria": "Filtro de risco",
    "all": "Todos",
    "upgradable": "Atualizável",
    "mediumFilter": "Médio",
    "lowUnmarked": "Baixo / não marcado",
    "searchPh": "Pacote / aconselhamento / CVE…",
    "searchAria": "Pesquisar pacotes",
    "colPackage": "Pacote",
    "colVersion": "Versão (instalada → apt Candidate)",
    "installedTitle": "Instalado",
    "noUpgrade": "(nenhuma atualização disponível)",
    "colAdvice": "Conselho",
    "upgradeTo": "Atualize para {{v}}",
    "sameVersion": "apt Candidate corresponde à versão instalada",
    "noNeedUpgrade": "Nenhuma atualização necessária",
    "emptyInventory": "Ainda não há dados do pacote",
    "emptyInventoryDesc": "Use “Pacotes de verificação” no cabeçalho da página para inventariar este host",
    "emptyFilter": "Nenhum pacote corresponde aos filtros",
    "emptyFilterDesc": "Altere os filtros de risco ou limpe a pesquisa",
    "resetFilters": "Redefinir filtros",
    "selfLoading": "Carregando status de atualização automática…",
    "selfTitle": "Autoatualização do painel",
    "selfCheckFailed": "Falha na verificação",
    "selfUpToDate": "Atualizado",
    "selfAvailable": "Atualização disponível",
    "selfCurrent": "Versão atual",
    "selfLatest": "Versão mais recente",
    "selfChannel": "Canal",
    "checkSelf": "Verifique se há atualizações",
    "applySelf": "Aplicar autoatualização",
    "scheduleTitle": "Programação de verificação automática",
    "scheduleDesc": "Inventário periódico; não atualiza automaticamente",
    "enabled": "Habilitado",
    "disabled": "Desabilitado",
    "cron": "Expressão Cron",
    "saveSchedule": "Salvar programação",
    "policyTitle": "Atualizar política",
    "policyBody": "Pacotes de alto risco e CVE exigem aprovação antes de serem aplicados",
    "applyPkg": "Aplicar atualização de pacote",
    "rebootNeeded": "reinício",
    "kernelRebootHint": "Os pacotes do kernel precisam ser reinicializados após a aplicação",
    "applyPkgConfirm": "Atualizar {{name}}?",
    "applyPkgDesc": "Executa apt upgrade para este pacote no host. Precisa de root + YSK_EXECUTE.",
    "lastScan": "Última verificação",
    "never": "Nunca",
    "cve": "CVE",
    "riskCol": "Risco",
    "selfUpdatable": "Atualizável",
    "selfCurrentShort": "Atual",
    "selfLatestShort": "Mais recente",
    "applyPanelUpdate": "Aplicar atualização do painel",
    "applySelfConfirmTitle": "Aplicar atualização do painel?",
    "applySelfConfirmDesc": "Instale {{from}} → {{to}} e reinicie o serviço do painel. Não há ensaio.",
    "applyPanelAlreadyLatest": "Já é a versão mais recente do painel",
    "recheck": "Verifique novamente",
    "aboutScope": "Escopo",
    "aboutScopeV": "painel ysk-server + serviços de catálogo + tempos de execução + pacotes apt restantes",
    "aboutChannel": "Canal",
    "aboutChannelV": "pacote npm ysk-server → versão do GitHub → apps/server/package.json; aplique: npm i -g ysk-server@versão ou git (YSK_SOURCE_ROOT)",
    "aboutFail": "Falhas",
    "aboutFailV": "Os canais indisponíveis não são reportados como atualizados; aplicar necessidades EXECUTAR; git apply precisa reiniciar o serviço",
    "jobsTitle": "Trabalhos agendados",
    "jobsSub": "Agendador de plano de controle (somente leitura) · {{count}}",
    "noJobs": "Nenhuma programação visível",
    "noJobsDesc": "Jobs do agendador desativados ou ainda sem tarefas",
    "lastRun": "· último {{when}}",
    "scanPolicy": "Digitalizar",
    "scanPolicyV": "Digitalizar ≠ atualizado; aplicar alterações no sistema",
    "highRiskPolicy": "Alto risco",
    "highRiskPolicyV": "Precisa de aprovação: segunda confirmação antes de enviar",
    "needApprovalHint": "Abra Disponível e filtre os pacotes que precisam de aprovação",
    "applyNeedConfirm": "Abre uma caixa de diálogo de confirmação antes de aplicar",
    "probeFailed": "Falha na investigação",
    "notViaApt": "Não gerenciado pelo apt — nenhum candidato",
    "noCandidate": "Nenhuma versão candidata",
    "cveLabel": "CVE",
    "jobOpenGeo": "Página GeoIP",
    "job": {
      "protection_probe": {
        "name": "Sonda de proteção",
        "hint": "Sinais de defesa periódicos"
      },
      "updates_scan": {
        "name": "Verificação de atualizações",
        "hint": "Atualizar inventário de pacotes"
      },
      "daily_backup": {
        "name": "Backup diário",
        "hint": "Backup agendado de todos"
      },
      "db_temp_expire": {
        "name": "Expirar usuários temporários do banco de dados",
        "hint": "Eliminar usuários de banco de dados temporário expirados"
      },
      "defense_auto_ban": {
        "name": "Banimento automático de defesa",
        "hint": "Aplicar tick de banimento automático"
      },
      "defense_geoip_update": {
        "name": "Atualização GeoIP",
        "hint": "Baixe bancos de dados GeoIP"
      },
      "log_auto_vacuum": {
        "name": "Vácuo de toras",
        "hint": "retenção de diário"
      },
      "email_dnsbl": {
        "name": "E-mail DNSBL",
        "hint": "Verificação DNSBL de correio"
      },
      "validators_upgrade_scan": {
        "name": "Verificação de atualização de validadores",
        "hint": "Verifique a imagem do validador/atualizações binárias"
      }
    },
    "permPolicy": "Permissões",
    "permPolicyV": "Sem EXECUTE/root → bloqueado (sem sucesso falso)",
    "osvPolicyV": "Precisa de rede; enriquece apenas as 12 principais sugestões",
    "relatedAria": "Relacionado",
    "scHost": "Configurações do host",
    "scReadiness": "Prontidão",
    "scReadinessD": "Portão de produção",
    "scSystemd": "unidade do sistema",
    "scSystemdD": "Serviço de plano de controle",
    "scSecurity": "Central de segurança",
    "scSecurityD": "Aprovação/ferramentas",
    "applyHighRisk": "Aplicar atualização de alto risco {{name}}?",
    "highRiskUpdate": "Atualização de alto risco",
    "remoteUnknown": "Remoto desconhecido",
    "hasUpdate": "Atualização disponível",
    "scanned": "Pacote(s) {{count}} digitalizados",
    "scannedWithOsv": "Pacote(s) {{count}} digitalizados (com OSV)",
    "realUpgradeable": "{{count}} verdadeiramente atualizável",
    "panelCheckFailed": "Falha na verificação da versão do painel",
    "applyIncomplete": "Candidatura incompleta",
    "appliedPackage": "Atualização de pacote aplicada",
    "updateFailed": "Falha na atualização",
    "updateIncomplete": "Atualização incompleta",
    "appliedUpdate": "Atualização aplicada",
    "panelRestarting": "O painel está a reiniciar para carregar a nova versão…",
    "panelRestarted": "Painel de volta · {{version}}",
    "panelRestartWait": "Atualização aplicada. Se esta página não atualizar, recarregue após alguns segundos.",
    "reloadUi": "Recarregar IU",
    "reloadUiTitle": "Recarregar a IU do painel?",
    "reloadUiDesc": "O serviço do painel é {{version}}. Esta guia ainda possui o frontend anterior até você recarregar. Os campos não salvos nesta página serão perdidos.",
    "aptCandidate": "Candidato apto",
    "advice": {
      "update": "Atualização recomendada",
      "skip": "Pular",
      "watch": "Assistir",
      "urgent": "Atualização urgente"
    },
    "selectCol": "Selecione",
    "selectAllUpgradable": "Selecione todos atualizáveis",
    "clearSelection": "Limpar seleção",
    "updateSelected": "Atualização selecionada ({{n}})",
    "batchConfirmTitle": "Confirmar atualização do pacote em massa?",
    "batchConfirmBody": "Atualizará o(s) pacote(s) {{n}} em ordem. Requer root e EXECUTE.",
    "batchConfirmHighRisk": "A seleção inclui pacotes de alto risco/aprovação; Eu revisei e aprovei a inscrição.",
    "batchProgress": "Atualização em massa {{n}}/{{total}}: {{pkg}}",
    "batchDone": "Massa concluída: {{ok}} ok, {{fail}} falhou",
    "batchPartialFail": "Alguns falharam: {{list}}",
    "batchEmpty": "Selecione os pacotes atualizáveis ​​primeiro",
    "batchNoneUpgradable": "Nenhum pacote atualizável no filtro atual",
    "batchCancel": "Cancelar em massa",
    "batchCancelling": "Cancelando… (para após o pacote atual)",
    "batchCancelled": "Cancelado (restante ignorado)",
    "batchRescanned": "Estado do pacote host verificado novamente",
    "applyLogTitle": "Atualizar()",
    "navBadgeTitle": "Atualizações pendentes: {{n}}",
    "aboutPolicySub": "Digitalizar, aplicar, privilegiar e limites OSV. Digitalizar não é o mesmo que atualizar.",
    "tabOverview": "Visão geral",
    "overviewHint": "O servidor verifica os pacotes de acordo com uma programação. Instale o software em cada página de recursos; esta página apenas verifica e aplica atualizações.",
    "overviewStale": "Os dados de digitalização estão desatualizados. Execute uma verificação ou aguarde a próxima verificação automática.",
    "nextScan": "Próxima verificação",
    "autoScan": "Verificação automática",
    "autoScanEnable": "Habilitar verificação automática de pacotes",
    "scanInterval": "Intervalo de verificação",
    "interval6h": "A cada 6 horas",
    "interval12h": "A cada 12 horas",
    "interval24h": "A cada 24 horas",
    "interval48h": "A cada 48 horas",
    "scheduleSaved": "Programação de verificação salva",
    "scanNow": "Digitalize agora",
    "viewUpgradable": "Ver atualizável",
    "installElsewhere": "Para instalar pacotes (Nginx, PHP, bancos de dados…), abra a página de recursos correspondente – não este hub.",
    "status": "Status",
    "groupService": "Serviços",
    "groupRuntime": "Tempos de execução",
    "groupOs": "Pacotes de sistema",
    "notInstalled": "Não instalado",
    "goToPage": "Abrir página",
    "hubHint": "Catalogue software e tempos de execução neste host. Digitalize para atualizar.",
    "intervalDay": "diariamente",
    "intervalDays": "a cada {{n}} dias",
    "intervalHour": "a cada hora",
    "intervalHours": "a cada {{n}} horas",
    "intervalMinutes": "a cada {{n}} minutos",
    "intervalSeconds": "a cada {{n}} segundos",
    "availableHint": "Pacotes com um candidato mais recente do gerenciador de pacotes.",
    "servicesHint": "Serviços de catálogo neste host. Abra a página do serviço para instalar.",
    "runtimeHint": "Tempos de execução neste host. As atualizações de versão são feitas em cada página de tempo de execução.",
    "needsReboot": "Reinicialização necessária",
    "kernelRebootWarn": "A instalação de um novo kernel geralmente precisa ser reinicializada antes de ser usado.",
    "neverRun": "ainda não executou",
    "scanOsvN": "Digitalizar + OSV (primeiro {{n}})"
  },
  "users": {
    "userCount": "{{count}} usuários",
    "users": "Usuários",
    "packages": "Pacotes",
    "suspended": "Suspenso",
    "securityCenter": "Central de segurança",
    "singleAdminNo2fa": "Este host tem um único administrador e o 2FA está desativado – habilite o 2FA e adicione um administrador de backup.",
    "enableAdmin2fa": "Habilitar 2FA de administrador",
    "addBackupAdmin": "Adicione um administrador de backup",
    "loading": "Carregando usuários e pacotes…",
    "userList": "Usuários ({{count}})",
    "userListDesc": "Abra detalhes para editar função, senha, pacote, substituições",
    "createUser": "Criar usuário",
    "operatorHighRiskHint": "O operador de fábrica inclui escritas de alto risco. Estreitá-lo só afeta contas novas; alterar o predefinido afeta operadores existentes.",
    "createUserPlus": "+ Criar usuário",
    "searchPh": "Nome de usuário/função/pacote",
    "searchPkgPh": "Nome do pacote",
    "searchUsersAria": "Pesquisar usuários",
    "user": "Usuário",
    "roles": "Funções",
    "package": "Pacote",
    "packageAria": "{{name}} pacote",
    "noneOption": "- nenhum -",
    "resume": "Retomar",
    "suspend": "Suspender",
    "impersonate": "Personificar",
    "impersonateHint": "Abre uma sessão como este usuário. Use o menu da conta para sair da representação.",
    "cannotDeleteSelf": "Não pode eliminar a conta com sessão iniciada",
    "cannotImpersonateSelf": "Você já está conectado como esta conta",
    "openDetail": "Detalhes",
    "edit": "Editar",
    "resetPassword": "Redefinir senha",
    "newPassword": "Nova Senha",
    "saveUser": "Salvar usuário",
    "userSaved": "Atualizado {{name}}",
    "filterAll": "Todos",
    "filterAdmin": "Administrador",
    "filterOperator": "Operador",
    "filterViewer": "Visualizador",
    "filterSuspended": "Suspenso",
    "filterNoPkg": "Nenhum pacote",
    "filter2faOff": "2FA desativado",
    "filterOverrides": "Tem substituições",
    "subscribers": "Assinantes",
    "subscribersN": "{{count}} usuários",
    "ftp": "FTP",
    "ssh": "SSH",
    "databases": "Bancos de dados",
    "bandwidth": "Largura de banda MiB",
    "notes": "Notas",
    "editPkg": "Editar pacote",
    "pkgUpdated": "Pacote atualizado {{name}}",
    "pkgList": "Pacotes ({{count}})",
    "pkgListDesc": "Editar cotas; excluir bloqueado enquanto os assinantes permanecem",
    "createPkg": "Criar pacote",
    "createPkgPlus": "+ Criar pacote",
    "mailboxes": "Caixas de correio",
    "diskMiB": "Disco MiB",
    "noPackages": "Ainda não há pacotes",
    "noPackagesHint": "Crie um plano na barra de ferramentas e vincule-o aos usuários.",
    "createUserDesc": "Senha mínima de 8 caracteres; edite a função e as permissões em detalhes posteriormente",
    "username": "Nome de usuário",
    "passwordHint": "Pelo menos 8 caracteres",
    "role": "Papel",
    "roleAria": "Função do usuário",
    "createPkgDesc": "Modelo de cota; vincular aos usuários mais tarde",
    "maxProjects": "Máximo de projetos",
    "diskQuota": "Disco MiB",
    "custom": "Personalizado",
    "createdUser": "Usuário criado {{name}}",
    "createdPkg": "Pacote criado {{name}}",
    "impersonateTitle": "Personificar {{name}}?",
    "deleteUserTitle": "Excluir {{name}}?",
    "deletePkgTitle": "Excluir pacote {{name}}?",
    "impersonateDesc": "Sua sessão atual será substituída (cerca de 2 horas).",
    "deleteUserDesc": "Isto não pode ser desfeito.",
    "deletePkgDesc": "A exclusão é recusada enquanto os usuários ainda usam este pacote.",
    "lastSeen": "Visto pela última vez",
    "neverSeen": "Nunca",
    "hostUsage": "Uso do host",
    "hostUsageHint": "Totais em toda a máquina (host), sem isolamento rígido por usuário",
    "hostTotalsBadge": "totais do anfitrião",
    "opsChecklist": "Lista de verificação de operações",
    "opsCheck1": "Dê Admin apenas para pessoas que precisam de privilégios; usar o Operador no dia a dia.",
    "opsCheck2": "Salvar após editar Permissões; a restauração com um clique retorna os padrões de fábrica.",
    "opsCheck3": "Não exclua pacotes com assinantes; cancele a atribuição primeiro.",
    "opsCheck4": "A restauração de backup é destrutiva – Admin por padrão; confirme antes de conceder ao Operador.",
    "detailDesc": "Conta, visualização de acesso e substituições avançadas",
    "tabAccount": "Conta",
    "tabAccess": "Acesso",
    "tabAdvanced": "Avançado",
    "rolePickHint": "Escolha a função certa; O administrador permanece totalmente aberto",
    "accountSection": "Configurações de Conta",
    "packageHint": "Modelo de pacote de hospedagem (opcional)",
    "resetPasswordOptional": "Deixe em branco para manter a senha",
    "accountStatus": "Status da conta",
    "suspendedHint": "Suspenso: não é possível fazer login",
    "activeHint": "Ativo: pode entrar e trabalhar",
    "accessHint": "Capacidades eficazes da política de função (rótulos legíveis)",
    "noCapsInBand": "Sem capacidades neste nível",
    "overridesHint": "Afeta apenas este usuário; os padrões de função permanecem inalterados",
    "adminNoOverrides": "Os usuários administradores estão sempre totalmente abertos; revogações pessoais não são aplicadas.",
    "grantsHint": "Recursos extras além do pacote de funções",
    "revokesHint": "Desative recursos herdados (não para Admin)",
    "searchCaps": "Capacidades de pesquisa…",
    "noCapMatch": "Sem capacidade de correspondência",
    "no2fa": "2FA desativado",
    "lastSeenValue": "Último ativo {{time}}",
    "roleName": {
      "admin": "Administrador",
      "operator": "Operador",
      "viewer": "Visualizador",
      "agent": "Agente"
    },
    "roleDesc": {
      "admin": "Controle total: usuários, permissões, operações destrutivas. Sempre totalmente aberto.",
      "operator": "Operações diárias: serviços, atualizações, DNS/SSL, sites.",
      "viewer": "Somente leitura: status, logs, listas — sem alterações.",
      "agent": "Agente de automação: gravações de baixo risco com limites de escopo."
    },
    "securityTitle": "Autenticação de dois fatores (este usuário)",
    "securityPerUserHint": "TOTP/Senha é por usuário",
    "securityStatusOn": "2FA ativado",
    "securityStatusOff": "2FA não definido",
    "securitySessions": "Sessões ativas",
    "securityClearTotp": "Forçar a limpeza do 2FA deste usuário",
    "securityClearTotpHint": "Requer intensificação",
    "securityClearConfirm": "Digite o nome de usuário para confirmar a limpeza 2FA",
    "securityClearOk": "Liberado 2FA para {{name}}",
    "securitySelfNote": "Para configurar seu próprio 2FA, abra Segurança → Minha segurança.",
    "cannotModifySelf": "Não pode suspender nem despromover a conta com sessão iniciada",
    "cannotDeleteLastAdmin": "Não é possível eliminar o último administrador",
    "cannotDemoteLastAdmin": "Não é possível suspender nem despromover o último administrador",
    "lockSelfHint": "Esta é a conta com sessão iniciada. Eliminar, suspender e alterar a função estão bloqueados para evitar bloqueio.",
    "lockLastAdminHint": "Este é o último administrador. Eliminar, suspender e despromover estão bloqueados.",
    "demoteAdminTitle": "Despromover este administrador?",
    "demoteAdminDesc": "Este utilizador perderá o acesso completo de administrador. Confirme que resta outro administrador.",
    "quotaNonNeg": "Contagens e cotas não podem ser negativas.",
    "diskQuotaHint": "As predefinições são GiB; caixa personalizada é MiB.",
    "bandwidthHint": "0 significa ilimitado."
  },
  "validators": {
    "title": "Validadores (Beta)",
    "subtitle": "Instale e gira nós L1 neste anfitrião. Não detentor — as chaves ficam consigo.",
    "beta": "Beta",
    "tab": {
      "nodes": "Nós",
      "disk": "Disco",
      "stack": "Programas",
      "about": "Acerca"
    },
    "empty": {
      "title": "Ainda não há nós validador",
      "desc": "Crie um nó de testnet em poucos cliques."
    },
    "refresh": "Atualizar",
    "software": {
      "engine": "Motor Docker",
      "engineDesc": "Os nós validadores são executados como projetos do Compose. Instale o Docker aqui se estiver faltando. A remoção da imagem permanece na página do Docker.",
      "client": "Cliente",
      "image": "Imagem",
      "present": "Local",
      "local": "Retirado",
      "missing": "Não puxado",
      "size": "Tamanho",
      "usedBy": "Usado por",
      "unused": "Nenhuma instância",
      "pull": "Pull",
      "pulled": "Neste hospedeiro",
      "pulling": "Puxe {{ref}}",
      "empty": "Nenhuma imagem de cliente fixada",
      "emptyDesc": "O catálogo está vazio. Isso não deveria acontecer.",
      "daemonDown": "Docker Engine não está funcionando",
      "source": "Fonte",
      "official": "Oficial mais recente",
      "officialNewer": "Oficial mais recente",
      "stale": "Atrás do alfinete",
      "staleItem": "{{id}} ({{tag}})",
      "pin": "Pino do painel",
      "openRelease": "Notas de lançamento",
      "chooseOnInstance": "Altere a versão na página da instância. Extrair uma imagem não remarca um nó em execução."
    },
    "disk": {
      "title": "Disco dos validadores",
      "root": "Diretório de dados",
      "free": "Livre",
      "used": "Usado",
      "fsUsed": "Sistema de arquivos usado",
      "leftoverTitle": "Dados restantes ({{count}})",
      "leftoverEmpty": "Não há diretórios de instância restantes",
      "leftoverDesc": "Diretórios na raiz dos validadores que não são uma instância de armazenamento. Remova somente depois de confirmar que não foram utilizados.",
      "leftoverRemove": "Remover",
      "leftoverRemoveTitle": "Excluir dados restantes do validador?",
      "leftoverRemoveDesc": "Exclua permanentemente {{path}} do disco. Este não é um nó listado.",
      "browseRoot": "Abrir no navegador de arquivos",
      "none": "Ainda sem dados de instância",
      "warn": "A utilização do disco está alta (70%+)",
      "danger": "A utilização do disco é crítica (85%+)",
      "autoClear": "Limpar automaticamente a maior instância parada quando o disco é crítico (desligado por omissão)",
      "autoClearRisk": "Destrutivo: a maior instância interrompida é excluída sem aviso adicional. O padrão está desativado. Verifique a auditoria/logs após o disparo.",
      "autoClearConfirmTitle": "Ativar limpeza automática?",
      "autoClearC1": "Quando o disco é crítico, a maior instância parada é excluída sem perguntar novamente.",
      "autoClearThreshold": "Gatilho: uso do sistema de arquivos igual ou superior a 85%.",
      "autoClearCandidate": "Candidato atual: {{id}}",
      "autoClearCandidates": "Candidatos interrompidos (maiores com dados primeiro): {{list}}",
      "autoClearNone": "Nenhuma instância parada é candidata no momento."
    },
    "chain": {
      "eth": "Ethereum",
      "avax": "Avalanche",
      "near": "NEAR",
      "ada": "Cardano",
      "btc": "Bitcoin",
      "cosmos": "Cosmos Hub",
      "sui": "Sui",
      "aptos": "Aptos",
      "dot": "Polkadot",
      "sol": "Solana"
    },
    "network": {
      "hoodi": "Hoodi",
      "sepolia": "Sepolia",
      "mainnet": "Rede principal",
      "fuji": "Fuji",
      "testnet": "Rede de testes",
      "preview": "Visualização",
      "preprod": "Pré-produção",
      "westend": "Westend"
    },
    "networkKind": {
      "testnet": "Rede de testes",
      "mainnet": "Rede principal",
      "mixed": "Rede principal + rede de teste"
    },
    "profile": {
      "minimal": "Mínimo",
      "pruned": "Pruned",
      "validator-ready": "Pronto para validador",
      "rpc": "RPC"
    },
    "profileHelp": {
      "title": "Profiles",
      "desc": "The four choices on wizard step 3 are mainly disk budget and role. Each chain shows its recommended size in the wizard. The panel never holds staking keys.",
      "colName": "Perfil",
      "colUse": "Usar para",
      "colDisk": "Disco",
      "colStake": "Validador de piquetagem",
      "useMinimal": "Testnet ou uma primeira instalação. Não é uma história completa.",
      "usePruned": "Siga a ponta da corrente a longo prazo. Mantém apenas dados recentes (Removidos).",
      "useValidatorReady": "Dimensionado para que você possa posteriormente atestar ou propor. Gere você mesmo as chaves off-line.",
      "useRpc": "Deixe este host ou outros serviços consultarem a cadeia. Escuta em 127.0.0.1 por padrão.",
      "diskMinimal": "Menor",
      "diskPruned": "Médio (mais que Mínimo)",
      "diskValidatorReady": "O maior dos quatro",
      "diskRpc": "Depende da cadeia",
      "stakeNo": "Não adequado",
      "stakeYes": "Sim – off-line ou configurado incorretamente pode perder participação",
      "stakeRpc": "Não é um validador",
      "minimal": "Menor disco. Use para testnets ou uma primeira instalação. Não é um histórico completo e não é um validador de apostas ao vivo.",
      "pruned": "Mantém o estado recente da cadeia e descarta blocos mais antigos (Removidos). Mais disco que Mínimo, menos que um nó completo. Use para seguir a dica a longo prazo.",
      "validatorReady": "Reserva mais disco para que você possa posteriormente atestar ou propor como validador. Gere você mesmo as chaves off-line. Estar offline ou mal configurado pode perder participação.",
      "rpc": "Para este host ou outros serviços consultarem a cadeia. O RPC escuta em 127.0.0.1 por padrão e não é publicado na Internet."
    },
    "col": {
      "id": "ID",
      "chain": "Cadeia",
      "network": "Rede",
      "profile": "Perfil",
      "status": "Estado",
      "traffic": "Tráfego",
      "disk": "Disco"
    },
    "cli": {
      "usage": "Utilização: ysk-server validators list|chains|disk|get|status|checklist|logs|create|start|stop|restart|clear|upgrade|set-version|versions|policy|mithril|prune|switch-network|snapshot|compose|compose-write|rewrite-compose|software|pull|leftover-remove|stats|settings|producer-keys|producer-detach|near-account [--chain C] [--network N] [--profile P] [--el EL] [--cl CL] [--el-tag T] [--cl-tag T] [--node-tag T] [--client ID] [--tag T] [--data-path P] [--rpc-port N] [--id ID] [--path PATH] [--file PATH] [--image REF] [--upgrade POLICY] [--confirm TOKEN] [--kes-file P] [--vrf-file P] [--opcert-file P] [--accept-low-disk] [--accept-low-mem] [--accept-mainnet] [--refresh] [--execute] [--json]"
    },
    "clients": {
      "el": "Cliente de execução",
      "cl": "Cliente de consenso",
      "version": "Versão",
      "pin": "Pino do painel",
      "officialNewer": "Oficial mais recente",
      "olderThanPin": "Mais antigo que o pino do painel",
      "prerelease": "Pré-lançamento",
      "current": "Correndo agora",
      "source": "Fonte da imagem"
    },
    "mithril": {
      "label": "Restaurar primeiro a partir de um instantâneo Mithril (recomendado em testnet)",
      "hint": "Esta é uma restauração única após a instalação. Não está escrito no Compose. Você também pode executá-lo posteriormente na página da instância.",
      "action": "Restaurar com Mithril"
    },
    "errors": {
      "notFound": "Instância de validador não encontrada",
      "invalidId": "Identificador de instância inválido",
      "diskLow": "Disco livre insuficiente para esta cadeia, rede e perfil",
      "memLow": "Não há RAM livre suficiente para o limite de memória desta cadeia",
      "diskUnknownMainnet": "Não é possível medir o disco livre; recusada a criação em rede principal",
      "needDocker": "É necessário Docker Compose e não foi encontrado",
      "composeFailed": "docker compose falhou",
      "containerNotUp": "O Compose foi iniciado, mas o contêiner não continuou em execução",
      "probeFailed": "O nó ainda não está respondendo ao RPC. Verifique os registros nesta página.",
      "oom": "Sem memória. Defina um limite de memória ou adicione RAM e reinicie.",
      "nofile": "O processo atingiu o limite de arquivos abertos (nofile). Aumente ulimits.nofile e reinicie.",
      "noContainer": "Não existe nenhum contêiner de composição para esta instância.",
      "restarting": "O contêiner está reiniciando. Verifique os registros nesta página.",
      "restartingCount": "O contêiner está reiniciando ({{n}}). Verifique os registros nesta página.",
      "needConfirm": "Limpar exige confirm=identificador da instância ou CLEAR",
      "mithrilAdaOnly": "A restauração Mithril só está disponível para Cardano",
      "needMithrilConfirm": "Mithril exige confirm=identificador da instância ou MITHRIL",
      "mithrilBlocked": "O docker run do Mithril foi bloqueado pela lista permitida",
      "mithrilKey": "Não foi possível carregar a chave de verificação genesis do Mithril",
      "mithrilFailed": "A transferência do instantâneo Mithril falhou",
      "pruneFailed": "A limpeza falhou",
      "switchNeedStop": "Pare o nó antes de mudar de rede",
      "switchNeedClear": "Mudar de rede apaga os dados da cadeia. Confirme com o identificador da instância ou CLEAR",
      "composeMissing": "Ficheiro Compose não encontrado",
      "composeNotManaged": "Recusa de escrever um ficheiro Compose que não é gerido pelo YSK",
      "badDataPath": "O caminho de dados deve ser um diretório absoluto fora dos caminhos do sistema",
      "portInUse": "Esse porto RPC já é usado por outra instância de validador",
      "badTag": "Essa versão do cliente não é uma tag oficial para esta imagem",
      "needVersionConfirm": "A alteração da versão requer confirm=id da instância",
      "needMainnetVersionAck": "As alterações na versão da Mainnet exigem acceptMainnet",
      "snapshotUnsupported": "Não há origem de instantâneo permitida para esta cadeia",
      "snapshotLookup": "Não foi possível resolver o ponteiro oficial do instantâneo",
      "needSnapshotConfirm": "Restaurar instantâneo exige confirm=identificador da instância ou SNAPSHOT",
      "snapshotBlocked": "O docker run do instantâneo foi bloqueado pela lista permitida",
      "snapshotFailed": "A transferência ou extração do instantâneo falhou",
      "producerAdaOnly": "As chaves do produtor são apenas para Cardano",
      "needProducerConfirm": "Anexar chaves de produtor requer confirm=instance id ou PRODUCER",
      "needMainnetProducerAck": "Anexação do produtor Mainnet requer acceptMainnet",
      "producerColdRejected": "As chaves de assinatura fria ou do proprietário do pool são recusadas. Mantenha as chaves frias offline.",
      "producerTooLarge": "Esse arquivo de chave é maior que 64 KiB",
      "producerBadType": "Esse arquivo não é uma chave KES, uma chave VRF ou um certificado operacional",
      "producerEmpty": "Forneça pelo menos um entre kes, vrf ou opcert",
      "switchNeedDetachProducer": "Desanexe as chaves do produtor antes de mudar de rede",
      "nearAccountInvalid": "O nome do pool deve ser um slug curto (ou a conta {pool}{factory} completa).",
      "nearKeyMissing": "validator_key.json está ausente ou não possui chave pública. Inicie o nó e aguarde neard init."
    },
    "notes": {
      "beta": "Esta funcionalidade é Beta. Alterações no anfitrião precisam de root e YSK_EXECUTE=1.",
      "noKeys": "O YSK Server nunca gera nem guarda chaves de staking.",
      "dockerSoon": "Instale e inicie o assistente desta página. As alterações no host precisam de root e YSK_EXECUTE=1.",
      "dryCreate": "Especificação da instância e compose escritos (dry-run). Passe --execute e YSK_EXECUTE=1 para iniciar contentores.",
      "dryStart": "O arranque é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "dryStop": "A paragem é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "dryClear": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "created": "Nó criado e compose iniciado",
      "started": "Nó iniciado",
      "stopped": "Nó parado",
      "cleared": "Dados da cadeia limpos",
      "dryMithril": "A restauração Mithril é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "mithril": "Instantâneo Mithril restaurado; nó reiniciado",
      "dryPrune": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "pruned": "Imagens não usadas do projeto limpas",
      "pruneProfile": "A poda nativa do cliente é o perfil pruned／minimal. Recrie para o alterar.",
      "sameNetwork": "Já está nessa rede",
      "drySwitch": "A mudança de rede é dry-run.",
      "switched": "Rede alterada e dados da cadeia limpos",
      "dryCompose": "Escreveria compose.yml",
      "composeWrote": "compose.yml escrito",
      "statsEmpty": "Não há contentores em execução para medir",
      "autoClearNone": "Não há instância parada para limpar automaticamente",
      "drySnapshot": "A restauração de instantâneo é dry-run. Passe --execute e YSK_EXECUTE=1.",
      "snapshotEthEl": "Arquivo EL ethPandaOps restaurado e CL redefinido para checkpoint sync",
      "snapshotEthCl": "Dados CL redefinidos para o checkpoint sync oficial",
      "snapshotNear": "Dados NEAR apagados; o compose vai reinicializar com genesis oficial e epoch sync",
      "nativePrune": "Comando de poda nativa do cliente executado",
      "dryProducer": "As chaves do produtor são testadas. Adicione --execute e YSK_EXECUTE=1.",
      "dryProducerDetach": "A separação do produtor é executada a seco. Adicione --execute e YSK_EXECUTE=1.",
      "producerPartial": "Escreveu teclas de atalho. Anexe KES, VRF e opcert antes que o nó comece como produtor de bloco.",
      "producerAttached": "Teclas de atalho anexadas; compor reescrito como produtor de bloco",
      "producerDetached": "Teclas de atalho removidas; compor reescrito como relé",
      "dryDelete": "Excluir é uma simulação. Passe --execute e YSK_EXECUTE=1.",
      "deleted": "Nó excluído",
      "leftoverRemoved": "Restos removidos {{path}}",
      "dryNearAccount": "Definiria account_id como {{account}} (passar --execute). O segredo nunca é alterado.",
      "nearAccountWrote": "Defina account_id como {{account}}. O segredo não foi alterado. Reinicie o nó se ele estiver em execução."
    },
    "create": "Criar nó",
    "wizard": {
      "title": "Criar nó",
      "stepOf": "Etapa {{n}} / {{total}}",
      "stepChain": "Corrente",
      "stepNetwork": "Rede",
      "stepProfile": "Perfil",
      "stepSummary": "Resumo",
      "needDocker": "O Docker Engine não está instalado. Instale-o primeiro – este botão permanece desativado.",
      "diskNeed": "Este perfil precisa de cerca de {{need}} · grátis {{free}}",
      "diskNeedNetwork": "O padrão (mínimo) para esta rede precisa de cerca de {{need}} · grátis {{free}}",
      "profileHint": {
        "minimal": "Menor sincronização – disco leve, não para piquetagem.",
        "pruned": "Mantém apenas o histórico recente (Removido). Menor que o arquivo, ainda utilizável para RPC.",
        "validator-ready": "Dimensionado para um validador de piquetagem. Precisa de mais disco do que o mínimo.",
        "rpc": "Nó RPC público — não é um validador de piquetagem."
      },
      "diskShort": "Disco livre insuficiente para esta cadeia/rede/perfil",
      "diskShortDetail": "Precisa {{need}} · grátis {{free}} · curto {{short}}",
      "memShort": "Não há RAM livre suficiente para o limite de memória desta cadeia",
      "memShortDetail": "Precisa {{need}} · grátis {{free}} · curto {{short}}",
      "needCustomPath": "Insira um caminho de dados absoluto",
      "previewId": "ID do nó",
      "previewCompose": "Compor projeto",
      "profileSeeAbout": "What each profile means is on the About tab.",
      "back": "Voltar",
      "next": "Seguinte",
      "install": "Instalar",
      "mainnetWarn": "A rede principal precisa de muito disco livre (ETH costuma ser 800 GiB+). Recomenda-se testnet.",
      "mainnetAck": "Compreendo o risco de disco e slashing. Continuar na rede principal.",
      "lowDiskAcked": "O disco livre está abaixo do tamanho recomendado. Você confirmou a criação de qualquer maneira; a sincronização pode parar se o disco ficar cheio.",
      "lowMemAcked": "A RAM livre está abaixo do limite de memória desta cadeia mais 1 GiB de espaço livre. Você confirmou a criação de qualquer maneira; o nó pode OOM ou parar.",
      "heavyWarn": "Esta cadeia é pesada (muito disco e IOPS altos). Solana na rede principal costuma precisar de 2 TiB+.",
      "memory": "Limite de memória (p. ex. 4g)",
      "cpus": "Limite de CPU (p. ex. 2.0)",
      "dataPath": "Caminho de dados (opcional)",
      "rpcPort": "Porto RPC (opcional)",
      "limitNone": "Sem limite",
      "rpcDefault": "Padrão",
      "customPath": "Use um caminho de dados personalizado",
      "installConfirmTitle": "Instalar este nó?",
      "installConfirmDesc": "{{chain}} · {{network}} · {{profile}}. Cerca de {{disk}} de disco. A extração da imagem pode demorar muito.",
      "installC1": "Vários gigabytes de imagens podem ser baixados.",
      "installC2": "Você pode cancelar a tarefa do painel; imagens já extraídas não são excluídas automaticamente.",
      "installC3": "Mainnet usa muito disco. Um validador de piquetagem pode perder a aposta se estiver offline ou configurado incorretamente. Digite o ID do nó para confirmar.",
      "dockerAbout": "O Docker Engine é necessário para instalar e iniciar nós.",
      "dockerAboutOk": "O Docker Engine está instalado.",
      "dockerAboutMissing": "O Docker Engine não está instalado. Abra o Docker para instalá-lo.",
      "rewriteCompose": "Reescrever escrever",
      "rewriteComposeTitle": "Reescrever compose.yml do adaptador atual?",
      "rewriteComposeDesc": "Substitui a composição gerada por {{id}} usando os sinalizadores enviados para esta cadeia.",
      "chainMeta": "{{disk}} min · {{clients}} clientes"
    },
    "actions": {
      "detail": "Detalhes",
      "start": "Iniciar",
      "stop": "Parar",
      "restart": "Reiniciar",
      "clear": "Limpar",
      "upgrade": "Atualizar",
      "setVersion": "Alterar versão",
      "clearConfirm": "Escreva o identificador da instância ou CLEAR",
      "prune": "Limpar imagens",
      "switchNetwork": "Mudar de rede",
      "removeUnit": "Também remover compose / o registo da instância",
      "restoreAfter": "Restaurar instantâneo após limpar",
      "delete": "Excluir",
      "deleteTitle": "Excluir {{id}}",
      "deleteDesc": "Isso remove o nó do painel.",
      "deleteC1": "Docker Compose foi interrompido e removido",
      "deleteC2": "Os dados da cadeia no disco são excluídos",
      "deleteC3": "O registro da instância é removido",
      "pruneTitle": "Remover imagens não utilizadas",
      "pruneDesc": "Digite o ID da instância para remover imagens não utilizadas do Compose para este nó.",
      "pruneC1": "As imagens não utilizadas marcadas para este projeto do Compose serão excluídas.",
      "clearTitle": "Limpar {{id}}",
      "clearC1": "Os dados da cadeia no disco são excluídos.",
      "clearC2": "A instância permanece no painel, parada e vazia.",
      "switchTitle": "Trocar de rede",
      "switchC1": "O nó é interrompido e os dados da cadeia são apagados antes que a nova rede seja gravada."
    },
    "policy": {
      "label": "Política de atualização",
      "manual": "À mão",
      "notify": "Notificar",
      "auto-safe": "Automático (seguro)",
      "auto-all": "Automático (tudo)"
    },
    "logs": {
      "empty": "Ainda sem registos",
      "follow": "Seguir registos"
    },
    "compose": {
      "label": "Ficheiro Compose",
      "save": "Guardar compose"
    },
    "snapshot": {
      "action": "Restaurar instantâneo",
      "mithril": "O Cardano usa Mithril para restaurar instantâneos certificados.",
      "eth": "A rede principal Ethereum arranca com o checkpoint sync oficial do cliente de consenso. O EL continua com snap sync.",
      "ethEl": "Hoodi/Sepolia podem restaurar um arquivo EL ethPandaOps e depois fazer checkpoint-sync do CL.",
      "avax": "A Avalanche usa state-sync no perfil compose.",
      "near": "Os instantâneos tar gratuitos oficiais da NEAR foram retirados. Restaurar apaga dados e usa genesis oficial mais epoch sync.",
      "none": "Não há origem de instantâneo configurada para esta cadeia."
    },
    "producer": {
      "title": "Bloquear teclas de atalho do produtor",
      "hint": "Este não é um endereço IP. Carregue a chave KES, a chave VRF e o certificado operacional de uma máquina offline. Mantenha as chaves frias fora deste host.",
      "warn": "O mesmo nó com porta P2P pública assinará blocos. A topologia oficial mantém o produtor fora da Internet pública. Esses três arquivos são teclas de atalho.",
      "kes": "KES",
      "vrf": "VRF",
      "opcert": "opcert",
      "missing": "Não anexado",
      "present": "Em anexo {{fp}}",
      "presentShort": "No anfitrião",
      "queuedShort": "Preparar",
      "queued": "Selecionado · {{name}}",
      "fileHint": "Nome típico {{file}}",
      "dropOrBrowse": "Solte {{file}} aqui ou navegue",
      "dropping": "Solte para anexar {{label}}",
      "browse": "Navegar",
      "clearFile": "Remover",
      "choose": "Escolha o arquivo",
      "apply": "Aplique e reinicie como produtor de bloco",
      "detach": "Desconecte e execute como relé",
      "applyTitle": "Anexe teclas de atalho a {{id}}?",
      "applyDesc": "KES, VRF e opcert são gravados no diretório de chaves de instância. Compor é reescrito. O contêiner é reiniciado como produtor de blocos.",
      "applyC1": "As chaves frias devem permanecer offline. Não carregue cold.skey.",
      "applyC2": "O nó em execução pode assinar blocos se esses arquivos forem válidos.",
      "applyC3": "Mainnet: um produtor offline ou mal configurado perde blocos.",
      "detachTitle": "Desanexe as chaves do produtor de {{id}}?",
      "detachDesc": "As teclas de atalho são excluídas deste host. O Compose volta para retransmitir.",
      "detachC1": "O nó não produzirá mais blocos.",
      "mainnet": "Mainnet: Entendo que este host conterá teclas de atalho e blocos de sinalização."
    },
    "stake": {
      "title": "Preparar staking (as chaves ficam consigo)",
      "offlineKeys": "Gere as chaves offline. O painel nunca as guarda.",
      "deposit": "Conclua o depósito / registo no launchpad oficial.",
      "withdrawal": "Defina você mesmo as credenciais de levantamento.",
      "monitor": "Vigie disco, pares e distintivos de atualização nesta página."
    },
    "playbook": {
      "overviewTitle": "Como funciona o staking em cada cadeia",
      "overviewDesc": "Este painel executa o nó. Sua carteira e chaves ficam com você. Apenas links oficiais – nunca compartilhe uma frase-semente aqui.",
      "colChain": "Corrente",
      "colModel": "Como você se registra",
      "colMin": "Mínimo típico",
      "colWallet": "Sua carteira",
      "colPanel": "O que este painel faz",
      "yskDoes": "Este painel faz",
      "youDo": "Você faz",
      "steps": "Passos",
      "never": "Não",
      "official": "Links oficiais",
      "seeAbout": "As etapas completas estão na guia Sobre.",
      "nodeIdReady": "NodeID (deste nó)",
      "nodeIdPending": "NodeID aparece depois que o nó é sincronizado e responde ao RPC.",
      "blsReady": "Chave pública BLS",
      "blsProof": "Prova de posse BLS",
      "blsPending": "As credenciais BLS aparecem depois que o nó responde ao RPC.",
      "copyAll": "Copiar tudo",
      "copyNamed": "Copiar {{label}}",
      "nearStakeKey": "Chave pública de aposta",
      "nearStakeKeyPending": "Aparece após a primeira inicialização (perto do init). RPC não está pronto não significa que a chave está faltando.",
      "nearAccountId": "Arquivo chave account_id",
      "nearAccountIdPending": "Freqüentemente vazio até que você o defina como {{pool}}{{suffix}} depois que o pool existir. O painel escreve apenas este campo — nunca secret_key.",
      "nearFactory": "Fábrica de piquetes",
      "nearPublicAddr": "P2P público (pares)",
      "nearPublicAddrPending": "Aparece após a primeira inicialização e escreve WAN:{{port}} em config.json.",
      "nearCreateCommand": "Comando create_staking_pool",
      "nearPointing": "O contrato do pool não utiliza o IP deste servidor. Ele armazena a chave pública de participação deste nó. Os peers usam a linha Public P2P acima (porta host {{port}}). O RPC permanece no host local.",
      "nearAccountIdHint": "Depois que o pool existir, defina account_id aqui (não edite o arquivo manualmente). O painel nunca escreve secret_key.",
      "cosmosPubkey": "Chave pública de consenso",
      "cosmosPubkeyPending": "Aparece depois que o gaiad init grava priv_validator_key.json. RPC não está pronto não significa que a chave está faltando.",
      "cosmosChainId": "ID da cadeia",
      "cosmosP2p": "P2P público (endereço_externo)",
      "cosmosP2pPending": "Aparece após a primeira inicialização e escreve tcp://WAN:{{port}} em config.toml.",
      "ethBeacon": "API Beacon (localhost)",
      "ethBeaconPending": "Beacon HTTP neste host. Aponte um cliente validador que você mesmo executa para este URL - este compose não tem VC.",
      "cosmosCreateCommand": "comando criar-validador",
      "cosmosCreateJson": "validador.json (gaiad v28)",
      "copyFailed": "Falha na cópia",
      "solIdentity": "Chave pública de identidade",
      "solIdentityPending": "Aparece depois que o RPC responde getIdentity. Este processo é --no-voting até que você mesmo adicione uma conta de voto.",
      "adaP2pPort": "Retransmitir porta P2P",
      "adaP2pPending": "Anuncie o IPv4 público deste host (ou DNS) e esta porta no certificado de registro do pool. topology.json localRoots é para o seu próprio produtor de blocos. Este painel não testa WAN.",
      "notPosTitle": "Não é prova de participação",
      "notPosBody": "Bitcoin aqui é um nó completo ou podado. Não há carteira de piquetagem nesta página.",
      "eth": {
        "model": "Este compose executa apenas execução + beacon - não um cliente validador. Deposite 32 ETH na plataforma de lançamento oficial.",
        "min": "32 ETH + gás",
        "wallets": "MetaMask, Ledger, Trezor – apenas na plataforma de lançamento oficial",
        "panel": "Executa o farol EL +. API RPC e beacon no host local. Nenhum cliente validador no Compose.",
        "honesty": "Esta instância é apenas execução + beacon. Não há cliente validador no arquivo de composição. Copiar um keystore no diretório de dados do beacon não iniciará a atestação. O contrato de depósito não leva o IP deste servidor.",
        "yskDoes": [
          "Instale e inicie os clientes de execução e beacon.",
          "Mostrar disco, peers e status de atualização.",
          "Não executa um cliente validador e não carrega um keystore de assinatura."
        ],
        "youDo": [
          "Crie você mesmo o keystore e o endereço de retirada na plataforma de lançamento oficial ou com staking-deposit-cli.",
          "Deposite 32 ETH na plataforma de lançamento desta rede.",
          "Execute você mesmo um cliente validador (não este composto) na API de beacon localhost desta instância."
        ],
        "steps": [
          "Aguarde até que a execução e o beacon sejam sincronizados.",
          "Abra a barra de lançamento oficial desta rede (Hoodi ou Mainnet nesta página). Sepolia não tem botão de launchpad aqui.",
          "Off-line, gere o keystore (staking-deposit-cli). Defina o endereço de retirada para sua própria carteira ETH.",
          "Deposite 32 ETH no launchpad (guarde o extra para gasolina).",
          "Execute você mesmo um validator client no URL do beacon neste cartão (exemplo: lighthouse vc --beacon-nodes). Este compose não tem VC - colocar um keystore no beacon datadir não atesta."
        ],
        "never": [
          "Nunca forneça sua frase-semente ou chave de retirada a ninguém, incluindo este painel.",
          "Nunca carregue um keystore de assinatura em uma nuvem hospedada.",
          "Não espere que esta página ateste depois de copiar um keystore no beacon datadir."
        ]
      },
      "avax": {
        "model": "Registre a prova NodeID e BLS em execução na P-Chain do Core ou Ledger.",
        "min": "2.000 AVAX + taxa (1 AVAX no Fuji); pelo menos 14 dias",
        "wallets": "Núcleo, razão",
        "panel": "Executa o avalanchego e pode mostrar NodeID e BLS após respostas RPC",
        "yskDoes": [
          "Execute o avalanchego e mantenha o RPC no host local.",
          "Mostre as credenciais NodeID e BLS assim que o nó responder ao RPC."
        ],
        "youDo": [
          "Segure AVAX no Core ou Ledger.",
          "Adicione o validador do Core usando o NodeID e a prova BLS deste nó."
        ],
        "steps": [
          "Aguarde até que este nó seja sincronizado e as linhas NodeID / BLS apareçam (RPC).",
          "Copie a chave pública NodeID, BLS e o comprovante de posse BLS.",
          "Na web Core (Staking → Validar), ou com Ledger via Core, registre-se na P-Chain. A transação não utiliza IP de servidor.",
          "A Mainnet precisa de pelo menos 2.000 AVAX, um período mínimo de 14 dias e uma reserva de taxa. Fuji é 1 AVAX."
        ],
        "never": [
          "Não envie AVAX para este painel.",
          "Não compartilhe sua frase de recuperação Core ou Ledger."
        ]
      },
      "ada": {
        "model": "Opere um pool de apostas com chaves offline / KES / VRF - não com um toque na carteira do navegador.",
        "min": "O compromisso é sua escolha (veja os documentos oficiais)",
        "wallets": "Ferramentas oficiais de participação (cold keys permanecem off-line)",
        "panel": "Executa primeiro o cardano-node como um relé; teclas de atalho podem ser anexadas nesta página.",
        "honesty": "Esta instância começa como uma retransmissão. O registro do pool on-chain usa chaves frias que você mantém offline. Os pares e a topologia usam o IPv4 público deste host e a porta P2P mostrada aqui — o painel não investiga a WAN.",
        "yskDoes": [
          "Execute a restauração do snapshot cardano-node e Mithril quando oferecido.",
          "Anexe KES, VRF e opcert ao fornecê-los. As chaves frias são recusadas."
        ],
        "youDo": [
          "Gere chaves de pool offline.",
          "Registre o pool com o Cardano CLI oficial. Coloque o IPv4 ou DNS público deste host e a porta de retransmissão P2P no certificado de registro do pool.",
          "Anexe KES, VRF e opcert nesta página. Não carregue chaves frias."
        ],
        "steps": [
          "Leia o guia oficial de operação de pool.",
          "Gere chaves cold, KES e VRF em uma máquina offline.",
          "Registre o pool na rede. Anuncie o relé nesse certificado (--pool-relay-ipv4 ou DNS + a porta P2P nesta placa). A descoberta pública é o certificado, não topology.json.",
          "Nesta página da instância, anexe KES, VRF e o certificado operacional. As chaves frias são recusadas.",
          "topology.json localRoots é para o seu próprio produtor de blocos (anúncio: falso). Este painel não procura o endereço WAN."
        ],
        "never": [
          "Não trate isso como uma aposta de um clique da MetaMask.",
          "Não armazene chaves frias no host validador.",
          "Não espere que a edição topology.json sozinha registre o relé na cadeia."
        ]
      },
      "near": {
        "model": "Crie um contrato de staking na fábrica oficial. O contrato armazena a chave pública deste nó – não o IP do servidor.",
        "min": "Veja os documentos oficiais do validador (30 NEAR para criar o pool, mais aposta)",
        "wallets": "Carteira / bloqueio oficial NEAR",
        "panel": "Executa neard; preenchimentos de formulário create_staking_pool; depois que o pool existe, grava apenas account_id.",
        "yskDoes": [
          "Execute o neard com RPC em localhost e P2P em 24567.",
          "Após a inicialização, mostre a chave pública da estaca, o endereço P2P público e a fábrica.",
          "Preencha create_staking_pool do nome do pool + proprietário + chave pública. Depois que o pool existir, escreva apenas account_id — nunca secret_key, nunca a transação."
        ],
        "youDo": [
          "Inicie o nó e aguarde a chave pública nesta página.",
          "Insira o nome e o proprietário do pool e copie o comando.",
          "Assine create_staking_pool de sua própria carteira NEAR ou quase cli.",
          "Volte aqui e defina account_id. Aposte da sua carteira nesse pool."
        ],
        "steps": [
          "Inicie o nó e aguarde o init próximo para que a chave pública apareça (RPC não pronto não é o mesmo que chaves ausentes).",
          "Insira o nome abreviado do pool e a conta do proprietário. Copie o comando create_staking_pool preenchido.",
          "Da sua carteira, ligue para a fábrica (testnet pool.f863973.m0 / mainnet poolv1.near) com 30 NEAR para armazenamento. O comando usa --accountId; se sua CLI próxima espera --account_id, siga --help da CLI.",
          "Depois que o pool existir, use Set account_id nesta página (confirmar = ID da instância). Não edite validator_key.json manualmente.",
          "Reinicie se o nó já estiver em execução. Espere até que RPC responda e o nó seja sincronizado antes de apostar grandes quantias. Os pares usam Público P2P — o contrato não exige IP."
        ],
        "never": [
          "Não cole uma frase inicial neste painel.",
          "Não coloque o IP deste servidor no contrato.",
          "Não espere que o painel envie a transação create_staking_pool."
        ]
      },
      "cosmos": {
        "model": "create-validator da carteira da sua operadora usando a chave pública de consenso deste nó - não o IP do servidor.",
        "min": "Veja os documentos oficiais do Cosmos Hub (autodelegação no uatom)",
        "wallets": "Keplr ou outra carteira Cosmos que você controla",
        "panel": "Executa o gaiad v28; mostra consenso pubkey; formulário preenche validator.json + create-validator. Nunca escreve priv_validator_key.json ou transmite.",
        "honesty": "Este gaiad é v28 (arquivo JSON). Os documentos do Hub ainda mostram sinalizadores – eles falham aqui. A transação armazena a chave pública de consenso deste nó, não o IP do servidor. Os pares usam P2P público. O RPC permanece no host local. Este painel não transmite nem lê priv_key.",
        "yskDoes": [
          "Execute gaiad com RPC em localhost e P2P em 26656. O preço mínimo do gás é 0.005uatom.",
          "Após a inicialização, mostre a chave pública de consenso, o ID da cadeia e o P2P público.",
          "Preencha validator.json e o comando gaiad v28 de amount, moniker e --from mais o consenso pubkey. Nunca escreva priv_validator_key.json ou transmita a transação."
        ],
        "youDo": [
          "Inicie o nó e aguarde a chave pública de consenso nesta página.",
          "Insira o valor, o apelido e --from. Copie validator.json e, em seguida, o comando gaiad.",
          "Assine com as teclas Keplr ou Gaiad que você controla. Não misture esse mnemônico com a chave de consenso neste host."
        ],
        "steps": [
          "Inicie o nó e aguarde o gaiad init para que a chave pública de consenso apareça (RPC não pronto não é o mesmo que chaves ausentes).",
          "Insira autodelegação (1atom = 1 ATOM ou uatom), apelido e --from. Copie validator.json e depois o comando gaiad. Este nó é gaiad v28: arquivo JSON, não o formulário de sinalização dos documentos do Hub. chain-id é cosmoshub-4 na mainnet, provedor na testnet.",
          "O --gas-prices copiado é 0,005uatom para corresponder a este nó. Não cole o exemplo 0.0025uatom dos documentos do Hub ou o create-validator baseado em sinalizador.",
          "Salve validator.json e transmita da carteira da sua operadora. A transação não utiliza IP de servidor. Os pares usam tcp://WAN:{{port}}.",
          "Espere até que RPC responda e o nó seja sincronizado antes de vincular grandes quantidades."
        ],
        "never": [
          "Não misture o mnemônico da carteira da operadora com a chave de consenso.",
          "Não insira mnemônicos de carteira aqui.",
          "Não coloque o IP deste servidor no create-validator.",
          "Não cole os sinalizadores --amount/--pubkey dos documentos do Hub - este gaiad é v28 (validator.json).",
          "Não use gás 0.0025uatom neste nó — o mínimo de composição é 0.005uatom."
        ]
      },
      "sol": {
        "model": "Esta composição executa o Agave com --no-voting. A conta de voto e o sacador são criados com ferramentas oficiais da Solana – não com este painel.",
        "min": "Consulte os documentos oficiais de operações (hardware e disco são pesados)",
        "wallets": "Solana CLI / carteira oficial que você controla",
        "panel": "Executa o Agave como um nó de atualização (--no-voting). Pode mostrar a identidade pubkey após respostas RPC.",
        "honesty": "Este processo é --sem votação. Ele não votará nem ganhará participação até que você crie uma conta de voto com o Agave CLI oficial e altere a forma como o processo é iniciado. Este painel não remove --no-voting.",
        "yskDoes": [
          "Execute o cliente Agave e avise sobre o disco.",
          "Mostre o pubkey de identidade assim que o RPC responder getIdentity.",
          "Não cria uma conta de voto e não inicia a votação."
        ],
        "youDo": [
          "Crie chaves de votação e retirada autorizada com ferramentas oficiais Solana em uma máquina que você controla.",
          "Crie a conta de voto com a CLI oficial, usando esta chave pública de identidade.",
          "Só então execute um validador de votação - esta composição permanece --no-voting."
        ],
        "steps": [
          "Confirme se este host tem disco e IOPS suficientes (a rede principal normalmente tem 2 TiB+).",
          "Aguarde até que o RPC responda e copie a chave pública de identidade mostrada aqui.",
          "Crie chaves de voto e retirada autorizada com ferramentas oficiais Solana em uma máquina que você controla e, em seguida, solana crie uma conta de voto.",
          "Esta composição mantém --no-voting. Criar um vote account não faz com que este processo seja votado."
        ],
        "never": [
          "Não espere um botão de carteira do navegador neste painel.",
          "Não cole identidade ou pares de chaves de voto neste painel.",
          "Não espere que esta página comece a votar depois de criar um vote account."
        ]
      },
      "dot": {
        "model": "Este compose é um nó completo (sem --validator). Chaves de sessão e setKeys são etapas oficiais do Polkadot.js - não este painel.",
        "min": "Veja o wiki oficial",
        "wallets": "Polkadot.js",
        "panel": "Executa polkadot como um nó completo. RPC no host local. Nenhum sinalizador --validator.",
        "honesty": "Este processo não é iniciado com --validator. O painel não chama author_rotateKeys (isso alteraria o keystore). Para se tornar um validador, você precisa do sinalizador de nó oficial e de uma chamada de rotateKeys que você faz no RPC do host local.",
        "yskDoes": [
          "Execute o polkadot e exponha o RPC no host local.",
          "Não passa --validator e não alterna chaves de sessão."
        ],
        "youDo": [
          "Siga o guia oficial de configuração de um validador.",
          "Se você mesmo adicionar --validator, chame rotateKeys no RPC localhost e vincule o resultado em Polkadot.js do seu stash."
        ],
        "steps": [
          "Sincronize este nó completo.",
          "Leia o guia oficial de validação. Esta composição não é um processo validador.",
          "Não cole o mnemônico stash aqui. Se você executar posteriormente com --validator, gire as chaves em http://127.0.0.1 (porta RPC nesta instância).",
          "Em Polkadot.js, defina essas chaves de sessão em seu stash/controlador e siga as etapas oficiais de ligação."
        ],
        "never": [
          "Não cole o mnemônico stash neste painel.",
          "Não espere que esta página gere chaves de sessão ou tenha iniciado o --validator."
        ]
      },
      "sui": {
        "model": "Este compose é um fullnode Sui (fullnode.yaml), não um nó validador.",
        "min": "Veja os documentos oficiais da Sui",
        "wallets": "Carteira oficial da operadora Sui",
        "panel": "Executa sui-node como um fullnode. RPC no host local.",
        "honesty": "Este processo não pode assinar como validador Sui. A configuração do validador usa configurações e chaves diferentes. Os documentos oficiais do validador estão vinculados; este painel não muda o nó para o modo validador.",
        "yskDoes": [
          "Execute a imagem sui-node enviada como um fullnode."
        ],
        "youDo": [
          "Use esta instância como um fullnode.",
          "Para se tornar um validador, siga a documentação oficial do validador Sui sobre a configuração do validador - não esta composição."
        ],
        "steps": [
          "Sincronize este fullnode.",
          "Trate-o como um fullnode: ele reexecuta pontos de verificação, mas não assina consenso.",
          "Abra o guia oficial do operador do validador somente se estiver criando um processo de validador separado."
        ],
        "never": [
          "Não envie SUI para este painel.",
          "Não espere que este processo fullnode seja registrado como um validador."
        ]
      },
      "aptos": {
        "model": "Este compose é um fullnode público do Aptos (função full_node), não um validador.",
        "min": "Veja os documentos oficiais do Aptos",
        "wallets": "Carteira oficial da operadora Aptos",
        "panel": "Executa o aptos-node como um fullnode público. RPC no host local.",
        "honesty": "Fullnodes públicos não participam do consenso. Um validador precisa de uma função diferente, chaves e geralmente um fullnode validador. Este painel não muda o nó para o modo validador.",
        "yskDoes": [
          "Execute a imagem Aptos enviada como um fullnode público."
        ],
        "youDo": [
          "Use esta instância como um fullnode público.",
          "Para executar um validador, siga os documentos oficiais do nó validador do Aptos - não esta composição."
        ],
        "steps": [
          "Sincronize este fullnode público.",
          "Trate-o como um PFN: ele fornece dados contábeis, não vota.",
          "Abra os documentos oficiais do validador apenas se você estiver construindo um par validador + VFN separado."
        ],
        "never": [
          "Não insira teclas do operador neste painel.",
          "Não espere que este processo fullnode seja registrado como um validador."
        ]
      },
      "btc": {
        "model": "Não é prova de aposta. Este é um nó Bitcoin completo ou podado.",
        "min": "—",
        "wallets": "Não aplicável",
        "panel": "Executa bitcoin",
        "yskDoes": [
          "Execute um nó Bitcoin completo ou podado."
        ],
        "youDo": [
          "Use qualquer carteira Bitcoin separadamente. Mineração e relâmpagos estão fora do escopo."
        ],
        "steps": [
          "Trate esta instância apenas como um nó Bitcoin.",
          "Não há depósito de aposta nem armazenamento de chaves do validador."
        ],
        "never": [
          "Não procure uma carteira de piquetagem nesta página."
        ]
      },
      "nearPoolSlug": "Nome do pool",
      "nearPoolSlugHint": "Apenas nome curto. A fábrica adiciona {{suffix}}.",
      "nearOwner": "Conta do proprietário",
      "nearOwnerHint": "Conta NEAR que assina create_staking_pool em sua carteira. Não é a chave do nó.",
      "nearPreview": "Visualização do comando",
      "nearWriteAccount": "Definir account_id",
      "nearWriteTitle": "Definir validator_key.json account_id para {{id}}?",
      "nearWriteDesc": "Grava apenas account_id no arquivo de chave existente. Não envia create_staking_pool. Não toca em secret_key.",
      "nearWriteC1": "account_id torna-se {{pool}}{{suffix}}",
      "nearWriteC2": "O painel nunca assina a transação factory",
      "nearRestart": "Reinicie o nó após escrever",
      "nearNeedKey": "Aguarde até que a chave pública da aposta apareça (neard init) e preencha este formulário.",
      "nearNeedSlug": "Insira um nome de pool para definir account_id.",
      "nearNeedOwner": "Insira a conta do proprietário para preencher o comando. Definir account_id só precisa do nome do pool.",
      "cosmosPointing": "Este gaiad é v28: copie validator.json e, em seguida, crie-validator validator.json. Os documentos do Hub ainda mostram sinalizadores – eles falham aqui. A transação usa a chave pública de consenso deste nó, não o IP do servidor. Os peers usam P2P público (porta host {{port}}). O gás é 0,005uatom - não o exemplo de 0,0025uatom dos documentos do Hub.",
      "avaxPointing": "O registro da P-Chain usa esta prova NodeID e BLS, não o IP do servidor. RPC permanece no host local. Registre-se em Core (Staking → Validar).",
      "ethVcCommand": "Exemplo de validator client (não está neste compose)",
      "ethVcHint": "Execute você mesmo um validator client neste URL de beacon. Importar um keystore para o diretório de dados do beacon não atesta.",
      "cosmosAmount": "Autodelegação",
      "cosmosAmountHint": "uatom, ou 1atom por 1 ATOM. Um 1 simples é 1 uatom – não 1 ATOM.",
      "cosmosAmountParsed": "{{amount}} = {{atom}}",
      "cosmosMoniker": "Moniker",
      "cosmosFromKey": "nome da chave --from",
      "cosmosFromHint": "Nome da chave local gaiad ou assine com Keplr. Não é a chave de consenso neste host.",
      "cosmosNeedPubkey": "Aguarde até que a chave pública de consenso apareça (gaiad init) e preencha este formulário.",
      "cosmosNeedFields": "Insira o valor, o apelido e --from para preencher o comando."
    },
    "alerts": {
      "diskTitle": "Disco do validador crítico",
      "diskBody": "O espaço livre no volume de dados do validador está criticamente baixo.",
      "upgradeTitle": "Atualização de validador disponível",
      "upgradeBody": "Um ou mais clientes de nó têm uma versão fixada mais recente.",
      "syncTitle": "O nó validador precisa de atenção",
      "syncBody": "Um nó está a sincronizar há mais de 6 horas ou reportou um erro.",
      "rollbackTitle": "Atualização de validador revertida",
      "rollbackBody": "A atualização de {{id}} falhou a verificação de saúde e foi revertida."
    },
    "upgrade": {
      "changelog": "Registo de alterações"
    },
    "readiness": {
      "dockerTitle": "Docker para nós validador",
      "dockerOk": "{{count}} instância(s) de validador; Docker está instalado",
      "dockerMissing": "Existem instâncias de validador mas o comando docker não foi encontrado"
    },
    "detail": {
      "status": "Status",
      "sync": "Sincronizar",
      "peers": "Pares",
      "traffic": "Tráfego",
      "version": "Versão",
      "access": "Acesso",
      "upgrade": "Atualizações",
      "upgradeHint": "Como este nó rastreia versões do cliente.",
      "setVersion": "Alterar versão",
      "setVersionHint": "Escolha uma tag oficial do Docker para um cliente neste nó. O Compose é reescrito, puxado e reiniciado.",
      "setVersionConfirmTitle": "Alterar {{id}} para {{tag}}?",
      "setVersionConfirmDesc": "Reescreve a composição, extrai {{ref}} e reinicia o nó.",
      "setVersionC1": "O contêiner em execução é substituído pela tag selecionada.",
      "setVersionC2": "Digite o ID da instância para confirmar.",
      "setVersionMainnet": "Mainnet: uma versão ruim pode deixar o nó offline. Eu entendo.",
      "releaseNotes": "Notas de lançamento",
      "network": "Rede",
      "networkHint": "A troca de rede interrompe o nó e limpa os dados da cadeia. Confirme em Limpar dados primeiro.",
      "maintain": "Manutenção",
      "danger": "Limpar dados",
      "dangerHint": "Digite o ID da instância ou CLEAR. Isso exclui os dados da cadeia no disco.",
      "compose": "Compose",
      "logs": "Registros"
    },
    "state": {
      "unknown": "Desconhecido",
      "stopped": "Parou",
      "created": "Criado (nunca iniciado)",
      "missing": "Sem contêiner",
      "starting": "Começando",
      "rpc_wait": "Em execução – RPC não está pronto",
      "running": "Correndo",
      "syncing": "Sincronizando",
      "error": "Erro"
    }
  },
  "vnc": {
    "pageDesc": "Servidor e cliente VNC",
    "result": "Resultado da operação VNC",
    "installed": "Instalado",
    "notInstalled": "Não instalado",
    "stackBins": "{{bins}}",
    "stackMissing": "Ferramentas ausentes",
    "executeOn": "YSK_EXECUTE ativado",
    "executeOff": "YSK_EXECUTE desativado",
    "statAccounts": "Contas",
    "statRunning": "Correndo",
    "statClients": "Perfis de clientes",
    "statEndpoint": "Hospedar",
    "goAccounts": "Contas",
    "goClient": "Cliente",
    "goInstall": "Instalar",
    "accountsEmptyTitle": "Nenhuma conta",
    "accountsEmptyDesc": "Crie uma conta para começar",
    "clientPathHint": "Ambos os caminhos abrem o VNC no navegador. Eles diferem pela semântica de destino e pela cópia (ambos ainda proxy TCP por meio do painel).",
    "clientPathCompare": "“Acessível pelo usuário”: nomes de host públicos (por exemplo, hermes.example.com:5901). “Proxy de servidor”: alvos LAN/DC que somente este host pode alcançar. O TCP é investigado neste servidor antes da conexão.",
    "clientEmptyTitle": "Nenhum cliente",
    "clientEmptyDesc": "Adicionar host remoto:porta",
    "openInBrowser": "Abrir no navegador",
    "pathUserReachable": "Endpoint acessível pelo usuário",
    "pathServerProxy": "Via proxy do servidor",
    "pathUserReachableShort": "Acessível ao usuário",
    "pathServerProxyShort": "Proxy de servidor",
    "pathUserReachableHint": "Para nomes de host ou destinos públicos conforme configurado (por exemplo, example.com:5901). O navegador passa pelo painel; este host deve abrir o TCP para esse endereço.",
    "pathServerProxyHint": "Para LAN ou destinos, somente o servidor do plano de controle pode alcançar. O tráfego é proxy através da rede deste servidor. O host de conexão opcional substitui o endereço TCP (por exemplo, nome de exibição versus 10.x).",
    "connectHost": "Conecte o host (opcional, proxy do servidor)",
    "connectHostHint": "Endereço TCP que o plano de controle abre (LAN IP). Deixe em branco para usar o Host remoto acima.",
    "pathBrowser": "Endpoint acessível pelo usuário",
    "pathHostViewer": "Via proxy do servidor",
    "hostViewer": "Via proxy do servidor",
    "needViewerOptional": "TigerVNC Viewer (opcional, não para caminho do navegador)",
    "viewerStackOptional": "O VNC no navegador não precisa do vncviewer para desktop. O pacote Viewer abaixo é apenas opcional para manutenção do sistema.",
    "viewer": {
      "minting": "Preparando sessão…",
      "connecting": "Conectando…",
      "connected": "Conectado",
      "disconnected": "Desconectado",
      "error": "Falha na conexão",
      "idle": "Parado",
      "closed": "Fechado",
      "minting_state": "Preparando",
      "reconnect": "Reconectar",
      "disconnect": "Desconectar",
      "fullscreen": "Tela cheia",
      "fit": "Ajustar janela",
      "oneToOne": "1:1",
      "cad": "Ctrl+Alt+Del",
      "password": "Senha VNC",
      "passwordPrompt": "Senha obrigatória",
      "sendPassword": "Enviar senha",
      "securityFailure": "Falha na autenticação",
      "canvasLabel": "Área de trabalho VNC: {{name}}",
      "clipboardPaste": "Colar → remoto",
      "clipboardPanel": "Área de transferência",
      "clipboardHint": "Sincronize o texto entre este navegador e a área de trabalho remota.",
      "clipboardLocal": "Enviar para remoto",
      "clipboardLocalPh": "Cole ou digite o texto para enviar para a sessão VNC",
      "clipboardRemote": "Do controle remoto",
      "clipboardRemotePh": "O texto copiado na área de trabalho remota aparece aqui",
      "clipboardSend": "Enviar para remoto",
      "clipboardCopy": "Copiar localmente",
      "clipboardToRemote": "Área de transferência enviada para remoto",
      "clipboardToRemoteHint": "Cole a área de transferência do navegador na sessão remota",
      "clipboardFromRemote": "Área de transferência remota copiada para este navegador",
      "clipboardFromRemoteManual": "Área de transferência remota atualizada – abra o painel da área de transferência para copiar",
      "clipboardEmpty": "Nada para colar – copie o texto primeiro ou digite abaixo",
      "clipboardReadDenied": "Leitura da área de transferência bloqueada pelo navegador - cole no painel e envie",
      "clipboardNoRemote": "Nenhum texto recebido do controle remoto ainda",
      "clipboardCopiedLocal": "Copiado para este navegador",
      "quality": "Qualidade",
      "qualityHint": "Qualidade de imagem versus largura de banda (JPEG/compressão)",
      "qualityLow": "Baixo (salvar dados)",
      "qualityBalanced": "Equilibrado",
      "qualityHigh": "Alto",
      "qualityMax": "Qualidade máxima",
      "passwordPromptHint": "Esta área de trabalho requer uma senha VNC – insira-a abaixo.",
      "errNeedExecute": "Não é possível iniciar a área de trabalho: o servidor precisa de root e YSK_EXECUTE ativados.",
      "errTicket": "O ticket da sessão expirou ou é inválido — pressione Reconectar.",
      "errBusy": "Muitas sessões VNC neste painel. Feche outra e tente novamente.",
      "errRefused": "Nada está escutando em {{host}}:{{port}} (conexão recusada). O VNC está em execução e acessível a partir deste servidor?",
      "errRefusedGeneric": "Conexão recusada — verifique se o VNC está em execução e se a porta está correta.",
      "errTimeout": "Tempo limite de conexão com {{host}}:{{port}} expirou. Verifique o caminho do firewall/rede deste servidor.",
      "errTimeoutGeneric": "A conexão expirou — verifique a rede e o firewall.",
      "errDns": "Não é possível resolver o nome do host «{{host}}».",
      "errDnsGeneric": "O nome do host não pôde ser resolvido.",
      "errNet": "Rede inacessível para {{host}}:{{port}}.",
      "reconnecting": "Conexão interrompida — reconectando ({{n}}/{{max}})…",
      "idleHint": "A sessão ficou inativa por um tempo. A área de trabalho remota pode travar; mova o mouse ou reconecte, se necessário.",
      "idleDismiss": "Ainda aqui",
      "sessions": "Sessões VNC abertas",
      "sessionCount": "{{n}} / {{max}} sessões",
      "sessionLimit": "No máximo {{max}} sessões VNC de uma só vez — feche uma primeiro.",
      "closeSession": "Fechar sessão {{name}}",
      "shareLink": "Compartilhar link",
      "shareCopied": "Link de compartilhamento somente visualização copiado (válido por aproximadamente 1 hora)",
      "shareFailed": "Não foi possível criar o link de compartilhamento",
      "shareTitle": "Visualização VNC compartilhada",
      "shareGuest": "Área de trabalho compartilhada",
      "shareMissing": "Token de compartilhamento ausente",
      "shareExpired": "Este link de compartilhamento é inválido ou expirou",
      "viewOnlyBadge": "Somente visualizar",
      "screenshot": "Captura de tela",
      "screenshotSaved": "Captura de tela baixada",
      "screenshotFailed": "Não foi possível capturar a captura de tela",
      "screenshotNoCanvas": "A tela não está pronta para captura de tela",
      "record": "Registro",
      "recordStop": "Parar gravação",
      "recordHint": "Grave a área de trabalho no WebM (máx. 60s)",
      "recordStarted": "Gravando… clique em Parar gravação ou espere 60 segundos",
      "recordSaved": "Gravação baixada",
      "recordFailed": "Não foi possível gravar",
      "recordUnsupported": "Este navegador não pode gravar a tela",
      "connectingHint": "Abrindo um túnel seguro para a área de trabalho…",
      "reconnectHint": "Pressione Reconectar para tentar novamente ou verifique o host e a porta remotos."
    },
    "installHint": "TigerVNC → noVNC; XFCE opcional",
    "needTigerVnc": "TigerVNC necessário",
    "needXfceFirst": "Instale o XFCE primeiro",
    "needSessionRunning": "A sessão não está em execução – inicie-a primeiro",
    "needNovnc": "noVNC necessário",
    "needXfce": "XFCE (opcional)",
    "needViewer": "Visualizador (opcional)",
    "needViewerOrNovnc": "Visualizador ou noVNC",
    "settingsHint": "Padrões para novas contas",
    "settingsNeedStack": "Esses padrões se aplicam quando TigerVNC (e XFCE, se selecionado) estão instalados. Instale-os primeiro na guia Instalar.",
    "clientNeedNovnc": "Abrir no navegador precisa de noVNC. Instale-o na guia Instalar antes de adicionar controles remotos que você espera abrir aqui.",
    "defaultDesktop": "Área de trabalho padrão",
    "defaultGeometry": "Resolução padrão",
    "defaultDepth": "Profundidade de cor",
    "defaultRfbBind": "RFB ouça",
    "defaultAutostart": "Sessões de início automático",
    "autostartLabel": "Comece na inicialização",
    "settingsSaved": "Padrões VNC salvos",
    "tab": {
      "overview": "Visão geral",
      "accounts": "Contas",
      "client": "Cliente",
      "install": "Instalar",
      "settings": "Configurações",
      "about": "Sobre"
    },
    "desktop": {
      "xfce": "XFCE (área de trabalho completa)",
      "terminal": "terminal"
    },
    "bind": {
      "localhost": "Apenas localhost (noVNC/túnel)",
      "all": "Todas as interfaces (RFB direto — firewall aberto)",
      "localhostShort": "host local",
      "allShort": "0.0.0.0"
    },
    "accountListTitle": "Contas VNC ({{count}})",
    "accountListDesc": "Um usuário Linux por conta",
    "createAccount": "+ Criar conta",
    "createAccountTitle": "Criar conta VNC",
    "createAccountDesc": "Usuário yskvnc_* dedicado",
    "createAccountBtn": "Criar uma conta",
    "editAccountTitle": "Editar conta VNC",
    "editAccountDesc": "Usuário Linux {{user}} · exibição:{{display}}",
    "setPassword": "Senha",
    "setPasswordTitle": "Definir senha VNC",
    "setPasswordDesc": "Atualizar senha de login do VNC para {{address}}",
    "newPassword": "Nova Senha",
    "confirmPassword": "Confirme sua senha",
    "passwordHint": "Mínimo 6 caracteres",
    "passwordMismatch": "As senhas não coincidem",
    "passwordTooShort": "A senha deve ter pelo menos 6 caracteres",
    "needName": "Insira um nome de exibição",
    "start": "Começar",
    "stop": "Parar",
    "startAfterCreate": "Comece depois de criar",
    "hostnameBroken": "Este host não pode resolver seu próprio nome de host ({{hostname}}). O início da sessão falhará.",
    "hostnameBrokenIdle": "Hostname {{hostname}} does not resolve on this host. Fix /etc/hosts before you create a session.",
    "hostnameFix": "Escreva o nome do host em /etc/hosts",
    "hostnameFixTitle": "Anexe esta linha a /etc/hosts?",
    "hostnameFixDesc": "{{line}}",
    "hostnameFixDone": "Nome do host /etc/hosts atualizado",
    "startAfterCreateBlocked": "Desativado até que o nome do host seja resolvido",
    "startHostnameBlocked": "Não é possível iniciar até que este host consiga resolver seu nome de host. Use “Escrever nome do host em /etc/hosts”.",
    "colName": "Nome",
    "colLinuxUser": "Usuário Linux",
    "colDisplay": "Tela/porta",
    "colStatus": "Status",
    "colDesktop": "Área de trabalho",
    "colBind": "Vinculação da RFB",
    "accountStatus": {
      "running": "Correndo",
      "stopped": "Parou",
      "failed": "Fracassado",
      "written": "Escrito",
      "unknown": "Desconhecido"
    },
    "clientStatus": {
      "up": "Conectado",
      "down": "Desconectado",
      "unknown": "Desconhecido",
      "error": "Erro",
      "viewing": "Visualizando no navegador"
    },
    "accountPager": "Páginas da conta",
    "prevPage": "Anterior",
    "nextPage": "Próximo",
    "pageOf": "Página {{page}} / {{total}} · {{count}}",
    "deleteAccountTitle": "Excluir conta VNC?",
    "deleteAccountDesc": "Remova a conta do plano de controle {{name}} ({{user}}). A sessão será interrompida primeiro.",
    "deleteAccountC1": "Sessão VNC para esta exibição",
    "deleteAccountC2": "Metadados do painel em dataDir/vnc",
    "deleteAccountC3User": "A página inicial do usuário Linux será removida (userdel -r)",
    "deleteAccountC3Keep": "O usuário Linux será mantido no sistema",
    "removeLinuxUser": "Remova também o usuário do Linux e o diretório inicial",
    "deleteKeepUserWarn": "O usuário Linux permanecerá no host como órfão. Você deve limpá-lo mais tarde.",
    "bindRfbLine": "RFB {{bind}} :{{port}}",
    "bindNovncLine": "noVNC 127.0.0.1:{{port}}",
    "bindNovncHint": "noVNC escuta em localhost. A área de trabalho é acessada por meio deste painel, não pela Internet pública, a menos que a ligação RFB seja todas as interfaces.",
    "connection": "Conectar",
    "connectionTitle": "Materiais de conexão",
    "connectionDesc": "Como os clientes alcançam {{name}}",
    "connectionPathsHint": "Prefira abrir no navegador; opções avançadas para noVNC legado / RFB direto",
    "connectionBrowserHint": "Recomendado: abra a área de trabalho dentro deste painel (sem túnel SSH, funciona em qualquer navegador que possa acessar o painel).",
    "connectionBrowserDesc": "Inicia a sessão VNC, se necessário, e abre o visualizador no painel com teclado, mouse e área de transferência.",
    "connectionAdvanced": "Avançado: URL noVNC legado e RFB direto",
    "pathViaServer": "Via servidor (noVNC)",
    "pathViaServerLegacy": "NoVNC legado no servidor (127.0.0.1)",
    "pathViaServerLegacyHint": "Funciona apenas no host do servidor ou via túnel SSH — prefira “Abrir no navegador”.",
    "pathDirect": "RFB Direta",
    "recommended": "Recomendado",
    "startNovnc": "Iniciar noVNC",
    "stopNovnc": "Pare noVNC",
    "copyNovncUrl": "Copiar URL noVNC",
    "copyAddress": "Copiar host:porta",
    "openFirewall": "Abra a porta UFW",
    "directAddress": "Endereço",
    "ticketPath": "Ver API de tickets",
    "directLocalhostWarn": "RFB é apenas localhost",
    "copied": "Copiado para a área de transferência",
    "clientListTitle": "Perfis de clientes ({{count}})",
    "clientListDesc": "VNC de saída",
    "addClient": "+ Adicionar controle remoto",
    "addClientTitle": "Adicionar VNC remoto",
    "addClientDesc": "Host remoto:porta",
    "clientTarget": "Alvo",
    "clientPath": "Conectar caminho",
    "clientHost": "Anfitrião remoto",
    "pathViaServerShort": "Navegador",
    "pathDirectShort": "Visualizador do host",
    "disconnect": "Desconectar",
    "connect": "Conectar",
    "clientNeedFields": "Nome e host são obrigatórios",
    "clientCreated": "Perfil do cliente criado",
    "clientPasswordOptional": "Senha VNC (opcional)",
    "clientPasswordHint": "Usado quando você abre o visualizador do navegador. Deixe em branco para digitá-lo todas as vezes.",
    "clientRememberPassword": "Armazene a senha neste servidor para a próxima abertura",
    "clientRememberPasswordWarn": "A senha é armazenada no painel dataDir (legível pelo root). Prefira digitar sempre em hosts compartilhados.",
    "stackMissingShort": "Não instalado",
    "editClientTitle": "Editar cliente remoto",
    "editClientDesc": "Atualizar caminho, hosts e senha armazenada opcional.",
    "clientUpdated": "Perfil do cliente atualizado",
    "rememberNeedPassword": "Digite uma senha primeiro."
  },
  "vpn": {
    "pageDesc": "Servidor e cliente VPN",
    "eyebrow": "VPN",
    "tab": {
      "wireguard": "WireGuard",
      "openvpn": "OpenVPN",
      "outline": "Shadowsocks",
      "client": "Cliente local",
      "software": "Programas",
      "monitor": "Monitor",
      "about": "Sobre",
      "server": "Servidor",
      "install": "Instalar",
      "overview": "Visão geral"
    },
    "softwareIntro": "Instale ou atualize os mecanismos VPN aqui. As guias do servidor permanecem focadas na configuração.",
    "monitor": {
      "needLive": "As métricas ao vivo precisam de root + YSK_EXECUTE no servidor.",
      "autoRefresh": "Auto 3s",
      "filterEngine": "Filtro do motor",
      "filterPresence": "Filtro de presença",
      "engineAll": "Todos os motores",
      "presenceAll": "Todos",
      "presenceOnline": "On-line",
      "presenceOffline": "Off-line",
      "onlineOf": "On-line {{online}} / {{total}}",
      "peersTitle": "Pares ({{count}})",
      "localTitle": "Saída local",
      "colEndpoint": "Remoto",
      "colLastSeen": "Visto pela última vez",
      "colRx": "↓ Total",
      "colTx": "↑ Total",
      "colRxRate": "↓ Taxa",
      "colTxRate": "↑ Taxa",
      "sampledAt": "Amostrado {{when}}",
      "emptyPeers": "Não há pares para mostrar",
      "emptyPeersHint": "Adicione pares nas guias do mecanismo ou limpe filtros",
      "presence": {
        "online": "On-line",
        "idle": "Parado",
        "offline": "Off-line",
        "never": "Nunca",
        "unknown": "Desconhecido"
      }
    },
    "installed": "Instalado",
    "notInstalled": "Não instalado",
    "serverUp": "Correndo",
    "serverDown": "Parou",
    "engineSummary": "porta {{port}} · {{peers}} pares",
    "engineSummaryClient": "{{count}} perfis · {{up}} acima",
    "needWireGuard": "WireGuard necessário",
    "needOpenVpn": "OpenVPN necessário",
    "needSs": "servidor ss necessário",
    "ssHonestUi": "chaves de acesso ss:// (não o Outline Manager completo)",
    "listenPort": "Porta de escuta",
    "listenPortUdp": "Porta de escuta (UDP)",
    "listenPortTcp": "Porta de escuta (TCP)",
    "endpoint": "Ponto final público",
    "endpointHint": "Host público:porta que os clientes usam para se conectar",
    "ddnsFill": "Usar nome de host DDNS",
    "ddnsFilled": "Host de endpoint preenchido do DDNS. Os pares permanecem inalterados.",
    "ddnsFillEmpty": "Ainda não há nome de host primário DDNS. Adicione um na guia DNS DDNS.",
    "ensureServer": "Aplicar servidor",
    "openFirewall": "Abra {{port}}/{{proto}}",
    "presets": "Predefinições de porta",
    "portHint": {
      "51820": "Porta de escuta padrão do WireGuard",
      "51821": "Porta de escuta alternativa do WireGuard",
      "51822": "Segunda porta de escuta alternativa do WireGuard"
    },
    "proto": "Protocolo",
    "protoUdp": "UDP",
    "protoTcp": "TCP",
    "statusLine": "{{state}} · {{port}}/{{proto}} · {{peers}} pares",
    "peersTitle": "Pares/chaves",
    "peersTitleWg": "Pares",
    "peersTitleOvpn": "Configurações do cliente",
    "peersTitleSs": "Chaves de acesso",
    "peerName": "Nome",
    "peerNamePlaceholder": "telefone",
    "peerNameHint": "Letras, dígitos, . _ - — sem espaços, / ou !",
    "peerNameInvalid": "Espaços, / e ! não são permitidos. Use {{preview}} ou altere o nome.",
    "addPeer": "+ Adicionar",
    "installEngineFirst": "Instale o mecanismo VPN primeiro",
    "needServerRunning": "{{engine}} não está em execução — aplique o servidor primeiro",
    "engineSummarySoftware": "{{installed}} instalado · {{running}} em execução",
    "privateKeyOnce": "A chave privada do cliente é mostrada apenas aqui. Baixe ou copie agora – ele não poderá ser recuperado mais tarde.",
    "showPrivateKey": "Mostrar chave privada",
    "hidePrivateKey": "Ocultar chave privada",
    "deletePeerTitle": "Excluir par {{name}}?",
    "deletePeerDesc": "Remove {{name}} ({{address}}). The client disconnects immediately and the config cannot be restored.",
    "deleteClientTitle": "Excluir cliente OpenVPN {{name}}?",
    "deleteClientDesc": "Remova {{name}} ({{address}}). O cliente se desconecta imediatamente e o perfil não pode ser restaurado. O servidor OpenVPN permanece ativo.",
    "deleteKeyTitle": "Excluir chave Shadowsocks {{name}}?",
    "deleteKeyDesc": "Remova a chave de acesso {{name}} ({{address}}). Os clientes que usam esta chave se desconectam. O servidor Shadowsocks permanece ativo.",
    "deleteResult": "Removido {{name}}.",
    "portInvalid": "A porta de escuta deve ser um número inteiro de 1 a 65535.",
    "portRequired": "A porta de escuta é obrigatória.",
    "importInvalid": "Não foi possível detectar uma configuração de cliente WireGuard ou OpenVPN.",
    "qrFailed": "Não foi possível gerar um código QR para esta configuração. Baixe ou copie o texto.",
    "cfgTitle": "Configuração — {{name}}",
    "addPeerWg": "+ Adicionar par",
    "addPeerOvpn": "+ Adicionar cliente",
    "addPeerSs": "+ Adicionar chave",
    "noPeers": "Nenhum ainda",
    "noPeersHint": "Adicione um para baixar a configuração",
    "colName": "Nome",
    "colAddress": "Endereço",
    "colCreated": "Criado",
    "colActions": "Ações",
    "colEngine": "Motor",
    "colStatus": "Status",
    "colIface": "Interface",
    "downloadKey": "Download",
    "showQr": "QR",
    "copyConf": "Cópia",
    "copied": "Copiado",
    "downloaded": "Configuração baixada",
    "qrReady": "QR pronto",
    "qrTitle": "QR — {{name}}",
    "qrHintWg": "Digitalize no aplicativo WireGuard",
    "qrHintSs": "Digitalize ss:// em um cliente Shadowsocks",
    "showConf": "Texto de configuração",
    "close": "Fechar",
    "clientIntro": "Importe um arquivo conf para conectar este host",
    "profileName": "Nome do perfil",
    "pasteConf": "Colar conf",
    "importProfile": "Importar",
    "importOpen": "+ Importar conf",
    "noProfiles": "Nenhum perfil local",
    "noProfilesHint": "Importe a configuração do cliente WireGuard ou OpenVPN",
    "connect": "Conectar",
    "disconnect": "Desconectar",
    "clientStatus": {
      "up": "Conectado",
      "down": "Desconectado",
      "unknown": "Desconhecido",
      "error": "Erro"
    },
    "result": "Resultado",
    "clientEngine": "Tipo",
    "engineAuto": "Detecção automática",
    "refresh": "Atualizar",
    "dnsOptional": "DNS (opcional)",
    "serverSettings": "Configurações do servidor",
    "access": {
      "label": "Tráfego de clientes",
      "full": "Internet completa",
      "lan": "Somente LAN",
      "custom": "Rotas personalizadas",
      "fullHint": "Todo o tráfego do cliente passa por este servidor (habilita NAT). Reconecte os clientes após a aplicação.",
      "lanHint": "Apenas VPN + redes privadas selecionadas; cliente mantém sua própria internet. Reconecte após aplicar.",
      "customHint": "Somente os CIDRs listados entram no túnel. Reconecte após aplicar.",
      "lanCidrs": "Redes LAN",
      "customCidr": "CIDR",
      "addCidr": "Adicionar",
      "cidrRequired": "Insira um CIDR (por exemplo 192.168.1.0/24).",
      "cidrInvalid": "Insira um CIDR válido, por exemplo 192.168.1.0/24."
    },
    "engineNotInstalled": "Este motor VPN não está instalado no anfitrião.",
    "serverNotListening": "A unidade do servidor não está ativa. UDP/TCP {{port}} pode estar fechado."
  }
}
