Skip to content

test(i18n): garde anti-chaînes-en-dur + fuites carte EN (E10-1, #162) - #170

Merged
decarvalhoe merged 1 commit into
developfrom
feature/e10-1-i18n-guard
Jul 2, 2026
Merged

test(i18n): garde anti-chaînes-en-dur + fuites carte EN (E10-1, #162)#170
decarvalhoe merged 1 commit into
developfrom
feature/e10-1-i18n-guard

Conversation

@decarvalhoe

Copy link
Copy Markdown
Owner

Ferme #162. Le trou racine : l'audit précédent regardait le rendu, pas la source — des title/aria-label et des tables de clés-source (DEFAULT_NOTE) restaient en français, dont la carte EN (« tu es ici / verrouillé »).

Garde automatisée (tests/game/i18n-guard.test.mjs)

Deux volets, ancrés sur le pack EN comme registre du traduisible :

  1. Aucune prose en dur : un littéral rendu (valeur d'une prop non structurelle) doit être une clé enregistrée du pack EN.
  2. Aucune clé t() orpheline : toute clé passée à t('…') doit exister dans le pack (sinon l'anglais retombe silencieusement sur le français).

Négativement testée : injecter une chaîne en dur fait échouer la garde.

Fuites réelles corrigées

  • Carte : DEFAULT_NOTE = { solved:'résolu', current:'tu es ici', locked:'verrouillé' } → routé par t() + clés EN.
  • Programme : title/aria-label « monter / descendre / retirer ».
  • « ta libft », « n° », labels octets/pile : déjà traduits mais non routés par t().

Non-régression visuelle

Nouvel écran en-carte (carte rendue en EN) : invariant structurel « you are here présent, tu es ici/verrouillé absents ».

655 tests (+34), 9 écrans visuels, lint OK.

…0-1, #162)

Ferme le trou qui laissait passer les oublis de traduction. La garde
tests/game/i18n-guard.test.mjs scanne les vues et échoue si :
- un littéral de « prose » rendu (valeur d'une prop non structurelle) n'est
  pas une clé enregistrée du pack EN ;
- une clé passée à t('…') n'existe pas dans le pack (fuite silencieuse FR en EN).

Fuites réelles corrigées, invisibles à l'audit précédent (title/aria-label,
tables de clés-source) :
- carte : « tu es ici / verrouillé / résolu » (DEFAULT_NOTE) restaient en FR ;
- programme : title/aria-label « monter/descendre/retirer » ;
- « ta libft », « n° », labels octets/pile déjà traduits mais non routés par t().

Nouvel écran visuel en-carte (carte en EN) : verrouille la non-régression de
la fuite signalée. 655 tests (+34), 9 écrans visuels.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@decarvalhoe
decarvalhoe merged commit 8f1f62a into develop Jul 2, 2026
2 checks passed
@decarvalhoe
decarvalhoe deleted the feature/e10-1-i18n-guard branch July 2, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants