Extensions multilingues : comparaison

Cette page regroupe les résultats d’une étude comparative des caractéristiques des extensions multilingues.
Pourquoi cette étude ? Depuis février 2009, en tant qu’auteur de l’extension xili-language conçue autour des taxinomies qui venaient d’être introduites dans le noyau (core) de WordPress (2.3 à l’époque), il nous a paru essentiel de refaire le point donc de se situer dans l’offre qui reste concurrentielle avec l’arrivée notamment de solutions dites commerciales.

Cette page ne concerne que l’installation sur un site WP unique ou une seule instance d’un site WP network. Pour ce qui est des configurations multisites multilingues (une instance par langue) voir cette page.

Note : cette étude est en cours continuellement. Comme lors d’un chantier sans fin, les résultats vont apparaître progressivement.
Infos récentes : à propos d’extensions récemment apparues, quelques lignes

Source sur le codex : http://codex.wordpress.org/Multilingual_WordPress

  1. Version
  2. Auteur
  3. Le site de l’extension
  4. Structure ou institution
  5. Les avis et notations (étoiles)
  6. Quantité active (version active)
  7. Quantité téléchargée (totale toute version)
  8. Date de création
  9. Licence, prix
  10. Etiquette de langue spécifiant le post
  11. Cookies
  12. Ajout de nouvelles tables
  13. Remarques générales
  14. Utilisation de la table wp_options
  15. Ajouts de dossier
  16. Où sont sauvés les traductions des mots-clés ?
  17. Stockage des liens entre les versions des posts selon leur langue
  18. Les articles en avant (sticky post)
  19. Les articles sans langage affecté
  20. La traduction des termes du thème et de la structure du site.

Version

La version analysée de l’extension.
(il est important de noter la version car des changements majeures apparaissent parfois dans les extensions.)

Babble1.4.4
Bogo2.1.2
Ceceppa Multilingua1.3.58
MLWP0.1
mqTranslate2.5.41
Multilanguage1.0.6
Polylang1.3.1
qTranslate2.5.38
qTranslate X3.2.2
Stella-free (Rosetta)1.4
WPML3.0
xili-language2.12.1

Auteur

Le ou les auteurs de l’extension
(tel que découvert dans le code (readme) ou sur le site WordPress)

BabbleCode for the people - Simon Wheatley, John Blackbourn, Scott Evans, Simon Dickson, Marko Heijnen, Tom Nowell, Gary Jones, Emyr Thomas
BogoTakayuki Miyoshi
Ceceppa MultilinguaAlessandro Senese
MLWPnikolov.tmw
MultilanguageBestwebsoft
PolylangChouby
qTranslatechineseleper
qTranslate Xfork of qTranslate by John Clause, which has apparently been abandoned by the original author, Qian Qin.
Stella-free (Rosetta)Ruslan.Khakimov
WPMLOnthegosystem
xili-languagemichelwppi, dev.xiligroup

Le site de l’extension

Lien pour accéder à la page sur le site des extensions WordPress où les auteurs ont choisi de mettre l’extension à disposition des webmestres (repository).

Babblehttp://babbleplugin.com/
Bogohttp://wordpress.org/plugins/bogo/
Ceceppa Multilinguahttp://wordpress.org/plugins/ceceppa-multilingua/
MLWPhttps://github.com/nikolov-tmw/multilingual-wp
mqTranslatehttp://wordpress.org/plugins/mqtranslate/
Multilanguagehttps://wordpress.org/plugins/multilanguage/
Polylanghttp://wordpress.org/plugins/polylang/
qTranslatehttp://wordpress.org/plugins/qtranslate/
qTranslate Xhttps://wordpress.org/plugins/qtranslate-x/
Stella-free (Rosetta)http://store.theme.fm/plugins/stella/
WPMLhttp://wpml.org/documentation/
xili-languagehttp://wordpress.org/plugins/xili-language/

Structure ou institution

Où oeuvrent les auteurs des extensions, sont-ils au sein du structure ? L’extension gratuite ou payante est-elle une vitrine pour la structure. Exemple : WPML est typique de cette situation et, gratuite initialement, l’extension est maintenant payante.

BabbleOnt intégré Automattic (nov. 2014)
MultilanguageSociété
PolylangAuteur
qTranslateAuteur
WPMLSociété
xili-languagesoho

Les avis et notations (étoiles)

Sur le dépôt WP des extensions, il est possible aux utilisateurs de donner leur avis et de noter en étoiles (1 à 5) la qualité.
Assez curieusement, des extensions avec des milliers d’utilisateurs ne récoltent que peu de notations.

