website refresh: true numbers (56 apps), claims checked against the capability map, ten missing apps, an English twin of every public page (public, choice B), 404 page; site gates 13-18 + 11 decoys; R-902 opened
gates / gates (push) Failing after 13m1s
gates / gates (push) Failing after 13m1s
Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube, radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins, nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11, §10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
This commit is contained in:
@@ -631,7 +631,8 @@ pairing banner is **24 rows on a 25-row console** — one row of margin, which i
|
||||
pinned: two more lines and the Hungarian pairing code, at row 5, scrolls off the top.
|
||||
|
||||
**The download page has an English twin** at `felhom.eu/en/download`, linked both ways with
|
||||
`hreflang`. The rest of the marketing site stays Hungarian (ruling 1b). A site gate refuses the two
|
||||
`hreflang`. The rest of the marketing site stayed Hungarian (ruling 1b) until 2026-10-08, when ruling 9 (§11) gave
|
||||
every public page an English twin (§10.7). A site gate refuses the two
|
||||
pages naming different installer files or checksums.
|
||||
|
||||
**The release gate had to be amended.** G16 required every Felhom-authored string to be Hungarian and
|
||||
@@ -820,6 +821,52 @@ either state would mean un-assigning a live box's backup target. They are covere
|
||||
through the real handler. **The next English walk on a one-drive machine is what actually closes
|
||||
that**, and it is the same walk R-516 is waiting for in the other language.
|
||||
|
||||
### 10.7 The website (2026-10-08, operator rulings 9 and 10, §11)
|
||||
|
||||
**[DESIGN] Every public page has an English twin under `/en/`; the Hungarian page stays the default
|
||||
(`x-default`).** The map: `/` → `/en/`, `/alkalmazasok` → `/en/apps`, `/technologiak` → `/en/technology`,
|
||||
`/biztonsagimentes` → `/en/backups`, `/gyik` → `/en/faq`, `/kapcsolat` → `/en/contact`, `/letoltes` →
|
||||
`/en/download`. No twin, by name: the hidden prices page and `404.html` (Hungarian first, one English line).
|
||||
Section anchors are English on the English page (`#apps`, not `#alkalmazasok`).
|
||||
|
||||
**[DESIGN] The switch is a link, not a redirect.** Each page carries one nav item naming the other language in
|
||||
that language („English" / „Magyar"), pointing at its own twin, with `lang` and `hreflang`. No Accept-Language
|
||||
redirect, no cookie: a visitor lands on the page they asked for — the same reasoning as §3, where a household's
|
||||
choice lives in its own setting and a stranger's in their own browser.
|
||||
|
||||
**[DESIGN] One voice per language, borrowed rather than invented.** App texts reuse the catalog's `i18n.en`
|
||||
(§7) where the card says what the catalog says; the product nouns are the dashboard's (Dashboard, Launcher,
|
||||
Backup — ruling 7); no „please"/„kindly" (§5); prices stay in Ft. **The English promises nothing the
|
||||
Hungarian does not**, and every English page says once — in the shared footer — that Felhom serves households
|
||||
in Hungary.
|
||||
|
||||
**[FACT] The twins are built from the final Hungarian page by exact replacement** (every Hungarian string of the
|
||||
page replaced by its English, each replacement asserted to match), so a pair keeps one structure. The scripts
|
||||
are kept with the evidence: `documentation/audits/website-refresh-2026-10-08/tools/`.
|
||||
|
||||
**[FACT] The gate** (`scripts/site_gates.py`, gates 3 and 13–18): nav and footer per language set; twins both
|
||||
ways with matching alternates, switch target and canonical; `lang` per set; the same apps on both apps pages;
|
||||
no Hungarian on an English page — accent scan plus ASCII-folded stems (the §7 lesson: an accent-only scan
|
||||
passes „Kapcsolat"), with a positive and a negative control printed each run, over visible text, attributes,
|
||||
JSON-LD and the inline scripts' string literals; an English retrieval promise may not outnumber the
|
||||
Hungarian twin's (`customer_copy_vocab.py`); the FAQ JSON-LD equals the visible answers. Eleven decoys in
|
||||
`scripts/test_gate_decoys.py`, each required to convict with its own failure line.
|
||||
|
||||
**[FACT] What stays Hungarian for an English visitor:** the contact mailer's notification to the operator (it
|
||||
sends nothing to the visitor — read from the running image, its source is in no repository: R-902); the
|
||||
English form's subject labels carry „(EN)" so the operator sees which page a message came from.
|
||||
|
||||
## 11. Operator decisions
|
||||
|
||||
These are rulings, not proposals. Anything specced against a different assumption is wrong.
|
||||
|
||||
### 2026-10-08 — the whole public website gets an English twin
|
||||
|
||||
9. **The whole public website gets an English twin** (operator ruling 2026-10-08, given with the website-refresh
|
||||
brief). This **replaces the part of ruling 1b (2026-09-17) that said "the rest of the marketing site stays
|
||||
Hungarian"**; the console-banner and download-page half of 1b is unchanged. The Hungarian site stays the default
|
||||
(`x-default`). The hidden prices page (`szolgaltatasok-nonpublic.html`) gets no twin. Design: §10.7.
|
||||
10. **The English pages go public at once — choice B of the brief** (operator, 2026-10-08: "the english pages can go
|
||||
live immediately"): indexed, in `sitemap.xml` with `xhtml:link` alternates, and a language switch in the nav of
|
||||
every page in both languages. No Accept-Language redirect and no cookie: a visitor always lands on the page they
|
||||
asked for.
|
||||
|
||||
Reference in New Issue
Block a user