Guide

Qu'est-ce que l'i18n de WordPress et pourquoi c'est important : Voici tout ce qu'il faut savoir !

Merve Alsan
Rédigé par
Merve Alsan
Merve Alsan
Rédigé par
Merve Alsan
Revu
Revu par
Qu'est-ce que l'i18n de WordPress et pourquoi c'est important : Voici tout ce qu'il faut savoir !

Pour ceux qui ne le savent pas, WordPress est au cœur de près de 43 % des sites web dans le monde. De plus, le système de gestion de contenu (CMS) est disponible dans 205 pays différents. La plateforme étant une entité mondiale, la localisation est importante. Le processus i18n de WordPress est essentiel à cet égard.

L'argumentaire de i18n est qu'il s'agit d'un moyen de préparer le code de votre thème et de votre plugin à la traduction. À partir de là, vous pouvez appliquer des traductions précises à d'autres langues, vous aligner sur d'autres cultures et d'autres lieux, et en récolter les fruits.

Dans cet article, nous allons parler plus en détail de l'i18n de WordPress et vous montrer comment l'appliquer. Bien que vous deviez avoir quelques connaissances en codage, nous allons également discuter des étapes en détail - ainsi que de ce qu'est (et fait) l'i18n de WordPress.

Ce que i18n signifie

Produit d'une époque révolue, le "langage leet" est en quelque sorte bien vivant dans les cercles de développement web. Si vous ne verrez pas beaucoup de "l33t" et de "n00b", vous verrez beaucoup de numéronymes : a11y lorsque la discussion porte sur l'accessibilité, par exemple.

En fait, i18n est un autre numéronyme. Il signifie "internationalisation" et se compose de la première et de la dernière lettre combinées à un nombre indiquant le nombre d'autres lettres entre les deux. Vous constaterez également que la localisation a son propre numéronyme : l10n. Il existe également d'autres numéronymes, tels que mondialisation (g11n), européanisation (e13n), et bien d'autres encore.

Nous allons ici nous intéresser plus particulièrement à l'internationalisation. Le document officiel du World Wide Web Consortium (W3C) indique qu'il s'agit d'un domaine dans lequel la conception et le développement permettent une localisation simple pour les utilisateurs de différentes cultures, localités, langues, etc.

Il est important de noter que l'internationalisation n'est qu'une première étape du processus de traduction. À partir de là, vous procéderez à la localisation à l'aide d'une solution de traduction adaptée.

Les bases du processus de localisation i18n

Pour le processus i18n lui-même, il y a un certain nombre d'étapes que le développeur WordPress doit suivre avant de passer le relais au traducteur. En résumé, le processus de localisation se déroule comme suit :

  • Ajoutez une balise "text domain" aux en-têtes de vos pages.
  • Chargement d'un fichier de langue à l'aide de certaines fonctions dédiées de WordPress.
  • Marquer des chaînes de texte à l'aide des fonctions "gettext" (nous en parlerons dans quelques instants).
  • Générez un fichier Portable Object Template(POT) pour votre thème ou votre plugin, et incluez-le.
  • Vous pouvez créer un fichier CSS (Cascading StyleSheets) pour le discours de droite à gauche (RTL).

Le traducteur prendra le fichier .pot et l'utilisera pour effectuer la localisation, il s'agit donc d'une partie importante de la procédure.

Une brève introduction à l'outil gettext

Pour ceux qui ne le savent pas, les fichiers POT sont un exemple de ceux que vous générez à l'aide de l'outil GNU gettext. Il s'agit d'une technologie et d'un logiciel datant des années 1980 qui offrent encore aujourd'hui une immense valeur pour les personnes qui travaillent dans le domaine de l'i18n.

Il n'est pas nécessaire de savoir exactement de quoi il s'agit pour réaliser l'i18n de WordPress, mais il est utile de comprendre ce qu'il fait de manière générale, et ce qu'il génère. Considérons gettext comme un cadre qui aide WordPress à produire des messages multilingues.

