+1
−13
Loading
Audit du dictionnaire (apps/web/src/i18n.tsx) contre l'ensemble des appels t() de apps/web, puis correction. Aucun changement de comportement : le dictionnaire seul est touché. Ajout - « Découverte » : seule chaîne réellement manquante sur une surface publique (l'aparté de découverte de la page de connexion). Les 42 autres clés absentes appartiennent toutes à la console d'animation, qui reste en français par convention — hors périmètre. Retraits (12 entrées inatteignables) - Quatre libellés du démarrage automatique, devenus faux depuis que les joueurs lancent eux-mêmes leur exercice (« L'exercice démarre à la première ouverture… », « Ouvrez un rôle pour commencer… »). - Huit reliquats de formulations remplacées (« Connexion animateur », « Découvrir la plateforme », « Installation… », etc.). Chaque retrait a été vérifié par grep littéral sur apps/web : aucune de ces chaînes n'est plus produite, ni en dur ni par une table de libellés. Ce qui a été délibérément CONSERVÉ - 56 entrées absentes des appels t() littéraux mais résolues dynamiquement — tables de libellés d'énumérations (« Alerte », « Décision », « Brouillon »…). Les supprimer aurait été une régression : ces clés arrivent par variable, pas par littéral. - Trois entrées identiques en français et en anglais, légitimes : « Export CSV », « Export JSON », « Antivirus / EDR ». Vérifications - 702 entrées, 0 clé manquante sur les surfaces joueur et publiques, 0 entrée morte, 0 chaîne française non encapsulée sur ces surfaces. - eslint, typecheck api et web, 180 tests / 20 suites : verts. - Rendu contrôlé en anglais dans le navigateur sur /decouverte et dans l'espace joueur (briefing, onglets, bandeaux). Le français qui subsiste y est du CONTENU de kit (nom d'exercice, personnages), pas de l'interface : un kit est écrit dans une langue, ce n'est pas le rôle de cette couche. Co-Authored-By: Claude (RCA)