Bonjour,

Je développais une appli web en anglais quand on m'a demandé de fournir une version française.
Je me suis dit que ce serait l'occaz de tester la magie de CakePHP...

J'ai donc créé l'arborescence suivante dans mon API :

Locale/
--- eng
-------- LC_MESSAGES
-------------- cake_dev.po
-------------- cake.po
-------------- default.po
--- fre
-------- LC_MESSAGES
-------------- cake_dev.po
-------------- cake.po
-------------- default.po

Après cela, je rajoute un petit Configure::write('Config.language', 'fre') dans mon bootstrap.php et je teste... le français est bien pris en compte et traduit les messages CakePHP plus un test que j'avais placé dans une vue --> echo __("I'm a language test!");

Le problème c'est que quand j'ai voulu retourner sur de l'anglais, Configure::write('Config.language', 'eng'), rien ne se passait...

Après investigations je ne vois toujours pas pourquoi... d'autant plus qu'un debug(Configure::read('Config.language'), true, true); renvoie bien eng...

Voilà les lignes de code qui pourraient vous intéresser :

default.po côté eng

#: View/XXX/index.ctp:4
msgid "I'm a language test!"
msgstr "I'm a language test!"

default.po côté fre

#: View/XXX/index.ctp:4
msgid "I'm a language test!"
msgstr "Je suis un test de langue!"

Merci pour votre aide :]

4 réponses


Mouch
Auteur
Réponse acceptée

Bon, finalement, j'ai re essayé d'ajouter Configure::write('Config.language', 'eng'); dans le bootstrap et cette fois ci c'est OK, les traductions sont bien utilisées...

J'ai du faire une erreur de frappe hier dans ma ligne de config !

Il faut configurer Config.locale il me semble pour la langue.

Mouch
Auteur

Pas de changement même en modifiant Config.locale

Si tu utilise cakephp 2.3, il faut remplacer fre par fra

http://book.cakephp.org/2.0/en/appendices/2-3-migration-guide.html#i18n

@+