L’internationalisation de votre thème WordPress

WordPress est utilisé pour créer divers types de sites web. Lorsque vous créez un thème WordPress, vous devez le construire pour un public aussi large que possible. Cet objectif implique notamment que votre thème soit prêt pour des sites en différentes langues. WordPress fournit une API simple que vous pouvez utiliser pour lui donner une dimension internationale. Dans cet article, vous verrez comment préparer l’internationalisation de votre thème WordPress.

Comment configurer l’internationalisation de votre thème WordPress

Vous pouvez ajouter différentes langues à votre site WordPress. Pour cela, téléchargez les fichiers de traduction sur le blog de l’équipe de traducteurs de WordPress. Sur cette page, vous pouvez voir les différentes langues avec les traductions existentes. Supposons que je veuille télécharger la langue française. Je vais aller à la ligne de la langue française, puis je clique sur le pourcentage comme indiqué dans l’image ci-dessous.

Translations

Ensuite, vous pouvez cliquer sur la version WordPress, et exporter le fichier .mo comme indiqué dans l’image ci-dessous

Export .mo Files

Une fois que vous avez téléchargé le fichier .mo, vous devez le charger dans le dossier wp-content/languages de votre installation WordPress. Vous pouvez ensuite aller dans les Paramètres -> Général de votre administrateur WordPress. Vous devriez y voir les options de langue que vous avez placée dans le dossier wp-content/languages comme indiqué ci-dessous dans l’image. Veuillez sélectionner la langue dans laquelle vous souhaitez modifier le site et cliquez sur « Enregistrer les modifications ».

Settings

Charger le domaine texte dans votre thème

La première étape de l’internationalisation de votre thème consiste à créer le thème. Vous pouvez commencer, dans cet exemple, par créer un thème enfant du thème twentyseventeen. Pour créer un thème enfant, créez d’abord un dossier wp-content/themes/wpinternationlizationtheme. Dans ce dossier, ajoutez le fichier style.css avec le contenu suivant :

/*
 Theme Name:   wpinternationlizationtheme
 Description:  Twenty Seventeen Child Theme.
 Author:       Alexis Peyron
 Author URI:   http://example.com
 Template:     twentyseventeen
 Version:      1.0.0
 Text Domain:  wpinternationlizationtheme
*/

Ce fichier définit un thème enfant avec le nom wpinternationlizationtheme. C’est le thème enfant de twentyseventeen. chaque champ est un champ standard que nous définissons pour un thème enfant. Le champ Text Domain est le champ qui définit un nom unique ce thème. Ce thème doit charger les fichiers de traduction avec cette clé comme identifiant unique.

créez un fichier functions.php avec le code suivant:

<?php
function wpinternationlizationtheme_enqueue_styles() {

    $parent_style = 'parent-style'; 

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}
add_action( 'wp_enqueue_scripts', 'wpinternationlizationtheme_enqueue_styles' );

?>

Le code ci-dessus charge tout d’abord les styles du thème parent (twentyseventeen dans ce cas) et les styles du thème enfant ensuite.

Cela permet aux styles du thème enfant d’être chargé en dernier afin de pouvoir personnaliser votre thème. Vous devez maintenant charger le domaine texte, c’est-à-dire indiquer où WordPress recherchera les traductions pour ce thème. Vous pouvez charger le domaine texte du thème en utilisant la fonction load_theme_textdomain de WordPress.

Pour cela, ajouter le code suivant au fichier functions.php:

