Tutoriel Qtranslate

Qtranslate n'est plus maintenu donc utilisez mqTranslate, ça marche pareil !

Voici un tutoriel pour Qtranslate car beaucoup sont encore assez perdus pour utiliser ce plugin. Je ne sais pas si c'est le meilleur plugin pour avoir un blog multilingue, mais moi, c'est celui qui répondait le plus à mes besoins:

Avantages

Inconvénients

Installation

Commencez par installer Qtranslate, et dans les options, choisissez les langues que vous voulez garder/ajouter/supprimer.

Qtranslate languages

Dans les Paramètres avancés, choisissez le mode de modification de l'URL que vous préférez, j'utilise le mode chemin car il correspond à la structure de permalien que j'ai choisi.

Qtranslate url

Si vous aviez déjà créé des catégories/tags, il va falloir les modifier pour ajouter leurs traductions, sinon, lorsque vous créez de nouvelles catégories, n'oubliez pas leurs traductions.

Qtranslate tags

Utilisation

Note: je vais utiliser x1 et x2 à la place de en et fr pour ne pas mettre le bazar dans mes codes!

Comment changer le titre du blog ?

Il suffit d'entrer

[:x1]English title[:x2]Titre français

directement dans les options de votre site. x1 et x2 représentent bien sûr vos langues (à remplacer par en et fr par exemple). Cette technique fonctionne aussi dans les widgets et certains plugins comme All in one SEO pack.

Comment insérer du texte en plusieurs langues dans mon thème ?

<?php _e('[:x1]English text[:x2]Texte en français'); ?>

Vous pouvez utiliser cette astuce pour tout et n'importe quoi, par exemple une feuille de style selon la langue :

<link rel="stylesheet" type="text/css" href="<?php _e('[:x1]english.css[:x2]<francais.css'); ?>" />

Comment traduire les tags WordPress ?

Prenons par exemple le tag the_content() :

<?php the_content(__('[:x1]Lire la suite[:x2]Read more')); ?>

Ce code vous affiche la bonne version de "Lire la suite" selon la langue choisie ! Autre exemple avec edit_post_link() :

<?php edit_post_link(__('[:x1]Modifier[:x2]Edit'),  '', ' | '); ?>

Comment afficher le choix des langues sous forme de drapeau ?

Il suffit d'insérer ce code là où vous voulez dans votre thème :

<?php echo qtrans_generateLanguageSelectCode('image'); ?>

Vous pouvez ensuite le styler avec un peu de CSS :

.qtrans_language_chooser { list-style-type:none; }
.qtrans_language_chooser li { float : left; margin-right: 20px; }

Si vous voulez afficher seulement le drapeau de la langue qui n'est pas active, rajoutez ce code :

.qtrans_language_chooser li.active { display : none; }

Si vous ne voulez pas de drapeau et seulement un format texte, utilisez ce code :

<?php echo qtrans_generateLanguageSelectCode('text'); ?>

