WordPress: Blog multilingue – 3ième partie

Dans deux précédents articles, nous avons tenté de rendre WordPress multilingue, tout d’abord, sans plugin, puis en utilisant des plugins existants. Les conclusions étaient plutôt décevantes. Dans cette troisième partie, j’aimerais apporter quelques informations complémentaires sur ce sujet.

Multilinguisme

Rappelons rapidement les deux cas identifiés de multilinguisme:

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.

Le plugin ZdMultilang

Dans mes recherches sur les plugins, je suis passé à côté de ZdMultilang. Développé par Anthony, ce plugin encore peu connu, dispose pourtant de qualités comparables à ces concurrents.

Du point de vue du comportement, ZdMultilang se trouve à mi-chemin entre des plugins de type Gengo, et des plugins comme XLanguage ou Polyglot.

Son installation est classique, et fait apparaître un menu supplémentaire intitulé « Langues ». Ce menu permet

  • De configurer le plugin (ajouter des langues, configurer l’affichage des éléments),
  • De traduire les catégories, les tags, et les catégories des liens,
  • D’écrire les traductions des articles ou des pages existantes.
Ecran des langues de ZdMultilang
Ecran des langues de ZdMultilang

L’interface est simple et efficace. L’extension permet de modifier les permaliens, en ajoutant un élément entre l’hôte, et le reste de l’url. Les permaliens prennent donc la forme suivante: <hôte>/<élément ajouté par ZdMultilang>/<fin de l'URL>.

Exemple: http://www.emmanuelgeorjon.com/en/wordress-blog-multilangue-part2/

Du côté du visiteur maintenant, le plugin affiche tous les articles et signale les éventuelles traductions. Si un article, ou un élément n’est pas traduit, le plugin l’affiche dans la langue d’origine (selon option). Un widget permet d’avoir un lien vers les différentes traductions du site.

Au chapitre des défauts: la documentation est malheureusement minimale (en cours de correction), et certains éléments ne sont pas traduits (les champs description des catégories et des liens par exemple).

Pour résumer: ZdMultilang est un plugin stable, complet et efficace. Il permet de couvrir les cas 1, comme Gengo, mais de façon beaucoup plus simple.

Commentaires généraux

Dans le second volet de cette série d’articles, ma préférence allait plutôt vers les plugins de type XLanguage ou Polyglot, parce qu’ils étaient peu intrusifs et simples d’emploi. Gengo est plus complet, couvre quasiment tous les cas, mais est également plus sensible à son environnement (version de WordPress, autres plugins …). ZdMultilang se situe un peu entre les deux.

Après quelques tests, je reviens sur mon opinion: comme signaler dans l’article précédent, PolyGlot et Xlanguage stockent la version originale et les traductions dans le même article. En cas de désinstallation de ces plugins vos lecteurs verront apparaître les articles comme vous les voyez dans l’interface d’administration: un empilement des paragraphes originaux et de leurs traductions.

Conséquence d'une désinstallation de Polyglot
Conséquence d'une désinstallation de Polyglot

Donc, si vous décidez un jour de vous passer de ce plugin, ou de ne plus faire de multilinguisme, il faudra, au préalable, se lancer dans des opérations lourdes pour séparer les différentes traductions les unes des autres.
Dans le cas de Gengo ou de ZdMultilang, le problème est différent: en cas de désinstallation, le blog continue de fonctionner normalement, seules les traductions disparaissent. De plus, avec ZdMultilang, les traductions peuvent être aisement récupérées, puis elles sont stockées dans une unique table et portent le même ID que l’article d’origine …

Conclusions

Cet article est le dernier de la série WordPress multilingue. Après le test de ZdMultilang, et des tests complémentaires sur les autres extensions, mon opinion a un peu évolué:

  • La mise en place d’une installation de WordPress par langue, reste à mon sens, la méthode la plus simple, et la plus sécurisée. Elle implique cependant une charge de travail plus importante,
  • L’utilisation d’un plugin nous expose à des problèmatiques de mise à jour, et de pérénité (si le développement du plugin est abandonné). En fonction de mes derniers essais, je déconseille Polyglot et Xlanguage. Gengo et ZdMultilang couvrent le cas 1 du multilinguisme, et peuvent être désactivés sans compromettre le fonctionnement du blog.

Pour un site massivement multilingue, Gengo me semble plus adapté. Dans les autres cas, la simplicité et l’efficacité de ZdMultilang suffiront largement. Ces qualités renforcent d’ailleurs l’indécision entre les méthodes avec ou sans plugin.

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)

