WordPress: blog multilingue – 2nde partie

Dans l’article précédent, nous avons essayé de rendre un blog WordPress multilingue, sans utiliser de plugin.  Cette fois, nous allons utiliser les capacités d’extension de WordPress, et voir si des plugins peuvent fournir une solution efficace et confortable.

Dans le domaine des langues, il existe une dizaine de plugins. Le niveau de fonctionnalité et de qualité diffèrent beaucoup d’un plugin à un autre, ce qui est assez compréhensible, compte tenu de la complexité du sujet.

Multilinguisme

Avant de regarder les solutions techniques, rappelons dans quels cas nous parlons de multilinguismes:

  • Cas 1: Le blog publie l’intégralité du contenu en plusieurs langues. A un instant t, le blog ne s’affiche qu’en une seule langue, et propose des liens vers les différentes traductions. Si un article n’est pas disponible dans la langue demandée, alors il s’affiche dans la langue « principale »,
  • Cas 2: Le blog affiche des articles dans différentes langues, sans qu’il y ai forcement des liens de traduction entre eux. Sur une même page, nous pouvons trouver des articles en français, en anglais, en italien … Une variante de ce cas, est l’affichage, au sein d’un même article, de paragraphes dans différentes langues.

QTranslate

Lien: QTranslate 1.0.3.
La principale qualité de QTranslate est son ergonomie. Par exemple, l’éditeur d’articles, permet de passer d’une langue à l’autre, simplement par un système d’onglet.
Ecran du plugin Qtranslate
QTranslate permet de saisir des articles en plusieurs langues, et traite également les catégories. Mais il s’arrête là: pas de traduction pour les autres éléments tels que les catégories de liens, les pages et les tags.
La modification des thèmes est simple, mais la documentation est un peu légère sur ce sujet.

Bilingual

Lien: Basic Bilingual 0.31.
Ce plugin propose des fonctions relativement limitées, mais il est intéressant dans une optique de référencement.
Il permet juste d’indiquer la langue des articles, et de saisir un résumé (Excerpt) dans une autre langue. Il ne s’agit donc pas vraiment d’une internationalisation, mais il est efficace pour ceux qui cherchent juste à attirer des lecteurs « étrangers ». Attention cependant au taux de rebond.
Edition d'un article avec bilingual
Le plugin s’intègre très facilement aux thèmes, en ne nécessitant que très peu de modifications.

Gengo

Lien: Gengo.

Au premier contact, Gengo impressionne par le nombre d’options proposées, et son intégration à WordPress. Il est clairement le seul plugin compatible avec le cas 1. Au niveau des articles ou des pages, par exemple, il propose de créer un article (ou une page) par langue, et de créer un lien entre les deux. Cette façon d’aborder les choses permet d’avoir des permaliens propres et bien distincts entre un article et ses traductions.

Les développements, longtemps arrêtés, semblent repartir. La version 2.5, sortie en mai, et compatible avec les versions 2.5.x de WordPress, est disponible sur la page des plugins de WordPRess.

Cette dernière version est encore perfectible:

  • Il semble très sensible à son environnement: j’ai découvert une incompatibilité avec Simple Tags, par exemple,
  • Nous ne pouvons pas spécifier la langue des liens,
  • Gengo ne propose pas la traduction de la description des catégories (mais la base de donnée est prête pour le faire),
  • Nous n’avons pas de lien entre les traductions des catégories.
  • Il y a encore quelques bugs.

Je pense que l’on ne pourra vraiment juger de la qualité de ce plugin que lorsque son développement sera un peu plus avancé.

XLanguage

Lien: XLanguage 1.3.3

Les trois plugins précédents modifient la base de données, ainsi que le comportement de WordPress. XLanguage propose une approche différente: nous devons « marquer » le texte, pour indiquer dans quelle langue il est écrit, et XLanguage s’occupe d’afficher la bonne version au bon moment.

Ecran de configuration du plugin xlanguage

Le marqueur peut prendre plusieurs formes: <span lang=" ...">, ou [lang_ ...] . Ces marqueurs peuvent être utilisés sur le contenu d’un article ou d’une page. Pour les titres, les catégories, les tags, XLanguage propose simplement de donner toutes les traductions séparées par le signe |.

Je vois deux intérêts à ce plugin par rapport à PolyGlot (test suivant), qui fonctionne sur le même principe: XLanguage propose

  • un assez grand nombre d’options, pour notamment choisir la structure des permaliens,
  • un ensemble de fonctions permettant d’afficher la liste des langues disponibles, des liens vers les différentes traductions, et même de quoi internationaliser les thèmes.

