Créer un fichier de traduction .po sous WordPress

87 commentaires
Créer un fichier de traduction .po sous WordPress
Les thèmes et les plugins WordPress sont développés en anglais et doivent faire l'objet d'une traduction française pour être compréhensible du plus grand nombre.

Ce tutoriel abordera 2 cas : quand un fichier .po existe déjà et quand il est absent alors même que le thème ou le plugin dispose de chaînes traduisibles.

Cas n°1 – Un fichier .po est présent

C’est le cas le plus courant et le plus simple. Le thème ou le plugins dispose d’un fichier .po généralement situé à la racine du dossier ou dans un sous-dossier /languages ou /lang.

Capture d'écran - Présence d'un fichier .mo / .po
Poedit est LE logiciel de traduction .po qui générera vos .mo

Pour procéder à la traduction, vous devez éditer ce catalogue de chaînes de traduction à l’aide Poedit. Ce logiciel multiplateforme vous permettra de générer un fichier compilé .mo qui servira à afficher les données traduites sur votre site.

Pour en savoir plus, reportez-vous au tutoriel dédié à Poedit.

Il est important de renommer votre fichier .po / .mo en fonction du préfixe de langue. Par exemple, pour le français on indiquera fr_FR.mo et fr_FR.po sinon impossible de faire fonctionner la traduction.

Cas n°2 – Aucun fichier .po existant

Ce cas est le plus complexe car il requiert des étapes de configurations supplémentaires dans Poedit. Dans cette situation, il n’existe aucun fichier de traduction pré-configuré mais le thème ou le plugin est annoncé comme étant prêt à traduire.

Notez que cette manipulation vaut aussi bien pour les fichiers .pot à la seule différence qu’un fichier .pot n’est autre qu’un modèle qui nous servira à créer un .po.

Étape n°1 – Récupération des sources de traduction

Rapatriez dans un premier temps le dossier de votre thème ou du plugins à traduire sur votre bureau. Ce sera plus simple par la suite.

Étape n°2 – Création d’un nouveau catalogue

Lancez ensuite Poedit puis faites FichierNouveau catalogue.

Remplissez les différents champs qui viennent d’apparaître dont :

  • Nom et version du projet : par exemple, Mon Thème 1.0 ;
  • Equipe de traduction : indispensable de spécifier l’auteur pour conserver une trace si le projet est mis à disposition de tous (logique open-source) ;
  • Adresse électronique de l’équipe : idem que précédemment, utile pour prendre contact et poser des questions au traducteur ;
  • Langue : la langue de traduction, ici le français ;
  • Jeu de caractères : toujours sur UTF-8 tout comme WordPress ;
  • Jeu de caractères du code source : idem ;
  • Formes plurielles : indiquez nplurals=2; plural=(n > 1) ;
Capture d'écran - Création d'un catalogue sous Poedit
Création d’un catalogue sous Poedit

Passez donc à présent sur l’onglet Chemins de sources. C’est ici que nous allons indiquer où se trouve le dossier du thème ou du plugin à traduire.

Cliquez donc sur le second bouton pour créer un nouvel emplacement. Dans le champ relatif au chemin, indiquez le répertoire de votre dossier. Par exemple :

/Volumes/DATA/Desktop/twentyeleven

Capture d'écran - Poedit, emplacement des sources
Le chemin des fichiers à traduire sous Poedit

Continuez maintenant sur le dernier onglet Mots-clés source.

Il faut savoir qu’une chaine de traduction est facilement identifiable dans le code PHP d’un thème ou d’un plugin WordPress. En effet, elle est précédée d’un mot-clé comme __ ou _e ce qui nous donne à titre d’exemple :

<h1><?php _e('Hello World' , 'twentyeleven'); ?></h1>
<h1><?php echo __('Hello World' , 'twentyeleven'); ?></h1>

La fonction est formée d’une part de la chaine à traduire et d’autres part du domaine du thème ou du plugin. Ce domaine permet de regrouper les chaines issus d’un même projet – utilisé notamment par des plugins comme WPML qui gère les sites multilingues.

