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


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

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'
                ]
            ],
        ],
    ]
);