XLanguage gère également les plugins de « Cache ». Sur le papier le plugin semble intéressant. J’ai cependant noté quelques défauts:

  • La déinstallation n’est pas propre: j’ai perdu la barre d’icônes de l’éditeur d’article (TinyMCE) notamment. Il faut effacer le répertoire du plugin pour que la barre ré-apparaîsse !
  • Le permalien est unique pour toutes les langues, ce qui est logique, puisque nous avons un seul article. Ceci peut être très pénalisant pour le référencement.

Polyglot

Lien: PolyGlot

Polyglot propose à une approche similaire à Xlanguage. Globalement, il suffit d’insérer des marqueurs du type [lang_xx] [lang_xx] dans les textes à saisir (xx = code de la langue, fr pour français, en pour anglais, …). Le texte peut être un article, son titre, une page, une catégorie, un lien, le commentaire d’un lien, un marqueur …

Polyglot se charge ensuite de proposer, le texte dans la bonne langue, sur la partie publique du site, mais également dans la partie administration.
Le plugin offre également quelques fonctions permettant d’avoir la liste des langues disponibles, J’avoue avoir été vraiment surpris par les résultats. Le plugin marche sans faille sur tous les « objets » de WordPress, et avec des plugins comme SimpleTags, les gestionnaires de cache, les SEO …

Site du plugin PolyGlot

L’ergonomie du plugin laisse un peu à désirer: il faut éditer le fichier PHP du plugin pour modifier les options.

De part son principe d’utilisation, PolyGlot est très peu intrusif, et ne risque donc pas de poser trop de problèmes avec les différentes versions de WordPress ou des plugins.

Les inconvénients sont les mêmes que pour Xlanguage:

  • Il « pollue » les textes (titre, description, articles, tags…), et ne permet pas une structuration/séparation rigoureuse des textes dans les différentes langues.
  • Il ne génère qu’un seul permalien par article, même si celui-ci contient plus versions dans différentes langues.

PolyGlot est très proche d’un autre plugin: Language Switcher.

Autres plugins

D’autres plugins existent. Ils n’ont pas été testés parce que, soit ils manquent de fonctionnalité, soit leur développement n’est plus actif. Il s’agit, par exemple de:

Avant de ce lancer

Dans un article, Eric Dupin parle des questions a se poser avant de démarrer un blog multilingue. Mon article n’aborde en effet que les aspects techniques, mais les principales questions sont ailleurs:

  • A-t-on le niveau suffisant pour faire vivre un blog dans une autre langue?
  • A-t-on la culture des pays visés?
  • Dispose-t-on du temps nécessaire?
  • A-t-on une liste de liens suffisants dans l’autre langue (références, blogroll) ?

Conclusion

Premier constat: WordPress n’est clairement pas multilingue. Il s’agit d’une lacune qu’il faudra traiter à un moment donné, d’autres produits proposant nativement ce type de fonctionnalité.

Les solutions « sans plugins », même si elles sont simples, ne sont pas idéales. Elles nécessitent, soit des modifications au niveau de WordPress lui-même, soit une adaptation lourde du thème.

La grande majorité des plugins ne couvrent que le cas 2: un même article va contenir plusieurs versions de son contenu, dans différentes langues. Le principal inconvénient de ce principe sera certainement un mauvais référencement. Seule Gengo traite le cas 1, en proposant un article par langue, et des liens entre les langues.

La plupart des plugins sont assez intrusifs, c’est-à-dire qu’ils modifient énormément le comportement de WordPress, ce qui nous expose à différents problèmes:

  • Ils sont très dépendants des versions de WordPress et des autres plugins,
  • Ils rendent le développement des thèmes plus complexes.

XLanguage et PolyGlot sont les moins intrusifs, mais ne couvrent pas le cas 1, et ils déstructurent le contenu (plusieurs versions du contenu dans un article).

En se basant sur l’un de mes grands principes (si si j’en ai): Ce qui est simple, est robuste, et facile à administrer, le choix se limite, pour l’instant à l’installation d’une instance de WordPress par langue. Gengo peut également être une solution s’il évolue encore un peu.

Il reste à me décider si oui ou non je me lance dans l’écriture en français et en anglais de ce blog.

Autres articles de cette série

  1. WordPress: Blog multilingue - 3ième partie (5 août 2008)
  2. WordPress: blog multilingue - 2nde partie (20 juin 2008)
  3. WordPress: blog multilingue - 1ière Partie (18 juin 2008)

