Sur Ubuntu/Dapper Drake/6.06, soit un fichier /var/www/tests/xgt.php
<html>
<head> </head>
<body>
<?php
echo setlocale(LC_ALL, "fr_BE.utf8")."<br/>";
echo bindtextdomain('xgt', './xoflocale')."<br/>";
echo textdomain('xgt')."<br/>";
print(_("coucou"));
?>
</body>
</html>
Quelques remarques :
- Le 'fr_BE.utf8' se trouve dans la liste donnée par '$ locale -a'
- Le répertoire './xoflocale' est relatif à l'endroit où se trouve le fichier .php; dans ce cas-ci : /var/www/tests/xoflocale/.
- Le fichier de traduction se trouve alors en /var/www/tests/xoflocale/fr/LC_MESSAGES/xgt.mo
Le fichier 'xgt.mo' est généré comme suit
cd /var/www/tests
mkdir -p xoflocale/fr/LC_MESSAGES
# extraire les textes à traduire
xgettext -o xoflocale/fr/LC_MESSAGES/xgt.po xgt.php
#
cd xoflocale/fr/LC_MESSAGES
# éditer le fichier .po pour
# - changer CHARSET par UTF-8
# - mettre la traduction
# "coucou"
# "traduction de coucou"
msgfmt -o xgt.mo xgt.po
Ensuite, (probablement,) redémarrer 'apache'
sudo /etc/init.d/apache2 restart
Et, si tout va bien, http://localhost/tests/xofgettext.php donne
fr_BE.utf8
/var/www/tests/xoflocale
xgt
traduction de coucou
xof
Aucun commentaire:
Enregistrer un commentaire