function wpinternationlizationtheme_setup(){
    $domain = 'wpinternationlizationtheme';
    // wp-content/languages/wpinternationlizationtheme/de_DE.mo
    load_theme_textdomain( $domain, trailingslashit( WP_LANG_DIR ) . $domain );
    // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo
    load_theme_textdomain( $domain, get_stylesheet_directory() . '/languages' );
    // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo
    load_theme_textdomain( $domain, get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'wpinternationlizationtheme_setup' );

Le code ci-dessus se raccorde à l’action after_setup_theme. Sur cette action, vous chargez le domaine texte du thème. Cela se fait à l’aide de la fonction load_theme_textdomain. Cette fonction est configurée pour rechercher les fichiers .mo dans les répertoires suivants:

- Languages directory
- Child theme directory 
- Parent theme directory

Fonctions WordPress pour l’internationalisation

Une fois que vous avez configuré le domaine texte, jetez un coup d’œil aux fonctions que vous pouvez utiliser pour l’internationalisation de WordPress. Il y a principalement deux fonctions que vous pouvez utiliser. La première est __ . Cette fonction prend deux arguments, le premier étant la chaîne de caractères et le second le domaine. Cette fonction renvoie ensuite la chaîne traduite en fonction de la langue sélectionnée.

Donc, si vous souhaitez ajouter du texte à la fin de chaque article et le traduire en fonction de la langue choisie, ajoutez le code suivant à votre fichier functions.php :

function wpinternationlizationtheme_after($content) {
    return $content . __('Read more', 'wpinternationlizationtheme');
}
add_filter('the_content', 'wpinternationlizationtheme_after');

L’autre fonction est _e. Elle prend les deux mêmes arguments que __. Cette fonction affiche le texte traduit directement sur la page plutôt que de le retourner.

Ainsi, par exemple, si vous souhaitez ajouter un message de bas de page, vous devez créer un fichier footer.php avec le contenu suivant :

<?php
_e('This site is powered by WordPress','wpinternationlizationtheme');
?>

Création du fichier .mo

Une fois que vous aurez créé le code pour l’internationalisation, il faut créer les fichiers de traduction. Il existe de nombreux outils pour créer des fichiers .mo. Dans cet article, vous allez voir l’un des plus populaires, poedit. Vous pouvez télécharger poedit pour votre système d’exploitation sur https://poedit.net/download..

Une fois poedit téléchargé, sélectionnez ‘fichier->Nouveau’ et vous verrez la fenêtre suivante apparaitre:

Choisissez la langue de traduction que vous souhaitez.

Cliquez sur « Extraire depuis le sources » pour extraire la code source à traduire:

Dans cet écran, vous pouvez saisir les informations de base sur le projet.

Enregistrez le fichier de traduction dans content/themes/wpinternationlizationtheme/languages/fr_FR.mo :

Ensuite réouvrez le fichier et cliquez de nouveau sur « Extraire depuis les sources »:

Sélectionnez le chemin qui mène jusqu’au fichier footer.php

Sur l’onglet « Mots-clés sources », vous pouvez saisir les mots clés à rechercher pour obtenir toutes les chaînes de caractères à traduire. Comme vous avez déjà utilisé les deux fonctions __ et _e dans les exemples ci-dessus, ajoutez ces deux fonctions dans cet onglet.

Ensuite cliquez sur « ok ». L’outil va rechercher toutes les chaînes de caractères qui ont besoin d’être traduit comme le montre l’image ci-dessous.

Enfin, si vous mettez la langue en « français », vous devriez voir vos chaînes traduites en français sur le site principal.

Conclusion

WordPress est un des CMS les plus populaires. Vous pouvez vous informer sur le développement de thèmes WordPress avec beaucoup de facilité. Dans de nombreux secteurs, il est absolument nécessaire que votre site WordPress puisse s’adresser à un public de régions et de pays différents. D’où le besoin pour votre thème d’avoir un large éventail de langues disponibles.

Préparer votre thème à l’internationalisation peut être un facteur clé de succès. L’API WordPress pour l’internationalisation est facile à utiliser. Elle permet de traduire facilement votre thème sans modifier aucun code dans vos fichiers.

Je suis expert sur WordPress donc si vous avez besoin d’aide pour l’internationalisation de votre site WordPress, n’hésitez pas à me contacter.

Parlez-moi de votre projet

A propos d'Alexis

Dans le web depuis plus 5 ans, je me suis d'abord spécialisé en webmarketing pour ensuite m'investir dans la création de sites web vitrine, sites/boutiques e-commerce et applications web/plateforme web. J'ai ainsi la double compétence qui me permet d'être force de proposition pour la création de votre site marchand et la mise en place de votre stratégie de vente en ligne.

Laisser un commentaire