Traduire votre thème – sidebars

Je me suis penché aujourd’hui sur la possibilité de traduire le nom des sidebars dans l’admin de WordPress. Ce n’est pas très compliqué mais il faut le prévoir dans le thème.

Fichier functions.php

Comme vous le savez, les sidebars sont définies dans le fichier functions.php de votre thème. C’est dans ce même fichier qu’il faut ajouter la prise en charge de la traduction du thème par WordPress. Editez votre fichier functions.php et ajoutez ces lignes

function theme_MONTHEME_setup() {
load_theme_textdomain( 'MONTHEME', get_template_directory() . '/languages' );
}

add_action( 'after_setup_theme', 'theme_MONTHEME_setup' );

Remplacez MONTHEME par le nom de votre thème pour s’assurer que votre fonction soit unique dans votre site, sinon vous allez tout crasher.

Fichier de langue

Dans notre fonction on a dit que les fichiers vont se trouver dans

get_template_directory() . '/languages'

c’est donc dans le dossier languages du thème (il faut le créer s’il n’existe pas) que nous allons mettre les traductions. Le nom du fichier doit uniquement comporter la chaine de langue, exemple pour une traduction en français :

fr_FR.po

C’est un fichier .PO, pour l’éditer vous pouvez utiliser le logiciel POedit qui marche très bien ! Double cliquez sur le fichier .po pour ouvrir le logiciel.

Tout d’abord vous devez éditer les paramètres du catalogue pour renseigner les infos utiles :

Allez ensuite dans l’onglet Chemin des sources (sources paths) pour définir où chercher les chaines à traduire. Ajouter le dossier de votre thème à la liste, c’est là où POedit va inspecter les fichiers pour récupérer les chaines de caractères.

 

Cliquez ensuite sur le bouton Mettre à jour le code (update from code) pour charger toutes les chaines de caractères du thème.

Vous pouvez alors traduire tous les textes que vous voulez, et quand vous avez fini cliquez sur le bouton Enregistrer (save) pour créer le fichier .mo correspondant. C’est le fichier .mo qui sera utilisé par WordPress pour les traductions.

Voilà c’est fini, c’était assez facile 🙂

NOTE : je précise que ça ne marche que si les textes du thème utilisent le text-domain, c’est à dire les fonctions d’écriture comme

__('mon texte', 'mon-theme')

mon-theme est le nom du thème.

CatégoriesWeb

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *