Traduire n’importe quel mot ou string avec le filtre gettext

Je vous assure, traduire WordPress, j’en ai vu de toutes les couleurs. Peu importe l’extension que vous utilisez, que ce soit WPML, TranslatePress ou une autre des (nombreuses) solutions disponibles qui aborde la traduction WordPress de manière, et je vous confirme, TRÈS différente l’une de l’autre (ahem, MultilingualPress…), avec l’accumulation de code et d’extensions, il se peut qu’un mot ou une phrase décide de ne pas s’entendre avec vous.

En tout cas, c’était le cas pour moi où certaines strings ne traduisaient pas comme je le désirais.

Un autre cas est : si votre site est disponible en une seule langue et que vous voulez traduire certains mots sans passer par une extension. Dans ce cas, je vous invite à creuser dans ces quelques lignes de code, le filtre gettext.

<?php add_filter( 'gettext', 'translate_strings', 20, 3 ); function translate_strings($translated, $original, $domain) { if ($domain == 'woocommerce') { if ($original == 'Store' ) { $translated = 'Exposition'; } else if($original == 'General Setting') { $translated = 'Paramètres'; } } return $translated; }
Code language: PHP (php)

Il faudra adapter les if / else et la variable $translated pour votre cas particulier. N’hésitez pas à laisser vos questions/commentaires dans le bas de la page.

Si vous ne connaissez pas le $domain, vous pouvez l’ignorer dans votre usage de ce filtre. Comme dans cet exemple, qui utilise l’instruction switch à la place.

<?php add_filter( 'gettext', 'translate_strings', 20, 3 ); function translate_strings( $translated, $original, $domain ) { switch ( $original ) { case 'Store' : $translated = 'Exposition'; break; case 'General Setting' : $translated = 'Paramètres'; break; } return $translated; }
Code language: HTML, XML (xml)

J’espère que ce hook/filtre vous sera d’une certaine utilité comme il me l’a été. Personnellement, je le garde en poche lorsque j’ai du debuggage relié à des traductions WordPress. Au fait, suis-je supposé dire Hook? Filter?? Filtre???

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Article précédent

Changer ou désactiver le vidage de la corbeille automatique dans Wordpress

Prochain Article

Rediriger sans-www vers www (et vice-versa) avec Apache htaccess