Dans la première ligne, le _e ajoute automatiquement le echo et affiche donc la traduction. Le second avec __ ne le fait pas.

Pour aller plus loin et comprendre comment gérer les variables dans les chaînes de traduction, reportez-vous à I18n – Internationalisation pour WordPress. Vous y apprendrez que la gestion des langues sous WordPress respecte les standards PHP et repose sur la librairie Gettext.

Mais poursuivons en ajoutant  les mots-clés suivants : _e__ (double underscore, le tiret sous le 8), _x et _n.

Capture d'écran - Poedit, ajout des mots-clés à traduire
Ces mots-clés nous serviront à détecter les chaînes à traduire

Validez le tout en cliquant sur OK. Votre catalogue est fin prêt… mais il ne contient toujours pas les chaînes à traduire !

Étape n°3 – Récupération des chaînes de traduction

Nous allons demander à Poedit de scanner l’intégralité du dossier pour rechercher les chaînes à traduire en fonction des mots-clés spécifiés.

Pour ce faire, cliquez sur Mettre à jour.

Capture d'écran - Mise à jour des sources via Poedit
La mise à jour des sources est utile à chaque nouvelle version d’un thème ou d’un plugin pour ajouter les nouvelles chaines – ce qui n’est pas toujours fait par les auteurs

Bingo ! Toutes les traductions sont apparues… ou du moins les chaînes à traduire car maintenant c’est à vous de travailler.

Et n’oubliez pas de transférer les fichiers .mo à l’aide d’un client FTP dans le dossier du thème ou du plugin concerné.

Cas n°3 – Le thème ou le plugin n’est pas translation-ready

C’est le cas le plus rare… premièrement, contactez le développeur pour qu’il fasse un effort ! Deuxièmement, pour gagner du temps ou si la réponse est négative, créez vous mêmes les chaînes à traduire en rajoutant les mots-clés… cela demande de bonnes compétences en matière d’internationalisation.

Dans tous les cas, rappelez-vous d’une chose concernant la gestion des traductions : ne jamais effectuer une traduction directement dans le code, jamais !

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

