27 octobre 2004

Comment traduire des phrases contenant des parties variables ?

Voici une méthode toute simple pour gérer intelligemment les traductions de phrases composées d'une ou plusieurs parties variables (ou dynamiques).

Exemple

Vous devez afficher le texte suivant :

«Bonjour, NOM DE L'UTILISATEUR, vous avez reçu NOMBRE DE MAILS courriels aujourd'hui.»

Méthode courante

Cette méthode consiste à diviser cette phrase en 3 parties, parties que l'on traduira séparément.

<?php

echo gettext("Bonjour, ") . $nom . gettext(", vous avez reçu ") . $nbmail . gettext("courriels aujourd'hui.");

?>

Autre Méthode

Cette méthode consiste juste à utiliser les propriétés de la fonction printf.

<?php

printf(_("Bonjour, %s, vous avez reçu %d courriels aujourd'hui."), $nom, $nbmail);

?>

Ici j'ai remplacé l'appel à la fonction gettext par son raccourci : _()

Conclusion

Pour le développeur, il me semble que le code source est plus lisible. Pour le traducteur, ça permet de traduire une phrase et non pas des mots. A mon avis, la traduction ne peut être que meilleur.

Références

Pour savoir comme utiliser gettext voici quelques liens :

Aucun commentaire:

Enregistrer un commentaire