Fix: Correction des clés i18n et affichage de l'onglet Effets

- Correction du namespace i18n: MOURNBLADECYD2.EFFECT → EFFECT
- Suppression de la condition {{#if item.effects.length}} dans tous les templates d'items
- Ajout de la clé EFFECT.noItemEffects pour les items sans effets
- Remplacement des textes en dur par des clés i18n dans les partials
- Mise à jour de toutes les références dans le code JavaScript

Cela corrige:
1. Les clés i18n manquantes (namespace incohérent)
2. L'onglet Effets des items qui était vide quand l'item n'avait pas d'effets

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-06-07 09:47:22 +02:00
parent 1b81b0a3ac
commit a3f304c77b
26 changed files with 24 additions and 61 deletions
@@ -332,7 +332,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
try {
// Créer les données par défaut pour un nouvel effet
const defaultEffectData = {
name: game.i18n.localize("MOURNBLADECYD2.EFFECT.new") || "Nouvel Effet",
name: game.i18n.localize("EFFECT.new") || "Nouvel Effet",
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp",
description: "",
changes: [],
@@ -354,7 +354,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) {
console.error("MournbladeCYD2 | Failed to create effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.createError") ||
game.i18n.localize("EFFECT.createError") ||
"Erreur lors de la création de l'effet"
);
}
@@ -397,8 +397,8 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
if (effect) {
const effectName = effect.name;
const confirmed = await foundry.applications.api.DialogV2.confirm({
title: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirmText", {name: effectName}) ||
title: game.i18n.localize("EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("EFFECT.deleteConfirmText", {name: effectName}) ||
`Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?`
});
@@ -408,7 +408,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) {
console.error("MournbladeCYD2 | Failed to delete effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteError") ||
game.i18n.localize("EFFECT.deleteError") ||
"Erreur lors de la suppression de l'effet"
);
}
@@ -436,7 +436,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) {
console.error("MournbladeCYD2 | Failed to toggle effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.toggleError") ||
game.i18n.localize("EFFECT.toggleError") ||
"Erreur lors du basculement de l'effet"
);
}
@@ -193,7 +193,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
try {
// Créer les données par défaut pour un nouvel effet
const defaultEffectData = {
name: game.i18n.localize("MOURNBLADECYD2.EFFECT.new") || "Nouvel Effet",
name: game.i18n.localize("EFFECT.new") || "Nouvel Effet",
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp",
description: "",
changes: [],
@@ -215,7 +215,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) {
console.error("MournbladeCYD2 | Failed to create effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.createError") ||
game.i18n.localize("EFFECT.createError") ||
"Erreur lors de la création de l'effet"
);
}
@@ -258,8 +258,8 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
if (effect) {
const effectName = effect.name;
const confirmed = await foundry.applications.api.DialogV2.confirm({
title: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirmText", {name: effectName}) ||
title: game.i18n.localize("EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("EFFECT.deleteConfirmText", {name: effectName}) ||
`Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?`
});
@@ -269,7 +269,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) {
console.error("MournbladeCYD2 | Failed to delete effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteError") ||
game.i18n.localize("EFFECT.deleteError") ||
"Erreur lors de la suppression de l'effet"
);
}
@@ -297,7 +297,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) {
console.error("MournbladeCYD2 | Failed to toggle effect:", error);
ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.toggleError") ||
game.i18n.localize("EFFECT.toggleError") ||
"Erreur lors du basculement de l'effet"
);
}
@@ -326,7 +326,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
// Cette méthode est placeholders - l'application devrait être gérée par drag-drop
// ou par une action spécifique qui demande à l'utilisateur de sélectionner un acteur
ui.notifications.warn(
game.i18n.localize("MOURNBLADECYD2.EFFECT.selectActor") ||
game.i18n.localize("EFFECT.selectActor") ||
"Veuillez d'abord sélectionner un acteur pour appliquer cet effet."
);
}