(Données collectées le 3/3/14)

PolylangPresque 300 notations et un forum très actif
qTranslatePrès de 850 notations pour plus de 1,1 millions de téléchargements
qTranslate X35 notations sur 15000 téléchargements (les anciens utilisateurs de qTranslate retrouvent leur outil)
xili-languageUne vingtaine de notations

Quantité active (version active)

Depuis fin février 2015, le dépôt des extensions propose, dans l’ongle “Stats” un graphique des versions encore actives. Les quantifications ne semblent pas totalement stabilisées à la suite du bug initial de tri erroné sur les sous-versions donc il est prudent aussi d’examiner les pics de téléchargement liés à la sortie d’une version.
Ce critère doit être abordé en conjonction avec d’autres notamment ceux qui modifient la base de données.

Bogo2000+
mqTranslate30000+
Multilanguage1000+
Polylang80000+
qTranslate X6000+
xili-language1000+

Quantité téléchargée (totale toute version)

Cette quantité est un indicateur peu significatif. (nombre collecté le 21/1/2014)
(Pour une appréciation plus précise des sites utilisateurs, il faut analyser les pics lors des changements de version.)

Bogo9 794
mqTranslate5070
Polylang170 843
qTranslate1 051 713
Stella-free (Rosetta)7767 (2014-05-15)
WPMLdonnées non publiées
xili-language113 412

Date de création

Date de la mise en ligne de la première version (source trac)

Bogo2009-05-04
Ceceppa Multilingua2013-02-25
Multilanguage2014-10-23
Polylang2011-09-11
qTranslate2008-03-16
qTranslate X2014-12-17
Stella-free (Rosetta)2012-07-19
WPML< 2009
xili-language2009-03-22

Licence, prix

La plupart des extensions sont libres et gratuites. Gratuit ne veut pas dire que les services sont gratuits (adaptation, support personnalisé,…)

BabbleGPL2 (sur GitHub)
BogoGPL2
MultilanguageGPL2
PolylangGPL2
qTranslateGPL2
qTranslate XGPL2
Stella-free (Rosetta)GPL2 (free version)
WPMLde 29 USD à 79 USD
xili-languageGPL2

Etiquette de langue spécifiant le post

A chaque post (page ou custom post type), selon sa langue courante, une méthode est nécessaire pour étiqueter selon la langue.
Apparu au moment de la sortie de WordPress 2.3, xili-language est la première extension à avoir utilisé la taxinomie. D’autres utilisent les champs personnalisés pour mettre les posts traduits (qui ne sont plus alors de vrais posts en terme de CMS)

Babblecrée un post type par langue (ex. post_en_us si langue racine est fr_fr)
Ceceppa Multilinguaajoute des tables
Polylangtaxonomy 'language' (nom codé en dur) - taxonomy pour les liens
qTranslatebalise au sein des posts
Stella-free (Rosetta)la langue racine est un post, les traductions en champ personnalisé (meta)
WPMLtables
xili-languagetaxonomy 'language' (nom modifiable)

Cookies

Utilisation de cookies pour tracer la navigation du visiteur du site selon sa langue.

Babbleoui - pour l'admin et les commentaires
Polylangoui
Stella-free (Rosetta)oui
xili-languagenon

Ajout de nouvelles tables

Certaines extensions créent de nouvelles tables qui s’ajoutent aux 11 créées par WordPress.

Babble0 - cela fait partie du deal de départ
Multilanguage2 (pour les traductions de post et term)
Polylang1 (dans les versions antérieures à 1.3)
Stella-free (Rosetta)0
WPML18
xili-language0

Remarques générales

Quelques notes sur l’architecture ou le codage…
La structure du codage de l’extension en mode orientée objet (oop, class) apporte l’avantage de mieux maîtriser l’activation et d’en choisir le bon moment par rapport à d’autres extensions

Multilanguagecode sans classes donc impossible de choisir le moment de l'activation de l'extension
Polylangcode structuré en classes
xili-languagecode structuré en classes dont une pour le côté admin

Utilisation de la table wp_options

Nombre de lignes utilisées

Babble5 avec widget activé
MLWP2
Polylang2 et une par langage
xili-languagede 1 à 4 selon les widgets utilisés

Ajouts de dossier

Pour mettre à disposition des éléments, les extensions au cours de l’installation mettent en place des nouveaux dossiers.

