Gettext : Différence entre versions
(→Fonction de traduction) |
(→liens utiles) |
||
| Ligne 6 : | Ligne 6 : | ||
* [http://fr.php.net/gettext gettext] | * [http://fr.php.net/gettext gettext] | ||
* [http://www.poedit.org/ poedit] | * [http://www.poedit.org/ poedit] | ||
| − | + | * [http://drupalfr.org/document/traduire_avec_poedit_comment_bien_faire] | |
== Fonction de traduction == | == Fonction de traduction == | ||
Version du 5 septembre 2007 à 13:07
La fonction bab_locale() permet d'initialiser la locale avec les paramètres de l'utilisateur ovidentia
liens utiles
Fonction de traduction
exemple d'une fonction de traduction pour un module :
bab_locale();
bindtextdomain($GLOBALS['babAddonFolder'], './'.$GLOBALS['babInstallPath'].'lang/addons/'.$GLOBALS['babAddonFolder']);
if (function_exists('bind_textdomain_codeset')) {
bind_textdomain_codeset($GLOBALS['babAddonFolder'], 'iso-8859-1');
}
function nwd_translate($str) {
return dgettext($GLOBALS['babAddonFolder'],$str);
}
Les fichiers de tradution .po et .mo doivent être placés dans fr/LC_MESSAGES/
le fichier .po doit être nommé avec le nom du domaine de traduction par exemple pour l'addon "forms" dans le noyau d'ovidentia :
lang/addons/forms/fr/LC_MESSAGES/forms.po
et dans l'archive :
langfiles/fr/LC_MESSAGES/forms.po
Traduction avec POedit
il faut redémarrer apache après modification du fichier MO
Dans les fichiers sources, certains commentaires peuvent être ajoutés pour aider le traducteur par exemple :
//TRANSLATORS: This text is used as a contextual menu item to add an article in a topic, keep it short
bab_translate('Add article');
Il est nécessaire de modifier la configuration de POedit afin qu'il reconnaisse le mot clef "TRANSLATORS:" dans la ligne qui précède la fonction de traduction. Il faut modifier la commande xgettext dans Fichier/Préférences/Analyseurs/Php/Commande de l'analyseur.
xgettext --add-comments=TRANSLATORS: --force-po -o %o %C %K %F