2009-10-28 9 views
1

J'essaie de charger mes traductions .mo en utilisant le code suivant, mais cela ne fonctionne pas. J'ai le php gettext ext. activé dans mon phpinfo() et tous les paramètres régionaux requis sont installés. Ai-je manqué quelque chose?Gettext, n'affiche pas

$locale = "en_US"; 

putenv("LC_ALL=$locale"); 

setlocale(LC_ALL, $locale); 

bindtextdomain("messages", "./locale"); 
textdomain("messages"); 

Mon fichier .mo est situé dans ./locale/en_US/messages.mo

Répondre

2

Lorsqu'un fil apache charge un fichier .mo, il ne sera pas le recharger jusqu'à ce que le fil apache est recyclé. Donc, si vous mettez à jour le fichier .mo, et que vous voulez être sûr que votre php utilise ce nouveau fichier .mo, vous devez soit redémarrer apache, soit utiliser un nom différent pour le fichier mo.

Quoi qu'il en soit, je voudrais définir la variable d'environnement LANG.

+0

Est-ce cela que vous voulez dire?: $ language = 'fr US.UTF-8'; putenv ("LANG = $ langue"); J'ai essayé de recharger apache avec sudo /etc/init.d/apache2 reload mais ça ne l'a pas résolu. – Roch

+0

@mnml: ne pas recharger, mais redémarrer apache, c'est-à-dire sudo /etc/init.d/apache2 restart – Residuum

+0

@Residuum: J'ai juste essayé ça et ça ne marche toujours pas. – Roch

0

Vous devez probablement modifier le chemin pour qu'il soit absolu plutôt que relatif.