Attualmente sto sviluppando un'applicazione web PHP che deve essere disponibile in francese e inglese. Mi sono guardato intorno e ho scoperto che la funzionalità Gettext() offre le migliori prestazioni.Internazionalizzazione delle applicazioni Web PHP con Gettext();
ho generato il mio file pot con il comando
xgettext PhpFileToTranslate.php -o NameOfTemplateFile.pot
e con successo ha generato un file pot. Ho usato PoEdit per generare file di messages.po e ha creato messages.mo
qui sono i miei file del server:
/app
/locale
/en_US
/LC_MESSAGES
messages.po
messages.mo
/fr_FR
/LC_MESSAGES
messages.po
messages.mo
template.pot
E ho impostato il locale nel file php in questo modo:
$language = $_SESSION['language']; //session contains 'fr_FR.UTF-8' or 'en_US.UTF-8'
setlocale(LC_ALL, $language);
bindtextdomain('messages', './locale');
textdomain('messages');
ma vedo solo l'etichetta e non la traduzione ... Ho provato a mettere 'fr_FR' invece di 'fr_FR.UTF-8' e tutti i tipi di stringhe ma non funziona.
Mi manca qualcosa? Il mio server è Ubuntu 12.04 Server con Apache e php5
Infatti non ho installato fr_FR.utf8 sul mio computer e sul mio server ... Ora funziona! Grazie mille per l'aiuto. –