Hello,

Bon c'est assez simple, je comptais traduire un site en plusieurs langues. J'ai donc décidé d'utiliser (PHP-)Gettext pour cela.

J'ai un fichier de langue (.po puis le fichier compilé .mo), dans 2 langages différentes pour l'instant fr_FR et en_US.
Ils sont dans [RACINE]/locale/[CODESET]/LC_MESSAGES/

Le code utilisé pour l'utilisation de GetText :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
require_once($racine.'includes/gettext/gettext.inc');
putenv("LANG=".$_SESSION['LANG_CHOOSE']);
$setloc = setlocale(LC_MESSAGES, $_SESSION['LANG_CHOOSE']);
$bid = bindtextdomain("messages", $racine."locale");
$txtd = textdomain("messages");
Le problème et les détails :
- Les chaînes d'origine sont en français
- Le problème actuel : Le site s'affiche toujours en anglais, si je le veux en français, y me le laisse traduit en anglais.

Sur un autre serveur (Kimsufi Linux Debian 5) que celui où ce problème se produit (Servage mutu), le site s'affiche bien dans la langue désirée avec le même code, les mêmes fichiers de langue.

Bref, je ne vois pas d'où vient le problème. L'hébergeur (Servage) qui ferait une redéfinition de la valeur locale utilisée ? setlocale() fonctionne bien puisqu'il retourne fr_FR ou en_US.

Merci d'avance de votre aide,

Cordialement.

PS : Rassurez-vous la session change bien comme je le souhaite avec une utilisation d'une simple variable $_GET['lang']. Et j'affiche la valeur de la session. Donc c'est pas une simple erreur à la con, ou en tout cas pas celle-ci.