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.
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
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.

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
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 ?
Bonsoir,
Une solution serait d’utiliser les “custom fields”
Dans la page single.php du theme, il faudrait inserer un code du type
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.