SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 300 visiteurs en ce moment

Accueil > Multilinguisme > Navigation multilingue > #MENU_LANG sous forme de liens > Menu de langues sous forme de liens

Menu de langues sous forme de liens

30 novembre 2009 – par Cerdic, Jean-Baptiste Pressac, RealET, yohannp – 116 commentaires

20 votes

Par défaut, le menu de langue de SPIP s’affiche :

  • Sous la forme d’une liste déroulante ;
  • En affichant toutes les langues du site, qu’elles soient utilisées ou non (c’est à même si elles ne sont pas affectées à au moins un article ou une rubrique) ;
  • Sans redirection vers la traduction de l’article ou de la rubrique en cours de consultation.

Le menu de notre plugin affiche les langues sous forme de liens cliquables, avec une redirection vers les éventuelles traductions de l’article ou de la rubrique et seulement pour les langues réellement utilisées (affectées à au moins un article ou une rubrique).

Initialement créé par yohannp pour le squelette SoyezCreateurs [1], ce menu peut être utilisé de 2 manières :

  • #MENU_LANG : affichage du menu en mode de fonctionnalité réduite : permet de changer le cookie de langue en restant sur la même page.
  • [(#INCLURE{fond=formulaires/menu_lang,env})] :
    • changer la langue de navigation (cookie de langue)
    • aller sur la traduction de l’article ou de la rubrique en cours si elle existe,
      sinon, rester sur la même page

Le plugin a été porté sur SPIP3 par Cerdic

Installation

« Menu de langue sous forme de liens » s’installe comme tous les plugins. Il faut ensuite rajouter dans les squelettes le menu souhaité :

  • #MENU_LANG : affichage du menu en mode de fonctionnalité réduite : permet de changer le cookie de langue en restant sur la même page.
  • [(#INCLURE{fond=formulaires/menu_lang,env})] : fonctionnalité ci-dessus + redirection vers l’article traduit si il existe.

Notez que menu_lang.html doit impérativement recevoir dans ses paramètres l’identifiant de l’article ou de la rubrique courante. C’est le cas si [(#INCLURE{fond=formulaires/menu_lang,env})] est inséré directement dans article.html ou rubrique.html, puisque le critère env permet de transmettre tout le contexte de compilation du squelette en cours à celui inclus (voir http://programmer.spip.org/Transmet...).

Par contre, si vous insérez [(#INCLURE{fond=formulaires/menu_lang,env})] dans un autre squelette inclus, assurez-vous que ce squelette inclus possède bien tout le contexte de compilation.

Par exemple, si sous SPIP 3, vous dupliquez dans le répertoire "squelettes" les squelettes par défaut de SPIP (extensions/dist) et vous choisissez d’insérer [(#INCLURE{fond=formulaires/menu_lang,env})] dans /inclure/header.html, vous devrez modifier toutes les occurrences de <INCLURE{fond=inclure/header} /> pour y rajouter le paramètre env : <INCLURE{fond=inclure/header, env} />.

Vous n’avez pas besoin de forcer la langue du site, le plugin le fait automatiquement.

Vous pouvez également installer le plugin Config (CFG) pour modifier les configurations avancées du plugin ainsi que le plugin Traduction entre rubriques (Tradrub) pour déclarer des traductions de rubriques.

Choix du format de langue

Par défaut, le plugin affiche le format complet de la langue (ex. Français, English).

Si vous avez installé le plugin Config (CFG), vous pouvez choisir un format d’affichage abrégé (ex. Fr, En).

La liste des abréviations peut être consultée dans l’espace privé de votre site : « Configuration > Gestion des langues > Multilinguisme ».

Exclure des langues de l’affichage

Dès que vous commencez à déclarer des articles ou des rubriques dans une langue, celle-ci apparait dans le menu, même si les articles ne sont pas publiés.

Vous pouvez toutefois la faire disparaitre du menu en modifiant la configuration du plugin : « Configuration > CFG > Menu de langue sous forme de liens > Langues invisibles du menu ».

Redirection vers la traduction des rubriques

Pour créer un site multilingue, vous pouvez soit laisser les traductions dans les mêmes rubriques que les articles de la langue principale et saisir les traductions des titres de rubriques avec des blocs multilingues :

Rubrique « Fleurs / Flowers » (Fr)
|_ Article « Marguerite » (Fr)
|_ Article « Daisy » (En)

Le titre de la rubrique « Fleurs » sera saisi de la façon suivante : <multi>[fr]télécharger[en]download</multi>.

Soit créer dupliquer les rubriques (une par langue) :

Rubrique « Fleurs » (Fr)
|_ Article « Marguerite » (Fr)

Rubrique « Flowers » (En)
|_ Article « Daisy » (En)

Par défaut, SPIP permet de définir la langue d’une rubrique, mais pas de lier les traductions de rubriques entre elles, comme c’est le cas pour les articles. Pour ajouter cette fonctionnalité vous pouvez installer le plugin Traduction entre rubriques (Tradrub).

Quoi qu’il en soit, ces deux modes de fonctionnement sont supportés par le plugin : Dans le premier cas, si un visiteur change la langue du site sur la page d’une rubrique, le titre de la rubrique s’affichera dans la langue choisie (si elle a été saisie) dans le second cas, le visiteur sera redirigé vers la rubrique qui fait office de traduction.

Fonctionnement du plugin

Le fonctionnement est tout simple. Le menu utilise l’action converser de SPIP pour changer la langue (et le cookie avec) et si on est sur une page article et que ce même article affiché est traduit dans la langue sélectionnée, on redirige sur l’article traduit dans la langue sélectionnée.

Ressources sur le multilinguisme dans SPIP

Voir en ligne : http://plugins.spip.net/mll

P.-S.

Perspective d’avenir : si quelqu’un voit comment faire pour que #MENU_LANG connaisse le id_article du contexte, cela permettrait de ne pas avoir à changer les squelettes avec l’INCLURE

L’icône a été dessiné par une Grosse Vache.

Notes

[1Et simplifié par votre serviteur

Dernière modification de cette page le 22 septembre 2015

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 17 février à 13:31, par Christine En réponse à : Menu de langues sous forme de liens

    Bonjour,
    J’utilise ce plugin pour le site de mon labo en SPIP 3.0.20 (en développement). Il fonctionne très bien sur mon serveur local (wamp), mais pas sur le serveur CNRS où il est hébergé en préproduction (lamp).
    La langue principale du site est le français. L’autre langue est l’anglais. Les traductions sont gérées avec la balise multi dans les titres et les articles.
    Le menu de langue est inséré sous la forme [(#MENU_LANG)]dans menu.html, lui-même inclus dans l’entête.

    Quand j’affiche le code source, la balise [(#MENU_LANG)] est totalement ignorée, c’est à dire que j’ai juste les balises de mise en forme mais rien à l’intérieur.

    Sauriez-vous d’où cela peut provenir ? C’est très frustrant car je vois que ça marche très bien en local.

    Répondre à ce message

  • Le 23 septembre 2015 à 15:45, par Simon En réponse à : Menu de langues sous forme de liens

    Bonjour j’utilise le plugin Menu de langue sous forme de lien(dernière version téléchargée et réinstallée aujourd’hui 23/09/15) pour le site de mon laboratoire CNRS.
    Mais lorsque je clique sur « anglais » j’ai l’erreur suivante :

    Accès interdit!

    Vous n'avez pas le droit d'accéder au répertoire demandé. Soit il n'y a pas de document index soit le répertoire est protégé.


    Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le webmestre.
    Error 403
    lnc.univ-amu.fr
    Wed Sep 2 12:06:50 2015
    Apache

    et depuis la partie privée, onglet configuration en cliquant sur ce plugin ou via cfg j’ai :

    Accès refusé
    Seuls les webmestres du site sont autorisés à modifier ces paramètres.

    j’ai pourtant les droits admin

    Ca a déconné quand j’ai migré le site de serveur (ftp et base de données)
    l’ancien site qui marche bien : http://sites.univ-provence.fr/lnc/
    le nouveau dont l’anglais ne marche pas : http://lnc.univ-amu.fr

    les pages en anglais existent bien ex http://lnc.univ-amu.fr/spip.php?article86
    mais le plugin ne fait pas le basculement...
    le lien « english » donné par le plugin est le suivant
    http://lnc.univ-amu.fr/?action=converser&var_lang=en&redirect=http%3A%2F%2Flnc.univ-amu.fr%2F

    en attendant,J’ai désactivé le plugin sur le nouveau site, je préfère forcer le français que montrer un 403.
    Si quelqu’un a une idée.
    Merci beaucoup !
    Simon

    Répondre à ce message

  • Le 30 juillet 2015 à 14:16, par julienweb En réponse à : Menu de langues sous forme de liens

    Bonjour,

    je viens de publier un article sur mon Spip pour ceux qui ont des difficultés (comme j’en ai eu) à afficher le menu de langues sur toutes les pages avec EVA-web (et pas seulement sur la page d’accueil) : http://julienweb.ddns.net/spip/spip.php?article52&lang=fr

    Ca peut toujours aider !

    Répondre à ce message

  • Le 7 mars 2015 à 01:10, par DD En réponse à : Menu de langues sous forme de liens

    Bonjour,
    Je viens de mettre à jour le plugin vers Version 1.2.3 SVN [87724] et maintenant le menu de langues s’affiche comme ceci :

    En / Fr ? (fr)

    Le ? indique un problème de charset ?

    dd

    • Le 3 mai 2015 à 17:19, par DD En réponse à : Menu de langues sous forme de liens

      Bonjour,

      Pour résoudre ce problème d’affichage En / Fr ? (fr)

      J’ai récupéré la version 1.2 et la différence se trouve ici dans menu_lang.html :

      1.2.0

      lang="#VALEUR"[(#GET{format}|=={'abrege'}|oui) title="

      1.2.3

      lang={{"#VALEUR" hreflang="#VALEUR"[(#GET{format}|}}=={'abrege'}|oui) title="

      Du coup j’ai mis la version 1.2.0 de menu_lang.html dans mon dossier squelettes/formulaires

      dd

    • Le 4 mai 2015 à 21:19, par RealET En réponse à : Menu de langues sous forme de liens

      Bonjour,

      C’était effectivement une erreur. Corrigé par la dernière version 1.2.4 dont le zip devrait être fait cette nuit.

    • Le 5 mai 2015 à 01:41, par DD En réponse à : Menu de langues sous forme de liens

      Merci !
      Parfait

    Répondre à ce message

  • Le 21 août 2012 à 19:44, par Tonio En réponse à : Menu de langues sous forme de liens

    Bonjour,

    depuis la mise à jour à SPIP3, ce plugin fonctionne toujours parfaitement sur l’adresse principale de mon site mais si j’utilise un alias de cette adresse, le fait de cliquer sur le menu renvoie vers le login de l’accès privé.

    ce plugin fonctionnait parfaitement avec ces adresses/alias avant la mise à jour à SPIP 3

    une idée pour corriger ce comportement ?

    Merci d’avance,
    Tonio

    • Le 27 septembre 2012 à 08:43, par Ronald En réponse à : Menu de langues sous forme de liens

      Bonjour,

      J’ai trouvé de manière aléatoire ce même problème avec Chrome (c’était déjà arrivé avec d’autres navigateurs et ça semble fonctionner correctement après un moment), soit il m’envoyait vers le login privé, soit vers page non trouvée. Maintenant, il semble fonctionner correctement. Je ne sais pas pourquoi. Il m’échappe vraiment !

      A ce moment là, je ne saurais pas comment reproduire l’erreur et je crains qu’il y a quelque chose qui marche pas bien et dont je n’ai pas le contrôle.

      Avez vous une explication, des solutions ? Est-ce que c’est lié au fait qu’il me reconnaît comme administrateur vu que bascule constamment entre la partie publique et l’administrative ?

      Est-ce que ceci va arriver à un utilisateur quelconque dans des conditions particulières ? J’hésite vraiment à lancer cette nouvelle version de mon site à cause de ce problème dont je ne comprends plus rien.

      Merci

      Ronald

    • Le 5 octobre 2012 à 11:49, par niconito En réponse à : Menu de langues sous forme de liens

      Bonjour,
      j’ai également ce problème. Il semble arriver de manière aléatoire, mais très fréquente. Personne n’a une idée de comment le résoudre ?

    • Le 23 janvier 2013 à 12:39, par thedocmaster En réponse à : Menu de langues sous forme de liens

      Salut,
      j’ai ce soucis en SPIP3 aussi. Étonnement c’est sur un deuxième nom de domaine que ça renvoie vers l’admin. Comme le dit Tonio c’est les alias qui font bugguer la redirection. C’est ennuyeux je ne vois pas ce qu’il faut faire, j’ai pas trop envie de toucher à la fonction...help ?

    • Le 25 novembre 2014 à 14:44, par elise En réponse à : Menu de langues sous forme de liens

      Bonjour,

      Je rencontre ce problème également, quand je clique sur le « english » ou « français », ça renvoie vers la page d’admin. Une réponse a t-elle été trouvée à ce problème ?
      version de spip : 2.1.26
      version du plugin : 1.2.0

      Merci

    Répondre à ce message

  • Le 20 mars 2013 à 23:11, par cyrion En réponse à : Menu de langues sous forme de liens

    Bonsoir,

    J’ai utilisé la configuration pour modifier le format d’affichage des langues, j’ai sauvegardé et cela a du rendre aussi invisible les deux langues que j’utilisais car je ne vois plus les deux liens pour changer de langue. J’ai beau desinstaller et reinstaller le plugin j’ai le meme resultat. Que faut il faire pour retrouver les langues avec le plugin ????

    • Le 27 mai 2013 à 23:42, par Benoît Labourdette En réponse à : Menu de langues sous forme de liens

      Bonjour,
      J’ai le même souci sous SPIP3. Si j’active ce plugin, je n’ai plus de menu de sélection de langue. Bref, il ne fonctionne pas. Si je le désactive, la sélection de langue revient, avec son petit menu déroulant...

    • Le 7 novembre 2013 à 16:07, par jeanmarie En réponse à : Menu de langues sous forme de liens

      Salut,

      j’avais le même problème et, par hasard, j’ai activé le multilinguisme natif de SPIP sur les articles, j’ai changé la langue d’un article et à partir de là, le menu apparaîsait.
      Restait à remettre l’article dans sa langue originale et à désactiver le multilinguisme et le tour est joué...
      C’est très empirique et je ne sais pas dans quelle mesure c’est efficace, mais chez moi ça a marché.
      Donc, j’espère que ça vous aidera.

      Bonne journée,

      jeanmarie

    • Le 10 novembre 2013 à 20:15, par Benoît Labourdette En réponse à : Menu de langues sous forme de liens

      Merci pour l’info !

    • Le 15 janvier 2014 à 11:13, par cyrion En réponse à : Menu de langues sous forme de liens

      Merci pour l’info mais mon problème est : comment enlever les langues qui sont déclarées invisibles ? Je n’y arrive pas avec l’interface de config du plugin. Je vois english et français qui sont sélectionnées et impossible de les enlever.

    • Le 25 novembre 2014 à 13:50, par pverrier En réponse à : Menu de langues sous forme de liens

      La réponse ici.

    Répondre à ce message

  • Le 8 septembre 2014 à 22:15, par margranger En réponse à : Menu de langues sous forme de liens

    Bonjour,
    j’ai l’impression qu’il y a un bug dans le menu « langues invisibles du menu (Permet d’enlever certaines langues du menu) ». Quelqu’un a-t-il réussi à s’en servir ? Le souci, c’est que mes deux langues (anglais et français) y figurent… alors que bien évidemment j’aimerais les voir dans le menu de langues :-)

    merci de toute aide

    (ça se passe sur la page ecrire/ ?exec=configurer_mll)

    • Le 8 septembre 2014 à 22:18, par margranger En réponse à : Menu de langues sous forme de liens

      Je précise que j’ai des articles en anglais ET français, et que le multilinguisme est activé sur les articles.
      Version du plugin toute neuve, et spip également.

    • Le 22 septembre 2014 à 10:25, par Valéry En réponse à : Menu de langues sous forme de liens

      Même problème. Je n’arrive pas à retirer ces langues de cette liste (le menu n’apparaît donc pas...).

      J’ai contournée en supprimant la liste des options dans formulaires/configurer_menu_lang_liens.html du plugin pour que la liste soit vide et afficher toutes les langues.

    • Le 9 octobre 2014 à 10:46, par Abel En réponse à : Menu de langues sous forme de liens

      J’ai le même problème. Impossible d’enlever les langues de la liste.

    • Le 25 novembre 2014 à 12:56, par pverrier En réponse à : Menu de langues sous forme de liens

      Bonjour,

      En fait la sélection des langues dans “Langues invisibles du menu” se fait dans un “select multiple”, permettant donc de sélectionner plusieurs entrées ; pour enlever un élément déjà sélectionné (comme pour en sélectionner un nouveau), il faut appuyer sur Ctrl simultanément au clic.

      Si on ne sait pas qu’on peut désélectionner avec Ctrl, on reste toujours avec une langue sélectionnée, donc retirée du MLL, et s’il ne reste qu’une langue possible (site bilingue), le menu disparaît (inutile d’afficher un menu de sélection avec un seul choix).

      Beaucoup d’utilisateurs se sont fait piéger par ce système peu ergonomique qu’il serait bien de remplacer par des cases à cocher...

      Voir aussi l’encadré à la fin de http://www.harmoweb.cnrs.fr/spip.php?article203

    Répondre à ce message

  • Le 3 juillet 2014 à 20:28, par Idaho En réponse à : Menu de langues sous forme de liens

    Bonjour,

    Le plugin marche parfaitement sur mon Spip3, sauf pour les articles, enfin, à moitié :

    Le site est en Français et si, en page article en passe le site en Anglais, ça marche, l’article est passé en EN avec le reste.
    Par contre repasser en FR ne marche pas... le site passe bien en Fr mais pas l’article.

    Je passe par un [(#INCLURE{fond=formulaires/menu_lang,env})]

    inséré dans le header.html
    avec un appel dans les pages par <INCLURE{fond=inclure/header, env} ></INCLURE>

    Alors je vois dans le formulaire/menu_lang.html :

    <BOUCLE_article(ARTICLES){id_article}>
    #SET{ListeTraductions, #ARRAY{}}
    <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}{lang !IN #CONFIG{menu_lang_liens/langues_invisibles,#ARRAY}}>
            #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}}
    </BOUCLE_TraductionArticleCourant>
    </BOUCLE_article>

    Mais je ne vois pas ce qu’il faudrait (ou pas) changer... (cf. post + bas sur cette même question avec une version précédente du plugin).

    Un coup de main s’il vous plaît ?...
    Merci

    Répondre à ce message

  • Le 5 mai 2014 à 20:16, par Thomas En réponse à : Menu de langues sous forme de liens

    Bonjour,

    Je suis sur un spip 3.0.13 avec le plugin activé. La langue de référence est le français avec des traductions en anglais. Le multilinguisme se gère au niveau des articles et des rubriques (balise multi).
    L’inclure [(#INCLURE{fond=formulaires/menu_lang,env})] est inséré dans une div du header qui lui-même est appelé dans les pages par un <INCLURE{fond=inclure/header, env} ></INCLURE>.
    Mais, lorsque l’on clique sur EN pour changer de langue, on obtient une page blanche... où il n’y a rien...
    (http://mon_site/spip/?lang=en)

    J’ai beau chercher la source du problème dans mes surcharges... je ne vois pas...ne vois pas...
    Je croise les doigts pour que quelqu’un ait une idée.... ?
    Merci !

    • Le 5 mai 2014 à 20:20, par Thomas En réponse à : Menu de langues sous forme de liens

      Euh.. bien évidemment il faut lire :
      <INCLURE{fond=inclure/header,env}{home=oui} ></INCLURE>

    • Le 5 mai 2014 à 20:27, par Thomas En réponse à : Menu de langues sous forme de liens

      Mais c’est infernal !
      La prévisualisation me montre la bonne balise autofermante : INCLUREfond=inclure/header,envhome=oui

    • Le 8 mai 2014 à 16:10, par Thomas En réponse à : Menu de langues sous forme de liens

      Bonjour,
      Une petite actualisation de ma demande d’aide.. car je ne vois toujours pas comment résoudre le problème.
      Une idée de ce qui n’irait pas ?
      Merci
      T

    • Le 8 mai 2014 à 17:57, par yohannp En réponse à : Menu de langues sous forme de liens

      pas d’url publique pour voir ça ?

    • Le 8 mai 2014 à 18:58, par Thomas En réponse à : Menu de langues sous forme de liens

      Hélas non... Désolé..
      Juste un spip 3.0.13, avec quelques plugins (accès restreint, couteau suisse, bonux, facteur, form contact avancé, nivoslider, corbeille, video(s), variantes articles, fusion de sites spip et donc aussi : menu de langues avec liens)
      Dans mes surcharges j’ai mis le fond=formulaire/menu_lang, env comme indiqué dans le header et le header est inclut dans les pages par un inclure + env...

      Tout s’affiche impec sur les pages de langue par défaut (fçais) mais au clic sur un changement de langue EN, par ex. depuis la page sommaire (accueil), paf, la page blanche... rien.

      Au cas où, je fais le tour des langues des contenus, des traductions, vérifier la langue de référence sélectionnées des articles.. on ne sait jamais...
      Mais sinon je coince..

      Une idée ?
      Merci.

    Répondre à ce message

  • Le 5 mai 2014 à 20:18, par Thomas En réponse à : Menu de langues sous forme de liens

    Bonjour,

    Je suis sur un spip 3.0.13 avec le plugin activé. La langue de référence est le français avec des traductions en anglais. Le multilinguisme se gère au niveau des articles et des rubriques (balise multi).
    L’inclure [(#INCLURE{fond=formulaires/menu_lang,env})] est inséré dans une div du header qui lui-même est appelé dans les pages par un <INCLURE{fond=inclure/header, env} ></INCLURE>.
    Mais, lorsque l’on clique sur EN pour changer de langue, on obtient une page blanche... où il n’y a rien...
    (http://mon_site/spip/?lang=en)

    J’ai beau chercher la source du problème dans mes surcharges... je ne vois pas...ne vois pas...
    Je croise les doigts pour que quelqu’un ait une idée.... ?
    Merci !

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 19 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Zone d’entête Nom du site Slogan si plugin bandeau présent (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre – commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 58 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 65 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • GIS 4

    11 août 2012 – 1288 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

Ça spipe par là