52 comments

  1. Thomas 30 juin 2010 at 13:43:12

    Are you running WP3 with the qTranslate 2.5.7, just curious?

    • Karine 30 juin 2010 at 19:12:35

      Hello, that's right, I'm using qtranslate 2.5.7 with WordPress 3.0 :) It worked without tweaks with some minor bugs, but I modified its code a bit !

  2. Mathieu 2 juillet 2010 at 08:04:21

    Bonjour, merci pour votre tuto qui m'a beaucoup aidé sur l'utilisation de qTranslate pour WP :)

    Je me retrouve actuellement dans le probleme du slug multilingue , j'ai bien installé mon plugin qTranslate Slug, mais toujours le même probleme de slug , uniquement dans la langue par défaut.

    Pourriez vous me détailler quelque peu la maniere d'utiliser ce plugin , ou les eventuels points que j'aurais pu oublier ?

    Merci beaucoup pour votre tuto , et pour la qualité de votre blog.

    A bientot

    • Karine 2 juillet 2010 at 17:00:09

      Bonjour ! Contente que ça ait aidé quelqu'un ! :) Malheureusement pour l'histoire de fr/my-page, il n'y a pas encore de solution ! Je tenterai de tweaker le plugin quand j'aurai le temps mais ce n'est pas dans l'immédiat :)

    • Mathieu 2 juillet 2010 at 14:16:13

      Bonjour,

      Désolé de me répondre tout seul sur votre blog , mais je suis arrivé a faire fonctionner ce cher plugin ! il me reste cependant encore un tâche a effectuer , qui ne fonctionne pas chez moi mais qui fonctionne chez vous.

      Tout d'abord ma config , wordpress 2.9.2 , avec la dernière version de qTranslate. Mon probleme ,en clair , lorsque je suis sur une page du type http://mon.url/en/my-page et que je change de langue , il me redirige vers http://mon.url/fr/my-page alors que la logique voudrait qu'il m'emmene sur http://mon.url/fr/MA-page...

      Cela fonctionne parfaitement pour les articles et non pas pour les pages... Auriez vous une idée ? ;)

    • Mathieu 5 juillet 2010 at 11:08:13

      Bonjour, merci de votre réponse , je vais donc tenter de me lancer dans une grosse séance de débugging pour tenter d'optimiser ce fonctionnement ! Si j'y repense , je repasserais par votre blog pour vous informer ! Encore merci ;)

  3. Cyberto 9 octobre 2010 at 16:07:48

    Hi!
    I have a problem with this plugin and wrote it to the offical forum but didn't got an answer so far. My problem is that the plugin doesn't add fields to the admin "edit" and "add new" site or article... There is just one field for example the title: Title
    I think it should convert the into a new field but it doesn't
    Thanks for the reply

  4. Jeremy 9 novembre 2010 at 08:56:11

    Hi,

    I am using the MM Forms plugin with WordPress 2.8.5. How do use qtranslate to enable different languages from within my form definition?

    I tried:

    [text your-name class:regField "Name"][email* your-email class:regField "*Email"]<td title = "">[submit]
    [text browser id:browser class:hiddenField][text version id:version class:hiddenField][text os id:os class:hiddenField][text param id:param class:hiddenField]

    But the 'title' attribute of the just shows unparsed text containing the PHP statement.

    Many thanks
    Jeremy

  5. megainfo 10 février 2011 at 09:19:06

    salut essai cela!

    pour buddypress , veuillez utilser ce hack :

    //comment out next line, otherwise 404 page is displayed
    //add_filter('clean_url', 'qtrans_convertURL');
    //include language slug in all URL's
    add_filter('bp_core_get_root_domain', 'qtrans_convertURL');

    • Karine 12 février 2011 at 04:40:20

      Merci pour le tip :)

  6. Mathieu 8 mars 2011 at 17:18:38

    Hello.
    Merci pour ce tutoriel qTranslate !
    Mais après passé 10heures sans solutions, je me permets d'appeler à l'aide.... En effet, je souhaite mettre les drapeaux des langues en les intégrants dans la barre des Menus WP, ou alors à la suite, mais impossible. J'ai beau essayé d'insérer des div, je n'arrive pas à placer le code qtrans_generateLanguageSelectCode('image');

    Si une personne a une petite, euh une grande idée, voici le code qui se trouve dans le header.php

    • Mathieu 8 mars 2011 at 17:20:23

      Oups, le code ne s'est pas mis en entier et pas en format code... comment puis-je faire ?

  7. Miguel 8 juin 2011 at 00:16:55

    Hi everyone!

    Is possible to use the dropdown menu only with the flags images?

    Thanks

  8. Miguel 10 juin 2011 at 00:35:01

    I'm having difficulties to only display the flag of the inactive language! Can anyone help me?
    My css styles are: (every line works well, apart from the " li.active")
    Thanks

    .qtrans_language_chooser { list-style-type:none; }
    .qtrans_language_chooser li { float: right; margin-left: 5px; display:inline; }
    .qtrans_language_chooser li.active { display:none; }
    .qtrans_flag { border:1px solid #ffffff;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    -khtml-border-radius: 2px;
    border-radius: 2px;
    }

  9. jean 6 juillet 2011 at 07:22:08

    hello,
    merci pour toutes ces astuces !
    par contre, pour changer les titles des pages lorsque l'on utilise l'excellent plugin SEO (et donc le champ Custom Post Title). Là pour avoir un titre en plusieurs, comment fait-on ?
    les [:x1]
    ou Bonjour Hello ne sont pas gérés :
    cela donne en title : Bonjour Hello
    tu aurai une idée ?
    merci encore pour tout,

    Jean

    • Aurélie 5 juin 2013 at 02:32:51

      Bonjour Jean,
      As-tu trouvé la solution à ce problème ? J'y suis confrontée actuellement et ne trouve pas comment y remédier. Merci d'avance !

    • Karine 5 juin 2013 at 16:39:21

      Bonjour, pour la compatibilité entre d'autres plugins et qTranslate, malheureusement, il faut modifier directement les plugins en question. Plus d'infos ici: http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=4&t=294
      Tu peux peut être contacter directement l'auteur du plugin pour lui suggérer la modification, s'il est réactif et sympa, ce n'est pas trop compliqué à faire :)

  10. Caroline M. 8 juillet 2011 at 00:11:35

    Hello tout le monde!
    Ce blog à l'air très actif et je me tente d'appeler à l'aide.
    J'ai installé la version de WordPress 3.2.0 et mis en place la dernière version du plug-in de qTranlate 2.5.22, qui sont sensé à priori bien fonctionner ensemble.
    Tout marche très bien jusqu'au moment où je souhaites me rendre sur la page "Catégories" où ma page est carrément "gelée", c'est à dire elle est affichée, mais le navigateur continue à essayer de la charger et on ne peut plus rien faire et plus cliquer sur aucun lien (et encore moins sélectionner une catégorie).
    Qd le plug-in est désactivé la rubrique "Catégorie" fonctionne très bien.
    J'ai déjà tenté de désactiver ts les autres plug-in et de réinstaller qTranslate, mais rien à faire.
    Quelqu'un aurait-il une explication, ou encore mieux une esquisse de solution?
    Merci d'avance
    c.

  11. YeuHost 22 août 2011 at 12:54:27

    A embed code like [x1], [x2] isn't work on my theme.

    • Karine 22 août 2011 at 20:08:17

      Hello, how exactly are you using the code?

  12. Heder 2 septembre 2011 at 16:38:42

    Hello,

    Merci pour cette article, très très utile, cependant il une question qui n'a pas été soulevé (ou je ne l'ai pas trouvé).

    Comment traduire les nouages de mots ????

    Merci d'avance.

    Heder

  13. Patrice 17 septembre 2011 at 00:04:59

    Salut Karine,

    J'ai une question, j'ai installer qtranslate mais une fois que je vais
    dans les Paramètres avancés, choisissez le mode de modification de l'URL que vous préférez, j'utilise le mode chemin car il correspond à la structure de permalien que j'ai choisi.

    Une fois que j,ai fait ceci je sauvegarde mais il me revient encore pas défault, il me revien a USE QUERY MODE COMMENT ARRANGER CELA , EST LES PERMISSIONS?

  14. elaine 21 septembre 2011 at 19:23:55

    Hi Karine,

    I'm running WordPress 3.2.1 and Qtranslate 2.5.24

    In my dashboard, I don't see the fields for translating tags (you have it shown at the end of the installation section)

    I've got the posts to work fine with English and French. Now I need to get the other text elements to change language (ie. the text in side bar, comments, etc). Could you explain a bit further on how [:x1] and [:x2] works and where I should be inserting this code? Does it involve child themes?

    Many thanks.

    Elaine

    • elaine 21 septembre 2011 at 23:50:13

      After reading more articles, I know understand that you use [:x1] and [:x2] to substitute the actual language codes in order for them to read/render on the webpage.

      I'm still trying to figure out how to translate the other items on the page.

      Any guidance would be appreciated!
      Elaine

  15. Deva 25 septembre 2011 at 01:31:09

    Awesome, thank you very much!!!!

  16. Deva 3 octobre 2011 at 03:37:05

    Hello there!
    I hope you can help me with this. I'm using a premium WordPress theme called "Display" which has following code for "read more" link:

    echo 'Read more';

    Is it possible to change it somehow so it can work with qTranslate?
    Thank you in advance!

    • Deva 4 octobre 2011 at 21:50:06

      I just realized that I wrote a code in a wrong way :)
      "Read more" link code looks like this:
      echo '<a href="'.get_permalink().'"class="more-link">Read more</a>';

  17. Jb 20 octobre 2011 at 06:03:06

    Bonjour,
    merci pour ce tuto. J'aimerai connaître pour le CSS : sur quel CSS travaillez-vous ? En ce qui me concerne, je travaille sur le CSS "Style.css", et je copie le code à la fin de mon fichier, mais il ne veut rien prendre en compte. Avez-vous une idée ?
    Merci à tous.

    • Karine 12 novembre 2011 at 20:00:55

      Essayez d'ajouter !important avant chaque point virgule ?

  18. Eddy 14 novembre 2011 at 18:04:20

    Bonjour,
    Une chose que je ne comprends pas et sur lequel, je ne trouve pas de solutions, ce sont les liens internes dans WordPress 3.
    Maintenant que WordPress nous permet de faire des liens internes rapidement, je suis obligé d'aller transformer l'url à la main pour ne pas être redirigé vers la langue par défaut. J'ai vu des hacks pour le plugin link-to, mais j'aimerai autant ne pas hacker les fichiers de WP.
    Une idée ?
    Merci

  19. Claire 18 novembre 2011 at 00:42:37

    Bonjour,

    Merci pour cet article, tu as un blog vraiment très intéressant.

    J'aurai une question, j'ai cherché un peu partout sur le web, mais je ne trouve pas de réponse.
    Je travaille avec qtranslate, tout fonctionne bien, sauf que je n'arrive pas à afficher les images des drapeaux. J'ai inséré le choix des langues via Widget, en cochant bien "Image et Texte" mais cela n'affiche que le texte.

    J'ai essayé avec le bout de code :

    toujours rien. (par contre même en essayant d'afficher le texte avec cette même ligne de code en prenant "text" en argument, ne m'affiche pas le texte non plus...)
    Si vous avez une réponse, je suis preneuse ! Merci bien

  20. steven 13 décembre 2011 at 04:53:57

    i just dont get it - where are you supposed to put this line of code to make the language selector show up at the very top right of your WP site?

    theme options - color & fonts?
    style.css?
    functions.php ???

    • Karine 20 décembre 2011 at 16:34:01

      Hello, you need to put it in your theme files, like header.php for example

  21. Robert Klein 30 décembre 2011 at 19:38:21

    Thanks. Helped a lot.

  22. Julie 20 janvier 2012 at 01:37:37

    Bonjour,

    Merci pour cet article très intéressant.

    Quelqu'un utilise qtranslate avec les sous domaines ?

    Pour moi cela ne fonctionne pas et je ne connais pas le paramétrage à mettre en place.

    Merci d'avance pour votre aide

    • Karine 29 janvier 2012 at 19:32:33

      Bonjour Julie, j'ai testé sur un sous-domaine, ça devrait fonctionner de la même façon... Quels problèmes as-tu ?

  23. Julie 30 janvier 2012 at 01:46:05

    Bonjour Karine, lorsque je mets en place les sous-domaines les pages sont bien redirigées vers fr.mondomaine.com mais à ce moment là je n’obtiens qu'une page blanche, aucun contenu.
    Hormis la création des sous-domaines faut'il faire quelque chose de spécial ? Merci pour ton retour :)

  24. Jean 20 février 2012 at 02:50:10

    Bonjour, et merci pour cet article...
    j'ai une question concernant l'utilisation de ce plugin, mais je ne trouve nulle part la réponse.
    Je voudrais qu'en cas de non traduction de l'article, celui-ci s'affiche automatiquement dans la langue par défaut (en gros la totalité de mon site est en francais mais certains contenus sont traduits en Anglais. Je voudrais que si les contenus n'existent pas en Anglais, ils s'affichent d'office en Francais).
    D'avance, merci

    • Karine 12 mars 2012 at 00:41:00

      Bonjour, il me semble que qtranslate fait ceci par défaut ?

  25. myput 11 mars 2012 at 12:17:38

    salut, merci pour l'article, il ma's bien aide, j'ai juste un probleme que je n'arrive pas a regler avec QTranslate. Peux on mettre des variables?
    j'ai des variables a traduire, par exemple dans mon formulaire de contact:
    if(trim($_POST['contactName']) === '') {
    $nameError = 'Please enter your name.';
    ...

    j'ai essaye avec:
    $nameError = '[:en]Please enter your name.[:fr]Entrez votre nom svp.';

    mais ca ne marche pas....
    avez vous une solution svp?

    merci par avance

    • Karine 11 mars 2012 at 17:42:08

      Bonjour,

      Es-tu obligé d'utiliser une variable ? Je ferais plutôt comme ça :

      if(trim($_POST['contactName']) === '') {
      _e('[:x1]Please enter your name.[:x2]Entrez votre nom svp.');
      }

    • myput 12 mars 2012 at 09:49:36

      Merci pour la reponse rapide :) oui j'ai pu me debrouiller pour les variables simples du formulaire, mais j'ai encore en soucis avec les variables:

      $empty = 'data-empty="'.__('No more posts available.', 'framework').'" ';

      Peux on les traduires ?

      Merci d'avance

  26. maurizio 2 avril 2012 at 03:52:57

    Hi i use WP 3.3.1 and qTransate 2.5.28 and maybe i've found a bug..
    default language: IT , other language : EN.
    if i insert the "more tag" in a post (both IN ITA-ENGLISH TAB),after i save the post and i want to see the english tab i loose the content in it, and i see only the tag more.. if i remove the "more tag" , all backs to normal and works fine.. how can i solve it?
    thanks Maurizio

  27. aem 13 avril 2012 at 06:28:38

    question …

    je vais devoir intégrer le plugin wpml ou qtranslate pour un site multilangue et j'ai du mal à choisir …

    le prix n'est pas nécessairement un pb, mais si qtranslate est OK autant l'utiliser !

    la question se situe surtout au niveau SEO, j'ai lu que WPML traduit automatiquement les postnam (texte des URL), est ce que qTranslate le permet directment ? par un plugin ?

    Merci

    Sebastien

  28. Carolina 25 février 2014 at 17:01:07

    Hi, I'm having a big problem to use this plugin, that works fine, with my MERCEDESA theme. Everything is as I want, but the portfolio the words come toguether, like portuguêsingles. I tryed to put PortuguêsEnglish or [:pt]português[:en]English and nothing. Can pleeease some one help me??
    Website: http://www.pancieri.com.br/site

    • Karine 26 février 2014 at 15:02:35

      Hi Carolina, do you put this in your theme php files?

  29. Denis Hunter 5 mars 2014 at 17:57:42

    Bonjour Karine,

    J'utilise WooCommerce et qTranslate dans mon site de photos (Twenty Twelve Child). Tout fonctionne bien, sauf dans ma boutique...

    J'ai créé 3 catégories de produits :
    • Nature – Couleur
    • Nature – Noir et blanc
    • Europe

    Chaque catégorie comporte 2 attributs :
    • Format (3 dimensions possibles)
    • Présentation (cadre noir, cadre argent, ou non encadrée).

    Cela donne ainsi 9 variations de prix pour chaque photo.

    J'ai dupliqué le tout et l'ai traduit en anglais.

    Pour constituer ma boutique, j'ai d'abord créé un produit en français (avec le même titre en anglais), que j'ai ensuite dupliqué autant de fois que nécessaire en ne changeant que les titres. Cela m'a évité de spécifier à chaque fois les 9 variations de prix.

    J'ai procédé de même en anglais.

    Le problème est lorsque je change de langue (à partir du "switcher" dans le menu). qTranslate traduit bien "Veuillez choisir une option" en "Choose an option" (menus déroulants vis-à-vis les 2 attributs), mais il n'arrive pas à traduire les attributs (ex. Format > Size), ni les variables de Présentation (ex. Cadre noir > Black frame).

    Devrais-je créer des Language Tags pour éliminer mes 9 variations de prix en anglais? J'ai l'impression que ce dédoublement affole qTranslate...

    Ne devrait-il y avoir que les 9 variations de prix en français? Les Tags prendraient alors le relais pour générer l'anglais.

    Mais je ne sais pas comment procéder...

    Du reste, même la page Boutique semble incapable de gérer les 6 catégories, puisqu'elle les affiche toutes en même temps, au lieu de ne présenter que les 3 en français comme il se devrait. J'ai donc éliminé les catégories en anglais dans les réglages Produits. Je me retrouve alors, comme souhaité, avec 3 catégories dans la page Boutique, sauf qu'évidemment elles restent en français dans la page Shop.

    Même les sous-menus anglais ne s'affichent pas dans leur langue (alors que ça fonctionne bien pour l'onglet Portfolio).

    Bref, des heures de plaisir à essayer, en vain, de démêler tout ça.

    Merci de votre aide!

  30. Philippe 28 mars 2014 at 16:22:08

    Bonjour,
    J'utilise la version 2.5.36. Tout fonctionnait bie, jusqu'à c matin où j'ai fait une modification sur wordpress, en remplaçant l'url du site qui était http://NDD.info/ par http://www.NND.info/
    Wordpress a donc fait une redirection et quand on entre l'adresse sans www, il redirige vers l'adresse avec www.
    Aucun problème avec la langue par défaut du site qui qui est fr
    Là où le problème existe c'es que quand je tape http://NND.info/en il redirige vers le fr au lieu du en
    Je suis donc obligé de taper http://www.NDD.info/en pour atterisse bien sur la page en en.

    Autrement dit , la redirection envoie vers la langue par défaut, sans prendre en compte l'extension en.

    En revanche, une fois dans les pages en, au niveau de la navigation, les liens pointent bien vers les pages en.
    Avant l'ajout des www. dans l'url, tout fonctionnait correctement.

    Voilà je suis dessus depuis ce matin et j'ai à peu près épuisé toute mon imagination pour y remédier. Sans résultat.

  31. Thierry 19 mai 2015 at 10:21:32

    Bonjour,
    J'ai installé qtranslate, inséré toutes mes traduc textes, liens..., installé le code ci-dessous pour changer de langue dans le header et tout allait bien, mais maintenant les flags ne s'affichent plus avec :
    echo qtrans_generateLanguageSelectCode('image')
    si je mets en text j'ai les langues, si je mets both, je n'ai que les textes, plus de flags
    le css est :
    #qtranslate {float: right;}
    #qtranslate-chooser li.active {display: none;}
    #qtranslate-chooser li {float:left; margin: 15px 15px 0 0;}

    J'ai fait un test en installant le widget et là, les flags s'affichent.
    quelqu'un a une idée ?
    Merci beaucoup !

    • Thierry 19 mai 2015 at 13:56:06

      une piste : j'ai désactivé qtranslate slug et les flags s'affichent.
      avez-vous une soluce ?
      Merci

  32. Nirihx 2 octobre 2015 at 07:10:31

    Bonjour,

    Même si qtranslate n'est plus maintenu votre belle tuto ma aider pour la traduction d'une site,
    " Qtranslate n'est plus maintenu donc utilisez mqTranslate, ça marche pareil !"
    J'utilise qtranslate-x est ça fonctionne je confirme pour afficher des texte dans plusieurs lang

    Merci beaucoup,

Comments are closed.