fix(i18n): 104 clés jamais localisées + garde-fou usage→locales en CI #19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/i18n-cles-manquantes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
i18n : le changement de langue redevient effectif partout
Bug signalé par Kevin : changer la langue laissait l'onglet Conscience (et d'autres panneaux) en FR. Le switch était sain — le contenu retombait en FR par trois trous :
fr/*.json→ leur fallback inline (FR) s'affichait dans les 24 langues. Conscience 46 (toutes les tuiles des instruments : cohérence, calibration, Brier, modèle de toi, valence, fidélité, carte), settings 21 (thème custom), adminroles 15, kb 10, core 7, agentsettings 4, chat/valkyrie 1+1.adminroles.groups.curator[.tooltip]→ tooltip renommécuratorTooltip(i18next ne peut pas résoudre les deux).Fix
105 clés ajoutées au FR (pluriels
_one/_otherpour les compteurs) + 2937 traductions mergées dans les 23 autres langues (6 traducteurs parallèles, merger déterministe fail-closed : placeholders vérifiés, aucune traduction existante modifiée — vérifié par diff structurel).La jauge était aveugle par construction
i18n-coverage.mjscompare les locales au FR déclaré — une clé jamais entrée dans le FR lui est invisible. Nouveau garde-foui18n-usage-check.mjs: extrait lest('ns.key')du source et exige chaque clé dans chaque langue officielle (pluriels gérés, ressources inline d'index.tsincluses, préfixes dynamiques signalés) + job CI dédié (node:20) qui échoue sur toute récidive.Vérifié : usage-check 3262 clés × 24 langues ✓ · coverage 3853 clés, 24/24 à 100 % ✓ ·
tsc0 erreur.🤖 Generated with Claude Code
Bug signalé par Kevin (07-15) : changer la langue laissait l'onglet Conscience (et d'autres panneaux) en français. Le switch lui-même était sain — le contenu retombait en FR par trois étages de fallback : 1. 104 clés utilisées dans le code (t('ns.key', 'fallback FR')) jamais entrées dans fr/*.json → le fallback inline s'affichait dans les 24 langues. Touchés : conscience 46 (toutes les tuiles des instruments), settings 21 (thème custom), adminroles 15, kb 10, core 7, agentsettings 4, chat/valkyrie 1+1. 2. 32 clés du kit inline (nav, titres Réglages, common) jamais complétées dans 22 langues (dette 18-32 selon la langue). 3. Conflit feuille/nœud adminroles.groups.curator[.tooltip] → tooltip renommé en clé sœur curatorTooltip (i18next ne peut pas résoudre les deux). Fix : 105 clés ajoutées au FR (pluriels _one/_other pour les compteurs), 2937 traductions mergées dans les 23 autres langues (6 traducteurs parallèles, merger déterministe : placeholders vérifiés, fail-closed). LA JAUGE ÉTAIT AVEUGLE PAR CONSTRUCTION : i18n-coverage.mjs compare les locales au FR déclaré — une clé jamais entrée dans fr/*.json lui est invisible. Nouveau garde-fou i18n-usage-check.mjs : extrait les t() du source et exige chaque clé dans CHAQUE langue officielle (pluriels gérés, ressources inline incluses, préfixes dynamiques signalés) + job CI dédié (node:20) qui échoue sur toute récidive. Vérifié : usage-check 3262 clés × 24 langues ✓ ; coverage 3853 clés 100 % 24/24 ✓ ; tsc 0 erreur. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>