vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Internationalisation

En anglais : « Internationalization (i18n) »

Pratique consistant à écrire le code d'une extension ou d'un thème de façon à ce que tous ses textes puissent être traduits ultérieurement sans modifier le code source.

Écrire directement « Enregistrer » en dur dans le code fonctionne parfaitement tant que le site reste en français, mais bloque toute traduction future. Cette étape préparatoire consiste à envelopper systématiquement chaque texte affiché dans une fonction dédiée, de sorte qu’un fichier de traduction externe puisse ensuite s’y substituer.

Les fonctions à connaître

WordPress fournit une famille de fonctions selon le contexte d’affichage : __() retourne une chaîne traduite, _e() l’affiche directement, et _n() gère les accords singulier/pluriel :

echo esc_html__( 'Article mis à jour.', 'mon-extension' );

printf(
  esc_html( _n( '%d commentaire', '%d commentaires', $nombre, 'mon-extension' ) ),
  $nombre
);

Le second paramètre, le domaine de traduction, doit toujours être une chaîne fixe identique à celle déclarée dans l’en-tête de l’extension, jamais une variable.

Pièges fréquents

  • Concaténer des morceaux de phrase autour d’une variable casse souvent la grammaire dans d’autres langues ; il est préférable d’utiliser des espaces réservés avec sprintf() ou printf().
  • Cette étape ne doit pas être confondue avec la localisation, qui consiste à fournir réellement les traductions une fois le code préparé pour les recevoir.
  • Un texte destiné au JavaScript de l’éditeur, par exemple dans un bloc, s’internationalise différemment via wp.i18n.__(), avec des chaînes extraites séparément par les outils de compilation.
  • Les fonctions préfixées esc_html__() ou esc_attr__() combinent traduction et échappement en un seul appel, ce qui évite d’oublier l’un des deux lors de l’affichage d’un texte utilisateur.