Jump to content

Traductions dans fichiers AJAX


Recommended Posts

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

  • 2 months later...

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

  • 10 months later...

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

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 by Vinum (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...