Jump to content

DEV MODULE BO : Systeme de traduction $this->l()


Recommended Posts

Salut,

Je travail actuellement sur un module Back Office, avec un nouvel onglet dans la navigation principal. Certains tutoturiaux bien sympa mon d'ailleurs bien aidés dans la réalisation de ce module mais je vous avoue que la je bloque!

Pour faire simple, l'affichage du module, après avoir cliqué sur mon nouvel onglet ne s'affiche pas dans la langue de l'employé Administrateur. (bien sur je suis connecté au Back Office avec cet employé)

Bug:
-> Si ma langue est en Francais mon module s'affiche en Francais
-> Si ma langue est en Anglais mon module s'affiche TOUJOURS en Francais

Les traductions Anglais et Francais sont OK!
Lorsque je vais dans l'onlget Module et que je configure mon module, la page affichée est bien dans la langue de l'employé Administrateur.

Je vous passe le code de la page module.php puisque la traduction fonctionne correctement.

Par contre pour la page AdminModule.php, c'est une toute autre affaire.
J'ai bien utilisé le bou de code suivant dans mon constructeur __construct() :

$langFile = _PS_MODULE_DIR_.$module.'/'.Language::getIsoById(intval($cookie->id_lang)).'.php';
           if(file_exists($langFile))
           {
             require_once $langFile;
             foreach($_MODULE as $key=>$value)
               if(substr(strip_tags($key), 0, 5) == 'Admin')
                 $_LANGADM[str_replace('_', '', strip_tags($key))] = $value;
           }
           parent::__construct();


et dans ma methode de classe display() la fonction:

$this->l('Bienvenu dans mon module');


ce qui donne :

class AdminMonmodule extends AdminTab
   {     
       public function __construct()
       {
           global $cookie, $_LANGADM;

           $this->className = 'Monmodule';
             $langFile = _PS_MODULE_DIR_.$module.'/'.Language::getIsoById(intval($cookie->id_lang)).'.php';
           if(file_exists($langFile))
           {
             require_once $langFile;
             foreach($_MODULE as $key=>$value)
               if(substr(strip_tags($key), 0, 5) == 'Admin')
                 $_LANGADM[str_replace('_', '', strip_tags($key))] = $value;
           }
           parent::__construct(); 
       }

       public function display($token = NULL)
       {
           echo $this->l('Bienvenue dans mon module');
       }
   }



Je suis en version 1.4.3

Quelqu'un à t'il une idée de ce que j'ai pu oublier?

Link to comment
Share on other sites

Sur Presta1.4, ce bout de code pour gérer la traduction des panneau BO n'est plus nécessaire.

Les corrections ont été apporté dans presta pour que le $this->l('') fonctionne pour un AdminXXXX installé depuis un module.
Le bout de code supplémentaire n'est utile que sur Presta 1.2 et 1.3

Link to comment
Share on other sites

  • 1 month later...

Hello,

 

Je reviens vers vous pour vous informer que le développement du module sur lequel je travaillais est arrivé à terme.

 

Merci pour vos réponses qui m'ont aidé dans mes recherches. Concernant les langues, j'ai été obligé de reconstruire la méthode l() qui malheureusement ne fonctionnait que dans monmodule.php

 

Impossible de la faire fonctionner correctement dans AdminMonmodule.php

 

Merci encore pour votre aide.

Cordialement

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...