Objet
Le thème est prévu pour être publié. Il a été programmé en utilisant, pour afficher les messages, les 2 fonctions WordPress:
__ ($message, $domain) qui renvoie un texte à une autre fonction,
_e($message, $domain) qui affiche directement le texte.

Pour écrire des programmes multilingues, WordPress s’appuie sur la bibliothèque logicielle GNU GetText .

GetText utilise la chaîne de caractères à traduire comme clef de recherche dans un fichier de traduction et renvoie, soit la chaîne traduite, soit la chaîne d’origine, si aucune traduction n’est disponible.

On se reportera utilement à la documentation Translating WordPress et load_theme_textdomain .

Le fichier de traduction source fr_FR.po
Le fichier peut être créé avec un simple éditeur de texte mais il est bien plus facile de le faire en utilisant un outil d’aide comme Poedit. Ce logiciel examine tous les fichiers .php contenu dans un ou plusieurs répertoires pour en extraire les textes à traduire. Pour cela il faut naturellement lui indiquer:
- les paramètres généraux: langue = fr, pays = FR,  jeux de caractères = UFT8 qui serviront à produire l’entête du fichier,
- la liste des répertoires à balayer, ici C:/… …/themes/montheme,
- les fonctions qui contiennent les textes à traduire, c’est à dire, __ (bien mettre 2 underscores) et _e .

Poedit produit la liste des messages à traduire et le fichier compilé fr_FR.mo qui est utilisé par le thème. Il est ensuite très facile pour un utilisateur du thème de décliner le fichier source, selon sa langue, norme  ISO 639 et son pays, norme ISO 3166-1, en de_DE, en_GB, en_US, xx_YY, …, d’y inclure sa traduction et de le recompiler.

Notion de domaine
Il permet de limiter le champ de la traduction à un domaine de programmes. Les plugins, par exemple, qui ont leur propre fichier de traduction. Le nom du fichier de traduction est alors préfixé du nom de de domaine. Il est de la forme  domaine-fr_FR.po et domaine-fr_FR.mo. Pour le thème le nom du fichier ne doit pas être préfixé du nom de domaine.

Installation
Dans le répertoire /themes/montheme créer le répertoire languages. Mettre les fichiers fr_FR.po et fr_FR.mo créés avec Poedit dans /montheme/languages .

Avec l’éditeur de texte ouvrir le fichier functions.php, insérer en début de ce fichier les lignes suivantes:

// Path des fichiers de traduction
add_action('after_setup_theme', 'traduction_setup');
function traduction_setup(){
// Préparation du répertoire et du fichier de traduction
    load_theme_textdomain( 'montheme', TEMPLATEPATH . '/languages' ); // fixer le nom du domaine
    $locale = get_locale(); // Notre langue fr et notre pays FR = fr_FR
    $locale_file = TEMPLATEPATH . "/languages/$locale.php";
    if ( is_readable( $locale_file ) ) require_once( $locale_file );
    // The .mo files must use language-only filenames, like languages/de_DE.mo in your theme directory
} // end setup

Enregistrer les fichiers. Presser CTRL+SHIFT+R (sous Firefox) pour vider le cache du navigateur et rafraichir l’écran.
Pour vérifier le fonctionnement, ouvrir fr_FR.po avec Poedit. Dans la liste des messages affichés, cliquer sur le premier, par exemple. Dans l’espace de traduction (partie basse de la fenêtre de Poedit), saisir (sans les quotes) « Ceci est un exemple de texte traduit ». Valider. Enregister. Vérifier que le texte a été remplacé.  C’est terminé.

Télécharger les fichiers du thème et les copier sous /themes/montheme .

Liens
Partie 1 – Choix des outils
Partie 2 – Environnement de développement et de qualification
Partie 3 – Installation de WordPress sur serveur local
Partie 4 – Créer son thème WordPress
Partie 5 – Créer son thème WordPress – Template Index
Partie 6 – Créer son thème WordPress – Template Sidebar
Partie 7 – Créer son thème WordPress – Template Footer
Partie 8 – Créer son thème WordPress – Template Archive
Partie 9 – Créer son thème WordPress – Template Search
Partie 10 – Créer son thème WordPress – Template Single
Partie 11 – Créer son thème WordPress – Template Comments
Partie 12 – Créer son thème WordPress – Style Print
Partie 13 – Créer son thème WordPress – Autres Templates
Partie 14 – Créer son thème WordPress – Traduction