17 thoughts on “WordPress: blog multilingue – 2nde partie”

  1. @ACS04: Je suis d’accord. Si le multilinguisme n’est pas integre a l’outil, toutes les tentatives pour le rendre polyglottes resteront du bricolage.

  2. Article intéressant (ainsi que les deux autres qui sont consacrés à la problématique de l’internationalisation d’un site sous WordPress).

    A titre indicatif, un autre plugin WPML est une solution de type Gengo assez puissante et relativement bien supportée. Même si cette solution n’est pas optimale et compte quelques bugs, il est possible d’avoir un site multilangues mais surtout, de choisir le comportement du site dans le cas où un article, une page, etc. n’est pas traduit…

    Mais, cela dit, il est grand temps que WordPress comporte en standard une vraie gestion des langues…

    D’autres besoins importants se font sentir pour que WordPress soit véritablement LE CMS incontournable … http://www.acs04.fr/archives/1132/wordpress-je-taime-moi-non-plus

  3. @Denis: l’ideal serait d’installer les differentes instances de WordPress dans des repertoires differents ( repertoire racine pour le francais, en pour l’anglais, …).
    De cette facon, les liens sont simples a gerer.
    Par contre, depuis la sortie de WP 3.0 et la dispo des fonctionnalites multi-sites, il serait interessant de refaire l’etude.

  4. dans le cas de plusieurs install wordpress, quelle forme donner aux liens pour que ma pageX_fr dirige vers ma pageX_en ??

  5. J’ai un petit peu avancer sur le sujet en utilisant les fonctions du plugins Qtranslate. Dans mon template j’avais la ligne suivante :

    <a href=" »>Home

    Que j’ai modifié comme suit :

    <a href=" »>

    Après, il suffit d’ajouter Home dans le fichier .mo de langue. Et c’est là que je bloque. Ca marche avec une valeur existante mais je n’arrive pas à ajouter une valeur… A suivre 🙂 Encore félicitations.

  6. Pas si simple de faire du multilinguisme en effet, parce qu’il ne suffit malheureusement pas d’installer un plugin. Il faut que le theme et les autres plugins suivent egalement.
    Concernant le lien vers la page d’accueil, la seule solution que j’ai trouve est de modifier le theme avec quelque chose qui peut ressembler a cela:

    global $wp_locale;
    if (substr($wp_locale, 0, 2) == 'en') $home_link = ...
    else $home_link = get_bloginfo('home');
    

    C’est assez artisanal, mais efficace.

  7. Excellent article qui présente largement bien la problèmatique. Je suis utilisateur de Qtranslate depuis peu et je rencontre quelques difficultés avec des éléments en dur dans les fichiers comme « Home » de wordpress. Pas si simple de faire du multilangue… Si vous avez une idée, je suis preneur 🙂

    Félicitation pour votre site.

    Yvan

  8. a propos de Xlanguage vous dites : « Le permalien est unique pour toutes les langues, ce qui est logique, puisque nous avons un seul article. Ceci peut être très pénalisant pour le référencement. »
    C’est faux car dans l’url il y a la langue indiquée !!

  9. Hélas oui.
    J’ai finalement opté pour ZdMultilang qui me semblait assez simple, mais je me heurte a quelques soucis que son auteur n’a pas le temps de traiter. N’oublions pas que tous ces auteurs de plugins doivent vivre et nourrir leur petite (ou grande) famille …

    Par rapport a l’article, j’aouterais quelques contraintes en plus:
    – des petits problemes de « duplicate content » pour les articles non traduits,
    – la gestion des langues pour la publicité (avec Google Adsense par exemple),
    – le fichier sitemap.xml qui n’est pas généré pour les articles dans les autres langues.

    Je suis toujours persuade que la solution multi-install reste la meilleure, mais j’avoue ne pas avoir, ni le temps, ni le courage aujourd’hui de faire la migration.

    J’attends beaucoup de la fusion de WordPress et WordPress MU: si les developpeurs ajoutent quelques fonctions, comme la gestion des liens entre blog, nous aurons quasiment la solution idéale.

  10. Un an après, ton article semble toujours autant d’actualité. Le probleme avec Gengo n’a pas changé. Le travail repose toujours sur les epaules d’une seule personne (Pixline) et il n’arrive naturellement pas à suivre le rythme des upgrades de wordpress. Ta solution (plusieurs installs) reste malheureusement la meilleure, pour l’instant. Merci pour tes infos.

  11. Excellent article, merci. J’envisage de monter mon futur site en bilingue, et effectivement je pense que vais poter pour deux instances séparées pour ne pas avoir de problèmes de bugs de plugins ou de référencement. Il faudra certes maintenir deux bases mais je pense qu’au final c’est la solution la plus souple car on peut aussi changer le design suivant les langues.

  12. Merci pour le compliment.
    SPIP est effectivement un excellent produit, dont la gestion des langues est très bien pensée.

  13. Très bon article !

    La gestion multilingue est un sujet ardu, en particulier avec WordPress qui n’a pas été prévu pour.

    Je crois que la conclusion qui s’impose est effectivement qu’à ce jour WordPress n’est clairement pas multilingue…

    Dans la catégorie des CMS, SPIP propose en standard une gestion multilingue assez bien pensée. Cela constitue vraisemblablement une meilleure solution quand on se lance dans la réalisation d’un site multilingue.

Laisser un commentaire

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