16 thoughts on “WordPress: Blog multilingue – 3ième partie”

  1. Même si cette extension est performante et repond aux besoins aujourd’hui, que se passe-t-il
    – si une nouvelle version de WordPress apparait avec de nouveaux objets (comme rescemment avec les menus)
    il faudra attendre une nouvelle version de l’extension pour pouvoir faire la mise a jour de WordPress
    – si l’on veut changer d’extension: la migration sera forcement complexe, puisqu’il faudra transferer les articles traduits, de l’ancienne extension vers la nouvelle.

    Globalement, utiliser une extension pour gerer le multilinguisme, ajoute des contraintes supplementaires. En plus je ne suis pas sure que cela soit vraiment bon pour le referencement.
    Avoir un site par langue donne une grande souplesse: les sites peuvent évoluer différemment, il n’y a pas de contraintes de mise a jour autres que celles rencontrees habituellement. La seule chose a ajouter est de gerer les liens entre les sites (c’est quelque chose auquel je pense depuis un certain temps déjà).

  2. En continuant mes recherches, je suis tombé sur ça: Bilingual Linker récemment mis à notre disposition. Selon, un commentaire de Diane Bourque: « Avec ton extension, nous sommes maintenant capable de faire un site bilingue WordPress à 100%. »

    Je recherche, à présent, des retours sur cet extension. Espérons…

  3. Bonsoir Antoine,

    Avec le recul que j’ai aujourd’hui, je pense que, customizer WordPress pour le rendre multilingue est une mauvaise solution.
    Pour moi, s’il s’agit d’un site massivement multilingue, WP 3.0 en mode multisite (1 site par langue) reste la meilleure solution:
    – un sous-domaine par langue,
    – un petit developpement pour faire le lien entre les traductions (une table, ou une taxonomie, ou des custom fields)

  4. Bonsoir,
    Merci pour ces articles. Même s’ils datent un peu j’ai pris conscience du problème existant entre wp et les traductions.

    Au jour d’aujourd’hui, quelle est la meilleure solution d’après-vous? En effet, je suis missionné pour réaliser un blog pour une société et ses clients
    proviennent des pays-bas, de l’Angleterre.

    Merci beaucoup,

    Antoine, en mode recherche active 😉

  5. @Emilie: Je rencontré quelques problèmes avec ZdMultilang. Après de nombreux essais, j’ai remarqué que son comportement n’était pas le même selon le navigateur. Pour résumer, je n’arrive plus à traduire d’articles avec Internet Explorer (Version 7), alors que tout fonctionne parfaitement avec Firefox. Peut-etre une piste.

  6. Bonjour,
    Je n’ai pas regarde les plugins de ce type depuis longtemps. De mon cote, Zdmultilangue fonctionne en 2.9.2 sans probleme particulier.
    J’ai moyennement confiance en Gengo dont le projet ne semble suivi que de temps en temps.

    J’ai teste WPML Multilingual CMS rescemment, et il semble fonctionner assez correctement.

  7. Bonjour,

    Plus de 6 mois après le dernier commentaire et plusieurs évo WordPress plus tard (WordPress 2.9.2)…

    J’avais installé Zd Multilang et j’en étais vraiment satisfaite. Mais depuis le passage à la 2.9. Il ne fonctionne plus (les liens catégorie incluent dans l’article ne fonctionnent plus). Et apparemment il n’est plus actualisé.

    Existe-t’il une solution ?
    Ou un autre plugin ? Gengo peut-être ?

    Merci d’avance.

  8. Merci.
    Il faut signaler que, depuis la sortie des articles, les produits ont évolué.
    Les principes généraux restent. Tous les plugins suivent l’un des deux principes suivants:
    – soit chaque article contient toutes les traductions,
    – soit le plugin gère des articles de traduction, liés à l’article original.

    Dans le premier cas, toutes les traductions apparaîtront après la désinstallation du plugin. Dans l’autre le blog continuera de fonctionner, avec simplement les traductions en moins. Le problème reste alors à savoir récupérer ces traductions.

    A signaler un nouveau venu WPML Multilingual CMS, qui fait partie de la seconde catégorie, et qui offre une bonne ergonomie.

  9. Vraiment merci pour cette excellente série d’articles
    Clairs et bien structurés. Depuis un bon moment je cherche à internationaliser mon blog, mais j’étais perdu face à une multitude d’avis contradictoires. Il ne me restait qu’à installer les différents plugins pour pouvoir juger par rapport aux besoins. Chose que vous venez de faire, du coup j’ai gagné beaucoup de temps. Merci encore et bonne continuation.

  10. Bonjour,
    Merci pour les compliments.
    Concernant le multilinguisme:
    S’il s’agit d’un blog « pro » dont la presentation dans chacune des langues doit etre irreprochable, alors il vaut mieux opter pour deux instances, une pour chaque langue. Depuis ces articles, je me suis également mis à publier en deux langues, et j’ai découvert de nouvelles contraintes:
    – les widgets doivent pouvoir s’adapter à la langue,
    – certains plugins ne savent pas gérer le multilinguisme,
    – des plugins comme Google XML Sitemap.
    Avec une instance par langue, les choses sont beaucoup plus simples:
    – chaque instance est un blog classique, sans customization particulière,
    – les blogs peuvent évoluer indépendamment les uns des autres.
    Les seuls éléments à gérer sont les liens entre les deux blogs.
    Depuis la version 2.7 de WP, les mises à jour sont beaucoup plus faciles, donc les contraintes du multi-instances sont moins importantes.
    Les plugins de multilinguisme génèrent bien plus de contraintes, et surtout créent une dépendance.
    La variante est intéressante, mais nécessite de bien maîtriser l’outil.

    Dans le cas de plusieurs instances, l’installation est simple: la première instance va dans mon-domaine.com/blog/, et l’autre dans mon-domaine.com/blog/en/

    Je ne connais pas assez WP MU pour dire si cette solution est plus avantageuse.
    Une autre possibilité serait d’utiliser un autre produit que WP … WP est un moteur de blog, pas un CMS (nous avons souvent tendance à l’oublier), beaucoup de CMS savent gérer le multilinguisme nativement.

  11. Bonjour et bravo pour ce travail.

    Vos billets sur les blogs « WP » multilingue sont très intéresants et très utiles.

    Voilà, je me retrouve dans le cas ou je dois choisir la méthode à utiliser pour la mise en place d’un blog WP multilangues (française, anglais).
    La seconde solution citée dans votre article est la suivante « Plusieurs instances » … puis vous avez rajouté une variante « Un seul moteur, n bases ».
    Quelle solution me préconisez vous ? … Celle avec plusieurs instances ou la variante ?

    Voici quelles précisions sur ce que je souhaite mettre en place :

    mon-domaine.com –> (site officiel hébérgé chez OVH sur une offre plan)

    Blog(s) multilangues à mettre en place :
    mon-domaine.com/blog/ –> (version française)
    mon-domaine.com/blog/en/ –> (version anglaise)

    Merci pour vos suggestions, remarques. Si vous avez des tutoriaux pour la mise en place de ces solutions exposées je suis preneur.

    Si non, que en pensez de la dernière version de WordPress Mu (v2.7).
    Est-ce que aujourd’hui j’ai intérêt a me tourner vers cette solution ou rester sur la solution citée plus haut.

  12. Dans l’interface d’administration, sur la page d’edition des articles, il suffirait d’ajouter un champ « traduction » aux articles disposant d’une traduction.

  13. Bonsoir,
    Une solution serait d’utiliser les « custom fields »
    Dans la page single.php du theme, il faudrait inserer un code du type

    $traduction = get_post_custom_values('traduction');
    if (sizeof($traduction)>0) {
       echo '<a href="'.$traduction.'" rel="nofollow">English</a>';
    } else {
       /* lien vers la traduction par défaut */
    }
  14. Bonsoir,

    merci pour toutes ces explications. Personnellement je préfère largement avoir différentes installations de wordpress. Par contre je recherche désepérément un plugin qui me permette de rajouter un champ d’url.

    L’idée est que si le champ et remplis le drapeau correspondant que j’ai inséré dans mon template renvois sur cet url et si le champ n’est pas remplie que le drapeau renvois sur la / par défaut de la langue que j’aurais paramétré.

    Est-ce que vous avez une idée ?

  15. Merci beaucoup pour l’article 🙂

    Pour info, depuis la derniere version de ZdMultilang, il est aussi possible d’afficher un lien google translate pour les articles non traduits 🙂
    Il permet aussi de n’afficher que les articles ayant été traduits (via une option).
    Effectivement, la doc a été rédigée suite à ta remarque 🙂

Laisser un commentaire

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