Skip to content

Tout pour WordPress, le développement web — et plus encore

🚀 Traduction en masse de fichiers .po dans Lokalise via la console du navigateur

🚀 Traduction en masse de fichiers .po dans Lokalise via la console du navigateur

Lorsqu’un thème ou une extension WordPress est livré sans traduction en français et que le fichier .po contient un millier de chaînes ou plus, traduire manuellement chaque élément via Poedit devient un travail de plusieurs jours. Pour de nombreux clients, la traduction automatique est parfaitement acceptable: Google Translate produit des résultats corrects pour les chaînes d’interface, et seules quelques dizaines d’endroits nécessitent une retouche manuelle.

Le problème, c’est que Lokalise, une plateforme de gestion de traduction très performante, ne propose pas de bouton «tout traduire en une fois» en standard. Vous devez cliquer sur le bouton de traduction automatique Google Translate séparément pour chaque chaîne. C’est précisément cette limite que nous allons contourner: un petit script exécuté dans la console du navigateur simule le clic sur ce bouton pour l’ensemble de la liste des chaînes. La méthode a été testée sur des projets allant de 200 à plus de 3000 chaînes.

💡 Aperçu rapide:

  • Préparez un fichier PO à partir d’un modèle POT dans Poedit en utilisant des traductions de substitution en anglais.
  • Créez un projet dans Lokalise, téléversez le fichier source et ajoutez une langue cible.
  • Copiez les clés dans la langue cible et exécutez le script dans la console du navigateur.
  • Tenez compte du chargement différé AJAX: exécutez le script autant de fois que Lokalise charge de nouveaux lots de chaînes.

Qu’est-ce que Lokalise et pourquoi l’utiliser pour traduire des fichiers.po

Lokalise est un système de gestion de traduction (TMS) qui prend en charge les fichiers .po/.pot de manière native. La plateforme s’intègre avec Google Translate, DeepL et son propre moteur d’IA, ce qui vous permet d’obtenir une traduction automatique pour n’importe quelle chaîne en un seul clic. Le hic, c’est qu’un clic par projet ne suffit pas: vous devez appuyer sur le bouton de traduction automatique pour chaque chaîne individuellement.

Pour de petits fichiers de 50 à 100 chaînes, cela reste acceptable. Mais un vrai .pot issu d’une extension ou d’un thème contient rarement moins de 500 chaînes, et les produits volumineux (WooCommerce, les thèmes avec constructeurs de pages) dépassent facilement les 2000. Le script jQuery présenté dans cet article a été écrit précisément pour ces cas-là: il «clique» sur le bouton de traduction pour chaque chaîne actuellement visible à l’écran.

Étape 1: créer un fichier.po à partir d’un.pot dans Poedit

Avant de travailler avec Lokalise, vous avez besoin d’un fichier .po en anglais généré à partir d’un modèle .pot. Téléchargez et installez Poedit, un éditeur de traduction gratuit pour Windows, macOS et Linux.

Ouvrez le fichier .pot du thème ou de l’extension dans Poedit et cliquez sur le bouton «Créer une nouvelle traduction»:

Bouton Créer une nouvelle traduction dans l'application Poedit

Dans la boîte de dialogue qui s’ouvre, sélectionnez l’anglais; il deviendra la langue source pour Lokalise:

Sélection de l'anglais comme langue de traduction dans la boîte de dialogue Poedit

Cliquez sur «Enregistrer sous» et sauvegardez le fichier avec l’extension .po. Le contenu réel des chaînes n’a pas d’importance à ce stade; nous n’allons rien traduire dans Poedit, et toutes les chaînes resteront en anglais comme textes de substitution.

Enregistrement d'un fichier PO via le bouton Enregistrer sous dans Poedit

Vous disposez maintenant d’un fichier .po avec les chaînes originales en anglais. Passons à Lokalise proprement dit.

Étape 2: créer un projet de traduction dans Lokalise

Inscrivez-vous sur lokalise.com; la période d’essai gratuite est suffisante pour une traduction ponctuelle. Après vous être connecté, cliquez sur «Ajouter un projet» au centre de l’écran:

