Traduction d’extensions et thèmes premium WordPress

Un nouvel outil pour les agences ou freelances qui vendent des extensions (plugins) ou thèmes premium pour WordPress et qui n’ont pas encore trouvé la solution pour les traduire facilement.

WordPress, ses thèmes et extensions sont traduits par la communauté sur Translating WordPress, grâce à l’outil GlotPress, développé par la même équipe que WordPress.

Mais cela n’est valable que pour les thèmes et extensions publiés sur le dépôt officiel.

Les agences et freelances doivent souvent développer des thèmes et extensions pro, personnalisés ou premium pour leur clients, et il est en général exclu de les retrouver publiés librement.

Si les développements sont pensées durablement et ces modules sont développés en anglais puis traduits, cela pose des problème de traduction.

Pourtant cette façon de faire apporte plusieurs avantages :

  1. 😎 Coder en anglais, c’est plus propre
  2. 😊 Cela permet une réutilisation plus facile
  3. 🤔 On ne sais jamais comment va évoluer la demande du client (refaire est toujours plus dur que de faire)
  4. 🥰 Cela permet de donner la main au client sur les chaînes de texte

Mais alors, comment faire ?

GlotPress s’installe tout aussi facilement que n’importe quelle extension WordPress. Vous êtes donc à 2 clics d’avoir un outils de traduction en ligne dans lequel vous pouvez donner des accès à vos partenaires et clients.

par contre, le déploiement des traductions va s’avérer un peu compliquer, car il va falloir exporter/importer à chaque modification. Un peu très fastidieux.

Heureusement, NOUS avons développé une extension, libre et gratuite pour permettre à des WordPress de télécharger des traductions depuis votre GlotPress.

Installation et configuration

Nous considérons ici que vous disposer d’un GloPress, sur le site courant, ou sur un WordPress dédié, disons monsite.fr/glotpress.

1. Préparez vos thèmes et extensions pro pour la traduction

On considère que vous avez adopté la norme pour rentre vos développements traductibles dans l’écosystème WordPress.

Pour être pris en charge par Custom GlotPress Source, vous n’avez qu’une modification mineure : personnaliser le Domain Path.

Si par exemple, vous votre sous projet premium-plugin se trouve dans le projet my-customer, et donc accessible via l’URL :

https://monsite.fr/glotpress/projects/my-customer/premium-plugin/fr/default/

Alors, vous devez définir le Domain Path sous la forme suivante : projet/sous-projet. Il est possible d’ajouter autant de sous-projet que nécessaire.

Dans cette exemple, cela donne : Domain Path: my-customer/premium-plugin

Votre entête d’extension ressemblera donc à ceci :

<?php
 /*
 Plugin Name: Premium Plugin
 Plugin URI: https://monsite.fr/
 Description: A WordPress plugin for my customer
 Version: 1.0
 Author: N.O.U.S. Open Useful and Simple
 Author URI: https://avecnous.eu/
 Text Domain: premium-plugin
 Domain Path: my-customer/premium-plugin
 */ 

2. Paramétrez vos sites

Sur les sites sur lesquels sont installés vos thème et extensions ainsi préparés, vous n’avez plus qu’à installer Custom GlotPress Source et le configurer.

Dans réglages / GlotPress, saisissez l’URL de la racine de votre GlotPress (ex: https://monsite.fr/glotpress/) et enregistrez. C’est tout !

Dans la page de gestion des mises à nouveau, un bouton apparaîtra en pas si de nouvelles version de traductions sont disponibles.

3. Déployez vos traductions pour WordPress

La méthode facile

Vous pouvez générer les fichiers originaux de traductions manuellement avec Poedit, puis les téléverser dans GlotPress.

Cela devra être répété à chaque modification qui impacte les chaînes traductibles.

La méthode CI/CD

à partir de là, le tutoriel s’adresse un à public plutôt technique.

Si vous utilisez Gitlab avec l’intégration continue, voici un exemple de configuration à utiliser en .gitlab-ci.yml.

On considère que vous avez configuré ces variables d’environnement dans gitlab:

  • SERVER_GLOTPRESS : raccourci de connexion SSH vers votre site hébergeant GlotPress
  • ROOT_GLOTPRESS : chemin vers la racine du site hébergeant GlotPress

On considère également que wp-cli est installé sur le serveur où tourne votre runner.

On enfin que wp-cli est installé sur le serveur où tourne votre GlotPress.

stages:
 localize 

Deploy Translations:
   stage: localize
   script:
        - if ! git diff HEAD~1 |egrep '^(+|-).(|e|x|n)(' ; then exit 0 ; fi
        - wp i18n make-pot . premium-plugin.pot --domain=premium-plugin
        - scp premium-plugin.pot ${SERVER_GLOTPRESS}:premium-plugin.pot
        - ssh ${SERVER_GLOTPRESS} 'cd ${ROOT_GLOTPRESS}; wp glotpress import-originals my-customer/premium-plugin ~/premium-plugin.pot --format=po ; rm ~/premium-plugin.pot'
   environment:
        name: build

Ce que fait ce script:

  1. Vérifier que le dernier commit comporte une différence qui concerne une chaîne traductible
  2. Extraire localement les chaînes à traduire
  3. Copier le fichier de chaînes originales (.pot) sur le serveur de votre GlotPress
  4. Importer les chaînes dans le projet

---
Bastien Ho - 16 septembre 2021