Plugin « Langue préférée par l’internaute »

Cet article explique comment fonctionne le plugin « Langue préférée par l’internaute » (langue_preferee) et comment le mettre dans un site multilingue existant.

Introduction

Cet article propose une solution simple et élégante pour diriger l’internaute dans le secteur de sa langue en fonction des préférences de son navigateur préféré.
Cet article traite aussi de la mise en œuvre de l’extension dans les squelettes de votre site.

Pré-requis

Cet article suppose que vous ayez déjà un site multilingue dont chaque secteur [1] correspond à une langue de votre site.
Si vous n’êtes pas familier avec ce concept, nous vous conseillons de lire les articles suivants :

  1. Réaliser un site multilingue
  2. Internationaliser les squelettes

Environnement

  • Un site sous SPIP :)
  • Site multilingue déjà configuré
  • Le plugin « langue_preferee » installé

Configuration

Pour faire simple, cette extension Spip ne comporte aucune interface d’administration. Donc rien à faire de ce côté là.

Intégration

Utilisez la balise #LANGUE_PREFEREE_SECTEUR_REDIRECTION dans sommaire.html, à l’exclusion de tout autre code, pour que l’internaute soit redirigé automatiquement vers le secteur qu’il est le plus susceptible de comprendre, selon la configuration de langue de son navigateur. Si aucune langue disponible n’est compatible avec les choix configurés dans le navigateur, la langue par défaut du site est choisie. Si cette langue n’est utilisée par aucun secteur (!!!), le premier secteur trouvé est choisi.

Il est possible de filtrer le ou les secteurs pour ne pas rediriger vers un secteur non souhaité. Pour cela mettez la liste des secteurs non souhaités séparés par des virgules en paramètre de #LANGUE_PREFEREE_SECTEUR_REDIRECTION, par exemple : #LANGUE_PREFEREE_SECTEUR_REDIRECTION{"3,12"}, la balise ne pourra rediriger ni vers le secteur 3, ni vers le 12.

Il est possible de laisser l’internaute choisir sa langue préférée, différente de celle configurée dans son navigateur, en la précisant en paramètre d’appel du sommaire, avec / ?lang=fr par exemple pour le français. Ce choix est alors stocké dans un cookie pour utilisation ultérieure prioritaire sur la configuration du navigateur. La balise #LANGUE_PREFEREE_LIEN_EFFACE_COOKIE permet de proposer un lien de suppression de ce cookie. #LANGUE_PREFEREE_LIEN_EFFACE_COOKIE{mon message personnalise} permet de remplacer le message proposé par défaut.

Configurer votre navigateur

Dans Firefox, ouvrez le panneau de configuration et affichez la fenêtre des langues comme montré ci-dessous.

Interface de configuration des langues dans Firefox 3.0

Plus une langue est haute dans la liste, plus elle est prioritaire. Dans notre exemple, le français est prioritaire face à l’anglais.

Démonstration

La démonstration est des plus simple. Configurez votre navigateur comme montré ci-dessus. Puis rendez-vous sur www.menfin.net (site en panne - octobre 2015) [2]. Notez que l’adresse demandée est « / ». En fonction du paramétrage de votre navigateur, vous arriverez soit sur la rubrique française (langue par défaut), soit sur la page anglaise, si votre choix de configuration est la langue de Shakespeare. L’adresse finale dans votre navigateur n’est plus « / » mais le nom de la rubrique demandée.

Téléchargement

La dernière version de ce plugin est disponible sur spip-zone.

Usage avancé

Le plugin croise les langues de l’internaute (par ex. ja, de) et celles du site (par ex. fr, en).
Si aucune langue commune n’est trouvée, on redirige vers le secteur de langue par défaut du site.
Il est toutefois possible d’indiquer une autre valeur en définissant la constante _LANGUE_PREFERE_DEFAUT dans mes_options.php

define('_LANGUE_PREFEREE_DEFAUT', 'en');

Notes

[1Un secteur est une rubrique de 1erniveau, donc attachée à la racine de votre site.

[2Je prends l’exemple de mon propre site qui utilise ce plugin. Choix purement arbitraire, j’en conviens.

Discussion

17 discussions

  • 3

    Marche pas correctement sous mon spip 2.0.9.
    ça me renvoie toujours vers ma rub fr.

    J’utilise forcer lang au travers du couteau suisse.
    Son utilisation est-elle incompatible avec cette contrib ?

    Merci !

    • Je n’utilise pas le couteau suisse, donc je ne sais pas.

      Mais qu’est-ce que ça donne en supprimant le couteau suisse, justement ?

      BobCaTT, merci beaucoup pour cette doc de mon plugin ! Si tu m’ajoutes en auteur sur l’article, je serais alerté par les commentaires, et je pourrais y répondre plus vite, merci.

    • @Nicolas Bobcatt n’ayant visiblement pas tilté, je me suis permis de faire la modif moi même, te voila donc auteur ;)

      Et merci pour ce plug, que je découvre en même temps ;)

    Répondre à ce message

  • 1

    Une grosse question :

    Il me semble que cette methode de redirection ne sois pas conseillée pour avoir une site bien référencé non ? (ou plutôt google n’aime pas trop)

    par le .htaccess ça ne serais pas plus optimisé ?

    Répondre à ce message

  • Bizarre, ça marche pas chez moi.. serais-ce l’utilisation du forcer lang (config depuis le couteau suisse) qui pourrait être en cause ? ou l’utilisation est normalement compatible selon vos expériences ?

    ça me renvoie toujours vers ma rub 1 (fr) et pas vers mes autres rubriques (secteurs)...

    Merci de votre coup de main ! ;)

    Répondre à ce message

  • excellent plugin, moi qui découvre spip, qui ai galéré comme pas possible pour tenter de faire un site bilingue correct, en 1 plugin tout a été fait pour moi ! :)

    bravo pour cette contrib, à tous les mecs qui galèrent pour plusieurs langues : foncez.

    Répondre à ce message

  • Plugin très intéressant et il fonctionne très bien !

    Par contre, comme la majorité des sites multilingues et des sites en général, j’ai des pages sommaire. Ça serait vraiment bien, si le plugin incluait une balise pour rediriger vers la page sommaire de la langue préférée de l’utilisateur.

    Merci beaucoup !

    Répondre à ce message

  • J’ai l’impression que les adresse pour allez sur spip.net son fausse

    Répondre à ce message

  • Merci BobCaTT
    Je vais essayer cette contrib !!
    Serge

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom