Gettext : Différence entre versions
m (→liens utiles) |
(→Traduction avec POedit) |
||
| Ligne 54 : | Ligne 54 : | ||
<pre> | <pre> | ||
xgettext --add-comments=TRANSLATORS: --force-po -o %o %C %K %F | xgettext --add-comments=TRANSLATORS: --force-po -o %o %C %K %F | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | pour les formes plurielles il faut indiquer une formule dans la configuration du fichier PO (dans catalogue/configuration/formes plurielles), pour la traduction en français : | ||
| + | <pre> | ||
| + | nplurals=2; plural=(n > 1); | ||
</pre> | </pre> | ||
Version du 5 septembre 2007 à 13:11
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
pour les formes plurielles il faut indiquer une formule dans la configuration du fichier PO (dans catalogue/configuration/formes plurielles), pour la traduction en français :
nplurals=2; plural=(n > 1);