Bonjour à tous,


Je fais actuellement face à un problème assez troublant. Troublant parcequ'il n'y a aucune erreur, ni exception.

Pour faire court:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
putenv('LC_ALL=' . $_SESSION['lng']->getLocale());
putenv('LANG=' . $_SESSION['lng']->getLocale());
setlocale(LC_ALL, $_SESSION['lng']->getLocale());
 
 
 
$moFileName = "messages";
 
 
//Quelques trucs de debug:
$debugFullMoPath = FOLDER_ROOT . 'locale' . DIRECTORY_SEPARATOR . $_SESSION['lng']->getLocale() . DIRECTORY_SEPARATOR . 'LC_MESSAGES' . DIRECTORY_SEPARATOR . $moFileName . '.mo';
if(!file_exists($debugFullMoPath))
    echo 'Translation file not found (' . $debugFullMoPath . ')!';
 
 
bindtextdomain($moFileName, FOLDER_ROOT . 'locale');
bind_textdomain_codeset($moFileName, 'UTF-8'); 
textdomain($moFileName);
 
echo gettext('MON COMPTE');
Problème:
- $_SESSION['lng']->getLocale() retourne bien 'en_CA'
- Le résultat de echo gettext('MON COMPTE'); est: 'MON COMPTE' (et non 'MY ACCOUNT')


Plus d'info:
- Je possède bien un fichier messages.mo dans ./locale/en_CA/LC_MESSAGES/messages.mo
- locale -a sur le serveur me retourne (entre autre): 'en_CA.utf8'
- mon fichier .po contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
msgid ""
msgstr ""
"Project-Id-Version: projetTest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-10-08 16:48-0500\n"
"PO-Revision-Date: \n"
"Last-Translator: Francois Mazerolle <bidon@gmail.com>\n"
"Language-Team: Bidon\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: CANADA\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Basepath: /mnt/nas/www/client/projet/test/\n"
"X-Poedit-SearchPath-0: ./framework/lib/3rd/Dwoo/compiled\n"
 
#: framework/lib/3rd/Dwoo/compiled/mnt/nas/www/client/projet/test/framework/module/User/Template/widget_login.html.d17.php:5
msgid "MON COMPTE"
msgstr "MY ACCOUNT"

- Le fichier .mo semble valide (si je l'ouvre dans un éditeur hexadécimal, je retrouve MON COMPTE sans problème.)
- Le tout est généré avec POEdit, donc j'exclu le fait que le fichier puisse être mal formaté.
- Aucune erreur, aucune exception
- Mes fichiers messages.po et messages.mo sont situés dans ./locale/en_CA/LC_MESSAGES/message.mo , et si vous regardez le code, c'est validé que le fichier existe, et je passe le chemin complet pour être bien certain.
- phpinfo montre que gettext est activé.



Est-ce que par miracle l'un d'entre-vous aurait une idée ?
Car je suis vraiment à court. (Faut dire que ca fait 5h que je suis sur le cas, ma créativité à inventer des hypothèses à ses limites...)

Merci à tous ceux qui liront !