Polylangpour les drapeaux : nécessite le dossier wp-content/polylang/
xili-languageles drapeaux sont soit dans le thème soit dans la bibliothèque média. Le développeur peut utiliser les fonctions theme_support.

Où sont sauvés les traductions des mots-clés ?

Les méthodes ont beaucoup varié selon les extensions et leur évolution propre…

Babbleduplication par langue de la taxonomie concernée (comme category_en_us)
PolylangLa table ajoutée termmeta a disparu dès la version 1.3 et est remplacé par une taxinomie.
WPMLdans les tables ajoutées
xili-languageAvec l'extension xili-tidy-tags, les mots-clefs sont groupés par langue dans des groupes de mots-clés. Les alias des taxonomies sont utilisés pour les lier selon le sens.

Stockage des liens entre les versions des posts selon leur langue

Quand on a un post en français, où trouve-t-on le n° du post dans une autre langue ?

Babbleutilise une taxonomie spéciale avec encodage des infos
MLWPPas de lien : les traductions sont stockés dans les champs personnalisés (custom post fields)
PolylangAprès un stockage dans les champs personnalisés, il y a maintenant (>= 1.3) une taxinomie spécifique
xili-languagechamp personnalisé (custom post fields)

Les articles en avant (sticky post)

Les articles en avant (sticky post) sont des articles qui sont placés en début de liste et qui le restent dans le flux temporel des articles du site. Ils sont destinés à attirer l’attention des lecteurs avant qu’ils ne lisent les plus récents. Dans un site multilingue, il est donc logique que la langue de cet article soit la même que celles du flux des plus récents. Les extensions offrent chacune des solutions.

PolylangUtilise le filtre disponible dans le noyau WP 'option_sticky_posts'
WPMLBoite à Web signale des soucis et les explique : http://boiteaweb.fr/wpml-sticky_posts-bug-7938.html
xili-languageSi un article en une à son pendant dans la langue active, cet article traduit est affichée en une dans le flux des derniers posts. Utilise le filtre offert par le noyau WP

Les articles sans langage affecté

Dans un site, notamment en cas de passage en multilingue, les articles ne sont pas toujours affectés à une langue. Ils sont dit alors langue indéfinie. Toutes les extensions ne permettent pas cette possibilité.

MultilanguageImpossible de rendre un article comme sans language
PolylangImpossible de rendre un article comme sans language
xili-languageIl est possible de définir un article comme indéfinie, c'est à dire sans taxinomie language

La traduction des termes du thème et de la structure du site.

La plupart des thèmes sont localisables (donc prêts) pour être traduit. Des variables existent pour le nom du site ou sa descriptions. Où sont ces éléments et leur traduction ?

Babblevia fichier .mo
PolylangLes traductions des variables du site sont stockées dans wp_options en format .mo serialisé
Stella-free (Rosetta)pas de traduction du thème : la langue des titres et termes restent comme l'admin.
WPMLtables ajoutées
xili-languageLes traductions des variables du site (et des traductions personnalisées de terme du thème) sont stockées dans les fichiers .mo du thème (xx_YY.mo et local-xx_YY.mo ). Fichiers compilables par poEdit ou xili-dictionary. Possibilité de mixage (merge) avec priorité des fichiers .mo en cas de thème enfant/parent
  1. Version
  2. Auteur
  3. Le site de l’extension
  4. Structure ou institution
  5. Les avis et notations (étoiles)
  6. Quantité active (version active)
  7. Quantité téléchargée (totale toute version)
  8. Date de création
  9. Licence, prix
  10. Etiquette de langue spécifiant le post
  11. Cookies
  12. Ajout de nouvelles tables
  13. Remarques générales
  14. Utilisation de la table wp_options
  15. Ajouts de dossier
  16. Où sont sauvés les traductions des mots-clés ?
  17. Stockage des liens entre les versions des posts selon leur langue
  18. Les articles en avant (sticky post)
  19. Les articles sans langage affecté
  20. La traduction des termes du thème et de la structure du site.
Cette page ci-dessus regroupe les résultats d'une étude comparative des caractéristiques (liste au dessus) des extensions multilingues. Pourquoi cette étude ? Depuis février 2009, en tant qu'auteur de l'extension xili-language conçue autour des taxinomies qui venaient d'être introduites dans le noyau (core) de WordPress (2.3 à l'époque), il nous a paru essentiel de refaire le point donc de se situer dans l'offre qui reste concurrentielle avec l'arrivée notamment de solutions dites commerciales.

un site internet multilingue avec WordPress et xili-language