@wordpress/i18n
Définition : @wordpress/i18n est le paquet JavaScript de localisation WordPress. Il fournit des fonctions de traduction et de formatage afin que les interfaces côté navigateur puissent afficher des messages adaptés à la langue.
Comprendre et utiliser
À quoi sert ce terme ?
Il permet à une interface de bloc ou d’administration d’éviter les chaînes écrites en dur dans une seule langue. Les traductions s’appuient sur des catalogues gérés par les outils WordPress.
Fonctionnement technique
Le paquet expose notamment __(), _x(), _n() et sprintf(). Les textes utilisent un domaine de traduction cohérent avec les fichiers de langues et le processus d’extraction.
Dans quels contextes l’utiliser ?
À utiliser dans les blocs personnalisés et les écrans JavaScript d’extensions destinées à un public multilingue. L’intégration PHP est distincte et emploie les fonctions de localisation du serveur.
Cas concret : ATOOLPHA
ATOOLPHA souhaite afficher « Enregistrer » dans un panneau de l’éditeur en suivant les traductions disponibles.
Exemple de code commenté
Extrait JavaScript destiné à un fichier de ressources enregistré avec ses dépendances dans WordPress ; pas à coller dans le contenu public.
// Dans un module ou fichier JS construit avec les outils WordPress.
import { __ } from '@wordpress/i18n';
const button = document.querySelector('[data-atoolpha-save]');
if (button) {
button.textContent = __('Enregistrer', 'atoolpha');
}
Décryptage de l’exemple
La fonction __() demande la traduction de la chaîne dans le domaine atoolpha. Le texte est placé via textContent, ce qui évite de l’interpréter comme du HTML.
Résultat attendu
Le bouton reçoit le texte localisé si le catalogue nécessaire est disponible ; sinon la chaîne d’origine reste utilisable.
Exercice pratique et vérification
Créer une traduction de test pour un libellé puis changer la langue de l’interface d’administration et comparer le rendu.
Précautions et limites
Ne pas construire les phrases traduisibles par concaténation de fragments arbitraires. Maintenir un domaine unique et extraire correctement les messages du code.
À ne pas confondre
@wordpress/i18n traduit côté JavaScript ; __() PHP fournit une fonction homonyme mais intégrée à un environnement d’exécution distinct.
Diagnostic avancé
Si la traduction fonctionne en PHP mais pas dans le bloc, vérifier les catalogues JavaScript et wp_set_script_translations().
Choix d’architecture et déploiement
Le travail multilingue exige des messages entiers et contextualisés ; traduire des mots isolés assemblés en JavaScript crée souvent une mauvaise grammaire. Le catalogue doit être maintenu avec chaque changement de libellé, et les langues RTL méritent des vérifications spécifiques.
Contrôle avant intégration
Valider textdomain, extraction des chaînes, catalogues JS et affichage accessible des contrôles traduits.
Notions associées
- wp_set_script_translations()
- __()
- wp_localize_script()
