Bonjour à tous,
Je fais actuellement face à un problème assez troublant. Troublant parcequ'il n'y a aucune erreur, ni exception.
Pour faire court:
Problème:
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');
- $_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 !
Partager