Bouton Ajouter un projet sur l'écran d'accueil de Lokalise

Remplissez les champs: nom du projet (ce que vous voulez, par exemple «Traduction du thème X») et sélectionnez Anglais comme langue de base. Lokalise l’utilisera comme source pour la traduction automatique vers d’autres langues. Cliquez sur «Créer».

Formulaire Nouveau projet dans Lokalise avec sélection de la langue source

Étape 3: téléverser le fichier.po préparé

Dans le projet fraîchement créé, cliquez sur le bouton vert avec une flèche vers le haut pour téléverser un fichier:

Bouton vert de téléversement de fichier dans un projet Lokalise

Une boîte de dialogue de téléversement apparaît. Faites-y glisser le fichier .po, ou cliquez dans la zone pour sélectionner un fichier via l’Explorateur Windows:

Boîte de dialogue de téléversement de fichier PO avec glisser-déposer dans l'interface Lokalise

Point essentiel: définissez la langue du fichier sur Anglais. Si la langue du fichier ne correspond pas à la langue de base du projet, le bouton de traduction automatique Google Translate n'apparaîtra pas, car la plateforme ne peut pas déterminer la langue source.

Cliquez sur «Importer les fichiers»:

Bouton Importer les fichiers avec l'anglais sélectionné avant l'importation

Une fois l'importation terminée, cliquez sur «Aller au projet» pour accéder à l'espace de travail contenant la liste des chaînes.

Étape 4: ajouter la langue de traduction cible

Cliquez sur l'icône plus dans le panneau des langues pour ajouter la langue vers laquelle vous souhaitez traduire:

Bouton pour ajouter une nouvelle langue de traduction dans un projet Lokalise

Sélectionnez la langue dans le menu déroulant. Pour le russe, choisissez Russe:

Sélection du russe dans la liste déroulante de Lokalise

Étape 5: copier les clés dans la langue cible

Pour l'instant, vous avez une colonne de chaînes en anglais, mais la colonne russe est vide. Vous devez y copier les clés (les chaînes originales); la traduction automatique leur sera appliquée.

Sélectionnez toutes les chaînes (Ctrl+A), cliquez sur le bouton d'action qui apparaît, puis choisissez «Copier les clés vers les traductions…». Dans la boîte de dialogue, sélectionnez Russe et cliquez sur «Copier»:

Boîte de dialogue pour copier les clés de traduction en russe avec le russe sélectionné

La colonne russe contient maintenant des chaînes de substitution en anglais qui peuvent recevoir la traduction automatique.

Étape 6: traduction automatique en masse via la console du navigateur

Ouvrez la console développeur: Ctrl+Maj+I (Windows/Linux) ou Cmd+Option+I (macOS). Voici le bouton dont notre script simule le clic. Dans l'interface actuelle de Lokalise, il ressemble à une icône Google:

Bouton mis à jour de traduction automatique Google dans l'interface Lokalise

Voici le script qui «clique» sur ce bouton pour toutes les chaînes visibles:

1/* Bulk Google Translate auto-translation in Lokalise */
2jQuery(document).ready(function ($) {
3 $('span.key-function-button.machine-all.fontello-google-circle').trigger('click');
4});

Copiez le code, collez-le dans la console et appuyez sur Entrée. Les chaînes commenceront à se traduire une par une.

Remarque importante: Lokalise utilise le chargement différé AJAX et affiche les chaînes par lots. Une fois que le script a traité les chaînes visibles, faites défiler la page vers le bas pour charger les nouvelles chaînes non encore traduites. Collez à nouveau le script dans la console et appuyez sur Entrée. Répétez l'opération jusqu'à ce que toutes les chaînes soient traduites.

Pour l'ancienne version de l'interface (si le bouton de traduction automatique est différent), utilisez cette variante:

Ancienne version du bouton de traduction automatique Google dans l'interface Lokalise
1/* Simulated click on the Google translate button (old interface) */
2jQuery(document).ready(function ($) {
3 $('a.key-function-button.machine-all').trigger('click');
4});

