belew Posted May 15, 2012 Share Posted May 15, 2012 Bonjour, Je cherche une solution pour utiliser la méthode de traduction dans un fichier ajax d'un module. La méthode de traduction de préstashop fonctionne dans le contexte du module $this->l() cependant lorsque je suis dans un fichier AJAX l'objet courant $this n'existe plus. Comment contourner ça ? Link to comment Share on other sites More sharing options...
belew Posted May 16, 2012 Author Share Posted May 16, 2012 (edited) J'ai trouvé la réponse : Il suffit juste d'instancier un Objet du type de votre module pour acceder a ses méthodes $module=new module(); $module->l("votre traduction en anglais"); ++ Edited May 16, 2012 by belew (see edit history) Link to comment Share on other sites More sharing options...
sebweb Posted July 17, 2012 Share Posted July 17, 2012 Même problème : utiliser la méthode de traduction dans un fichier ajax d'un module. et j'ai tout essayé ! if (!class_exists('mon_module',false)) eval('class mon_module extends Module{}'); $trad=new mon_module; echo $trad->l("ma traduction en anglais"); bien que mes traductions france et espagne soient enrichies, pas de traduction affichée... sauf "ma traduction en anglais". Link to comment Share on other sites More sharing options...
vins Posted June 6, 2013 Share Posted June 6, 2013 Bonjour, Avez-vous finalement trouvé une solution à ce problème ? MErci. Link to comment Share on other sites More sharing options...
vins Posted June 6, 2013 Share Posted June 6, 2013 J'ai finalement trouvé la solution : 1. DAns le fichier Ajax faire un : $module=new NomDeMonModule(); 2. Puis faire $module->l('Texte à traduire','nomdemonmodule'); En gros on crée le module en appelant son constructeur car on est plus dans le contexte du module, puis l'astuce consiste à ajouter le paramètre 'nomdemonmodule' à la fonction l(). Voila, j'espère que cela vous aidera Vins. Link to comment Share on other sites More sharing options...
Vinum Posted June 12, 2013 Share Posted June 12, 2013 (edited) Bonjour, La solution complète est décrite ici :http://www.prestashop.com/forums/index.php?/topic/220735-langue-dans-fichier-php/page__view__findpost__p__1264647. EDIT : Je reposte la solution ici car il y'a eu un problème avec le BBCode pour le lien : Après avoir cherché pas mal de temps, j'ai enfin trouvé la solution. Voici la procédure complète pour prestashop >1.5 : En début de fichier php inclure les deux includes de configuration prestashop ainsi que la classe de création de votre module : include ('../../config/config.inc.php'); include ('../../init.php'); require("../../modules/nomdevotremodule/nomdevotremodule.php"); Puis récuperer le context et instancier votre module : $context=Context::getContext(); $module=new nomdevotremodule(); enfin pour les champs à traduire en deuxième paramètres il faut mettre le nom de votre fichier (et pas le nom du module): $module->l('text to translate','nom du fichier'); enfin allez dans le back office prestashop : Localisation->Traductions->Traduction des modules installés->Coeur (et pas le theme) Normalement vous devez retrouver tous les fichiers de votre module à traduire. Edited June 12, 2013 by Vinum (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now