Exclure une page Weglot

weglot

Il m’arrive fréquemment d’avoir besoin d’exclure une page ou lot de page de la traduction effectuée par Weglot. Déjà parce qu’il faut dire que le nombre de mots augmente vite mais aussi parce que, parfois, il s’avère que des pages sont que trop peu visitées.

Par exemple, personne ne va lire les conditions générales de ventes ou ce genre de page. Quand je dis personne, c’est dans le sens que ce n’est pas une page qui est régulièrement visitée. Quelqu’un qui s’y intéresse pourra toujours faire un clique droit + traduire dans sa langue.

Pour exclure une page afin que celle-ci ne soit pas traduite par le plugin Weglot translate, il faut aller dans les options du plugin.

Blog de Dev - Exclure une page Weglot
Weglot translate – Page d’options

On remarque alors qu’il y a 2 façons de faire :

  • Ajouter une URL a exclure (*)
  • Ajouter des blocks

Exclure une URL Weglot

Tout simplement, si vous souhaitez exclure une URL de la traduction, il suffit de copier / coller celle que vous souhaitez en ajoutant au préalable un champ d’exclusion. Pour cela, il suffit de cliquer sur « Add an exclude URL ».

Exemple avec l’URL : https://blog2dev.com/comment-faire-un-site-wordpress-multilingue/

Blog de Dev - Exclure une URL Weglot
Exclure une URL avec Weglot translate

De fait, mon URL n’aura pas la possibilité d’être traduite et le sélecteur de langues ne sera pas présent.

(*) : Revenons en à ma petite étoile plus haut ! Si vous lisez l’explication, il est également possible de mettre une regex : une expression régulière. Un non-développeur ne maîtrise (rarement) pas ce genre de choses mais voici un exemple avec cette regex :

^(?!.*/ma-categorie/).*$

Avec cette chaîne de caractère qu’il suffit de placer dans le champ d’exclusion d’une URL, cela va exclure toutes les pages sauf celles qui ont dans le lien /ma-categorie/

Note pour les développeurs :

Vous aurez remarqué que ma regex est « fausse » car je n’échappe pas les « / ». C’est fait exprès car sinon cela ne fonctionne pas. En fouillant dans le code source, j’ai pu voir qu’ils s’occupent pour nous d’échapper les « / ». Pour plus de compréhension, j’aurais préféré avoir une zone réservée exclusivement au regex, cela éviterait de se faire des noeuds au cerveau.

Exclure un block Weglot

Place à l’exclusion d’un block avec Weglot translate. Il peut arriver que l’on souhaite traduire une page mais pas toutes les chaînes d’une page. De fait, il suffit d’utiliser l’option des exclusions de blocks.

Il suffit d’utiliser des sélecteurs CSS et de cibler une zone HTML que l’on ne souhaite pas traduire pour que le plugin ne traduise pas la partie concernée.

Par exemple, si je ne souhaite pas traduire la partie « header » de mon site Blog2Dev, il me suffirait de rajouter : « .site-branding-container » :

Blog de Dev - Exclure un block Weglot
Exclure un block avec Weglot translate

Pour les développeurs

S’il y a quelque chose que j’ai pu découvrir avec ce plugin, c’est qu’il y a beaucoup d’actions et de filtres WordPress. Si l’on inspecte le code source, il y a un filtre weglot_active_translation_before_process qui renvoie par défaut : true. Il suffit donc de créer des conditions dans lesquelles vous ne souhaitez pas activer la traduction et renvoyer false.

PHP
functions.php

Une réponse sur « Exclure une page Weglot »

Les commentaires sont fermés.