Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

Explications sur l’internationalisation de WordPress et créer un fichier PO avec Poedit

| 31 Commentaires

Vous avez repéré un ou un plugin internationalisé qui vous plait ?
Traduisez-le et partagez-le à la communautée !

( Si le thème ou plugin en question n’est pas internationalisé, consultez la partie 3 de l’excellent article de Marc Charlet. )

 

Télécharger et installer Poedit

Direction le site internet de l’outil : http://www.poedit.net/

Vous trouverez sur la page de téléchargement une version pour chaque plateforme (Windows, Mac OS et ).

Prenez la bonne version et installez-la ! ( pour windows: Next – I’accept – Next – Next- Next – Next – Install – Finish )

 

Précision sur le fonctionnement de l’internationalisation dans

WordPress permet dans son implémentation de délimiter les traductions dans des « domaines ». On peut faire l’analogie avec le découpage de la France en départements / régions.

Pour cela, les fonctions d’internationalisations disposent de plusieurs paramètres :

function __($text, $domain = ‘default’)

function _e($text, $domain = ‘default’)

Le premier paramètre ($text) correspond à la chaine de texte à traduire. Tandis que le deuxième ($domain) correspond au domaine de traduction. On peut d’ailleurs remarquer que si on n’utilise pas de deuxième paramètre, le domaine prend la valeur « default ». (le cas des chaines originales de WordPress)

Le fichier PO/MO présent dans le pack français traduit l’ensemble du domaine « default » de WordPress.

Exemple: Une chaine de texte du domaine « default » traduit par le pack français.

<?php _e(‘Anonymous’); ?>

Attention: N’étendez pas la traduction par défaut à d’autres ou , au risque d’avoir de nombreux problème lors des mises à jour du pack français…

 

Vous l’aurez compris, il faut que votre thème ou plugin, dispose de son propre domaine de traduction pour toutes les chaines à traduire. Si ça n’est pas le cas, uniformiser le nom du domaine.

Exemple: Une chaine du plugin SimpleTagging, utilisant le domaine « simpletagging ».

<?php _e(‘Simple : Options’, ‘simpletagging’); ?>

Le principe est le même pour les thèmes et les plugins.

 

Nommage des fichiers de traduction (PO/MO)

Selon le cas, plugin ou thème, le nommage des fichiers de traduction est différent, explications !

Les thèmes

C’est le cas le plus simple, votre fichier de traduction doit juste être nommé dans le code de langue utilisé.

Exemple pour un WordPress français, il faudra juste nommé vos fichiers en fr_FR.po et fr_FR.mo et les placer dans le même dossier que votre thème.

Plus généralement, il faudra que vos fichiers soient nommer de la même façon que la constante « WPLANG » fixée dans le fichier wp-config.php

define (‘WPLANG’, ‘fr_FR’);

Les plugins

Cette fois-çi c’est un tout petit peu plus compliqué, votre fichier doit être nommé de la façon suivante : domaine – code langue .mo

Exemple pour le plugin SimpleTagging (rappel, le domaine de traduction est « simpletagging ») :

simpletagging-fr_FR.po

simpletagging-fr_FR.mo

 

Attention: Tout cela ne vaut que si vos plugins et thèmes sont bien développés… si cela ne fonctionne pas le plus simple est de contacter l’auteur pour savoir quelle est la spécificité. (il n’est pas rare de voir des dossiers « languages » dans les plugins, le cas échant déplacer vos fichiers de traduction dedans)

 

Créer un fichier PO et POT depuis les sources dans Poedit

L’ancienne méthode en ligne de commande est révolue ! (sauf cas spécifique)

Poedit vous permet de créer directement un fichier PO depuis les sources de votre plugin ou thème.
Mon exemple traitera d’un plugin, mais c’est le même principe pour les thèmes !

  1. Lancer Poedit
  2. Cliquer « Fichier – Nouveau catologue »
  3. Une fenêtre configuration apparait
    1. Compléter l’onglet « Info projet »
      PoeditInfoProjet thumb Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
    2. Compléter l’onglet « Chemins »
      1. Ajouter un chemin grâce au bouton : PeditAjoutchemin Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
      2. Copier/coller le chemin de votre projet à l’aide de la barre d’adresse ou saisissez-la manuellement (cliquer pour agrandir)
        PoeditAdresse thumb Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
        PeoeditOngletAdresse thumb Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
    3. Compléter l’onglet « Mots clé »
      1. Ajouter un mot clé grâce au bouton: PeditAjoutchemin 3 Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
      2. Ajouter les mots clés : ‘__’, ‘_e’ et ‘_c’
      3. Résultat à obtenir:
        PoeditMotscles thumb Explications sur linternationalisation de WordPress et créer un fichier PO avec Poedit
    4. Appuyer sur Ok
  4. Enregistrer le fichier avec comme nom, le domaine de votre plugin (exemple: exemple.po)
  5. Si tout se déroule bien, Poedit vous affiche une fenêtre avec les chaines ajoutées et éventuellement supprimées.
  6. Ne commencez pas tout de suite la traduction.
  7. Enregistrer le fichier et fermer Poedit.
  8. Dupliquer le fichier exemple.po en exemple.pot
  9. Supprimer le fichier exemple.mo créé automatiquement lors de l’enregistrement
  10. Renommer le fichier exemple.po en exemple-fr_FR.po
  11. Vous pouvez alors éditer ce fichier avec Poedit et réaliser la traduction française
  12. Le fichier POT permettra à d’autres personnes d’éventuellement traduire votre thème/plugin sans s’embêter à générer un fichier PO depuis les sources.

 