Vous verrez souvent un certain nombre de fichiers associés à gettext :

  • FichiersPOT. Il s'agit du modèle pour vos efforts en matière d'i18n, et c'est ce que le traducteur utilise pour démarrer sa partie du processus.
  • les fichiers d'objets portables (PO). À toutes fins utiles, il n'y a pas de différence réelle entre les fichiers POT et PO. Lors de la traduction, le fichier PO contient des chaînes de texte dans la langue maternelle et dans la langue traduite.
  • Les fichiers Machine Object (MO). Considérez les fichiers MO comme la version adaptée au code WordPress d'un fichier PO. Il se trouve dans le répertoire du thème ou du plugin de votre installation et fournit les traductions lorsque WordPress en a besoin.

Avec tout cela à l'esprit, vous pouvez presque commencer le processus i18n. Tout d'abord, il convient de préparer votre site WordPress pour le travail à venir.

Avant de commencer à réaliser le processus i18n de WordPress

Comme pour tout projet relatif aux fichiers centraux de WordPress, vous devez vous assurer que votre installation est "propre" avant de commencer. Vous devez également vous assurer que vous pouvez annuler toutes les modifications que vous apportez, au cas où le pire scénario se produirait et que vous auriez besoin de les restaurer.

Il y a donc deux "étapes préalables" presque non négociables avant le processus i18n :

  • Sauvegardez intégralement votre site. Cela devrait aller de soi, car une sauvegarde complète est le seul moyen de protéger votre site si vous devez recommencer.
  • Effectuez un audit des plugins. C'est une bonne idée de passer en revue tous les plugins de votre site et de se poser deux questions : Une mise à jour est-elle disponible et ai-je besoin de ce plugin ?

Dans ce dernier cas, nous vous conseillons de mettre à jour les plugins que vous souhaitez conserver et de supprimer ceux qui ne sont plus nécessaires.

Une fois de plus, nous allons travailler dans les fichiers centraux de WordPress, vous devrez donc connaître leur fonctionnement et leur contenu. Certains des concepts dont nous parlerons dans ce tutoriel ne seront pas nécessairement expliqués, mais les étapes elles-mêmes le seront.

Une fois tous ces points terminés, vous pouvez commencer à travailler sur le processus i18n.

Comment réaliser le processus i18n de WordPress avec vos thèmes et plugins

Dans les prochaines sections, nous allons vous montrer comment réaliser l'i18n de WordPress avec vos thèmes et vos plugins. Bien que chaque section puisse être très codée et technique par endroits, nous allons tout expliquer de la manière la plus complète possible, et nous vous renverrons à toutes les ressources supplémentaires dont vous pourriez avoir besoin.

Nous commencerons par expliquer comment internationaliser vos thèmes.

Comment créer un thème WordPress prêt pour la traduction

La première étape consiste à mettre à jour l'en-tête du thème afin d'y inclure un domaine textuel et un chemin d'accès au domaine. En bref :

  • Le domaine de texte aide WordPress à comprendre quelles chaînes de caractères "appartiennent" au thème. Il doit correspondre à la balise de votre thème (et de votre plugin).
  • Le chemin du domaine est le dossier dans les fichiers de votre thème où les fichiers de traduction vont "vivre". Le répertoire /languages/ est le nom typique et par défaut, mais vous pouvez utiliser quelque chose d'autre si nécessaire.

Pour ce faire, il suffit d'ajouter quelques mots au fichier d'en-tête du thème :

/*
Nom du thème : Mon thème personnalisé
Auteur : Weglot Translate
Text Domain : my-theme
Domain Path : /languages/
*/‍

Ensuite, vous devez charger ce domaine de texte à l'aide d'une "action" et d'une "fonction" :

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup() {
load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );
}

Cette suite de codes doit se trouver dans le fichier functions.php de votre thème, plutôt que dans celui de votre site. Une fois que vous avez fait cela, vous pouvez commencer à effectuer un "audit des chaînes de caractères". Pour ce faire, vous devez envelopper toutes les chaînes de texte de votre thème dans des fonctions de traduction. Il y a deux fonctions que vous utiliserez souvent :

  • __(). Elle inclut un double trait de soulignement (ou "dunder") et renvoie une chaîne traduite.
  • _e(). Cette fonction fait écho (ou imprime) la chaîne traduite telle qu'elle est présentée.

Ces fonctions requièrent deux arguments : la chaîne de texte et le domaine de texte. Par exemple, ces fonctions requièrent deux arguments : la chaîne de texte et le domaine de texte :

