Nous venons de publier WPML 4.3, qui inclut une toute nouvelle façon de traduire les chaînes de texte. L’interface d’administration de la Traduction de chaînes a la même apparence, mais fonctionne différemment. Au lieu de lire les traductions depuis la base de données, elle génère et charge des fichiers .mo. Cela se traduit par une utilisation beaucoup plus légère de la base de données pour la traduction de chaînes.
Pourquoi avons-nous réécrit la Traduction de chaînes ?
La version précédente de la traduction de chaînes chargeait les chaînes depuis la base de données et tentait d’éviter de charger les fichiers .mo. Certaines des grandes extensions WordPress sont fournies avec d’énormes fichiers .mo, qui traduisent absolument tous les textes de l’extension. Par exemple, les fichiers .mo de WooCommerce comptent un peu plus de 8 000 chaînes. D’autres grandes extensions ont un nombre de chaînes similaire.
Lorsque vous exécutez un site en anglais, WordPress ne charge pas ces fichiers .mo. Cependant, lorsque vous exécutez un site dans n’importe quelle autre langue (une seule langue, pas les sites multilingues), WordPress charge tous ces fichiers .mo. Le chargement de ces fichiers prend de 100 ms à plus d’une seconde, selon le serveur que vous utilisez. Ces fichiers .mo se chargeront sur n’importe quelle page sur laquelle l’extension s’exécute (généralement, sur toutes les pages du site).
Jusqu’à WPML 4.3, nous tentions d’optimiser ce mécanisme. WPML disposait d’une option, activée par défaut, pour empêcher le thème et les extensions de charger les fichiers .mo. Au lieu de cela, nous vérifiions quelles chaînes étaient nécessaires pour chaque page et nous chargions ces chaînes spécifiques depuis la base de données.
Ce mécanisme fonctionnait bien en général, mais il produisait parfois l’effet inverse. Lorsqu’une extension appelait de nombreuses chaînes à chaque chargement de page, WPML chargeait une énorme liste de chaînes depuis la base de données au lieu de laisser l’extension charger son propre fichier .mo.
À mesure que certaines extensions se sont développées au fil du temps, notre mécanisme d’optimisation est devenu de moins en moins efficace.
Dans WPML 4.3, nous avons décidé qu’il était temps de changer d’approche. Nous avons arrêté de bloquer les fichiers .mo et nous avons cessé de charger les chaînes depuis la base de données. Désormais, WPML ne tente plus d’optimiser les temps de traduction des autres extensions ou thèmes, et n’optimise que ses propres chaînes.
Comment cela affectera-t-il le temps de chargement de mon site ?
Cela dépend. Si votre site était rapide jusqu’à présent (ce qui est le cas de la majorité des sites utilisant WPML), vous n’allez pas ressentir de changement de vitesse significatif. Par exemple, sur wpml.org, la plupart des pages sont un peu plus rapides et quelques pages prennent un peu plus de temps à charger.
La raison pour laquelle certaines pages mettent un peu plus de temps à se charger maintenant est qu’il y a d’autres extensions qui chargent d’énormes fichiers .mo. Le gain de vitesse obtenu grâce à l’optimisation de la traduction des chaînes est annulé par les temps de chargement des fichiers .mo des autres extensions.
Cependant, ces fluctuations sont très faibles et nous ne pouvons les mesurer qu’avec des outils de profilage avancés. Un site qui fonctionnait rapidement jusqu’à présent continuera généralement à fonctionner rapidement avec WPML 4.3.
Certains sites qui souffraient de temps de chargement lents se chargeront désormais beaucoup plus rapidement. Avant WPML 4.3, certains sites devaient charger des dizaines de milliers de chaînes depuis la base de données. Cela entraînait une charge importante sur la base de données, consommait beaucoup de RAM et provoquait de longs temps de chargement des pages. Ces sites verront une amélioration très significative de leurs performances.
D’autres optimisations de performances sont-elles prévues ?
Oui. Maintenant que nous avons éliminé les problèmes de performances majeurs liés à la traduction de chaînes, nous aurons plus de possibilités d’optimisation.
Nous nous attendons à trouver des problèmes qui nécessiteront de travailler avec les auteurs d’autres extensions et thèmes. Les performances s’améliorent le plus lorsque les extensions et les thèmes chargent moins de chaînes. La plupart des autres auteurs d’extensions et de thèmes sont heureux de collaborer avec nous et nous sommes convaincus de pouvoir résoudre presque tous les problèmes de performances à venir. Le processus d’optimisation est presque toujours le même :
- Diviser les énormes fichiers .mo en plusieurs fichiers plus petits
- Charger les bons fichiers sur les bonnes pages
La segmentation la plus simple se fait entre les chaînes utilisées dans l’interface d’administration et les chaînes qui s’affichent sur l’interface publique. Des optimisations plus poussées divisent davantage les chaînes de l’interface publique en fonction du type de page. Par exemple, sur les sites e-commerce, il n’est pas nécessaire de charger les chaînes utilisées dans le processus de validation de commande sur chaque page.
Bien sûr, lorsqu’il y a une opportunité d’optimisation au sein même de WPML, nous nous en occupons immédiatement.
Mettez à jour, mesurez et signalez
WPML 4.3 est en cours de déploiement en ce moment même. Nous le publions progressivement sur une ou deux semaines. Si vos sites n’ont pas encore reçu cette mise à jour, patientez un peu et vous verrez la mise à jour dans quelques jours. Vous pouvez ignorer la file d’attente et obtenir cette mise à jour immédiatement en accédant à la page Extensions –> Ajouter, en cliquant sur l’onglet Commercial, puis en utilisant le bouton Vérifier les mises à jour.
Si vous avez l’impression qu’une page de votre site met plus de temps à se charger, nous vous suggérons d’installer l’extension Query Monitor (suivez notre tutoriel sur la façon d’analyser les problèmes de performances avec Query Monitor). Notez que dans WPML 4.3, nous avons corrigé d’importants problèmes de compatibilité avec Query Monitor, de sorte que les rapports que vous voyez ne sont pas utiles pour les versions antérieures à WPML 4.3.
Vérifiez si les appels de WPML figurent en bonne place dans les rapports de chargement. Si c’est le cas, veuillez nous le signaler via l’assistance technique de WPML. Même si vous voyez des fils de discussion qui semblent similaires, ouvrez le vôtre. Nous aurons besoin d’accéder à votre site, il est donc préférable de travailler sur chaque site séparément.
Bien sûr, nous serons très heureux de connaître vos retours généraux sur les performances (il est tout aussi utile de signaler les améliorations 🙂). Laissez vos commentaires ici et nous vous répondrons.

