From a8bf356d208166229b7e680d120560b9c02487db Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Sun, 7 Jun 2026 00:51:12 +0200 Subject: [PATCH] Fix: Add missing i18n EFFECT keys to lang/fr.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added missing localization keys for ActiveEffect management: - createError: Erreur lors de la création de l'effet - deleteError: Erreur lors de la suppression de l'effet - applyError: Erreur lors de l'application de l'effet - applyItemError: Erreur lors de l'application de l'effet sur l'item - selectActor: Sélectionnez un acteur pour appliquer l'effet - toggleError: Erreur lors de l'activation/désactivation de l'effet Added test verification for EFFECT i18n keys Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- lang/fr.json | 6 ++++++ test-templates.js | 38 +++++++++++++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index ea23e31..6a2b624 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -78,7 +78,13 @@ "delete": "Supprimer l'effet", "deleteConfirm": "Supprimer l'effet", "deleteConfirmText": "Êtes-vous sûr de vouloir supprimer cet effet ?", + "deleteError": "Erreur lors de la suppression de l'effet", "create": "Créer un effet", + "createError": "Erreur lors de la création de l'effet", + "applyError": "Erreur lors de l'application de l'effet", + "applyItemError": "Erreur lors de l'application de l'effet sur l'item", + "selectActor": "Sélectionnez un acteur pour appliquer l'effet", + "toggleError": "Erreur lors de l'activation/désactivation de l'effet", "name": "Nom de l'effet", "icon": "Icône", "description": "Description", diff --git a/test-templates.js b/test-templates.js index a161a46..d78f34f 100644 --- a/test-templates.js +++ b/test-templates.js @@ -191,8 +191,39 @@ if (!durationTypeFound) { console.log(' ✅ Aucune utilisation de duration.type (utilise duration.units)'); } -// 8. Vérification de l'utilisation du helper subtract -console.log('\n8. Vérification de l\'utilisation du helper subtract :'); +// 8. Vérification des clés i18n EFFECT dans lang/fr.json +console.log('\n8. Vérification des clés i18n EFFECT :'); +const frJson = require('./lang/fr.json'); +const effectKeys = Object.keys(frJson.EFFECT || {}); + +const requiredEffectKeys = [ + 'new', 'edit', 'delete', 'deleteConfirm', 'deleteConfirmText', + 'deleteError', 'create', 'createError', 'applyError', + 'applyItemError', 'selectActor', 'toggleError', + 'name', 'icon', 'description', 'changes', 'addChange', + 'duration', 'durationType', 'durationValue', 'disabled', + 'transfer', 'noDuration', 'rounds', 'turns', 'seconds', + 'combat', 'scene', 'attribute', 'value', 'mode', + 'modeAdd', 'modeMultiply', 'modeOverride', 'modeUpgrade', + 'modeDowngrade', 'activeEffects', 'noActiveEffects', + 'effectSummary', 'toggleEffect' +]; + +let missingKeys = []; +for (const key of requiredEffectKeys) { + if (!effectKeys.includes(key)) { + missingKeys.push(key); + } +} + +if (missingKeys.length === 0) { + console.log(` ✅ Toutes les clés EFFECT sont présentes (${effectKeys.length} clés)`); +} else { + console.log(` ❌ Clés EFFECT manquantes : ${missingKeys.join(', ')}`); +} + +// 9. Vérification de l'utilisation du helper subtract +console.log('\n9. Vérification de l\'utilisation du helper subtract :'); const subtractPattern = /subtract/g; const subtractFiles = [ 'templates/partial-active-effects.hbs', @@ -241,9 +272,10 @@ console.log(`Fichier JSON valide: ${errors.length === 0 ? 'Oui' : 'Non'}`); console.log(`API dépréciée utilisée: ${deprecatedFound ? 'Oui' : 'Non'}`); console.log(`Référence à effect.webp: ${effectWebpFound ? 'Oui' : 'Non'}`); console.log(`Utilisation de duration.type: ${durationTypeFound ? 'Oui' : 'Non'}`); +console.log(`Clés i18n EFFECT: ${missingKeys.length === 0 ? 'Complet' : 'Manquantes'}`); console.log(`Helper subtract: ${(subtractUsed && subtractRegistered) ? 'OK' : (subtractUsed ? 'Manquant' : 'Non utilisé')}`); -if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound && !durationTypeFound && (subtractUsed ? subtractRegistered : true)) { +if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound && !durationTypeFound && missingKeys.length === 0 && (subtractUsed ? subtractRegistered : true)) { console.log('\n✅ Toutes les vérifications ont réussi !'); process.exit(0); } else {