__()
$welcome = __('Hello ! Welcome to the dashboard!', 'my-theme' ) ;
_e('Hello again!', 'my-theme' );‍

Bien que les tenants et les aboutissants des différentes fonctions de traduction dépassent le cadre de cet article, le WordPress Theme Developers' Handbook contient presque toutes les informations dont vous avez besoin pour faire votre travail.


A ce stade, vous pouvez créer un fichier POT. Il existe de nombreuses solutions pour ce faire, mais WordPress recommande Poedit - une solution gratuite et open-source.

Une fois que vous avez téléchargé et installé Poedit, allez dans Fichier > Nouveau dans la barre d'outils :

Créer un nouveau fichier sur Poedit

Ensuite, créez un nouveau catalogue. Vous pouvez cliquer sur le lien Extraire des sources dans l'écran principal :

Extraire des sources sur Poedit

Remplissez ensuite les champs relatifs au nom du projet, à l'équipe linguistique et à la langue principale dans l'onglet Propriétés de la traduction:

Onglet Propriétés de la traduction dans Poedit

Si le fichier est nouveau, vous devez le sauvegarder ici (le nom du fichier doit être le même que celui de votre thème). Ensuite, sélectionnez l'onglet Sources Paths et localisez le dossier /languages/ sur votre ordinateur :

Chemin des sources sur Poedit

Le dernier onglet Sources Keywords contient une liste des fonctions de traduction que vous avez utilisées dans votre thème :

Sources des mots-clés sur Poedit

Vous voudrez les ajouter ici, bien qu'il puisse être difficile de trouver les bons mots-clés. Pour commencer, vous pouvez utiliser la liste suivante :

__
_e
_x

_ex

_n

_nx

_n_noop

_nx_noop

translate_nooped_plural
number_format_i18n
date_i18n
esc_html__
esc_html__
esc_html_x
esc_attr__
esc_attr_e
esc_attr_x‍

Une fois que vous avez cliqué pour confirmer, enregistrez vos modifications et vérifiez vos nouveaux fichiers : vous verrez des fichiers MO et PO sur votre ordinateur. Si vous dupliquez le fichier PO, vous pouvez ajouter l'extension POT, et à partir de là, vous pouvez passer à la localisation.

Comment créer un plugin WordPress prêt pour la traduction

Votre tâche initiale est similaire à celle d'un thème : tout d'abord, mettez à jour les champs "text domain" et "domain path" du plugin dans l'en-tête :

/*
Nom du plugin : My Custom Plugin
Plugin URI : https://weglot.com
Description : Un plugin personnalisé pour présenter la traduction et l'i18n.
Auteur : Weglot Translate
Version : 1.0
Author URI : https://weglot.com
Text Domain : my-plugin
Domain Path : /languages/
*/‍

Nous vous recommandons de créer un dossier /languages/ pour le chemin du domaine et de le définir comme chemin du domaine. À partir de là, vous pouvez charger le domaine de texte pour le plugin, mais cette fois, vous pouvez ajouter la fonction suivante à votre code, plutôt que de passer par le fichier functions.php :

load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path );‍

Cependant, cela permet seulement à WordPress de savoir qu'un fichier de traduction est disponible. Pour le charger, vous devrez intégrer la fonction dans une action :

add_action( 'plugins_loaded', 'plugin_load_td' );function plugin_load_td() {
load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}

Une grande partie de l'audit des chaînes sera similaire à l'i18n des thèmes. La dernière étape consiste à générer un fichier POT en utilisant le même processus que précédemment ; le fichier généré sera placé dans le répertoire de travail actuel

Quelles sont les limites de WordPress i18n ?


Vous comprenez maintenant à quel point WordPress i18n peut être extraordinaire. C'est génial si vous développez des thèmes ou des plugins et que vous voulez les rendre prêts à être traduits. Cependant, comme toutes les bonnes choses, il y a aussi quelques inconvénients.

Par exemple, si un plugin contient du contenu généré par l'utilisateur, celui-ci ne sera pas pris en compte dans la traduction i18n.

