Rendre son site WordPress multilingue avec qTranslate
Fabian Piau | mardi 25 mars 2014 - 08:0021 juin 2020 : Le plugin « qTranslate XT » a pris la relève de qTranslate comme ce dernier n’est plus supporté par son créateur. CarmaBlog utilise désormais qTranslate XT et il n’y a eu aucun problème pour migrer de qTranslate ou qTranslate X vers qTranslate XT, un mode de compatibilité existe. Le contenu de cet article est toujours exact.
Ce n’est pas une fonctionnalité native de WordPress, heureusement l’extension gratuite qTranslate existe. La simple activation de l’extension ne fera malheureusement pas tout, il va falloir aller plus loin que cela.
Les avis des utilisateurs sur qTranslate sont assez mitigés, car une majorité d’entre eux l’installe en espérant n’avoir rien (ou quasiment rien) à configurer. Et souvent, ils se plaignent quand ils se rendent compte que ça ne répond pas à leurs attentes (et en profite au passage pour donner une mauvaise note).
WordPress évoluant en permanence avec des milliers d’extensions disponibles, il est impossible de réaliser une extension multilingue parfaite pouvant tout supporter au biais d’une interface unique, tout ceci sans avoir un seul problème de compatibilité. Ce serait trop beau, d’autant plus que je rappelle que qTranslate est gratuit.
Un thème et des extensions multilingues sinon rien
Pour commencer, si votre thème n’est pas lui-même multilingue (c.-à-d. livré avec plusieurs fichiers de langues et supportant le passage de l’un à l’autre), ce n’est même pas besoin d’aller plus loin. Deux choix s’offrent à vous:
- Soit changer de thème par un plus récent gérant le multilingue
- Soit rendre votre thème multilingue (si c’est votre thème, vous devriez savoir le faire et rentrer dans votre code, même si cela prendra un peu de temps).
Aussi, si vous utilisez des dizaines d’extensions « exotiques », il y a fort à parier que vous allez rencontrer des problèmes de compatibilité avec qTranslate. Je vous conseille de vous limiter à une quinzaine d’extensions parmi les plus utilisées. C’est en particulier vrai pour les extensions indispensables dans le sens où votre site ne peut fonctionner bien si vous les désactivez.
Une extension réputée et de préférence bien notée (cela va de pair normalement) permettra de vous assurer:
- Qu’elle est bien suivie (mise à jour de versions régulière, au fur et à mesure des nouvelles versions de WordPress)
- Que vous aurez un support suffisant (il y a surement un utilisateur qui a rencontré le même problème que vous)
- Qu’elle est multilingue. Rendre une extension multilingue est envisageable, mais si c’est évitable, alors autant s’en passer…
Vous pouvez consulter la liste des extensions que j’utilise, elles sont toutes fonctionnelles avec qTranslate et sont, pour la plupart, connues et plutôt bien notées.
Si votre thème et vos extensions sont multilingues, vous verrez que le changement de langue avec qTranslate impactera bien tout cela. Par exemple, l’interface de l’extension Jetpack ou le tableau de bord administrateur WordPress suivront le changement de langue.
Gestion des traductions depuis le tableau de bord WordPress
La gestion des articles est bien intégrée avec qTranslate. Vous aurez autant de champs que de langues choisies pour le titre et le contenu des articles. Même chose pour les catégories et les mot-clés.
qTranslate vous permet d’activer autant de langues souhaitées. Dans mon cas, j’ai activé l’anglais et le français. J’ai donc tous les champs traduisibles en double.
Si la majorité des informations sont traduites de manière automatique, ce n’est pas le cas pour toutes les informations. Notamment celles déjà existantes que j’avais dû remplir au début lors de la création du blog.
Je peux utiliser un tag fourni par qTranslate pour ajouter mes propres traductions sur ces informations, sous la forme: [:code_lang_1]Mon texte en langue 1[:code_lang_2]Mon texte en langue 2
.
Par exemple, voici la nouvelle valeur pour le slogan du site qui s’affiche en haut:
De la même façon, il faut modifier autant que possible les titres, les descriptions de tous les textes qui apparaissent sur le site et qui ne sont pas traduit. Voici une liste non exhaustive (dépendante des extensions que j’utilise):
- Le slogan du site
- Les titres de certains widgets
- La description de chacun des liens de site
- L’affichage d’une ligne sur l’auteur dans le flux RSS (WordPress SEO)
- Le texte utilisé dans le compteur de vue (WP-PostViews)
- Le texte utilisé pour le navigateur de page (page précédente, suivante, dernière…) (WP-PageNavi)
- Le titre et le texte par défaut pour les articles similaires (Yet Another Related Posts Plugin – YARPP)
Si vous utilisez l’extension Contact Form 7, pensez à créer vous-même autant de formulaires de contact que votre site supporte de langues.
Gestion avancée des traductions (code source)
Toutes les modifications et petites améliorations possibles depuis l’interface d’administration étant terminées, vous allez vite vous rendre compte qu’il reste encore quelques petites choses à améliorer pour rendre votre site complètement multilingue.
Dans ce cas, il n’y a plus d’autre choix possible que de se plonger dans le code PHP et de modifier manuellement quelques fichiers de WordPress, de votre thème ou même de certaines extensions. Par exemple:
- La prise en compte de la langue lors de la construction du lien vers les flux RSS
- L’ajout du sélecteur de langue qTranslate dans le header du thème
- L’affichage d’images différentes dans le thème en fonction de la langue
- La prise en compte de la langue dans les extensions telles que Shadowbox, List category posts, WordPress SEO, Disqus, Social media icons…
Pour cette dernière partie, il n’y a pas de secret, il faut modifier le code à la main en appelant des fonctions disponibles quand qTranslate est activé.
Voici un bout de code pour récupérer la langue et setter un texte différent suivant le cas.
if(function_exists('qtrans_getLanguage')) { $lang = qtrans_getLanguage(); if ($lang == 'en') $text = 'anglais'; else $text = 'francais'; }
Attention, quand vous commencez à modifier le code, sachez qu’une mise à jour écrasera vos modifications. Pensez donc bien à noter TOUTES les modifications effectuées avant de mettre à jour WordPress, votre thème ou une de vos extensions. Si cela devient trop compliqué à maintenir, il peut être intéressant de prévoir un système pour automatiser l’intégration de vos modifications après une mise à jour. A vous de voir.
Dans bien des cas, vous l’aurez compris, vous aurez besoin de rentrer vous-même dans le code des extensions incompatibles. C’est un passage obligé pour résoudre certains problèmes, mais aussi pour peaufiner au maximum le changement de langue afin de rendre l’expérience utilisateur la plus complète possible.
Avec le temps, vous allez finalement vous compte que le plus dur et fastidieux n’aura pas été de rendre votre site multilingue, mais de traduire tous vos articles dans les langues que vous supportez!
Commentaires récents