coWiki 0.4.0-dev
Utilisateur actuel:   guest    Changer     Préférences 
   Afficher le répertoire   Historique   Similaire   Imprimer une version 
Accueil 
Documentation technique 
   Nom de domaine et IP dynamique 
   Réplication MySQL par tunnel ssh 
   ov518+ driver and kernel 2.6.11 
   Zend Studio - selinux FC3-x86_64 
   gettext et site php multi-langues 
   Squirrelmail: compilation deb et php5 
   Configuration php par .htaccess 
   InstallAnywhere et linux x86_64 
   Créer des utilisateurs ftp only pour proftpd 
   Genuine Advantage 
   gutenprint sur FC5 
   apf on FC5 
   Monitoring serveur avec MRTG 
Aire de jeux 
   Résumé du langage 

Referrers
search.live.com
www.google.ca
search.live.com
www.google.fr
www.hooseek.com
www.google.fr
search.live.com
search.live.com
search.live.com
www.google.ru
Documentation technique > gettext et site php multi-langues

 
rw-rw-r--   zeitoun   vip

gettext et site php multi-langues

Pense bête ultra-succint pour l'utilisation de gettext avec php. Fabrication des fichier de traduction pour l'instant seulement... Très incomplet.

Structure de répertoire pour acceuillir les traductions

+ locale
| + fr
| | + LC_MESSAGES
| | | messages.po
| | | messages.mo
| + en
| | + LC_MESSAGES
| | | messages.po
| | | messages.mo
| etc..

Fabrication du potfile

Il faut récupérer les différentes chaine de caractères à traduire dans les fichiers source de toute l'application. Comme xgettext ne sait pas traverser les répertoires de façon récursive, on va utiliser la commande find pour lui passer les noms de fichier et l'option -j (join existing) de xgettext pour ajouter les chaines de caractère trouvée dans chaque fichier au potfile qu'on est en train de créer.

cd /path/to/app/source/dir
find . -regex ".*\.\(inc\|php\)" \
-exec xgettext -n -j -L PHP --from-code=ISO-8859-1 \
-p locale/fr/LC_MESSAGES {} \;

Compilation du potfile

Une fois les messages traduit à partir du potfile original, il faut compiler les fichiers pour chaque langue afin de pouvoir les utiliser.

msgfmt messages.po

Gestion du potfile quand il y a eu des changements

Tout d'abord on recré un potfile à zéro avec tous les messages à traduire. On change le nom par défaut du fichier d'output pour ne pas écraser le fichier existant

cd /path/to/app/source/dir
find . -regex ".*\.\(inc\|php\)" \
-exec xgettext -n -j -L PHP --from-code=ISO-8859-1 \
-p locale/fr/LC_MESSAGES -o new.po {} \;

On renomme ensuite l'ancien potfile

mv messages.po old.po

Puis on fusionne les changements

msgmerge old.po new.po --output-file=messages.po

On obtient un nouveau potfile dans lequel les traductions déjà faite sont toujours présentes. Il suffit de traduire les nouvelles chaines de caractères. Une fois que c'est fait, on compile le nouveau fichier.

Références



Référence gettext et site php multi-langues
http://aide.retiz.com/DocumentationTechnique/GettextEtSitePhpMultiLangues

Commentaires: 0 Nouveau commentaire

précédent Zend Studio - selinux FC3-x86_64   Squirrelmail: compilation deb et php5 Suivant


Documentation technique | Aire de jeux

Driven by coWiki 0.4.0-dev (May 07 2005) web collaboration tool. Exécuté en 0,060 sec.