lundi 5 mars 2012

[Tuto] Comment traduire un thème wordpress ?

Le CMS Wordpress est plébiscité par de nombreux développeurs pour sa facilité de mise en place et de maintenance. C'est également un bon choix dans la création de sites internet pour des clients qui maîtrisent peu l'informatique mais souhaitent être autonome dans la gestion de leur site ou de leur blog. Après avoir trouvé et installé le parfait template, vous vous aperceverez cependant que de nombreux éléments apparaissent en anglais, comme ce lien "more" pour accéder à la suite de votre article, ou ce bouton "Send" dans votre formulaire de contact. Les templates les plus avancés peuvent proposer directement une interface de traduction vous permettant d'indiquer les équivalents français des termes utilisés, mais la plupart du temps, ce n'est pas le cas. Avant de vous lancer dans une recherche de tous les termes à traduire dans votre code source, et de les modifier "en dur", au risque d'endommager un fichier, ou de devoir tout recommencer lors de la prochaine mise à jour, vérifiez d'abord s'il est "traduisible". En effet, certains templates ont été préparés à la traduction. Pour faire simple, les termes intégrés "en dur" dans le template ont été marqués, et regroupés dans des catalogues de langues qui prennent la forme de fichiers .po et .mo ou .pot. Pour vous faciliter la tache, ces fichiers sont en général situés dans un dossier à l'intitulé évocateur : languages, lang, etc.

Après avoir identifié vos fichiers de traduction, il vous faudra les éditer grâce au logiciel opensource Poedit. Ce logiciel possède une interface dépouillée mais très claire, et un fonctionnement vraiment simple. Téléchargez le fichier source, généralement il s'agira d'un fichier default.po ou en_EN.po, et ouvrez-le via Poedit.


La liste des termes à traduire apparait dans la première colonne, il ne vous reste plus qu'à cliquer sur le mot que vous souhaitez traduire, et qui va s'afficher dans le champ en bas de page. Entrez votre traduction dans le champ situé en dessus, et passez au terme suivant. Veillez cependant à ne pas modifier les variables de programmation telles que le caractère %. Il est également indispensable de remplacer les caractères spéciaux é, è, à, etc. par leur équivalent en code html (é pour é, etc.). En cas de doute pour un terme, sélectionnez-le et cliquez sur le bouton en représentant un nuage dans la barre d'outil. Le terme sera ainsi marqué comme une traduction approximative, ce qui vous simplifiera la tache lorsque vous souhaiterez revenir sur cette traduction. Il vous est également donné la possibilité d'ajouter des commentaires à votre fichier de traduction, une fonctionnalité très pratique, notamment lorsque l'on travaille à plusieurs.


Après avoir intégralement traduit votre fichier, il ne vous reste plus qu'à modifier les méta-données de connexion pour y indiquer le nom du projet) et à l'enregistrer sous l'intitulé fr_FR.po (le fichier .mo sera généré automatiquement par le logiciel). En cas d'erreur à l'enregistrement, aidez-vous des numéros de ligne pour identifier l'erreur. Vous pouvez ensuite uploader ces deux fichiers dans le dossier de langues de votre template. La traduction s'appliquera automatiquement si votre version de wordpress est bien en français.

A noter : Poedit contient également une mémoire de traduction que vous pourrez alimenter au fur et à mesure de vos projets, et qui vous permettra par la suite de traduire automatiquement certains textes. Enfin, Poedit ne se limite pas à wordpress, et permet de localiser d'autres types de CMS et même des logiciels. En traduisant vos catalogues textuels, vous vous simplifiez la vie, mais vous aidez également la communauté en mettant vos traductions à disposition !

Stéphanie M.

7 commentaires:

  1. Merci pour l'article, je ne savais pas du tout qu'il y avait une mémoire de traduction dans poedit, shame on me ^^

    Dans le cas où le template ne serait pas préparé à la traduction, il est possible de le faire soi même (il vaut mieux éviter de mettre du texte en dur dans le PHP) en ajoutant des variables de traduction autour de texte. C'est assez long et fastidieux, et il ne sera hélas plus possible de mettre à jour le thème, sous peine de voir ses modifications écrasées, mais pour ceux que ça intéresse castwhocode a écrit un excellent article là dessus : http://www.catswhocode.com/blog/how-to-make-a-translatable-wordpress-theme

    RépondreSupprimer
  2. Merci pour la méthode, mais comme disait , c'est la mémoire de traduction qui serait très utile dans Poedit. Et, pour éviter de re-traduire à chaque fois des termes récurrents à chaque thème (par ex Ang/Fr : 'send, comments, This entry was posted in, ...) et de réinventer la roue à chaque usage, serait-il possible ou existant des fichiers d'échange type de couples de langues par exemple (Ang/Esp, Fr/Ang, All/Fra, Ang/Fr, ...) pour Poedit ?
    Le temps est précieux -comme dirait l'autre-, pour des papillons comme nous dont la toile n'en fera qu'une bouchée !
    Vous voyez ce que je veux dire ...
    A+

    RépondreSupprimer
  3. Oui, il est surement possible de trouver des mémoires de traduction pour poedit téléchargeables, mais je ne saurais vous dire où en trouver. Par contre certains sites comme WP Trads (http://www.wptrads.fr) proposent des traductions de thèmes ou d'extensions wordpress, mais elles sont payantes.

    RépondreSupprimer
  4. Bonjour
    J'en propose également sur www.wp-club.fr

    RépondreSupprimer
  5. Merci beaucoup pour le tutoriel.
    Néanmoins je rencontre un problème pour traduire mon thème.
    C’est le suivant : http://wordpress.org/themes/oxygen
    Je modifie bien le fichier .po je le renomme de la même manière que d’origine avec fr_FR mais aucun changement en vue lorsque je place le fichier dans le répertoire grâce à Filezilla…

    Merci de votre aide

    RépondreSupprimer
    Réponses
    1. Bonjour Simon,

      Avez-vous bien vidé le cache de votre navigateur (ou fait un test en navigation privée) ?

      Supprimer