Un (nouveau) problème avec WPML sur la boutique WooCommerce d’un client m’incite à installer Polylang, son challenger déclaré.

Le problème rencontré avec WPML est assez contraignant, les chaines du thème ne se charge pas pour une traduction éventuelle dans « traduction de chaines ».

Je désactive donc la tripotée d’extensions WPML et WooCommerce Multilingual pour installer Polylang et  Hyyan WooCommerce Polylang Integration.

L’installation ne pose pas de problème, le site est en français, la langue par défaut est le français, la seconde langue est l’anglais.

Commence ensuite les ennuis…

Dans les chaines à traduire que propose Polylang je ne retrouve pas les chaines d’options de WooCommerce, comme par exemple WooCommerce > Settings > Tax > Price Display Suffix.

Il en est de même pour d’autres extensions telle que WooCommerce Deposits, les chaines d’options ne sont pas disponibles à la traduction.

Polylang est « compatible » WPML dans la limite de la présence d’un fichier wpml-config.xml à la racine de l’extension. Fichier qui décrit les noms des options qui nécessitent une traduction.
J’ai remarqué que WPML pouvait se passer de ce fichier de configuration pour trouver les chaines d’options à traduire dans les extensions.
WPML scanne les extensions et parvient à extraire ce qu’il faut.
Polylang se limite à la lecture des fichiers de configuration de WPML. Pour ajouter des chaines à traduire il faut à priori faire appel à une paire de fonctions, pll_register_string pour ajouter une chaine dans le backoffice et pll__ pour gérer la traduction sur le frontend. Il s’agit de traduire des textes définis et non des variables d’options.

D’autre part, bien que le site soit en français par défaut, Polylang duplique les taxonomies (classes de livraison, catégories, etc.) en générant un slug-fr, le slug initial restant pour l’anglais dans mon cas ! Je ne comprends pas la logique.
J’utilise une extension pour les frais de livraison par pays et classes de livraison, cela ne fonctionnait plus, les slugs des classes de livraison ayant été « renommées » en « -fr ».

A cela s’ajoute des slugs avec des fautes de frappe tel que /prodcut-category/ qui s’enregistrent dans les permaliens et qui y restent après désactivation de l’extension.

Voilà, je suis peut être passé à coté de Polylang mais j’ai été contraint de le désinstaller pour réactiver WPML et résoudre mon problème initial.
A ce propos cela m’a permis de tester les supports des deux extensions.

Le support d’une extension gratuite ?

J’ai posté mon problème de chaine manquante sur le support en anglais de Polylang (pour info/rappel l’auteur est français). J’ai obtenu une réponse dans la journée qui ne m’a pas permise de résoudre le problème sans devoir développer, voire devoir hacker WooCommerce.

https://wordpress.org/support/topic/price-display-suffix-not-translated

Pour mon problème avec WPML j’ai posté sur le support français (c’est appréciable pour une extension qui ne l’est pas). J’ai obtenu une réponse en 30 minutes. Mes échanges avec le support m’ont permis d’identifier le problème, un manque de mémoire php.

https://wpml.org/fr/forums/topic/wpml-ne-charge-pas-les-chaines-du-theme/

Je pense qu’une extension de traduction, sur laquelle va reposer le fonctionnement d’un site ou d’une boutique peut difficilement être gratuite. Je préfère largement dépenser quelques dizaines d’euros pour un support efficace, pour une correction rapide des bugs et une extension réellement fonctionnelle.

Conclusion

J’avais entendu du bien de Polylang, y compris avec WooCommerce, j’ai visionné la vidéo du WordCamp Lyon de l’auteur de l’extension, ma déception est d’autant plus grande. Je suis contraint d’utiliser WPML, qui contient des bugs, dont le fonctionnement, en particulier avec WooCommerce, manque de logique mais qui au moins permet de traduire totalement une boutique.

Alors est-ce que j’étais mal luné aujourd’hui ou rencontrez-vous également ces problèmes avec Polylang ?