__() — Traduction PHP WordPress

Définition : __() est une fonction PHP WordPress qui retourne la traduction d’une chaîne associée à un domaine de texte. Elle permet de rendre les messages d’un thème ou d’un plugin localisables.

Comprendre et utiliser

À quoi sert ce terme ?

Elle favorise la diffusion internationale d’un logiciel : les textes d’interface ne sont pas enfermés dans le code français ou anglais. Le domaine de traduction identifie le catalogue attendu.

Fonctionnement technique

La fonction accepte le texte original et un textdomain. Elle retourne une chaîne traduite lorsqu’une correspondance est disponible, sinon le texte d’origine ; elle n’effectue pas d’échappement HTML par elle-même.

Dans quels contextes l’utiliser ?

À employer dans le PHP des extensions pour les messages, labels et boutons. Au moment de l’affichage, utiliser la fonction d’échappement adaptée à la destination.

Cas concret : ATOOLPHA

Un plugin ATOOLPHA affiche un titre de panneau translatable, destiné à fonctionner dans un environnement WordPress configuré en français ou en néerlandais.

Exemple de code commenté

Extrait PHP destiné à un plugin ou à un template WordPress, dans le contexte indiqué ; pas au contenu HTML de l’article.

<?php
$label = __( 'Informations techniques', 'atoolpha' );
echo '<h2>' . esc_html( $label ) . '</h2>';

Décryptage de l’exemple

La fonction __() obtient le libellé traduit, puis esc_html() prépare la sortie en texte HTML. Le code suppose que le catalogue du textdomain atoolpha est fourni et chargé par le plugin.

Résultat attendu

Le panneau affiche la traduction disponible ou son texte source, sans interprétation HTML involontaire.

Exercice pratique et vérification

Tester le panneau sous deux locales avec un catalogue de démonstration. Comparer le résultat avant et après chargement du domaine.

Précautions et limites

Un domaine mal orthographié ou un fichier de langue absent empêche la substitution. Le texte d’origine reste la valeur de repli.

À ne pas confondre

__() retourne une traduction non échappée ; esc_html__() combine traduction et échappement pour une sortie textuelle HTML.

Diagnostic avancé

Si aucune traduction ne s’applique, inspecter le domaine et les catalogues avant de modifier le texte source de toutes les langues.

Choix d’architecture et déploiement

Une traduction peut contenir des caractères ou une ponctuation différents du texte source. Réserver l’échappement pour la sortie effective, et choisir les fonctions de pluriel ou de contexte quand la même expression possède plusieurs sens selon l’écran.

Contrôle avant intégration

Vérifier les chaînes extraites, le textdomain, l’échappement et les formes plurielles si le texte varie selon un nombre.

Notions associées

  • esc_html__()
  • @wordpress/i18n
  • wp_set_script_translations()

Références officielles

Bouton retour en haut de la page