- base mailto hote courant via Host header (http pour .onion, https sinon) :
canonical/hreflang restent sur le domaine actuel, plus de fuite vers le Funnel
- meta refresh rendu relatif et différé à 1.5s pour laisser le JS choisir la langue
- localStorage isolé dans son propre try/catch : la détection navigator s'exécute
même quand le stockage est bloqué (Tor), plus de Français systématique
- page-redirect sur / et tous les chemins sans préfixe : localStorage zektyc-lang
puis navigator.language, défaut fr ; fallback FR si la page n'a pas de version EN
- /en/ sert enfin la home EN (public/en/), fix de LANG_ROUTES.en
- home EN générée à partir d'i18n.json (ld+json Organization/FAQPage valides)
- i18n.js/components.js : switch de langue par préfixe + liens préfixés
- anciennes URLs /zmap/en/* : 301 vers /en/zmap/* ; pages EN zmap déplacées
vers le layout <page>/en/ standard
- canonicals/hreflang fr-en-x-default sur toutes les pages statiques + sitemaps
(équipe, zmap, archives, vitesses-par-route ajoutées) ; suppression du domaine
obsolète zektyc.duckdns.org (robots, sitemap index, security.txt)
Suppression des clés i18n jamais utilisées `run` et `finalRun`
(fr/en). Id fantôme `ft-hero` référé en JS mais absent du HTML :
l'id est ajouté aux 2 pages pour que le héros se masque bien en fin
d'analyse multi-passes (répair du comportement prévu). Cache v14→v15.
Le monochrome noir/blanc type « template IA » est remplacé par une
identité plus humaine : papier chaud (#faf8f3) / encre (#201b14), un
accent rouille unique (cohérent avec les tags ambre existants), serif
éditorial pour les titres (sans webfont externe), hero sans grille
technique (halo chaud organique) et micro-labels dé-shoutés (héros,
contact, team) sans uppercase ni letter-spacing agressif. Les blocs
team/tor qui codaient du blanc en dur passent sur les variables (ils
cassaient en thème clair). Cache style.css v7→v8 sur les 21 pages.
Avant: «Premier projet Zektyc · 100 % côté client» / «First Zektyc
project · 100% client-side» — auto-promotion + jargon qui sent l'IA.
Après: «Rien ne quitte votre navigateur» / «Nothing leaves your
browser» — promesse claire et humaine, dans les 2 langues.