Php web application internationalisation with Gettext();

Viewed 1066

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

2 Answers
Related