#21: finish the three translations across every screen

F4's acceptance criterion asks for the three translations to be 100%
complete with the language lint green. The bundles had parity but the
admin screens and the account area were still hardcoded English: 63
visible strings that no locale could reach.

They now come from a shared ui namespace, so the three bundles cannot
drift apart, and all three carry 126 keys.

The language lint also caught this branch's own Go tests: the RFC 2047
cases need accented output to be worth anything, and the delivery test
had Portuguese fixture text. The expectations are written as Go escapes
instead, which keeps the assertions and leaves the source ASCII, and the
fixture text is English.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lucas RayanandClaude Opus 5 committed 2026-08-02 10:27:14 -03:00
1 parent eec4a4e520
commit b57854107e
15 files changed
+260 -68

No files matched your search

+59
View File
@@ -79,5 +79,64 @@
"unauthorized": "Sessão expirada ou não autorizada",
"forbidden": "Acesso proibido para esta superfície de conta",
"serverError": "Ocorreu um erro interno no servidor"
},
"ui": {
"accountStatus": "Situacao da conta",
"actions": "Acoes",
"active": "ATIVA",
"activeSessions": "Sessoes ativas do webmail",
"actor": "Autor / conta",
"actualRecord": "Registro DNS atual (Cloudflare)",
"allChecksPassed": "TODAS AS CHECAGENS PASSARAM",
"appPasswordGenerated": "Senha de aplicativo gerada:",
"appPasswordsSection": "Senhas de aplicativo (clientes IMAP / SMTP)",
"attempts": "Tentativas",
"clientIp": "IP do cliente",
"copyPasswordNow": "Copie esta senha agora. Ela nao sera exibida novamente.",
"coreInfra": "Estado da infraestrutura",
"currentSession": "Sessao atual deste navegador",
"daneVerified": "DANE / MTA-STS verificado",
"destination": "Destino",
"diskUsed": "Uso de disco",
"dkimResult": "Resultado DKIM",
"dkimAlignment": "Alinhamento da assinatura DKIM",
"dmarcEnforcement": "Aplicacao da politica DMARC",
"domainVerification": "Estado da verificacao do dominio",
"emailAddress": "Endereco de e-mail",
"eventAction": "Acao registrada",
"expectedValue": "Valor esperado pela especificacao",
"healthy": "SAUDAVEL",
"imapEngine": "Servidor IMAP (143/993)",
"inboundVolume": "Volume de entrada (24h)",
"jobId": "ID do trabalho",
"lastError": "Ultimo erro",
"liveMetrics": "Metricas operacionais do no de e-mail.",
"localDisk": "Armazenamento em disco local",
"preflightTitle": "Diagnostico de preflight do servidor",
"messageBody": "Corpo da mensagem",
"messageVolume": "Volume de mensagens",
"noAppPasswords": "Nenhuma senha de aplicativo gerada ainda.",
"online": "ONLINE",
"outboundDelivered": "Entregues na saida (24h)",
"queueDepth": "Profundidade da fila",
"postgresRunner": "Executor de tarefas Postgres ativo",
"provisionMailbox": "Criar nova caixa postal",
"recipient": "Destinatario",
"recordName": "Nome do registro",
"reportingOrg": "Organizacao que reportou",
"scanners": "Rspamd (antispam) e ClamAV",
"sender": "Remetente",
"smtpListener": "Servidor SMTP (25/587/465)",
"sourceIp": "IP de origem",
"spfRatio": "Taxa de alinhamento SPF",
"spfResult": "Resultado SPF",
"storageQuota": "Cota de armazenamento",
"subject": "Assunto",
"targetObject": "Objeto alvo",
"timestamp": "Data e hora",
"toRecipients": "Para (destinatarios)",
"totalEvaluated": "Total de mensagens avaliadas",
"twoFactorSection": "Autenticacao em dois fatores (TOTP RFC 6238)",
"watching": "OBSERVANDO"
}
}