87 commentaires
  1. Yunicia

    Merci beaucoup !

    Votre article m’a été d’un grand secours =)

  2. Elise Bouvier

    Bonsoir !
    Cool c’est toujours actif 🙂
    Moi j’ai une question qui concerne les emails transactionnels de mes commandes woocommerce envoyés en automatique.
    J’ai des clients anglais / français et grecs et un woocommerce qui match en fonction de la géolocalisation.
    Il y a t il une solution pour que les emails soient envoyés traduits en fonction du pays du client ?
    (je suis vraiment désolée si ma question n’a rien à voir ici mais j’ai l’impression que je peux obtenir un début de réponse 😀 )
    Merci par avance !

    1. Aurélien Denis auteur de l’article

      Bonjour, sauf à créer un site multilingue je ne vois pas comment faire cela… 🙂

  3. melissa 57

    Bonjour,

    je ne suis pas sûre que cette discussion soit toujours active mais je tente le coup! tout d’abord, merci pour cet article très intéressant.
    ‘C’est effectivement très simple mais malheureusement les traductions ne sont toujours pas visible sur mon site : j’ai bien suivi le tutoriel, les fichiers .po et .mo sont bien dans le fichier Language du plugin à traduire (Recipe cards) mais toujours rien.
    Sauriez-vous d’où ca peut venir ? je suis désolée j’imagine bien qu’on vous a posé cette question pluieurs fois en lisant les commentaires mais rien n’y fait je suis bloquée …!
    merci d’avance de votre aide

    Melissa

    1. Aurélien Denis auteur de l’article

      Bonjour, cela peut être causé par pleins de choses. Essayez de passer par l’extension Loco Translate pour traduire vos extensions et thèmes pour vous faciliter la vie.

  4. Olivier C

    “Rapatriez dans un premier temps le dossier de votre thème ou du plugins à traduire sur votre bureau. Ce sera plus simple par la suite.””

    Meu non. Il suffit de configurer ces lignes comme suit dans le fichier .po pour tout traduire à partir d’un chemin relatif :

    “X-Poedit-Basepath: .\n”
    “X-Poedit-SearchPath-0: .\n”
    “X-Poedit-SearchPath-1: ..\n”

  5. 8pics

    Bonjour Aurélien,

    Super blog, je le consulte régulièrement.

    J’ai une question sur les fichiers .po et PoEdit :

    Est ce qu’on peut mettre des variables dans le fichier de trad pour récupérer le nom de la catégorie parente sur laquelle s’affiche la traduction.
    Un exemple sera plus clair. Ce qui me dérange ce sont les titres des pages archives de wordpress :

    – par défaut on a : Category archives : “nom de la catégorie”
    – Si on se creuse un peu le crâne pour la traduction et qu’on enlève ce mot moche “archive” : Tous les articles de : nom de la catégorie
    – Mais ce que je voudrais, c’est parvenir à : “Nom de la catégorie parente” (en variable dans le fichier PO) : Tous les articles de : “nom de la catégorie actuelle” (qui est une catégorie enfant du coup et qui s’affiche toujours par défaut car c’est comme ça que sont fait la plupart des thèmes.)

    Je n’ai pas envi d’aller modifier le thème et de m’embêter avec les futures mises à jour pour un si petit détail ou d’utiliser un thème enfant pour UNE traduction du coup j’ai eu cette idée mais je ne sais pas si c’est possible, et je ne trouve pas d’information la dessus.

    Si tu as la réponse je te lirais avec plaisir 🙂

    Merci

    Romain

    1. Aurélien Denis auteur de l’article

      Merci d’apprécier WordPress Channel ! 😎

      Pour répondre à ta question, il te faut modifier ton thème en créant des chaines de traduction avec des variables. Ce n’est pas très compliqué mais c’est le passage obligé. Ensuite, dans ton PO tu pourras traduire des variables qui peuvent prendre la forme d’un %s ou %d par exemple. Plus d’infos sur : https://codex.wordpress.org/I18n_for_WordPress_Developers

  6. bed

    merci pour ce super tutu kom d’hab!
    j’ai juste une question pour un wp installé en francais et un theme en arabe,qui ne s’affiche pas , comment faire please

    1. Aurélien Denis auteur de l’article

      Pour un site multilingue, le recours à un plugin comme WPML est indispensable.

  7. Noaneo

    Bonjour,
    j’essaie de traduire cette phrase avec PoEdit
    You can change or remove MyThemeShop link from footer and use your own custom text. Tip: You can use our affiliate link and earn 60% commission on every sale.
    mais à chaque fois j’ai une erreur
    erreur: format specifications in ‘msgid’ and ‘msgstr’ for argument 1 are not the same
    Merci

  8. Christelle

    Bonjour Aurélien,
    J’ai traduit un plugin (cas n° 2 pas de fichier po) et j’ai bien transféré mes fichiers .mo et .po mais il ne se passe rien ? Que puis-je faire ? Merci d’avance 🙂

    1. Aurélien Denis auteur de l’article

      Le nom du plugin doit figurer dans le nom du .mo pour que cela fonctionne et le plugin doit supporter l’ajout de traductions.

      1. Christelle

        Merci de ta réponse. Pour le nom c’était déjà fait. Comment savoir si le plugin supporte l’ajout de traduction ? Et si ce n’est pas le cas, que faire ? C’est un plugin payant ça m’embêterait de l’avoir acheter pour rien… J’ai essayé de contacter son concepteur mais 0 réponse…

        1. Noaneo

          Bonjour,
          vous avez regardé le code de votre plugin?
          Etait il comme dans l’exemple codé pour être traduit ?
          Vous avez mis les fichiers langues directement dans le plugin ou un sous dossier languages ?
          Avez vous mis aussi les fichiers en default.po et default.mo ?

  9. isabelle

    Bonjour Aurélien, j’ai tenté maintes fois sans succès, là oui je suis désespérée 🙂 j’ai sahifa en local et lorsque je vais sur themeforest sahifa =>sahifa=>languages : j’ai un fichier tout blanc fr_FR.mo puis au-dessous un fichier avec un A à l’intérieur nommé sur le côté: Type gettext message catalog, lorsque j’ouvre ce fichier je tombe sur la page fr_FR.po.sahifa v1 – poedit et tous les textes originaux sans déjà traduits en français (donc ok), ensuite j’ai fais fichier enregister sous fr_FR.po soit Fr_FR et à chaque fois il me dit qu’il existe déjà.
    si vous pouvez me venir en aide, je vous remercie à l’avance, car ce thème sahifa serait bien sympathique en français pour moi travailler mes dossiers que j’importe d’overblog
    Cordialement
    Isa

  10. Dixit

    Un tuto très clair sur les fichiers .po.Il est vrai que c’est assez fastidieux à faire, mais on est assez content quand on a terminé et qu’on peut mettre en ligne sa traduction proprement !

  11. Monasoleil

    Bonjuour Aurélien,

    Merci beaucoup pour votre tutoriel, il m’a beaucoup aidé. Je viens de créer un nouveau blog car je veux partager ma passion http://www.montarot.ca

  12. Mickael

    J’ai bien suivi ce super tuto mais malheureusement la traduction ne se fait pas. J’utilise le plugin qTranslate, peut être est ce que ça vient de la ?
    J’ai fait un thème perso dans lequel j’ai créer un répertoire languages. Dans functions.php j’ai :
    add_action(‘init’, ‘my_theme_setup’);
    function my_theme_setup(){
    load_theme_textdomain( ‘ot’, get_template_directory() . ‘/languages’ );
    }

    Lorque je passe en anglais, ma traduction ne se fait pas (en sachant que ma source est en français). Au secours !!!

    1. Aurélien Denis auteur de l’article

      Difficile à dire sans accéder au code mais il est conseillé de coder les chaines dans votre thème en anglais pour éviter la gestion des accents notamment.

  13. xav

    Bonjour,
    comment wp reconnait la langue des utilisateurs ?
    Parce que l’ip n’est pas toujours fiable, il y a les cookies et la langue par default du navigateur ?
    Merci

    1. Aurélien Denis auteur de l’article

      WordPress ne reconnaît pas la langue des utilisateurs. C’est le fichier de configuration wp-config.php qui la détermine. Ensuite, il faut passer par un plugin comme WPML pour faire un site multilingue aussi bien en back-office qu’en front-office.

  14. Administrateur

    Bonjour, merci pour le tuto que j’avais déjà expérimenté. Cette fois-ci j’ai un gros problème. J’ai récupéré le fichier en_US.po dans le dossier lang de mon thème comme d’habitude, mais quand je l’ouvre avec poedit, rien ne s’affiche ! Il n’y a rien dans la colonne de gauche..

    Une idée de comment je pourrais régler le problème ?

    Merci d’avance 😉

    1. Aurélien Denis auteur de l’article

      Il faut générer le PO alors…

  15. Philippe

    Bonjour, à partir du .pot fourni dans le thème d’un blog en cours, j’ai généré le fr_FR sans souci, à part qu’il manque des expressions à traduire. Comment les ajouter manuellement ? J’ai ajouté les “__” et les “_e” dans les mot-clés, mais cela n’a rien changé. Egalement, je voudrais modifier une expression mal saisie : dans les pages, j’ai _e( ‘No search results found…’ mais dans PoEdit, j’ai “No search results found..” (deux points au lieu de trois), ce qui fait que la version FR n’est pas traduite sur le blog. Que faire pour la modifier ?

    1. Aurélien Denis auteur de l’article

      Je vais éditer l’article mais il faut aussi chercher les préfixes _x et _n. Si des expressions ne sont pas dedans, il faut faire mettre à jour le PO.

      1. Philippe

        Merci Aurélien, j’ai ajouté les préfixes, Enregistrer, mais malgré la mise à jour du catalogue depuis le fichier POT, on ne m’affiche aucune nouvelle chaîne à ajouter.

        1. Aurélien Denis auteur de l’article

          Je peux pas vous dire comme cela, c’est difficile…

  16. lafeegraphik

    j’ai utilisé l’éditeur “poedit” (http://www.poedit.net/) pour les traductions. Par contre lorsque j’écrasais les fichiers mo et po, cela ne fonctionnait pas. J’ai du les supprimer sur le serveur puis les placer à nouveau en vérifiant bien que l’extension était correct (pas d’espace avant le point…). J’espère que ça marchera pour vous !

  17. Lucie

    Merci pour vos tutos toujours très qualitatifs !

    Problématiques concernant traduction :

    1- J’ai traduit le fichier .po. Cela a bien fonctionné pour les mots concernant le formulaire de contact mais pas pour le reste (!)

    2- Les espaces ne sont pas pris en compte – Du coup je reçois par exemple par email Merciprenom (càd Thank you a bien été traduit par “Merci” mais l’espace ajouté après “Merci” est inexistant, c tout collé) – idem pour les autres champs. Si l’espace n’est pas en premier ou dernier ça fonctionne en revanche.

    Auriez-vous des suggestions ?

    1. Lucie

      J’ai enfin résolu ces 2 points. Mon fichier .po n’était pas pris en compte. Il a fallut que je supprime d’abord le .po côté hébergeur avant de basculer le .po modifié localement + rebasculer le .mo et tout a été pris en compte, extra !

      1. Aurélien Denis auteur de l’article

        OK problème résolu alors ? 🙂

        1. Lucie

          Oui parfaitement et même si j’ai buggé sur une partie du .po votre tuto m’a permis de découvrir ce système de traduction m’évitant de nombreuses heures “d’épluchage” de code php, merci bcp !

          1. Emmanuelle

            Bonjour,

            Nous utilisons “Easy digital download” et “PDF Invoice”. Nous avons traduis les fichiers .mo et .po ce que nous voulions pour que cela soit en français mais la traduction ne s’affiche pas… D’où le problème peut-il provenir ?

            Merci,
            Emmanuelle

          2. Aurélien Denis auteur de l’article

            Sûrement une question de nommage des fichiers de traduction ou d’emplacements. Généralement, les auteurs de plugins livrent des informations à ce sujet… ou alors il faut les contacter.

  18. laurence

    Génial ce post ! je devais traduire une partie d’un thème pour un client et du coup cela c’est fait très facilement. ça faisait 2 heures que je galérai avec des extensions inefficaces.

  19. Jean-Pierre Marcé

    Bonjour, j’ai essayé de traduire un petit plugin “Simple Contact Form Revisited widget” mais il n’y pas de répertoire lang ou language. J’ai créé les fichiers fr_FR.mo et .po avec poedit et les ai mis à la racine du plugin. Mais cela ne traduit rien. Je suppose que ce plugin n’est pas prêt pour être traduit. Comment le savoir?

    1. Aurélien Denis auteur de l’article

      Si vous êtes parvenu à faire détecter des chaînes à traduire par Poedit, il doit y avoir un moyen de les faire prendre en charge par le plugin. Cela dit, il commence à dater et le mieux serait de prendre contact avec son auteur. 😉

      1. Jean-Pierre Marcé

        Merci de votre réponse. Les chaines sont détectées, pas toutes, par _e et __

        Je cherchais un formulaire de contact simple qu’on puisse mettre dans les widgets de façon à ce qu’il apparaisse sur toutes les pages. Pour le moment j’ai traduit en “dur” dans les routines php bien je sache que cela ne devrait pas se faire (retraité maintenant, j’ai fait du développement de logiciel pendant toute ma carrière…). je vais chercher une autre solution.

        Je suis déçu de rencontrer problème sur problème avec les extensions que je tente d’utiliser et de devoir régulièrement contacter les auteurs.

        1. Aurélien Denis auteur de l’article

          Avez-vous testé Contact Form 7 ? Le shortcode (bout de code entre crochet) fonctionne dans n’importe quel widget texte de WordPress. 😉

          1. Jean-Pierre Marcé

            Merci, oui je connais Contact Form 7 que j’utilise par ailleurs. Merci de votre suggesstion de recopier le shortcode dans un widget.

  20. Laurent Duquerroy

    Pour tester Poedit, j’ai décidé de traduire le plugin Milestone bien connu sur WordPress.com. Il est au téléchargement pour un WP auto-hébergé, mais disponible en allemand. Après avoir ouvert le fichier .po, des chaînes semblent “verrouillées” dans un fichier .po. Impossible donc de les traduire. Comble de malheur, certaines chaînes sont des expressions qui apparaissent en front.
    Bref. Quelqu’un saurait-il me dire comment déverrouiller ces chaînes ? Après avoir fouillé dans les paramètres de poedit et sur le web, je n’est encore rien trouvé.

      1. Laurent

        Merci Aurélien pour ce coup de pouce et ce lien.

  21. Office

    Bonjour,

    J’ai bien effectué le tuto, par contre sur mon plugin j’ai un problème de traduction partielle. J’ai bien traduit avec Poiedit les lignes de codes correspondent bien aux fichiers sources, mais j’ai quand même des traductions qui ne passe pas. Comment résoudre cela ?

  22. marwa0001

    bonjour , svp j’ai besoin de savoir comment je peux faire un site avec la langue fr/an ,je veux quand j’accède a mon site (front)je trouve un lien (fr/an) et quand je clique “An” tout le site change en anglais (page ,menu ,contenu).
    pour le moment je travail sur wordpress version 3.5.1 fr (le fichier langages est vide).
    j’ai essayé avec des plugin mais ca fonctionne pas .
    Est ce que je dois avoir un autre dossier worpdress (version anglais ) sous ma racine pour que sa marche ??

    1. Aurélien Denis auteur de l’article

      Le plugin multilingue que je recommande : WPML. Payant mais vraiment pas cher !

  23. Mélanie

    Bonjour,

    Je suis confrontée au même pb avec le thème REASON, je ne parviens à traduire le terme “Category” en français et n’ai pas très bien compris la réponse d’Aurélien.
    Puis-je avoir plus d’explications ?

    D’avance merci.

    1. Pierre

      Bonjour,

      Je n’ai pas encore approfondi la question, désolé. Mais si je sais ce qu’est un fichier .po, je ne sais pas comment “vérifier que la chaine est internationalisée dans le thème.” C’est vrai que sa réponse n’est guère limpide pour un non-expert de WP… Le premier qui trouve la solution informe l’autre !
      Bonne chance …

      1. Mélanie

        Très bien.
        J’ai cherché un peu, mais je débute sur wordpress.
        Je suis évidemment preneuse d’une solution !
        Avis aux experts wordpress !!!

    2. Aurélien Denis auteur de l’article

      Pas de panique, ce n’est pas très compliqué… il faut suivre le cas n°2 à la lettre pour mettre à jour le fichier de traduction à partir du thème original. Recherchez ensuite les termes relatifs à “category”. Il y est forcément dans 99%. 😉

      1. Pierre

        Bonsoir Aurélien,
        Pas de panique, c’est sûr. Mais c’est bizarre : mon thème est traduit, j’ai inspecté son fichier de traduction .po (acheté sur wptrads.fr) et tout est traduit. Pourtant, c’est bien le terme anglais “Category” qui s’affiche…

        1. Mélanie

          Bonjour,
          J’ai trouvé la solution pour mon thème. Dans l’éditeur, “Modèle pour la page d’accueil”, il suffit de remplacer :

          CODE NON FORMATE DONC INVISIBLE, DESOLE

          J’espère que ça marchera pour toi.
          Bon we

        2. Pierre

          Effectivement, le code est invisible. Mais j’ai aussi trouvé la parade : modifier le fichier category.php.
          Merci !

  24. Pierre

    Bonjour,
    Très intéressant cet article ; je n’y ai pourtant pas trouvé la réponse à mon problème : j’utilise bien sûr WP en français avec un thème (Ovid, de Themeforest) traduit lui aussi en français, mais pas moyen de remplacer le terme anglais Category qui apparaît sur mes pages (p.ex. ici http://www.ecolesrec.ch/category/es/espees/). Vous n’auriez pas une idée du problème ? D’avance merci !

    1. Aurélien Denis auteur de l’article

      2 solutions : soit le fichier PO est incomplet auquel il faut le mettre à jour par rapport à la source, soit il faut vérifier que la chaine est internationalisée dans le thème.

  25. sebastien

    Excuse moi aurélien mais je pense que tu n’as pas compris ma question.
    Si le fichier.mo est dans le dossier wp-content/plugins/monplugin, directement dans ce dossier là, pas dans un dossier lang ou language, je dois mettre le path du dossier monplugin (path serveur) ?

    1. Aurélien Denis auteur de l’article

      Il te faut créer la traduction sur ta machine personnelle et non directement sur le serveur car le .mo ne sera pas généré. Si tu opères en local, alors oui mais restez sur le bureau est plus simple et rapide.

  26. sebastien

    concernant le chemi, tu peux en dire davantage ?
    Si mon fichier.mo est dans le dossier wp-content/plugins/monplugin je dois mettre le path du dossier monplugin, c’est ça ?

    1. Aurélien Denis auteur de l’article

      Chaque plugin / thème fonctionne différemment. Certains disposeront d’un dossier /lang ou /languages, d’autre pas. Il faut voir avec l’auteur lorsqu’aucune information n’est proposée.

  27. sebastien

    y’a un truc que j’arrive pas à faire avec poedit c’est enregistré un fichier .pot
    .po et .mo sans probleme mais pas le .pot
    comment on fait ?

  28. Laurent

    Merci pour ce tutoriel tout à fait éducatif.
    Mais pourquoi ne faut-il “jamais effectuer une traduction directement dans le code, jamais !”

    1. Aurélien Denis auteur de l’article

      Car tu ne peux pas gérer plusieurs langues, que c’est compliqué si tu as besoin d’aller rechercher pour éditer une chaîne et un tas d’autres raisons que je n’ai pas en tête. 😉

      1. Laurent

        Ces raisons sont logiques en effet. J’ai crains un instant que d’autres conséquences, plus technico-techniques, soient envisageables. Après avoir fait la traduction d’un thème dans le code, je vais pourvoir, grâce à ce tutoriel, mettre enfin mon thème à jour avec sa dernière version et faire la traduction en deux temps trois mouvements !
        Merci Aurélien pour cette somme de travail présentée dans ce site et dont tout le monde est bénéficiaire.

  29. jerome

    ha oui effectivement le formulaire est dans le footer mais j’étais sur mon iphone et je ne l’ai pas vu…

  30. Jérôme

    Bonjour,
    Je ne savais ou envoyer ma suggestion (je n’ai pas vu de contact email sur le site…).

    Bref, serait il possible de faire un tutoriel complet (A à Z) sur la mise en ligne (transfert de local au serveur) de wp?
    Je m’explique, je suis en train de finir mon thème perso en local et je souhaite le mettre enfin en ligne, mais après une simple recherche Google (wordpress local en ligne) je m’aperçoit que beaucoup de gens galère avec la mise en ligne de leur wordpress.

    Dois je réinstaller un nouveau wordpress sur mon serveur ou y glisser tout mon dossier wordpress local en bourin?

    Je sais pas du tout comment faire et j’ai peur de perdre la configuration des bdd, plugins, menu, widgets…. je ne suis pas le seul dans ce cas apparemment.

    Merci
    ++

    1. Aurélien Denis auteur de l’article

      Le formulaire de contact est dans le pied de page. 😉

      Sinon, oui c’est une bonne idée de tutoriel mais c’est compréhensible que beaucoup de monde galèrent sur une opération de ce niveau technique…

  31. Guy

    @noaneo: c’est probalement le cas numéro 3: Le thème ou le plugin n’est pas translation-ready. D’autre part le répertoire language n’est pas nécessairement “language”, c’est la fonction load_theme_textdomain (qui doit être présente pour que le thème soit traduisible, il existe le pendant pour les plugins) qui définit à la fois le répertoire des fichiers de traduction et le domaine de traduction.

    Mots clés: Mettre __ et _e est très insuffisant, WordPress nous fournit une dizaine de mots clés pour les traductions, il FAUT les mettre tous pour assurer une traduction de qualité: __, _e, _n, _x, _ex, _nx, esc_attr__, esc_attr_e, esc_attr_x, esc_html__, esc_html_e, esc_html_x, _n_noop, _nx_noop

    1. noaneo

      oui le thème n’était pas fait pour la traduction, mais comme j’ai fait cela fonctionne parfaitement.
      Merci

  32. noaneo

    merci pour ce tuto, j’ai créé un dossier language puis mis les fichiers en_EN.po (essayer default.po ) et en_EN.mo puis fr_FR.po et fr_FR.mo ,malgré toout le thème reste en anglais, pourquoi?
    site test : http://er.v.free.fr/

    Merci

    1. noaneo

      il faut rajouter un code dans functions.php pour que la traduction soit prise en compte, sinon on n’a pas de fichier po. et .mo d’origine.

  33. Guy

    Pour des traductions directement dans l’interface d’administration, il existe aussi l’extension “codestyling localisation”.

    Pas forcément très ergonomique pour des centaines de termes à traduire mais très très pratique pour ajouter ou enrichir des traductions (on peut également visualiser l’emplacement des chaines dans les fichiers php)

    1. Aurélien Denis auteur de l’article

      Merci de l’info même si je note que ce n’est pas gratuit. 🙂

      1. Kim

        C’est gratuit pour les projets open source! 🙂 Bref, pour ceux qui font des plugins comme nous, Transifex est comme un outil envoyé du ciel…

  34. www.web-geek.fr

    Très bon tuto, je ne savais même pas que c’était possible de créer un fichier de traduction chez WordPress, même pour un plugin.

    En tout cas ça à l’air plus facile à mettre en place que ce je pensais.

  35. ScreenFeedFr

    Salut.

    Pour les formes plurielles, ce ne serait pas plutôt nplurals=2; plural=(n>1) ?
    En tout cas c’est ce qui est indiqué dans la trad fr de WP.
    Et pour les mots clés, _n et _x sont assez courants aussi.

    A+
    Greg

  36. Wolforg

    Excellent tuto, manque juste la gestion des historiques de traductions mais ça dégrossit déjà pas mal le job 😀

    1. Aurélien Denis auteur de l’article

      Tu peux m’en dire plus toi qui gère des traductions WordPress au quotidien ? 🙂

      1. Wolforg

        Oui, bien sur.
        En fait PoEdit peut gérer un dictionnaire de traductions. Il suffit de créer un base de référence puis d’indiquer le répertoire ou les traductions sont stockées. Une fois que c’est fait, il faut à chaque nouvelle trad dire à PoEdit d’aller chercher à traduire automatiquement. Ca n’affranchit pas de la vérification de la trad mais ça traduit les termes les plus récurrents 😀

        1. Aurélien Denis auteur de l’article

          C’est donc à ça que sert cette fonction de traduction auto ?

          1. Wolforg

            Et ouais, comme quoi avec WP on en apprend tous les jours et c’est ça qui est bon 🙂

        2. Grégoire Noyelle

          Super cette fonction. Merci Je vais tester. Et effectivement pour les termes récurrents, quel gain de temps