Internationalisation des thèmes::partie 6::La méthode complète
26 septembre 2006 par Marc Charlet
Dans ce billet, nous allons passer en revue une méthode complète et pratique pour mettre en oeuvre et mener à son terme un projet d’internationalisation d’un thème, au départ unilingue.
Les étapes d’un projet
- étape 1: travailler les sources pour introduire les fonctions gettext
- étape 2: générer un fichier catalogue des messages
- étape 3: créer les fichiers source et compilé des traductions
- étape 4: mise en place, test interactifs et mise au point
Comme annoncé dans le billet précédent, nous allons travailler ‘en direct’ dans le répertoire /wp-content/themes/[nom du thème]/ de notre environnement de test.
(i)Je vous conseille de travailler sur (au moins) quatre fenêtres1 simultanément:
- une fenêtre avec votre éditeur de fichiers
- une fenêtre [Invite de commandes]2 ouverte dans le répertoire de test /wp-content/themes/[nom du thème]/3
- une fenêtre [poedit] ouverte sur le fichier fr_FR.po
- une fenêtre de votre navigateur http ouverte sur les pages concernées de votre site
En pratique
Le processus est itératif et interactif et il se décompose comme suit:
- dans la fenêtre [Editeur]: modifiez les sources d’un fichier php
(i) analysez bien les sources de votre thème: de plus en plus de thèmes viennent avec des sources déjà partiellement internationalisées. Dans ce cas, vérifiez la présence de la variable $textdomain adéquate dans les appels aux fonctions gettext et, au besoin, ajoutez-la.
(i)N’oubliez pas les déclarations des fonctions aux début des fichiers header.php et functions.php4)
- dans la fenêtre [Invite de commandes]: lancez l’exécution de la commande xgettext générique (*.php)
- dans la fenêtre [poedit]: actualisez du fichier po via le menu de mise à jour du programme poedit

(i)Faites bien attention à toujours travailler avec des versions complètes5 du fichier POT
- dans la fenêtre [poedit]: entrez/modifiez vos traductions dans le fichier fr_FR.po
(i)Faites attention aux espaces à l’intérieur des messages6
- dans la fenêtre [poedit]: sauvegardez le fichier
-
réactualisez la fenêtre du navigateur et analysez votre résultat directement à l’écran
-
retournez
- soit dans la fenêtre [poedit] pour entrer/modifier les traductions
- soit dans la fenêtre [Editeur] pour poursuivre les modifications des sources
Après ça c’est ‘roule ma poule‘ jusqu’au résultat final: un fichier MO des traductions françaises distribuable avec les sources internationalisées du thème.
(i) dernière petite remarque: le texte qui apparaît dans l’écran d’administration des thèmes n’est autre que le contenu des premières lignes du fichier style.css
![]()
Le dernier billet de cette série fera le point sur l’internationalisation des plugins.
- personnellement j’ouvre une cinquième fenêtre avec un navigateur IE (6) [retour]
- anciennement appelée [fenêtre DOS] [retour]
- voir le billet sur la navigation tgv dans une fenêtre [Invite de commandes] [retour]
- load_theme_textdomain ( [retour]
- reprenant tous les messages existants [retour]
- par exemple ” by ” devient “[espace]par[espace]” [retour]
Tags: gettext, guide-débutant, mo, po, pot, thème, Traductions, utilitaire, Web, Wordpress
3 réponses à “Internationalisation des thèmes::partie 6::La méthode complète”

Excellente petite série de tutos très détaillés
Je viens de traduire mon premier thème sous Linux, la marche à suivre est exactement identique (il suffit d’installer les paquets gettext et poedit).
Voilà une nouvelle qu’elle est bonne
Comme je l’avais annoncé, il a fallu (dans un premier temps) travailler avec ce qui reste (pour le moment) le plus grand nombre…
(Ce n’est pas anodin si le site s’intitule ‘Sanders-Hardmuth au pays des pingouins’)
Pour notre info, juste qques petites questions:
quelle est ta distribution Linux?
quel thème as-tu traduit?
où peut-on le voir?
penses-tu le mettre à disposition de la communauté?
En tous les cas, bravo et merci
Ce tutoriel est extraordinaire.
Merci pour le temps passé à nous expliquer le tout pas à pas.
Grâce à toi, je viens de commencer à traduire mon thème proprement.
Un vrai coup de pouce à la communauté!