Une fois toutes les chaînes traduites, assurez-vous de faire défiler le projet jusqu'à la toute fin et de vérifier visuellement que chaque chaîne de la colonne de traduction est remplie. Les chaînes oubliées n'ont soit pas été chargées (faites défiler à nouveau), soit la traduction automatique a échoué pour elles (cliquez sur le bouton manuellement).

Résultat de la traduction groupée de chaînes dans un projet Lokalise via la console du navigateur

La traduction terminée peut être téléchargée via le bouton Télécharger dans l’interface du projet. Vous recevrez un fichier .po prêt à être importé dans WordPress.

Voici une courte vidéo qui présente le flux de travail complet avec les fichiers .po dans Lokalise, de l’import à l’export:

⁉️🤔 Foire aux questions

Le script ne traduit pas les chaînes. Quel est le problème?

Vérifiez d’abord que la langue du fichier source lors de l’import correspond bien à la langue de base du projet. Si le projet est paramétré en anglais mais que le fichier a été téléversé en russe, le bouton Google Translate n’apparaîtra pas. Ensuite, ouvrez la console (F12) et cherchez des erreurs. Si jQuery est indéfini, c’est que Lokalise a modifié sa structure et que les sélecteurs du script doivent être mis à jour. Enfin, assurez-vous d’avoir copié les clés dans la langue cible (étape 5); sinon, il n’y a rien à traduire.

Puis-je traduire avec DeepL plutôt qu’avec Google Translate?

Oui, si DeepL est activé dans votre projet. Le principe est le même: le bouton de traduction automatique change, mais vous pouvez adapter le script à un autre sélecteur CSS. Repérez l’élément du bouton DeepL via l’inspecteur (Ctrl+Maj+C), copiez sa classe ou son attribut, puis remplacez-le dans le sélecteur $('button-selector').trigger('click').

Combien de chaînes sont traduites en une seule exécution du script?

Exactement autant que ce qui est actuellement affiché à l’écran. Lokalise charge les chaînes par lots (généralement 50 à 100), donc après chaque défilement, vous devez relancer le script. Sur un projet de 2000 chaînes, comptez 5 à 7 exécutions.

Est-il sûr de coller du code dans la console sur le site de quelqu’un d’autre?

Le script fait exactement une chose: il clique de manière programmatique sur un bouton que vous cliqueriez sinon manuellement. Aucune donnée n’est envoyée où que ce soit; le code s’exécute uniquement dans votre navigateur et seulement sur la page Lokalise ouverte. Cela dit, une bonne règle de prudence consiste à toujours lire le code avant de le coller dans la console, surtout s’il ne provient pas de la documentation officielle.

Que faire si certaines chaînes restent en anglais après la traduction?

Il est fort probable que vous n’ayez pas fait défiler la page jusqu’en bas et que vous ayez manqué l’un des chargements AJAX. Faites défiler le projet jusqu’en bas, attendez que tous les lots de chaînes soient complètement chargés, puis relancez le script. Si des chaînes individuelles ne sont toujours pas traduites, cliquez manuellement sur le bouton de traduction automatique pour celles-ci (cela peut arriver si l’API Google Translate a renvoyé une erreur pour une phrase spécifique).

Quand la traduction par console surpasse l’automatisation intégrée

La méthode par console ne remplace pas un flux de travail complet en gestion de traduction (TMS). Si vous faites de la localisation à titre professionnel, Lokalise propose un traitement par lots intégré (pré-traduction), des intégrations avec des outils de TAO et une traduction IA contextuelle. Mais pour la tâche classique qui consiste à traduire un thème WordPress unique et à passer à autre chose, l’approche par console donne des résultats en 5 à 10 minutes sans avoir à se plonger dans la documentation de la plateforme.

L’ensemble du processus, de l’installation de Poedit au fichier .po final, tient en trois étapes: préparer le fichier, le téléverser dans Lokalise, exécuter le script. Si le volume dépasse 500 chaînes, le gain de temps par rapport à un clic manuel sur le bouton pour chaque chaîne se chiffre en dizaines de minutes. Avec plus de 2000 chaînes, c’est la différence entre «réglé le temps d’un café» et «ça a pris la moitié de la journée».