Mise à jour de votre traduction (POT)

Si vous effectuez des modifications dans les sources du plugins ou du thème:

  1. Il vous suffit de renommer le fichier exemple.pot en fichier exemple.po
  2. De le mettre à jour, pour cela:
    1. Menu « Catalogue » – « Mise à jour depuis les sources »
    2. Vous aurez un aperçu des ajouts et des suppressions
    3. Valider
    4. Enregistrer et fermer Poedit
  3. Renommer le fichier exemple.po en exemple.pot
  4. Supprimer le fichier exemple.mo créé automatiquement lors de l’enregistrement

Vous disposez alors d’un fichier POT à jour.

 

Mise à jour de votre traduction PO depuis un fichier POT

  1. Ouvrer votre traduction exemple-fr_FR.po avec Poedit
  2. Cliquer sur le sur menu « Catalogue – Mettre à jour depuis fichier POT »
  3. Sélectionner le fichier POT
  4. Valider les modifications
  5. Traduiser les nouvelles chaines
  6. Enregistrer !

Vous disposez d’un fichier de traduction à jour.

 

Bonne traduction ;)

31 Commentaires

  1. Pingback : Utiliser les fichiers .pot, .po, mo

  2. Le mois passé j’ai utilisé ce principe pour la production d’un site web d’entreprise comprenant plusieurs langues. C’est extrêmement pratique pour traduire tous les éléments customisés de menus et autres. Pas pour le contenu bien évidemment, ce n’est pas le but de la manoeuvre…

  3. Pingback : test

  4. Pingback : 11 points importants lors de la réalisation d’un plugin WordPress » Here With Me

  5. Pingback : Localisation de subscribe-to-comments (Jack) | Créer Site Internet

  6. Pingback : Localisation de subscribe-to-comments (Jack) | Créer Site Internet

  7. Enfin un tutoriel qui nous donne ce qu’on attend.
    En plus de cela, clair et concis, que du bonheur.

    Un grand merci pour ce travail bien fait ;).

  8. Pingback : Traduire Wordpress (themes, plugins, widget) avec POEDIT | Celogeek

  9. Pingback : Internationaliser un thème WordPress « Daria blogue

  10. Pingback : Un autre article sur la traduction officielle d’un thème wordpress « Blog professionnel

  11. Pingback : Themes Wordpress, les liens - Debuter avec Wordpress

  12. Milles merci!

    15 jours que je galérais pour l’utilisation des fichiers PO/MO d’un thème Wootheme.. …et vous m’avez donné la réponse.. ….ils avaient préfixé le nom des fichiers du nom du thème du coup, ça ne marchait pas..

    merci encore

    Emmanuel

  13. Pingback : Comment créer et utiliser les fichiers .PO et .MO de plugins et thèmes Wordpress ? | La Cerise sur le Web

  14. Pingback : links for 2010-10-03 | Stéphane Thibault

  15. Alors je ne laisse pas souvent des msg sur les forums mais là merci BEAUCOUP pour ce tuto super clair !
    J’ai passé l’après midi a essayer de comprendre comment gettext fonctionné, aucun tuto sur le net n’était suffisamment complet ou commencé a dater … et en fait pas besoin de compiler quoi que ce soit .. :)
    Merci !

  16. Pingback : Themes | Couarail Band

  17. J’ai aussi pas mal galéré…

    Du PO au POT en supprimant MO, puis du PO au MO tout en conservant POT pour modifier PO qui deviendra MO, je dis chapeau !!

    Merci beaucoup :)

  18. Pingback : Comment faire un réseau social buddypress multilingue

  19. Bonjour,

    Je veux traduire un plugin qui s’appelle s2member… J’ai téléchargé le fichier .pot du s2member et sauvegardé dans un dossier local, J’ai téléchargé Poedit, j’ouvre mon fichier .pot, je configure, je fais la sauvegarde, je clique OK et rien ne se passe…

    Est-ce qu’il y a un problème avec la configuration ?

    Informations (sur votre image, dans votre logiciel, le nom de cette rubrique s’appelle Info Projet… pourquoi ?)
    =============================
    Nom et version du projet : c’est déjà donné – s2Member 111105
    Équipe de traduction : j’ai donné mon nom
    Adresse électronique : j’ai donné mon adresse e-mail
    Langue : j’ai choisi français (à la quelle je veux traduire le texte anglais)
    Pays : mon pays je suppose (France)
    Jeu de caractère : déjà donné UTF-8
    Jeu de caractère du code source : je suppose que c’est utf-8 (non?)
    Formes plurielles : j’ai écrit comme vous (nplurals=2; plural=n>1)

    Chemins
    =======
    Le chemin de quoi ? J’ai donné un chemin du dossier où mon fichier .pot se trouve (est-ce que c’est important?) : \\IGOLIV\Users\fnac\Documents\Sites\IL\wp-content\plugins\s2member\includes\translations

    Mots clés
    ========
    j’ai ajouté comme vous : 1e ligne __, 2e _e, 3e _c

    Puis, à la fenêtre « enregistrer sous » je donne un nom : s2member.po, je clique sur ENREGISTRER… et rien ne se passe… en bas, du logiciel c’est marqué :
    Traduit à 0%, 615 chaînes (0 approximatives, 0 marqueurs incorrects, 615 restant à traduire)

    Est-que vous avez une idée pourquoi ça ne fait rien… ?

    Merci et à bientôt,
    Igor

  20. Bonjour,

    Merci pour cet article, mais je rencontre tout de même un problème. Il me trouve seulement 5 lignes à traduire sur tout un thème. Je pense que ça doit être à cause du _e nom mis. Mais je ne sais pas ou vraiement mettre le code sans provoquer ensuite des erreurs.

    Par exemple j’ai ceci entre balise h2 et dans une class nommé « pagetitle »>Archive for Archive for et pour F, Y dois je le mettre _e thetime(‘F, Y’)

    Merci pour vos conseils

  21. Bonjour

    J’ai résolu moi même mes problèmes. Mais je pense qu’il manque juste une petite chose mais qui à son importance. Il faut bien que le dossier lang ou language soient appelé. Mais comment l’écrire mettre cette ligne ou dans le header, functions,

    Merci

  22. Magnifique ! Génial! Formidable! Voilà des gens qui savent expliquer. Merci de tout coeur.
    PS : ne pas oublier que pour les plugins il faut souvent mettre les fichiers mo et po dans le dossier language du plugin lui-même.

  23. Remarque supplémentaire :
    pour la traduction d’un modèle les fichiers doivent se nommer fr_FR.mo et fr_FR.po et se trouver dans le répertoire du modèle (par exemple pour les modèles RocketTheme) et ça marche !

  24. Merci, clair et net, j’ai mieux compris la chaîne de traduction .pot, .po, .mo avec cet article.

  25. Pingback : Traduire son thème WordPress en français avec Codestyling Localization

  26. Pingback : Traduire son thème WordPress en français avec Codestyling Localization

  27. I’m not certain the place you’re getting your information, but great topic.
    I needs to spend a while studying more or understanding more.
    Thank you for excellent information I was looking for this information for my mission.

  28. Bonjour,

    Si vous êtes intéressés de traduire logiciels pour Internet, pour PC, pour mobiles ou tout autre type de logiciels, je vous recommandons chaleureusement le nouvel instrument numérique ”l10n” que mon équipe a récemment créé – et qui a toutes les chances de rendre vos activités de bureau bien plus faciles et rapides.

    http://poeditor.com/

    POEditor est intuitif, basé sur travail en collaboration. Il comprend de nombreuses fonctions qui puissent vous soutenir lors du processus de gestion de traductions, que vous pourriez découvrir sur notre page Internet.Vous pouvez importer depuis multiples types de fichiers de localisation (pot, po, xls, xlsx, strings, xml, resx, properties) ou se servir directement de notre REST API.
    N’hésitez pas de l’essayer et/ou le proposer aux développeurs ou, en général, a ceux qui en seraient intéressés.

  29. This piece of writing will help the internet people for creating new blog or even a blog from
    start to end.

  30. On pourrait ajouter comment le faire vraiment fonctionner après. Ajouter ceci dans votre fichier de fonctions :
    // multilingue
    add_action( 'init', 'make_wpm_multilang' );
    function make_wpm_multilang() {
    load_plugin_textdomain('VOTRE_PLUGIN', false, dirname( plugin_basename( __FILE__ ) ).'/VOTRE_DOSSIER_LANGUES');
    }

    En remplaçant comme il se doit VOTRE_PLUGIN et VOTRE DOSSIER_LANGUES

    Cordialement

  31. Bonjour,
    J’ai suivi à la lettre ce tutoriel et l’indication de Laurent,mais la traduction ne fonctionne pas. J’utilise Worpress et le thème Colorway. J’ai passé la journée dessus et la franchement je galère…
    Peut-être que ce thème pose un problème?
    j’ai testé d’autres thèmes, la traduction fonction sur les pages… et les fichiers monthemes-fr_FR.po et mo étaient déjà présents dans le dossier content/languages/theme
    Pourriez vous me dire si le thème colorway pose un problème?

    Yvan

Laisser un commentaire