Développeur Drupal – Blog d'un passionné, un peu touche à tout, dans le monde du web.
Parmi les bonnes méthodes de développement avec Drupal, il en existe une qui consiste à créer des modules compatibles à la traduction dans une autre langue. Si vous voulez participer à la communauté Drupal en partageant vos ressources, vous devrez obligatoirement créer votre module en anglais et par la suite le fichier de traduction associé.
La fonction qui permet de traduire une phrase avec Drupal est la fonction t( ). Dès que vous avez besoin d’afficher un message destiné à vos utilisateurs vous devez utiliser cette fonction.
Comment l’utiliser ? C’est très simple il vous suffit simplement de mettre votre phrase à l’intérieure de cette fonction.
Ce qu’il ne faut pas faire :
$output = "Thank you for your subscription!";
Ce qu’il est bon de faire :
$output = t("Thank you for your subscription!");
Comme je vous le disais plus haut vous devez écrire tout ce que vous allez afficher à vos utilisateurs en anglais puisque c’est le langage par défaut de Drupal, prenez-en l’habitude.
La fonction t () gère l’échappement de caractères, c’est-à-dire que vous n’avez pas besoin de mettre un slash ‘\’ avant chaque guillemet.
Ce qu’il ne faut pas faire :
$output = "Don\'t click me.";
Ce qu’il est bon de faire :
$output = t("Don't click me.");
Dans l’affichage de vos messages vous allez vite avoir besoin de retourner des valeurs à vos utilisateurs.
Ce qu’il ne faut pas faire :
$name = ‘Julien’;
$output = t("Welcome $name, you are now registered");
Ce qu’il faut faire :
$name = ‘Julien’;
$output = t("Welcome !name, you are now registered ", array('!name' => $name));
N’hésitez pas consulter la documentation sur la fonction t() disponible sur l’api Drupal.org
Bienvenue sur mon blog. Sur cet espace j’essaie de partager au mieux ma passion pour le web et actuellement mon engouement pour Drupal. Vous trouverez ici mes découvertes, mes problématiques et les solutions rencontrées.
1 Response to Créez un module compatible pour la traduction.
nyl auster
juillet 14th, 2009 at 9 h 26 min
A noter que apparemment dans Drupal 6 le hook menu passe automatiquement par la fonction t(). Peut être rajouter un exemple avec @ en plus de ! dans les placeholders de traduction ?