Problème CakePHP 3 authError message traduction

Par CotralLab, il y a 10 ans


Bonjour à tous,

Je suis en train de développer une application multilingue avec CakePHP 3 (français et anglais).

Dans la fonction initialize() de mon UsersController, j'ai :

'authError' => __('Vous devez vous identifier pour accéder à cette zone.')

Dans le fichier en_US/default.po (generé avec poedit) j'ai :

#: Controller/SavsController.php:35 Controller/UsersController.php:29 msgid "Vous devez vous identifier pour accéder à cette zone." msgstr "Login to access this area."

Mais la traduction ne fonctionne pas ... Le message s'affiche toujours en français, pourquoi ? Quelqu'un à déjà eu ce problème ?

J'ai bien configuré la langue par défaut à 'fr_FR', toutes mes "variables" de traduction sont en français, j'ai bien généré mon .pot et le fichier .po pour la langue 'en_US'.

Quand je change de langue sur mon appli, tout fonctionne bien sauf ce message flash...

Merci d'avance ;)

2 réponses

Grafikart, il y a 10 ans

Les autres messages se traduisent correctement? Ils ont aussi des accents dans leur version originale ?

CotralLab, il y a 10 ans

Oui, tout est parfait pour les autres sauf ce message flash. Oui certains ont aussi des accents.
Ex :

#: Template/Pages/home.ctp:44 msgid "Accès Espace Client" msgstr "Customer Area Access"

Voici le code de ma fonction initialize, si ça peut aider.

parent::initialize(); $this->loadComponent( 'Auth', [ 'loginRedirect' => [ 'controller' => 'Users', 'action' => 'home' ], 'logoutRedirect' => [ 'controller' => 'Users', 'action' => 'logout' ], 'loginAction' => [ 'controller' => 'Users', 'action' => 'login' ], 'logoutAction' => [ 'controller' => 'Users', 'action' => 'logout' ], 'authError' => __('Vous devez vous identifier pour accéder à cette zone.'), 'authenticate' => [ 'Cotral' => [ 'fields' => [ 'email' => 'email', 'password' => 'password' ] ], ], ] );