Jump to content

Traduction d'une variable smarty


Recommended Posts

Bonjour à tous.

 

Voila je suis débutant sur prestashop. J'ai fait un premier tuto afin de découvrir un peu l'outil. J'ai créer un module, je l'ai attacher à la colonne de gauche. Pour le moment mon module affiche une simple phrase : 'Welcome to my shop!'.

 

Je voudrais traduire cette phrase. Vous allez me dire que c'est simple et qu'il faut que j'utilise la fonction 'l' dans le fichier .tpl. Sauf que le problème c'est que dans mon fichier .tpl, j'ai une variable smarty, et du coup ma phrase est dans le fichier .php qui porte le même nom.

 

Voila mon code :

---------------------------------------------------------------------------------------------------------------

mymodule_page.php :

 

 

<?php

global $smarty;

include( '../../config/config.inc.php' );

include( '../../header.php' );

$mymodule = new MyModule();

$message = $mymodule->l( 'Welcome to my shop!' );

$smarty->assign( 'messageSmarty', $message ); // creation of our variable

$smarty->display( dirname(__FILE__) . '/mymodule_page.tpl' );

 

include( '../../footer.php' );

?>

 

mymodule_page.tpl :

--------------------------------------------------------------------------------------------------------------

{$messageSmarty}

 

Voila j’espère avoir été assez clair, si ce n'est pas le cas ne manquez pas de me le faire remarquer ^^

Link to comment
Share on other sites

tu as déjà tout fait car

$mymodule->l( 'Welcome to my shop!' );

c'est déjà l'appel classique pour que ta variable soit multilangue.

Normalement dans l'onglet traduction du backoffice (dans module déjà installé) tu va retrouver cette phrase.

 

Par contre ce que tu a fait m'étonne un peu car normalement pour afficher ton module tu devrais plutôt utiliser les fonction de type displayLeftColunm... et comme tu es dans ce cas directement dans ta classe module tu utiliserai plutôt

$this->l('')

Link to comment
Share on other sites

Salut merci pour ta réponse mais justement elle n'apparait pas dans l'onglet traduction. En ce qui concerne l'affichage du module j'utilise un fichier tpl pour afficher le corp de mon module. Mais toi tu n'appelle pas tes fichiers tpl dans tes fonctions hook.

Link to comment
Share on other sites

En règle générale j'ai un hook principal qui va appeler les tpl et les autres vont faire appel à ce hook principal (ça dépend bien sur si j'ai besoin du même tpl pour tous les hook).

 

Pour ton problème de traduction j'avoue que je ne sais pas mais la façon dont tu t'y prend me paraît bizarre.

 

Si tu es dans un fichier php ça ne me paraît pas logique que tu fasse un include d'un header et d'un footer.

Je n'ai pas l'impression que la logique MVC soit bien respectée et du coup il n'est pas impossible que Prestashop n'y comprenne pas grand chose non plus et par conséquent ne t'affiche pas ton texte dans les traductions.

 

Bien sûr je peux me tromper, c'est difficile de savoir avec juste le bout de code de ton premier post.

 

As-tu regardé la doc officielle ? Ils expliquent comment créer un premier module basique: http://doc.prestasho...unpremiermodule

Edited by maniT4c (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...