I am currently developping a PHP web app that needs to be available in French and English. I looked around and found that the Gettext() functionality offers the best performance.
I generated my .pot file with the command
xgettext PhpFileToTranslate.php -o NameOfTemplateFile.pot
and successfuly generated a .pot file. I used PoEdit to generate messages.po file and created messages.mo
Here are my server files :
/app
/locale
/en_US
/LC_MESSAGES
messages.po
messages.mo
/fr_FR
/LC_MESSAGES
messages.po
messages.mo
template.pot
And i set the locale in the php file like this :
$language = $_SESSION['language']; //session contains 'fr_FR.UTF-8' or 'en_US.UTF-8'
setlocale(LC_ALL, $language);
bindtextdomain('messages', './locale');
textdomain('messages');
but i only see the label and not the translation... I tried putting 'fr_FR' instead of 'fr_FR.UTF-8' and all kinds of strings but it's not working.
Am I missing something? My server is Ubuntu 12.04 Server with Apache and php5