Files
felhom.eu/documentation/audits/i18n-slice5-2026-09-20
admin 8e9401c6bf
gates / gates (push) Successful in 27s
Localisation slice 5 CLOSED: the catalog speaks English and the floor is at 0.257.0
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
2026-09-20 16:40:59 +02:00
..

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:

  1. the language picker's own „Magyar" button — a picker names each language in its own tongue;
  2. the update badge „Naprakész" and its tooltip — R-589;
  3. 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.