Bonjour @paulstore,
@marie_paris a parfaitement identifié le souci. Sur PrestaShop 9.2 (et les versions antérieures), lorsque vous utilisez $this->module->l() depuis une classe auxiliaire comme PrepaidAdmin, le deuxième paramètre doit correspondre au domaine de traduction sous lequel vos chaînes sont enregistrées. Très souvent, les traductions d'un module sont toutes regroupées sous le nom de la classe principale du module ou simplement gérées par la méthode l() du module sans spécifier de domaine.
Dans votre cas, le PrepaidAdmin en deuxième paramètre indique à PrestaShop de chercher les traductions sous ce domaine spécifique, ce qui ne correspond probablement pas à la façon dont les traductions de votre module sont packagées. La solution la plus simple et la plus robuste est de supprimer ce deuxième paramètre, laissant la méthode l() de votre objet module gérer le contexte par défaut, qui est généralement le nom de votre module principal.
Voici le correctif pour votre fichier prepaidpayment/classes/PrepaidAdmin.php:
function l($string)
{
return $this->module->l($string);
}
Avec cette modification, vos traductions devraient être correctement chargées. Pensez à vider le cache de PrestaShop après la modification (Paramètres avancés > Performance).
Pour la gestion de fonctionnalités avancées de paiement ou de portefeuille prépayé, il est souvent plus sûr et plus maintenable d'utiliser un module dédié qui gère ce genre de détails de traduction et d'intégration. Je peux vous recommander cet outil de mypresta qui gère parfaitement le portefeuille prépayé et les avoirs boutique avec toutes les traductions nécessaires déjà incluses et mises à jour.