#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": "Session expired or unauthorized",
"forbidden": "Access forbidden for this account surface",
"serverError": "Internal server error occurred"
},
"ui": {
"accountStatus": "Account Status",
"actions": "Actions",
"active": "ACTIVE",
"activeSessions": "Active Webmail Sessions",
"actor": "Actor / Account",
"actualRecord": "Actual DNS Record (Cloudflare)",
"allChecksPassed": "ALL CHECKS PASSED",
"appPasswordGenerated": "App Password Generated:",
"appPasswordsSection": "App Passwords (IMAP / SMTP Clients)",
"attempts": "Attempts",
"clientIp": "Client IP",
"copyPasswordNow": "Copy this password now. It will not be shown again.",
"coreInfra": "Core Infrastructure Status",
"currentSession": "Current Webmail Browser Session",
"daneVerified": "DANE / MTA-STS verified",
"destination": "Destination",
"diskUsed": "Disk Capacity Used",
"dkimResult": "DKIM Result",
"dkimAlignment": "DKIM Signature Alignment",
"dmarcEnforcement": "DMARC Policy Enforcement",
"domainVerification": "Domain Verification Status",
"emailAddress": "Email Address",
"eventAction": "Event Action",
"expectedValue": "Expected Specification Value",
"healthy": "HEALTHY",
"imapEngine": "IMAP Protocol Engine (143/993)",
"inboundVolume": "Inbound Volume (24h)",
"jobId": "Job ID",
"lastError": "Last Error",
"liveMetrics": "Live operational metrics for LambdaMail mail node.",
"localDisk": "Local disk storage driver",
"preflightTitle": "Mail Server Preflight Diagnostics",
"messageBody": "Message Body",
"messageVolume": "Message Volume",
"noAppPasswords": "No app passwords generated yet.",
"online": "ONLINE",
"outboundDelivered": "Outbound Delivered (24h)",
"queueDepth": "Outbound Queue Depth",
"postgresRunner": "Postgres job runner active",
"provisionMailbox": "Provision New Mailbox Account",
"recipient": "Recipient",
"recordName": "Record Name",
"reportingOrg": "Reporting Organization",
"scanners": "Rspamd Anti-Spam Scanner & ClamAV",
"sender": "Sender",
"smtpListener": "SMTP Protocols Listener (25/587/465)",
"sourceIp": "Source IP",
"spfRatio": "SPF Alignment Pass Ratio",
"spfResult": "SPF Result",
"storageQuota": "Storage Quota",
"subject": "Subject",
"targetObject": "Target Object",
"timestamp": "Timestamp",
"toRecipients": "To (Recipients)",
"totalEvaluated": "Total Evaluated Messages",
"twoFactorSection": "Two-Factor Authentication (TOTP RFC 6238)",
"watching": "WATCHING"
}
}