Baptiste Dufour

Traduire un thème WordPress custom

Traduire un thème WordPress.
Traduire son thème WordPress est indispensable pour les sites multilingues

Vous avez créé vous-même votre thème WordPress et vous voulez le traduire ? Alors vous êtes au bon endroit. Dans cet article, je ne vais pas vous montrer comment traduire vos pages et vos articles, pour cela il existe des plugins de traduction comme Polylang ou WPML, qui ne nécessitent pas vraiment de compétences en développement. Je vais plutôt vous expliquer comment faire en sorte que les chaînes de caractère écrites dans le code source de votre thème soient traduisibles : c’est ce qu’on appelle l’internationalisation. Ainsi, votre thème sera compatible avec les plugins que je viens d’évoquer.

  1. Créer un textdomain pour votre thème
  2. Encapsuler les chaînes de caractères
  3. Générer un fichier de template de traduction
  4. Créer les fichiers pour traduire votre thème WordPress dans n’importe quelle langue
  5. Mettre à jour votre template de traduction
  6. Fonctionnement des thèmes WordPress traduis avec les plugins multilingues

Créer un textdomain pour votre thème

La première étape pour internationaliser (traduire) votre thème WordPress custom est de déclarer ce qu’on appelle un textdomain. Un textdomain sert un quelque sorte d’identifiant, qui permettra par la suite à WordPress de retrouver les chaînes de caractère à traduire. Pas d’inquiétude, tout va vite s’éclaircir :

<?php
function my_theme_after_setup_theme(){
    load_theme_textdomain('my_theme',get_template_directory()."/languages");
}

add_action('after_setup_theme', 'my_theme_after_setup_theme');
/*
Theme Name: My theme
Text Domain: my_theme
Domain Path: /languages
*/

Encapsuler les chaînes de caractères

Pour pouvoir traduire les chaînes de caractères de votre thème WordPress, encapsulez-les à l’aide des fonctions d’internationalisation natives. Cela évite que les chaînes soient juste hard-codées dans vos fichiers de template. À titre personnel, j’utilise exclusivement la plus basique de ces fonctions : _(). Toutefois, il en existe d’autres, plus complexes, qui prennent par exemple en charge les pluriels, si vous en avez l’utilité.

Dans le code ci-dessous, j’ai encapsulé les chaînes de caractère pour mon fichier de template 404.php. C’est un bon exemple, car dans ce template, votre contenu textuel sera généralement directement inscrit dans le fichier. Mais pour traduire votre thème WordPress dans son intégralité, vous devez faire cette opération pour l’intégralité tous vos fichiers .php contenant des chaînes.

<?php get_header(); ?>
<main>
    <h1><?php echo __("Erreur 404","my_theme"); ?></h1>
    <p><?php echo __("Vérifiez que vous n'avez pas fait d'erreur dans l'URL.","my_theme"); ?></p>
</main>
<?php get_footer(); ?>

Générer un fichier de template de traduction

À partir de maintenant, tout va se passer dans le back-office de WordPress :

  1. Téléchargez le plugin Loco translate depuis le répertoire des extensions WordPress.
  2. Rendez-vous dans l’onglet Thèmes du plugin. Normalement, votre thème et son textdomain devraient s’afficher.
  3. Rendez-vous dessus, puis cliquez sur Créer un modèle. Cette opération va générer un template de traduction en .pot dans votre dossier languages.

Ce fichier .pot contient toutes les chaînes de caractères que vous avez encapsulées avec les fonctions d’internationalisation. Il servira de base pour traduire votre thème WordPress dans toutes les langues de votre choix.

Créer les fichiers pour traduire votre thème WordPress dans n’importe quelle langue

Maintenant, vous avez la possibilité de cliquer sur le bouton Nouvelle langue :

  1. Choisissez la langue de votre choix.
  2. Ensuite, en ce qui concerne l’emplacement, je vous conseille de cocher la case Auteur. Ainsi, vos fichiers de traduction seront enregistrés dans votre répertoire languages, ce qui rendra votre thème plus facile à distribuer pour d’autres installations WordPress.
  3. Cliquez sur Commencer la traduction.
  4. À partir de là, vous aurez une interface graphique à votre disposition pour traduire toutes les chaînes individuellement.

À l’issue de la traduction, deux fichiers en .po et en .mo seront générés dans votre répertoire languages, ils contiennent les chaînes traduites. Vous n’aurez pas besoin d’y toucher manuellement.

Mettre à jour votre template de traduction

Vous allez certainement faire évoluer vos fichiers de thème WordPress avec le temps, et vous aurez alors besoin de traduire les nouvelles chaînes :

Vos nouvelles chaînes ont été récupérées, et ainsi vous pouvez mettre à jour chacune des langues traduites :

De cette manière, vous pouvez mettre à jour les .mo et .po pour chaque langue.

Fonctionnement des thèmes WordPress traduis avec les plugins multilingues

L’intérêt de traduire votre thème WordPress est qu’il sera compatible avec les plugins pour sites multilingues, comme WPML ou Polylang. De cette manière, les chaînes de caractère présentes dans vos fichiers de template s’afficheront dans le bon langage quand vous passerez d’une langue à l’autre sur votre site.