Si vos widgets incluent des chaînes traduisibles, vous serez en mesure de modifier la traduction avec WPML. Toutefois, il n’est pas garanti que les traductions s’affichent sur le site.

Méthode 1) Utiliser des filtres de WordPress

WPML utilise des filtres standard de WordPress et traduit le contenu que vous filtrez.

Tous les widgets standards de WordPress appliquent des filtres par défaut. Lorsque vous créez vos propres widgets, vous devez vous assurer que la même chose se produit.

Par exemple, pour appliquer des filtres à un titre du widget, utilisez ceci :

$wtitle = apply_filters('widget_title', $wtitle);

WPML se connecte à l’appel apply_filters et va rendre cette chaîne traduisible via la page de traduction de chaînes String Translation.

Méthode 2) Enregistrer manuellement des chaînes

Alternativement, vous pouvez utiliser manuellement les fonctions de traduction de chaînes de WPML. Vous pouvez enregistrer les chaînes à traduire puis regarder leur traduction lorsqu’elles s’affichent.

Pour enregistrer des chaînes, utilisez l’appel icl_register_string :

icl_register_string($context, $name, $value)
    • $context : le nom du plug-in, dans un format lisible par un humain
    • $name : le nom de la chaîne qui permet à l’utilisateur (ou au traducteur) de comprendre ce qui se traduit.
    • $value : la chaîne à traduire.

Ensuite, lorsque vous affichez les textes, utilisez icl_t pour en afficher les traductions :

icl_t($context, $name, $value)

Méthode 3) Utiliser gettext pour les chaînes codées en dur

Les deux méthodes décrites précédemment sont les meilleures pour les textes générés dynamiquement. Ces textes sont modifiables par les utilisateurs via le panneau d’administration de WordPress.

Si vous avez des textes statiques, qui sont codés en dur dans le PHP, vous pouvez simplement utiliser des appels GetText, comme :

<?php __('Hello world','cool_theme'); ?>

WPML s’accroche aux appels GetText et rend ces textes traduisibles par l’intermédiaire de l’interface de traduction de chaînes String Translation. Veuillez noter que cette méthode ne fonctionne que pour les textes ne pouvant être modifiés et ceux fixés dans le thème.