Part C shipped the same day the pilot was read: fifty apps in three pushes, 1 031 of 1 032 strings. The English Apps list shows ZERO Hungarian app descriptions across all 53 apps — the only Hungarian left on it is the "Naprakész" badge (R-589) and the language picker naming itself, which is correct. The Hungarian Apps list is identical to the pre-slice capture once the per-session CSRF token AND Docker's own "Up N hours" container string are normalised. Both normalisations are stated in the evidence rather than applied quietly — the second one moved because two hours of wall clock passed between captures, not because any copy changed. Fleet floor raised to 0.257.0 with the declared MinAgent 0.131.0, above the vouched golden so the declaration carries it. demo-felhom went 0.255.0 -> 0.257.0 by itself in under 12 seconds and THEN rendered the English tagline: the floor delivered the feature, not a version string. Rows: R-593 (papra describes a session-signing key as "the app's subdomain" — the one string left untranslated) and R-594 (the catalog gate can convict a retrieval promise but has no way to REGISTER a true one, which the shared vocabulary's design calls for). R-560 closed. 281 -> 287 rows. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
Localisation slice 5 — the app catalog's own words (R-560), 2026-09-20
Controller v0.257.0 (the read path) + the catalog pilot, then — after the operator read the pilot and said go — all fifty remaining apps in three batches, and then the fleet floor raised to 0.257.0. 1 031 of the catalog's 1 032 customer-facing strings are English.
Method: endpoint-level. No browser is available on DooPlex, so every page below was fetched with
curl from inside the guest at the controller's container address, with the customer Host header
and a real logged-in session — the same handlers and the same templates the browser drives, with only
the rendering skipped. Said plainly because a claim of "the page shows X" has to name how it was seen.
What is here
| path | what |
|---|---|
B/live/cap-before/ |
demo-hp guest 9201 on 0.257.0, BEFORE the pilot push — 7 pages × hu/en |
B/live/cap-after/ |
the same 7 pages × hu/en AFTER the push and a forced template sync |
B/old-controller/old-before/ |
demo-felhom guest 9201 on 0.255.0, before the block reached it |
B/old-controller/old-after/ |
the same, after the block reached it (sync confirmed positively) |
B/hungarian-parity.txt |
the before/after comparison of every Hungarian page |
B/english-leftovers.txt |
the accent + ASCII-folded scan of every English page, with its controls |
C1/b1-before/, C1/b1-after/ |
four batch-1 apps × hu/en, around that push's sync |
C3/final/, C3/final2/ |
after the LAST batch: the whole Apps list in both languages, and five batch-3 apps |
Part C, and the floor
The English Apps list shows ZERO Hungarian app descriptions, across all 53 apps (C3/final/).
The only Hungarian on that page is the „Naprakész" update badge (R-589, ten occurrences) and the
language picker naming itself, which is correct — a picker names each language in its own tongue.
The Hungarian Apps list is identical to the pre-slice capture, once two things are normalised: the per-session CSRF token, and Docker's own „Up N hours" container-status string, which moved because two hours of wall clock passed between the captures. Nothing else differs. Both normalisations are stated here rather than applied quietly.
The floor was raised to 0.257.0 with min_agent 0.131.0 declared — above the vouched golden
0.246.0, so the declaration is what carries it. Hub log: managed floor SERVED for demo-felhom: floor 0.257.0, agent requirement "0.131.0" from declared (golden 0.246.0). demo-felhom went
0.255.0 → 0.257.0 by itself in under 12 seconds, healthy, settle-gate: GO — at/above floor 0.257.0, and then rendered the English tagline. Peti's box and tester-1 are DOWN and take it
unattended when they return.
The three results of the pilot phase
1. The English pages show the English catalog text. privatebin's tagline, use cases and first
steps, paperless-ngx's select options and folder label, romm's optional-config group — all English on
?lang=en.
2. The Hungarian did not move. All seven Hungarian pages are byte-identical before and after the
push apart from the per-session CSRF token. Equal raw byte counts, equal hashes once the token is
normalised. That is §1 of architecture/10-localisation.md, measured rather than read.
3. An older controller ignores the block. demo-felhom runs 0.255.0. Its pages hash identically before and after, and its log shows no parse warning — in a 93-line window that contains the sync's own lines, so the absence is evidence and not a dead log.
What is still Hungarian on an English app page
Three things, and the first is correct:
- the language picker's own „Magyar" button — a picker names each language in its own tongue;
- the update badge „Naprakész" and its tooltip — R-589;
- the data-folder card's consequence sentence — R-590, the one that makes a promise about files.
The Apps LIST also shows fifty Hungarian descriptions: those are the apps nobody has translated yet.
What was NOT proven here
Whether an app's "first steps" name the buttons that app's English interface actually shows. No
gate and no endpoint can answer that; it needs somebody to open the app. The lines are listed per app
in app-catalog-felhom.eu/REPORT.md under "unverified UI labels" and belong to the slice-6 walk
(R-561).
Teardown
Nothing was installed or removed on either box. Three template files changed on both (the catalog
sync), which is what the sync does. The staged password file and the capture scripts were shredded
from both Proxmox hosts and both guests; ls confirms they are gone. Both boxes were left on
Hungarian.