Traduction WordPress MultiSite 101 en français

WordPress Multisite 101 en français

Après plusieurs semaines de travail, j’ai le plaisir de publier la traduction en français de l’excellent ebook de Mika Epstein & Andrea Rennick sur la mise en oeuvre de WordPress MultiSite. Cet ouvrage comment créer son propre réseau, gérer les utilisateurs les sites et des informations sur les extensions les plus utilisées.

Si cet ouvrage vous plaît, vous êtes invité à faire un don sur le site des 2 auteures à cette adresse où vous trouverez également l’original en anglais. Il est gratuit et publié sous licence libre Creative Commons sans usage à caractère commercial.

Je vous le propose en 2 versions soit en PDF soit en ePub en cliquant sur les liens ci-dessous :

  • La version PDF [download#1]
  • La version ePub [download#2]

Bonne lecture, bon blogging.

Générer un fichier de traduction pour WordPress avec PoEdit.

La plupart du temps, on utilise Poedit pour générer les fichiers .mo à partir d’un fichier .po existant. Si votre thème ou plugin, ne possède pas de fichier .po pour effectuer la traduction, il vous faudra le générer. Deux solutions s’offrent à vous ; la génération du fichier à partir des commandes gettext en mode manuel ou Poedit en mode graphique. C’est cette solution qui nous intéresse ici.

Travaillons donc à réaliser un nouveau fichier de traduction du thème Twenty-Eleven. Cela peut paraître inutile, voir même stupide, mais détrompez-vous ; si vous avez effectué des changements dans le thème, il peut être intéressant de régénérer un fichier de traduction tenant compte des ajouts ou retraits que vous avez pu faire dans les fichiers du thème.

Création du catalogue

Dans le menu Fichier, il faut cliquer sur Nouveau catalogue.

Copie d'écran de la commande Nouveau catalogue

Nouveau catalogue dans le menu fichier

Configuration

La fenêtre de configuration avec 3 onglets va s’ouvrir.

Informations

Copie d'écran de l'onglet Informations de la page de configuration

Onglet Informations de la page de configuration

Voici donc les paramètres à renseigner pour l’onglet Informations. Bien entendu, il est indispensable de remplir les différents champs, avec un soin particulier pour la langue, le pays, les jeux de caractères (par défaut WordPress utilise l’UTF-8) et les formes plurielles. Attention, ces informations sont importantes pour le fonctionnement du fichier de traduction par la suite.

Chemins

Copie d'écran de l'onglet Chemins de la page de configuration

Onglet Chemins de la page de configuration

L’onglet Chemins permet de définir les chemins pour accéder aux fichiers à analyser. Il faut laisser le point dans le chemin de base et ajouter le chemin absolu vers les fichiers à analyser (le chemin du thème dans notre cas). Attention, la copie d’écran est faite avec une norme Unix, parce que Poedit était utilisé sous Linux. Si vous êtes sous Windows, il faudra logiquement utiliser la convention de nommage Windows du genre : C:\wamp\www\wordpress\wp-content\themes\twentyeleven.

Toute erreur à ce niveau, entraînera un échec systématique de la génération du catalogue. C’est à ce niveau que l’erreur est la plus facile et fréquente, alors relisez le chemin avec attention.

Mots-clés

Copie d'écran de l'onglet Mots-clés de la page de configuration

Onglet Mots-clés de la page de configuration

Cet onglet est indispensable, WordPress utilisant par défaut deux fonctions qui ne sont pas présentes dans la configuration par défaut de Poedit. Il vous faut donc ajouter dans la liste les fonctions __ et _e. Si vous ne le faîtes pas, Poedit ne trouvera pas de chaînes à traduire (ou pas toutes) lorsqu’il analysera les fichiers.

La configuration est enfin terminée, il ne reste plus qu’à valider pour sauvegarder votre fichier. Ce n’était donc pas si compliquée que cela. Reste maintenant, l’instant de vérité : la configuration est-elle bonne ?

Mettre à jour le catalogue

Pour l’instant, le catalogue (.po) généré ne contient aucune chaîne, il est donc nécessaire de le mettre à jour en passant par le menu Catalogue, puis Mise à jour depuis les sources.

Copie d'écran de la mise à jour du catalogue depuis les sources

Mise à jour du catalogue depuis les sources

Si vous n’avez pas fait d’erreur dans la configuration, alors, vous aurez la satisfaction de voir apparaître une barre d’avancement. Si vous avez un message d’erreur, il faut revérifier pas à pas les point précédents de la démarche de configuration.

Copie d'écran de la mise à jour du catalogue

Mise à jour du catalogue

Viendra alors l’écran de résumé des actions faites par Poedit. Dans, mon cas, il s’agit d’une création d’un fichier à partir de rien. Donc il a détecté 108 nouvelles chaînes et aucune désuète. Tout est donc parfaitement normal.

Copie d'écran du résumé suite à la génération du fichier po

Résumé suite à la génération du fichier po

Bien entendu, cela fonctionne également, pour mettre à jour, un fichier po. Si je modifie le thème en changeant des phrases et supprimant quelques mentions inutiles (je plaisante, il n’y a rien d’inutile), j’obtiens ceci :

Copie d'écran du résumé suite à la modification du fichier po

Résumé suite à la modification du fichier po

Une fois validé, vous vous retrouvez avec votre fichier po près à être utilisé pour une traduction.

Copie d'écran du fichier po après génération

Le fichier po généré contenant les chaînes à traduire

Il ne vous reste plus maintenant qu’à traduire les chaînes du fichier pour générer le ficher mo, que vous pourrez utiliser sur votre site.

Mise en place d’un thème enfant (child theme)

Quoi de plus pénible, lorsque l’on personnalise un thème, d’avoir à rééditer tous ses fichiers à chaque mise à jour. Certains ont trouvé la parade ; ne jamais le mettre à jour. Lorsque la mise à jour se limite à l’ajout d’un fichier de langue, ce n’est pas un catastrophe, mais lorsque cela corrige un bug, voir une faille de sécurité dans le fichier de fonctions, cela devient une très mauvaise idée. Rechercher les différences des fichiers entre l’original, la mise à jour et le thème personnalisé relève du calvaire d’autant qu’il y a moyen d’éviter tous ces problème en utilisant les thèmes enfants.

Le concept est simple ; une page ne vous plait pas ? Vous en faîtes en copie dans le thème enfant que vous modifiez à votre guise. WordPress, lorsqu’il utilise un thème enfant va prendre en priorité les fichiers qu’il contient. S’il ne trouve pas le fichier dans ce sous-thème, il prend le fichier du thème parent. Quand une mise à jour intervient, seul le thème parent est mis à jour, ce qui évite de massacrer vos modifications (présentes dans le thème enfant). Dans la majorité des cas, les modifications sont mineures et n’impacteront pas vos changements.

Voyons comment le mettre en place. En premier, je dirais allez voir le codex sur le sujet, il y a plein d’informations et de réponses. Ce n’est pas une traduction de la page, c’est simplement un retour d’expérience personnel.

  • La première étape consiste à créer dans le répertoire wp-contentthemes, un nouveau répertoire. Vous devez lui donner exactement le même nom que celui du thème d’origine auquel vous aurez ajouté -child. Dans mon cas, le répertoire du thème d’origine s’appelle blackcurrant, celui du thème enfant s’appelle donc blackcurrant-child. Attention à la casse !!!
  • Ce qui créé véritablement le thème enfant, c’est le fichier style.css. Pour être plus précis, ce sont les en-têtes contenues dans le fichier. Toutes les informations soulignées ont fait l’objet d’une modification.
/*
Theme Name: blackcurrant-child
Version: 2.2 - juin 2010
Theme URI: http://www.quirm.net/
Description: Child theme for BlackCurrant.
Author: fge
Template: blackcurrant
*/

Les seules informations obligatoires sont le nom du thème enfant (Theme Name) et du thème d’origine (Template).

  • Je conseille ce niveau là, de tenter l’activation de ce nouveau thème. En cas de problème avec le fichier, dans votre interface de gestion des thèmes vous aurez un message indiquant que le thème est corrompu. si c’est le cas, il ne vous reste plus qu’à rependre votre fichier style.css. Si tout fonctionne bien, vous verrez votre nouveau thème. Une fois activé vous n’avez plus de style (c’est normal, c’est la nouvelle feuille de style qui s’applique et elle est vide).
  • C’est donc dans cette feuille css que commence la personnalisation. À vous de copier, personnaliser, ajouter les règles qui vous intéressent dans ce nouveau fichier. Dans mon cas, le style me convient parfaitement, et je ne souhaite pas le changer. Je copie donc le contenu de mon fichier dans le nouveau. Mais je suis dans un cas particulier, puisque mon fichier style.css d’origine ne contient que des imports. Pour éviter des copier/coller inutiles, j’ai simplement modifié le chemin d’import pour qu’il aille les chercher dans le thème parenet.
    @import url(« ../blackcurrant/layout.css »);
    Magique, notre site retrouve sa tête d’origine !!!!
  • Maintenant, j’ai envie d’ajouter  la date de dernière modification sur mes articles. Rien de plus simple, je copie donc ma page single.php qui contient un article du répertoire thème parent, vers le thème enfant. Dans ma page single.php enfant, il me reste à ajouter <?php the_modified_date(); ?> à l’endroit voulu. Une fois les modifications enregistrées, il ne vous reste plus qu’à rafraîchir votre page pour vérifier en direct que la modification vous convient.

À ce stade, vous avez toutes les bases nécessaires pour personnaliser votre thème. Il vous suffit d’appliquer la méthode à toutes les pages que vous souhaitez modifier.

Bon, je sais, je suis pénible, cela ne me suffit pas, je veux plus. Mon thème contient un système de traduction avec les fichiers *.po/*.mo (je ne détaillerai pas leur fonctionnement ici) que j’aimerais bien pouvoir utiliser dans mon nouveau thème. Pour conserver le concept parent/enfant, il n’est pas concevable que j’utilise les fichiers parents, les modifications seraient perdues lors de la prochaine mise à jour.

  • Je dois donc faire un nouvel espace de traduction (blackcurrant-child) dans mon thème enfant. Cela se passe dans le fichier functions.php pour ceux ou celles qui ne sauraient pas. Petite particularité de ce fichier, sa présence dans le répertoire enfant n’écrase pas, comme cela se passe pour les autres fichiers, celui du père, mais il ajoute les fonctions à celle existantes. Je créé donc dans mon répertoire enfant, un nouveau fichier functions.php vide dans lequel je définis mon nouvel espace en précisant le chemin de mon nouveau fichier de langue :
load_theme_textdomain ('blackcurrant-child', get_template_directory() . '-child/langs');
  • Il ne me reste plus qu’à ajouter mon texte, dans les règles de l’art, et de mettre à jour mes nouveaux fichiers. Tous mes appels de texte des fichiers du thème enfant doivent avoir la tête suivante :
<?php _e('Last update: ','blackcurrant-child');?> 
  • La dernière opération, est donc la création du fichier *.po/*.mo à l’aide de PoEdit pour le fichier fils afin d’ajouter/supprimer les chaînes.

Vous avez désormais un thème personnalisé, qui vous sera possible de mettre à jour sans tout casser.