Le processus i18n permet de traduire les éléments statiques que vous codez, tels que le texte des boutons. Cependant, si l'utilisateur souhaite saisir une phrase spécifique pour un champ, créer des étiquettes uniques et d'autres éléments "côté client", vous ne pourrez pas en tenir compte. En fait, vous pourriez le faire, mais il s'agit d'une tâche complexe qui dépasse le cadre d'un article comme celui-ci.

Par ailleurs, si vous n'êtes pas développeur, i18n ne vous aidera pas à traduire votre site. Pour cela, vous aurez besoin d'un plugin, et vous voudrez peut-être passer à la section suivante pour trouver une option appropriée.

Il convient également de noter que si les plugins de traduction peuvent être utiles à bien des égards, un site aura besoin en moyenne de cinq plugins pour être entièrement multilingue. En revanche, une solution telle que Weglot est rapide à mettre en œuvre, capable de détecter toutes les parties traduisibles d'un site et compatible avec la quasi-totalité des thèmes et des plugins. Et ce, que ces thèmes et plugins soient ou non prêts à être traduits.

De plus, Weglot utilise les éléments de thème, de plugin et de contenu principal de la page HTML d'accueil et les rend traduisibles. Il n'y a donc pas de fichiers .pot et .po, et la méthode gettext n'est pas nécessaire non plus.

Comment Weglot supporte l'i18n de WordPress

En termes techniques, nous allons maintenant parler de la localisation de votre contenu - le processus de traduction directe.

Une bonne stratégie de traduction n'est pas chose aisée. C'est un travail difficile qui demande beaucoup de planification pour s'assurer que votre contenu atteint les différentes cultures, localités et langues de la bonne manière. Il ne s'agit pas seulement du texte traduit dans le corps de votre contenu. Vous devez également prendre en compte tous les éléments suivants :

  • Les jolis permaliens que vous utilisez.
  • Métadonnées de l'article et de la page.
  • Les médias, tels que les images, les vidéos, les GIF, les icônes et autres, y compris les métadonnées associées.

Si vous utilisez le commerce électronique, vous devez également tenir compte d'un grand nombre de considérations. Par exemple, vous devez vous assurer que votre écran de paiement offre une traduction complète de chaque élément, en particulier de vos champs de devises et de taxes :

Appareil photo Nikon - version française

De plus, les informations relatives à l'expédition sont un aspect essentiel qu'il convient de traduire intégralement et avec une grande qualité. Vous voulez que les clients n'aient aucune excuse pour cliquer sur le bouton Acheter, quelle que soit la langue utilisée.

Page de paiement des produits Nikon

Weglot se charge d'une grande partie du travail à votre place. C'est un allié précieux pour vos efforts en matière d'i18n sur WordPress, car il détecte tous les aspects de votre site que vous pouvez traduire. A partir de là, il effectuera une première couche de traduction automatique pour vous :

Liste de traduction sur un site WordPress

Cela peut suffire à vos besoins, mais Weglot peut vous aider à aller plus loin. Vous avez la possibilité d'introduire des traductions professionnelles, de modifier les traductions existantes et bien plus encore. Vous disposez ainsi de toute la flexibilité nécessaire pour réaliser une localisation complète de votre site.

Conclusion

WordPress est disponible presque partout dans le monde. C'est pourquoi les thèmes et les plugins internationalisés seront utiles lors de leur traduction dans d'autres langues. L'i18n de WordPress est un rouage essentiel pour les développeurs qui travaillent avec la plateforme.

Si vous pouvez internationaliser votre thème pour aider les utilisateurs à créer des traductions sans modifier le code source, vous êtes en bonne position. Cependant, ce n'est pas parce que vous appliquez les concepts i18n que votre thème ou votre plugin est traduit.

Pour réaliser cette étape, vous devez vous appuyer sur une solution telle que Weglot. Cette solution est compatible avec un grand nombre de plateformes et de technologies différentes et fonctionne parfaitement avec WordPress. Une fois que vous avez terminé la partie i18n de votre flux de travail, vous pouvez vous tourner vers Weglot pour générer des traductions précises et faciles à mettre en œuvre dans presque toutes les langues.

Pour s'en convaincre, Weglot propose un essai gratuit de 10 jours sans obligation d'achat.

Dans ce guide, nous allons nous pencher sur les points suivants :

En savoir plus sur l'utilisation de Weglot

Essayez gratuitement