|
Table des matières
po2phparray.pyJ'ai eu besoin pour GCweb d'un utilitaire permettant de convertir les fichiers .po en dictionnaire compatible fonctionnant sur le même principe. po2phparray.py à été développé et testé sous GNU/linux et devrait fonctionner sous toute plateforme avec python d'installé. Téléchargement ?Comment faire ?Adaptation du code
Les chaines traductrice du script php doit, comme pour gettext, être marquée par une fonction. Par exemple ” __('chaine à traduire'); //chaine à traduire entre apostrophe, le script n'a pas été fait pour fonctionner avec les guillemets Faites une extraction des chaines avec les outils de gettext. Utilisation des outils gettextCréation des fichiers pot :xgettext -k__ -kN__ --from-code UTF-8 <file>.php -o <file>.pot --no-wrap #création du fichier pot
Création/mise à jours des fichiers pomsginit -i <file>.pot -o <lang>/<file>.po #Création msgmerge -U <lang><file>.po potfile/<file>.pot #Mise à jour Utilisation de po2phparray.pyUne fois que vous avez traduit les fichiers po : po2phparray.py file.po > file.php
Le fichier contient un code qui complète un dictionnaire php nommé $lang. Ce dictionnaire doit donc être définit en ammont ! <!-- file.php --> <?php $lang = array_merge($lang, array( 'chaine à traduire' => 'chaine traduite', 'autre chaine à traduire' => 'autre chaine traduite' )) ?> Exemple de code<?php //l10n $lang = array(); //Definition du tableau $lang include diname(__FILE__).'locales/'.$conf['lang'].'/domaine.php' ; // $conf['lang'] : langue de l'utilsateur // domaine.php : fichier créer par po2phparray.py function __($str,$comment='') { global $lang; if (isset($lang[$str])) return $lang[$str]; else return $str; } /*** votre code avec les chaines traduisible sous la forme __('votre chaine') ***/ ?> |