v0.259.0 — the claim page and the backup warnings answer in the reader's language (R-596, R-598)
gates / gates (push) Successful in 28s

The 2026-09-20 English drill ended one screen short: the claim page was English
and its answers were Hungarian, so a household who mistyped the code from their
e-mail could not tell a typo from a dead code. Fourteen call sites carrying nine
messages now go through s.msg; the backup page's two protection warnings — which
are promises about whether the customer's files are safe — follow the same route.

Hungarian is byte-identical, proved structurally by the go-parity gate against the
frozen base capture and red-proofed on a single added full stop.

data["Title"] was DEAD (claim.html is standalone; .Title is layout.html's) and is
deleted rather than translated — a translated dead field is a permanent false
signal about where the page's title comes from.

Six existing copy-contract tests were kept, not weakened: each now resolves its key
through the real bundle, so it still convicts on a reworded Hungarian sentence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-21 07:45:56 +02:00
parent f6909492cc
commit 0fe04bb6d5
15 changed files with 736 additions and 143 deletions
+24 -1
View File
@@ -2307,5 +2307,28 @@
"alert.agent_channel.unknown": "The storage agent cannot be reached.",
"alert.endpoint_drift": "The storage agent's address in the settings is out of date.",
"badge.update.behind.days.one": " — %d day ago",
"badge.update.behind.days.other": " — %d days ago"
"badge.update.behind.days.other": " — %d days ago",
"claim.msg.state_unreadable": "The setup state cannot be read right now — try again in a few minutes.",
"claim.msg.invalid_form": "Invalid form — reload the page.",
"claim.msg.too_many": "Too many attempts — try again in 15 minutes.",
"claim.msg.no_active_code": "No active code — request a new one with the button below.",
"claim.msg.bad_code": "Wrong or expired code",
"claim.msg.password_too_short": "The password must be at least %d characters long",
"claim.msg.password_mismatch": "The two passwords do not match",
"claim.msg.save_failed": "Internal error while saving the password",
"claim.msg.code_sent": "If the e-mail address is registered, we have sent the code.",
"backup.target.degraded": "The system backup is currently on the same disk as the system — so it protects against corrupted files, but not against a disk failure. Attach a second drive for full protection.",
"backup.target.offer": "You can choose this drive as the place for the system backup — then you can restore the system even after a disk failure.",
"backup.target.absent": "The drive for the system backup cannot be reached — until you reconnect it, the full system backup is not made.",
"backup.target.err.bad_request": "invalid request",
"backup.target.err.missing_drive": "missing drive",
"backup.target.err.agent_unreachable": "the host agent cannot be reached",
"backup.target.err.assign_failed": "setting the backup target failed: ",
"backup.tier.pbs": "Backup server – separate hardware (PBS)",
"backup.tier.local": "Local storage (%s)",
"backup.tier.local_plain": "Local storage",
"backup.guest.agent_unconfigured": "The host agent is not configured on this machine.",
"backup.guest.agent_unreachable": "The host agent cannot be reached at the moment.",
"backup.guest.err.unavailable": "the system backup is not available on this machine",
"backup.guest.err.in_progress": "a backup is already running"
}