Menu de langues sous forme de liens

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

Présentation

Initialement créé par yohannp pour le squelette Squelette SoyezCréateurs Rebirth [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 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 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 ».

Quelles langues afficher ?

Par défaut, le menu affiche les langues réellement utilisées dans les articles (via le formulaire de choix de la langue).

Si la variable _MLL_LANGUES_MULTILINGUE (V1.3.0) vaut true, le menu est construit à partir de toutes les langues à disposition des rédacteurs (menu Configuration > Multilinguisme), qu’elles soient utilisées ou non.

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]Fleurs[en]Flowers</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

Notes

[1Et simplifié par votre serviteur

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.

Discussion

65 discussions

  • 2

    Bonjour

    A priori le plugin ne fonctionne pas sur SPIP 4.2.3
    #MENU_LANG ne génère pas de menu, pas plus que avec la syntaxe d’inclusion.
    Pour vérifier j’ai désactivé le plugin et le menu de langue « vanilla » est réapparu.
    Si quelqu’un a une idée de ce que je pourrai recoller ?
    Merci

    • Bonjour,

      Chez moi cela fonctionne avec Menu de langues avec liens 2.0.12

      Je l’ai inséré avec
      [<div c l a s s ="menu_lang">(#INCLURE{fond=formulaires/menu_lang,env})</div>]

      dd

    • Merci pour l’info, je viens de tester et c’est ma syntaxe d’inclusion qui n’était pas bonne car pas d’environnement.
      Tout marche c’est bien cool

    Répondre à ce message

  • 7

    Bonjour,
    en regardant sur « Google search console », je remarque que le robot qui indexe fait un peu ce qu’il veut quand ça ne lui plait pas.
    Des meta desc farfelues, parce que celles indiquées sont un peu trop courtes.
    Mai bref, de plus, plutôt que de prendre les URL canoniques déclarées du type

    nomdusite/-Portugues-do-Brasil-

    il référence à la place

    nomdusite/-Francais-?lang=fr&action=converser&var_lang=pt_br&redirect=nomdusite/-Portugues-do-Brasil-

    et retire l’URL canonique du référencement, ce qui est moins élégant et peut-être moins efficace.
    A priori, Google reprend les liens qu’il trouve dans « Menu de langues sous forme de liens ». Du coup sur des sites multilingues, il y a pas mal de pages indexées ainsi.
    Y a-t-il quelque chose à faire pour éviter cela ?


    PS : Est-il possible de mettre la version 2.10 en téléchargement si elle est fonctionnelle ? Elle corrige un bug d’URL dans les redirections
    Merci et bonne journée !.

    • Pour les url indexée qui ne devraient pas l’être, est-ce qu’un paramètre dans le lien (de type rel=« noindex » ou autre à trouver) résoudrait la question ?

      PS : et fondamentalement, un peu marre de travailler pour Google ;-)

    • J’entends bien le ras-le-bol de se plier pour Google ;) Malheureusement quand on se décarcasse à faire du contenu original, on a un peu l’impression que ce gros Mastodonte décide de notre visibilité... C’est assez flippant...
      Le rel=« alternate » utilisé actuellement me semble pertinent et pour cela, le changer en rel=« noindex » m’embêtait. J’ai un peu peur que cela joue en défaveur du référencement.
      Du coup, je suppose que l’on ne peut pas avoir les liens qui pointent sur les URL canoniques directement.
      J’aurai au moins remonté ce truc, même si la réponse n’est pas évidente.
      En tout cas, je te rassure, plus que de travailler pour Google, ce que tu fais est grandement apprécié par la communauté ! (Même si on ne le dit jamais assez ;) )

    • Bon, je documente mon échec de la journée, au moins tout ne sera pas perdu ;)
      Je me suis dis, tant pis, je vais faire sans le plugin (réinventer la roue, c’est toujours une bonne idée...).
      Du coup, après quelques tests, j’ai recréé les liens de langue avec un code récupéré ici : Traductions de rubriques autrement

      <BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
      <B_traductions>
      <p class="traductions">
              <:trad_rubrique_traduction:>
              <BOUCLE_traductions(RUBRIQUES) {traduction} {par lang}>[(#TOTAL_BOUCLE|>{1}|?{' '})
              <span lang="#LANG" xml:lang="#LANG" dir="#LANG_DIR"[ class="(#EXPOSE)"]>&#91;[(#EXPOSE{'',<a href="#URL_RUBRIQUE" rel="alternate" hreflang="#LANG"[ title="(#TITRE|attribut_html|couper{80})"]>})][(#LANG|traduire_nom_langue)]#EXPOSE{'',</a>}&#93;</span>
              ]</BOUCLE_traductions>
      </p>
      </B_traductions>
      </BOUCLE_rubrique>

      Ça marche nickel et je mets cela sur mes rubriques seulement.
      C’est après avoir crié victoire (certes beaucoup trop tôt), qu’en naviguant avec le menu spip (Plugin Menus), si les liens vont bien dans des contenus avec la langue souhaitée, l’interface qui utilise des chaines de langue n’est pas dans la même langue que le contenu.
      J’avais bien activé « force lang » (Plugin couteau suisse), mais non.
      J’avais aussi « trad » (Choisir la traduction en fonction du contexte) dans les menus, mais walou...
      J’ai alors tenté de mettre en paramètre (du menu de plugin Menus) « lang=#ENVlang » en y croyant, mais cela renvoie nom_du_lien ?lang=#ENVlang et non pas nom_du_lien ?lang=en
      C’est là que j’ai enfin compris que « action=conserver » devait avoir une utilité qui m’échappait.
      Bref, j’ai réinventé la roue, mais elle est carrée... ;)

    • J’ai tenté des trucs comme
      [(#MENU_LANG|inserer_attribut{rel, noindex})]
      pour l’ajout de l’attribut noindex. Ça n’est pas le bon moyen a priori ;)
      J’ai changé cela directement dans le fichier mll/formulaires/menu_lang.html en ajoutant noindex dans rel="alternate noindex"
      Quelqu’un sait s’il y a plus propre pour faire ça ? (sans avoir à le refaire pour chaque mise à jour du plugin.
      Bonne journée !

    • Oups, correctif, c’est
      rel="alternate nofollow" qu’il faut mettre et non pas noindex

    • Et avec

      rel="alternate nofollow"

      les versions dans les autres langues sont indexées avec la bonne URL ?

    • Pour l’instant, je ne vois pas de souci.

    Répondre à ce message

  • 11

    Bonjour,
    la version 2.0.6 pointe sur 2.0.7 en zip, mais c’est un détail (https://files.spip.org/spip-zone/spip-contrib-extensions/menu_langues_liens-70a36-v2.0.7.zip)

    J’ai un petit bug en 2.0.6 (à moins que cela soit une fonctionnalité , ;) )

    En 2.0.5, quand je suis sur l’accueil :
    https://projets.graineahumus.org/-Francais-
    si je clique sur Anglais, je vais sur
    https://projets.graineahumus.org/-English-?lang=en
    ce qui est ce que je souhaite.

    En 2.0.6, quand je suis sur l’accueil :
    https://projets.graineahumus.org/-Francais-
    si je clique sur Anglais, je vais sur
    https://projets.graineahumus.org/-Francais-?lang=en
    En cliquant sur un lien accueil, je retourne bien sur
    https://projets.graineahumus.org/-English-?lang=en

    Du coup, ça pointe sur un changement de langue, mais pas sur la rubrique traduite.

    Bonne journée et encore merci pour ce plugin !

    Répondre à ce message

  • 5

    Bonjour,
    Sur ma page, j’ai mis :

    <div class="menu_lang">#MENU_LANG</div>

    dans le code source, j’ai :

    <div class="menu_lang"><//BOUCLE_chercher_secteur_langue>		
    <//BOUCLE_chercher_secteur_langue>
    
    <div id="menu_lang">
    <a href="-francais-?action=converser&amp;var_lang=en&amp;redirect=https%3A%2F%2Fwww.graineahumus.org%2F-english-" rel="alternate" lang="en" class="langue_en">English</a> 
    |  <strong class="langue_fr" title="Fran&#231;ais">Fran&#231;ais</strong> 
    </div></div>

    Le validateur W3C n’est pas content avec les
    <//BOUCLE_chercher_secteur_langue>
    dans le code.

    Je me demandais, si leurs présences étaient normales (dues à l’écriture des boucles de spip) ou si cela était une coquille.

    • Bonjour,

      Ça n’est pas //BOUCLE mais //B qu’il faut écrire.

      Cf : https://www.spip.net/fr_article898.html#Syntaxe-complete

    • Ah, mais je vois que c’est dans le plugin !?!

      La v2.0.3 corrige le problème.

    • Merci pour ta réactivité !

    • J’ai trouvé : remplace ton appel de

      #MENU_LANG

      par :

      <INCLURE{fond=formulaires/menu_lang,env} />

      Tada !

      PS : en plus, c’était indiqué très clairement dans la doc : Menu de langues sous forme de liens

    • Oui, désolé, le fait que ça marche avant, mais pas à partir de la V 2.0.6 m’a perturbé et je n’ai pas relu la doc en m’attendant à avoir un fonctionnement similaire.

      D’ailleurs je ne comprends pas en lisant la doc pourquoi

      #MENU_LANG

      ne renvoyait pas sur les mêmes pages en changeant de langues avant la V 2.0.6, mais envoyait vers les traductions. Sans doute un bug du passé...

      En tout cas, voici une note pour les étourdies comme moi qui ne comprendront pas d’où vient ce changement ;)

      Merci encore pour ton temps et ton implication.

    Répondre à ce message

  • Oups, je pense que j’ai mis trop de liens et que mon message est passé en spam.
    Je recommence ;)

    Point pas très important, mais le lien de la version 2.0.6 pointe sur 2.0.7 en zip (mais c’est bien la 2.0.6)

    Sinon, en V 2.0.5, quand je clique sur Anglais en page d’accueil en Français, cela va sur :
    nom_site/-English ?lang=en
    Ce qui est souhaité je pense.

    En V 2.0.6, quand je clique sur Anglais en page d’accueil en Français, cela va sur :
    nom_site/-Français ?lang=en

    Soit en 2.0.6, cela pointe sur un changement de langue, mais pas sur la traduction de la rubrique.

    Merci encore !
    Ben

    Répondre à ce message

  • 3

    Bonjour,
    Remontée d’un glitch.

    Sur la page de login, sans l’activation du plugin « Menu de langues sous forme de liens », on a le choix de la langue en menu déroulant en haut à droite (Pour illustration : https://www.graineahumus.org/message/sans_mll.png).

    Une fois le plugin « Menu de langues sous forme de liens » activé, cela disparait et on a les langues utilisées pour le site qui chevauchent la partie login (Pour illustration : https://www.graineahumus.org/message/avec_mll.png).

    Bonne journée,
    Ben

    • Bonjour,

      La v2.0.5 devrait te donner satisfactions.

    • Merci de ta réactivité !

    • Salut,
      je viens de passer de la 2.0.3 à 2.0.5 et j’ai eu un page vide en accueil, mais dès que l’on vide le cache, ça passe nickel.
      Merci !

    Répondre à ce message

  • 8

    Salut et tout d’abord merci !
    J’ai installé ce plugin qui répond nickel à mes attentes.
    Je pense avoir repéré cependant un petit bug.
    Lorsque l’on est connecté et que l’on change de langue, en utilisant le menu (avec le plugin menu et barrenav) je me retrouve avec la bonne redirection, mais pas la bonne langue avec ?lang=en sur des pages et articles en français. Ayant certaines parties du site (titre, sous titre et divers) avec des chaînes de langues, ça fait un meli-mélo de deux langues. Après ça ne le fait pas à chaque fois et je ne trouve pas l’élément déclencheur.
    Je n’ai plus ce souci en désactivant ce plugin et il semble également que je ne l’ai plus en me déconnectant (j’avais désactivé le cache pour les tests). De plus, j’ai l’impression que cela n’arrive que si on active les URLS propres.
    Si ça parle à quelqu’un ;)

    • Idem pour le lien vers d’autres mots clés (fichier mot.html et groupe.html).
      À priori donc pas lié avec le menu et tout rentre dans l’ordre en se déconnectant.

    • Est-ce que dans la configuration du multilinguisme, tu as activé (et utilisé) le lien entre traductions pour les articles ?

    • Oui et aussi pour les rubriques.

    • Je ne parle pas de :
      [ ] Articles : activer le menu de langue
      Mais de :
      [ ] Articles : gérer les liens de traduction

    • Oui, j’ai bien les deux sont activés.

    • Et les articles où tu restes sur la page en français sont bien traduits dans la langue de destination (avec un lien de traduction) ?

    • Oui et cela fonctionne parfois d’ailleurs.

    • Merci RealET, je n’ai plus eu le souci depuis un certain temps.
      Un problème de cache du navigateur peut être ?
      En tout cas, tout va bien à présent.

    Répondre à ce message

  • 2

    Bonjour,

    Que manque-t-il pour la compatibilité spip 4 ?

    Merci d’avance,

    Cordialement,

    Hervé

    • Probablement juste une mise à jour de paquet.xml

      Tu as testé ?

    • Bonjour,

      J’ai vu que le plugin était passé en comptabilité Spip 4.0.

      Je l’ai donc testé, mais, une fois activé, même avec les squelettes_dist, il fiche en l’air le basculement entre les langues d’une bonne par des éléments des squelettes :
      le descriptif, le fil d’ariane, l’en-tête de page, le pied de page, l’aside, restent en français quand on bascule entre la version originale d’un article et sa traduction.

      Dès qu’on le désactive, on retrouve le fonctionnement multilingue normal.

      Une idée ?

      Merci d’avance,

      Cordialement,

      Hervé

    Répondre à ce message

  • julien Schwartz

    Bonjour et merci pour ce plugin,

    J’ai un site multilingue en français et japonais avec liens de traductions et balises multi pour les rubriques.
    Pour ce qui est de charger les bonnes informations et les bonnes versions de textes tout fonctionne parfaitement.
    C’est d’ailleurs pourquoi je ne me suis aperçu que récemment que sur certaines pages en japonais (suffixées par le plugin lang=ja) ce n’était pas la version japonaise du css qui se chargeait, mais la version française. Après analyse du code de la page je me suis rendu compte que l’attribut de langue de la balise <html> restait le français.
    Cela se produit uniquement sur les pages rubriques et non sur les pages articles ni sur la page sommaire.
    D’un sens cela paraît logique puisque les articles traduits ont une langue définie alors que les rubriques sont dans la langue principale du site, le français.

    D’où ma question, est-ce que le cookie de langue prend le pas sur la langue déclarée d’une rubrique, auquel cas si cela ne fonctionne pas chez moi c’est que j’ai du commettre une erreur ou louper une étape ?
    Je précise que j’ai également installé le plugin Autolang et que je force la langue via un fichier config/mes_options.php

    Si par contre cela est le fonctionnement normal du plugin, quelles sont les pistes d’optimisation pour que la langue des rubriques soit bien celle choisie par l’internaute ?

    Une solution non satisfaisante consisterait à utiliser le plugin de traduction de rubriques pour créer une rubrique traduite en japonais à chaque fois. Ce n’est pas satisfaisant car cela complique inutilement l’arborescence du site et rend plus complexe la maintenance.

    Une autre tout aussi peu satisfaisante à mon avis, mais moins visible par les rédacteurs et les internautes, consiste à ajouter dans les squelettes de rubrique un paramètre lang à chaque balise de texte pour contourner la langue d’environnement. Ce serait fastidieux, mais entre les deux méthodes, c’est ma préférée.

    Quelqu’un a-t-il d’autres idées ?

    Merci à tous,

    Répondre à ce message

  • Bonjour,
    J’utilise Menus avec liens avec des urls arbo.
    Tout se passe très bien quand la navigation est interne au navigateur.
    Mais si je clique depuis un lien extérieur (ou bien si je colle l’url arbo dans la barre du navigateur)
    Il y a redirection vers la langue définie par le formulaire mll (ou à défaut vers l’article (autre url arbo) dans la langue du browser).
    Mais pour une url arbo, la langue est déjà dans l’url.
    Et si un internaute choisit de cliquer ce lien en lisant dans une langue donnée la description, il s’attend à rester sur la même langue.

    Pour le Google bot : par la console search on s’aperçoit qu’il ne voit que le français
    quelque soit l’arbo url (qui est redirigée systématiquement en version fr, peut-être parce qu’il n’a pas de langue par défaut) et tout le contenu est considéré comme dupliqué (déclassement).

    Si je désinstalle le plugin mll, il n’y a plus cet inconvénient, une url arbo mène bien à sa langue.
    , mais alors je perds tous les grands avantages du plugin.
    Y a-t-il un moyen de rester sur la langue d’une url arbo ?
    Je ne comprends pas où se passe la redirection par mll au load par une url de Spip .
    J’aimerais pouvoir éviter cette redirection si l’url arbo vient de l’extérieur.
    Merci pour tout éclaircissement.

    Répondre à ce message

  • Je ne sais pas si on peut véritablement parler de bug mais, ce plugin provoque des effets de bords gênants :
    La situation :
    -  un site multilingue une langue par secteur + français langue principale du site
    -  une page unique à qui on attribue langue « de »
    -  si on attribue des évènements à cette page et qu’on souhaite les afficher, les balises [(#DATE|affdate)] ou [(#DATE|nom_mois)] etc... ne sont pas traduites : elles restent en français. La faute à forcer_lang mis à true dans le fichier d’options du plugin. (La parade est de rajouter &lang=qqchose dans l’url ou.... de désactiver le plugin)

    => Bug ou feature ?

    Répondre à ce message

  • 2

    Bonjour

    J’utilise souvent ce menu mais je m’aperçois aujourd’hui sous spip 3.2.4 que l’action « converser » ajoute systématiquement «  ?lang=malangue » à l’url quand je l’utilise avec url arbo, «  », et 1 url par langue pour un même article ou rubrique. Ce n’est pas le cas avec le menu langue natif de SPIP. Est ce que quelqu’un sait comment avoir le même comportement d’url (sans parametre) que le menu langue natif ?
    Merci d’avance

    Répondre à ce message

  • 2

    J’ai le plugin dernière version sur un SPIP 3.2.4 et mon menu langue n’apparaît plus.
    Je n’ai que des <multi> dans mes articles et donc aucun secteur ou article avec une autre langue définie (français par défaut).
    l’inclure est
    [(#INCLURE{fond=formulaires/menu_lang,env})]

    Merci

    • Autre précision : dans body.html
      j’ai
      <INCLURE{fond=navigation/#ENV{type},env}{lang?}>
      (mon menu lang est dans navigation/dist.html)

    • OK donc d’après mes tests dans le cas d’un site qui utilise uniquement les <multi> et pas les secteurs, rubriques, ou articles avec des langues déclarées autre que la langue par défaut du site le menu langue ne s’affiche pas sur les pages publiques ; il suffit de déclarer n’importe quelle rubrique dans une autre langue pour que le menu de langue s’affiche sur toutes les pages du site public et cela n’engendre pas de perturbation puisque l’affichage du contenu est géré par les <multi> des champs texte.

    Répondre à ce message

  • 2
    François HAMONNO

    Je relance mon appel au secours !!!

    La balise « #MENU_LANG » placée au début du texte d’un article n’est pas interprétée par spip et s’affiche donc telle quelle !
    Que manque-t-il pour qu’elle affiche le menu des langues utilisées ? Dois-je les mettre en paramètres ? Comment ?

    Merci pour une réponse.

    • Ah mais #MENU_LANG est prévu pour être intégré dans un squelette (ce qui gère l’apparence du site), pas dans un article (ce qui gère le contenu.

      A mon avis, le mieux serait que tu l’intègre dans ton squelettes, pour que cela soit visible sur tous les articles. Je peux t’aider pour cela, mais j’ai besoin d’information sur tes compétences en informatique et sur le squelettes que tu utilise.

      Pour l’avenir, je te suggère de demander de l’aide sur les listes d’utilisateur de SPIP.

    • Fhamonno

      Merci pour votre réponse. J’avais raté la localisation de la balise !

    Répondre à ce message

  • François HAMONNO

    Bonjour
    je travaille sur un site multilingue (fr et oc) utilisant la balise « multi » dans le texte des rubriques et articles.
    Pour choisir la langue affichée, j’utilise la balise #MENU_LANG ... mais celle-ci s’affiche « #MENU_LANG » !!!
    Le texte affiché est dans la langue du site : fr ou oc suivant le cas.
    Une piste pour que le menu s’affiche ?
    Merci pour votre aide
    Cordialement
    fgh

    Répondre à ce message

  • 3

    Bonjour,

    SPIP 3.2, plugins à jour, dont MLL.
    Sur une arborescence :
    -  Rubrique01[fr]
    — Articles [fr]
    -  Rubrique02[fr]
    — Articles [fr]
    -  Rubrique03[en]
    — Articles [en]
    -  Rubrique04[de]
    — Articles [de]

    donc, plusieurs secteurs qui possèdent la même langue, aucun article ou rubrique n’utilise le mécanisme de liaison / traduction.

    La balise #MENU_LANG génère bien le menu avec les 3 langues fr|en|de, mais le choix d’une langue via le menu redirige vers un des secteurs (toujours le même pour chaque langue).

    Même quand on est sur la page sommaire, on est redirigé vers un des secteurs.

    Vis-à-vis de mon besoin, sachant que je n’utilise par de liaison / traduction, je pensais revenir systématique sur la page sommaire, par défaut.

    Soit je loupe quelque chose, soit il faut que je shunte le mécanisme qui essaie de trouver la bonne redirection ?!

    Merci pour vos lumières,
    françois

    • Avec cette structure de données, tu ne rentre dans aucune des pratiques courantes du multilinguisme de SPIP qui sont :

      • un secteur par langue, avec héritage de la langue du secteur pour les articles
      • l’usage des multi avec les articles ayant leur langue définie

      Toi, tu as plusieurs secteurs par langue.
      Il va donc falloir que tu fork le squelette du plugin pour avoir le comportement que tu souhaites.

    • OK merci, c’est bien ce qu’il me semblait.

      Mais cela me pose question :
      -  un visiteur accède à la page sommaire (dans le sens SPIP), il voit la page sommaire de la langue par défaut.
      -  s’il clique sur une autre langue, il est redirigé vers le secteur correspondant à cette langue et ne voit donc pas la page sommaire multilingue :-(
      -  s’il arrive sur le site par une autre page que la page sommaire, il ne verra jamais cette page sommaire qui est, couramment, une page important ;-)

      Quid de cette page sommaire avec MLL ?

    • Très honnêtement, je n’ai testé ce plugin qu’en multilinguisme avec la méthode des liens de traduction.

      D’autre part la doc indique 2 méthodes d’insertion, dont une seule permet de rester sur la même page à condition qu’il y ait un env « correct ». Laquelle utilises-tu ?

      Et que dit var_mode=debug sur la page sommaire

    Répondre à ce message

  • Margery

    Bonjour, votre article m’interesse beaucoup. Merci pour la publication.

    Répondre à ce message

  • Bonjour,

    J’ai un site en anglais avec des articles qui peuvent être traduits. Je voudrais supprimer le « changer la langue de navigation (cookie de langue) » pour que ce soit toujours le menu en anglais qui s’affiche même quand on change la langue de l’article.
    Dans le formulaire menu_lang.html je pense qu’il faut modifier l’URL

     [<a href="[(#SELF|parametre_url{action,converser}|parametre_url{var_lang,#VALEUR}
    |parametre_url{redirect,#GET{ListeTraductions}|table_valeur{#VALEUR}
    |ancre_url{content}|sinon{#SELF}|url_absolue})]" rel="alternate" lang="#VALEUR"[(#GET{format}|=={'abrege'}|oui) title="[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]"] class="langue_#VALEUR">(#GET{nom_langue}|ucfirst)</a>]  

    mais je trouve pas..

    Merci
    dd

    Répondre à ce message

  • Comme suite à mon message...
    N’arrivant pas à supprimer le non-affichage [fr]-[en] dans la config, j’ai créé une rubrique en espagnol avec article en es, annoncé le tout dans le multilinguisme...

    J’avais donc trois langues dispo à faire éventuellement à ne pas faire apparaitre dans la partie publique...

    Quand on déclare une rubrique en espagnol et qu’on désactive son affichage dans la config de mll, l’affichage du sélecteur de langue [fr] / [en] apparait dans la partie publique...

     ???

    Répondre à ce message

  • Bonjour,
    Je ne sais pas ce que j’ai fait mais sur un site ou le sélecteur de langue et le menu de langue fonctionnaient, lors d’une mise à jour des plugins le menu de langue a disparu...
    De plus dans sa configuration, il n’est pas possible de supprimer l’affichage d’une langue (ce n’est pas le but recherché).

    Je me demande si ça ne viendrait pas du fait qu’avant le plugin s’installait dans /auto/Menu_lague_lien et que maintenant c’est dans /auto/mll et que ceci ne serait pas pris en compte quelque part.
    Mon site : http://www.larca.univ-paris-diderot.fr
    Une idée ?
    Bonne journée,
    Yves

    Répondre à ce message

  • 1

    Bonjour,

    J’utilise avec bonheur ce plugin depuis deux ans sur un site en SPIP 3.0.20 en combinaison avec le plugin « traduction par rubriques ». J’ai voulu passer ce site en SPIP 3.1.4 et il ne fonctionne plus. Lorsque je clique sur le lien vers la langue, l’url qui est chargée ne contient plus l’url de l’article traduit mais l’url de l’article en cours avec le paramètre lang=en (ou fr selon le choix) ce qui a pour résultat d’afficher l’article français avec tous les éléments fixes du site en anglais (menus, etc...). Sur la page d’accueil, ça fonctionne parfaitement.

    J’ai essayé de comprendre le fichier /formulaires/menu_lang.html mais je maîtrise mal les tableaux et je n’arrive pas à trouver ce qui cloche.

    Le site en 3.0.20 est ici : www.tradetnet.fr
    Le site en 3.1.4 est ici : http://sitest.tradetnet.fr

    Merci d’avance pour votre aide salutaire.

    • Bonjour,

      Je viens de tester les 2 sites en allant dans Traduction (l’article en lien à gauche).
      Et chez moi ça marche™

      PS : par contre, je suis très surpris que tu utilises les fausses url propres...

    Répondre à ce message

  • 4

    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

    • 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

    • Bonjour,

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

    • Merci !
      Parfait

    • Bonjour,
      dans menu_lang.html, ne devrait-on pas avoir « hreflang=... » plutôt que « lang= » ?
      les liens hreflang semblent nécessaires pour le référencement.
      Ou bien, faut-il dupliquer lang et hreflang ?
      Merci

    Répondre à ce message

  • Christine

    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

  • 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

  • julienweb

    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

  • 4

    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

    • 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

    • 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 ?

    • 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 ?

    • 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

  • 5

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

    • Benoît Labourdette

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

    • 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

    • Benoît Labourdette

      Merci pour l’info !

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

    Répondre à ce message

  • 4

    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)

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

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

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

    • 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

  • 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

  • 5
    Thomas

    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 !

    • Thomas

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

    • Thomas

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

    • Thomas

      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

    • pas d’url publique pour voir ça ?

    • Thomas

      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

  • Thomas

    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

  • 1

    Bonjour,

    J’ai encore un petit problème.
    Mon site est configuré pour avoir le français comme langue principale.
    Quand j’active le plugin et que je tape l’adresse du site, il s’affiche automatiquement avec ?langue=en
    si je tape l’adresse du site avec spip.php ?page=sommaire, idem, il m’ajoute &langue=en
    si je désactive le plugin, plus de problème, la page d’accueil principale redevient en français.
    Je n’arrive pas à voir d’où vient cet ajout intempestif dans la ligne d’adresse.

    Quelqu’un pourrait m’éclairer ?

    Merci d’avance

    • Je rencontre le même problème... Avez-vous pu résoudre cette question ? Cela m’intéresserait vivement !

    Répondre à ce message

  • 6

    Bonjour à tous.

    J’ai vu que beaucoup d’entre nous cherchent un moyen d’afficher le menu langue sous forme de drapeaux. Est-il possible de rajouter une option sur ce plugin pour qu’on puisse choisir entre abrégé, nom de la langue en entier et drapeau ?

    En tout cas, il fonctionne très bien avec spip 3, bravo !

    • Bonjour,

      j’ai pu sans problème utiliser le plugin.
      Pour mettre des drapeaux, j’ai mis une image de fond représentant les drapeaux dans l’ordre d’apparition sur le site. Mais je n’arrive pas à cacher le nom des langues qui apparaît dessus, ce qui est franchement laid...
      J’ai essayé « color : none » dans les feuilles de style, mais ça ne marche pas

      Quelqu’un a une idée ?

    • Bonjour Monique,

      vous avez surement ajouté des « background-image » aux classes de chaque langue

      la solution la moins propre serait un « font-size:0 ; » et d’ajouter du « padding » pour rendre visible les images.
      mais je crois que pour l’accessibilité du site, ce ne serait pas top.
      l’alternative serait d’augmenter la hauteur du « padding » pour avoir le texte en dessous de l’image.

      L’idéal, je pense, serait de copier la page en question du plugin dans son dossier squelettes
      en faisant attention aux mises a jour du plugin) et d’ajouter des

      mais cela reste un avis comme un autre...

    • Bonjour Philippe,

      Merci pour votre suggestion ! J’avais en effet essayé cette solution, qui était un peu embêtante pour les liens. En fait j’ai trouvé une propriété CSS que je ne connaissais pas, qui est : opacity.
      J’ai mis la couleur en blanc et l’opacity en 0.1, et on ne voit plus que les drapeaux.

    • Il y a bien plus simple.

      Pour avoir des jolie drapeaux à la place du texte allez dans le fichier :
      formulaire/menu_lang.html du plugin.

      Et modifiez l’HTML aux les ligne 59 et 65.
      (#GET{nom_langue}|ucfirst) génère l’abréviation de la langue.
      Suffit donc de remplacer le contenu du lien, etla balise <strong> par quelquechose du genre :

      [<img src="[(#CHEMIN{IMG/lang_[(#GET{nom_langue}|ucfirst)].gif})]" alt="(#GET{nom_langue}|ucfirst)">]

      Dans votre dossier squelettes/IMG placé les petits drapeaux et nommé les lang_fr.gif, lang_en.gif etc etc...

      Et voilà, facile non :-)

    • Super, merci !

    • Bon en revanche avec SPIP 3 j’ai un problème. Le plugin marche très bien en local sur MAMP ; mais une fois en ligne je ne sais pas pourquoi les liens redirige vers l’espace privée.

      j’ai donc remplacer le plugin par ceci :

      <BOUCLE_langue_possibles(POUR){tableau #GET{langues}}>
      		[(#ENV{lang}|=={#VALEUR}|non)<a href="[(#URL_ACTION_AUTEUR{'converser',#VALEUR&var_lang=#VALEUR,[(#SELF|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]">[(#VALEUR|traduire_nom_langue)]</a>]
          </BOUCLE_langue_possibles>

      mais si quelqun comprend ce qu’il se passe ce serait chouette de corriger le plugin.

    Répondre à ce message

  • Bonjour,

    si on veut mettre ce plugin avec Sarka-Spip (3.1.3 chez moi) (qui fonctionne avec des « noisettes » pour son squelette) , où faut-il mettre ces fameux codes : #MENU_LANG ou [(#INCLUREfond=formulaires/menu_lang,env)] ?
    A priori j’ai installé votre plugin , il n’y a déjà pas d’incompatibilité (mais il ne se passe rien).
    Merci d’avance. Wiliam

    Répondre à ce message

  • Est il possible d’avoir des urls propres avec le ce plugin ? je m’explique quand on est sur le lien de changement de langue on voit spip ?action=converser........ or google référence cette url ! comment évitez cela ?

    Répondre à ce message

  • Sous spip3, j’ai beau mettre mll_styles.css dans mons dossier squelettes/css, il n’en tiens pas compte.

    Répondre à ce message

  • Bonjour et merci de votre travail,

    Je cherche sans succès à résoudre le comportement étrange pour les langues d’un site en construction. Comportement que j’ai remarqué depuis l’install du plugin « Menu de langues sous forme de liens » ...
    Ce site dont la langue principale est le français, contient des articles traduits et publiés en anglais ainsi qu’une (pour l’instant) rubrique bilingue via balises <multi>.

    Pour la balise j’ai essayé les deux méthodes :

    #MENU_LANG
    et [(#INCLURE{fond=formulaires/menu_lang,env})]

    Après purge du cache et recalcul de la page article que je teste :
    -  le site est en Anglais, le menu de langues est en effet sur ’En’ (donc par défaut),
    -  la rubrique bilingue a disparue du menu comme du chemin (l’article en cours est dans la même branche)
    -  l’article est affiché dans sa langue de base, en français. (mais son lien de traduction reste opérationnel).

    Quand on passe le site en Français (menu langue) :
    -  Le site se met bien en français,
    -  la rubrique bilingue a réapparue dans le menu comme dans le chemin mais en anglais...
    -  l’article reste affiché dans sa version anglaise.

    Depuis, j’ai désactivé le plugin et restauré la balise par défaut qui insère le menu-langues de base de spip mais le site n’a pas retrouvé un comportement normal... !..
    Du coup, quitte avoir un problème a régler, autant le faire avec un menu de langues en liens, j’ai réactivé le plugin.

    -  > Spip 2.1.12, plugins : KitCNRS, CFG, Couteau Suisse, Spip Bonux... etc.

    -  > Kit CNRS place la balise d’appel du menu langues de Spip dans un div au sein du fichier
    ’entete.html’ : je n’ai rien changé.

    -  > Réglages multilinguisme :
    langue du site = français,
    menu sur articles : oui
    menu sur rubriques : non
    gérer liens de traduction : oui
    Langues à disposition : Anglais et Français.

    -  > au niveau du couteau suisse, rien de spécial, le Forcer langues n’est pas activé.

    Auriez-vous une idée de ce qui se passe pour m’aider à me sortir de là ? Merci.

    Répondre à ce message

  • tounse

    bonjour
    Bonjour

    j’ai 4 articles en fr avec 4 traduction GB
    le plugin est activé
    je suis en spip 3.0

    je rajoute comme dit cette ligne [(#INCLUREfond=formulaires/menu_lang,env)]

    et rien ne se passe

    qu’ai je oublié ?

    merci

    Répondre à ce message

  • 3

    Bonjour,

    Je rencontre moi aussi un problème sur SPIP 3, en insérant #MENU_LANG dans mon squelette, rien ne s’affiche après avoir activé le plugin. Et quand je désactive, le menu normal de spip s’affiche correctement. J’ai bien recontrôler tout les paramètre ci-dessous et rien ne s’affiche. J’utilise pas de traduction d’article mais les balises <multi>[fr]...[en]...</mutli>. Avec bien les 2 langues cochées dans les langues du site.

    Une idée ? Merci,

    Julien.

    • Il faut qu’il existe au moins un article publié dans la langue choisie pour qu’elle apparaisse dans le menu. Ce qui pose évidemment un problème dans ce cas où les traductions sont saisies dans le même article.
      Jean-Baptiste

    • Julien

      Pardon de revenir la dessus si tard, mais cela ne fonctionne toujours pas. J’ai pourtant bien créer au minimum 1 seul article (publié) pour chaques langues (EN, DE, FR) mais rien. Aucun menu ne s’affiche.

    • Julien

      J’ai rien dit. Avec la mise à jours du 13.05 plus de problème. Merci !

    Répondre à ce message

  • 5
    Rorschach

    Bonjour,

    Je suis sous SPIP 3 et le plugin ne fonctionne pas du tout. tout d’abord il m’affiche une partie du code juste avant le menu

    {ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}} {ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}} 

    Ensuite quand je veux passer d’une langue à une autre j’ai un « converser : Accès interdit »

    #0  install_fin_html() called at [C:\wamp\www\spip3\extensions\dev\inc\minipres.php:96]
    #1  minipres() called at [C:\wamp\www\spip3\ecrire\inc\securiser_action.php:31]
    #2  inc_securiser_action_dist() called at [C:\wamp\www\spip3\ecrire\action\converser.php:26]
    #3  action_converser_dist() called at [C:\wamp\www\spip3\ecrire\public\aiguiller.php:51]
    #4  traiter_appels_actions() called at [C:\wamp\www\spip3\ecrire\public.php:85]
    #5  include(C:\wamp\www\spip3\ecrire\public.php) called at [C:\wamp\www\spip3\spip.php:24]
    
    • J’ai eu, mais une fois les caches vidé c’est ok
      J’ai bien le changement de langue de l’interface via des liens, par contre je suis renvoyé sur la page login systématiquement.
      Sur un spip3betadeux

    • Rorschach

      J’ai toujours le même bug avec le cache vide.

      Du coup je n’utilise pas de plugin. Dans mon squelette j’ai :

      Sur tous mes templates

      [(#LANG|=={fr}?{<p lang="en" id="lang">Language in <a href="[(#URL_ACTION{'converser'}|parametre_url{var_lang,'en'}|parametre_url{redirect,#SELF})]">English</a></p>})]
      [(#LANG|=={en}?{<p lang="fr" id="lang">Langue en <a href="[(#URL_ACTION{'converser'}|parametre_url{var_lang,'fr'}|parametre_url{redirect,#SELF})]">Français</a></p>})]

      Et dans mon template article.html je remplasse par :

      <BOUCLE_menulangue(ARTICLES){id_article}>
      	[(#REM) un menu langue plat qui redirige vers la traduction de l'article si elle existe ... sinon sur l'article en cours mais en ayant changé de langue pour l'interface]
          [(#REM) on boucle sur les langues disponibles dans le public grâce à spip-bonux]
            [(#SET{langues,[(#CONFIG{langues_multilingue}|explode{','}|serialize)]})]
              <BOUCLE_langue_possibles(POUR){tableau #GET{langues}}>
                [(#REM) on récupère la traduction "potentielle" de l'article en cours]
                <BOUCLE_article_traduit(ARTICLES){traduction}{lang=#VALEUR}>
                  [(#ENV{lang}|=={#VALEUR}|non)<p lang="#VALEUR" id="lang">[(#ENV{lang}|=={en}|?{'Langue en','Language in'})] <a href="[(#URL_ACTION_AUTEUR{'converser',#VALEUR&var_lang=#VALEUR,[(#URL_ARTICLE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]">[(#VALEUR|traduire_nom_langue)]</a></p>]
               </BOUCLE_article_traduit>
               [(#REM) Si pas de traduction, on change bien la langue mais le lien reste sur la même page]
                 [(#ENV{lang}|=={#VALEUR}|non)<p lang="#VALEUR" id="lang">[(#ENV{lang}|=={en}|?{'Langue en','Language in'})] <a href="[(#URL_ACTION_AUTEUR{'converser',#VALEUR&var_lang=#VALEUR,[(#URL_ARTICLE|parametre_url{lang,'','&'})]}|parametre_url{arg,''})]">[(#VALEUR|traduire_nom_langue)]</a></p>]
              <//B_article_traduit>
           </BOUCLE_langue_possibles>
      </BOUCLE_menulangue>

      Code par Kent1

    • Bonjour,
      C’est noté, je vais regarder.
      Jean-Baptiste

    • Bonjour,
      Cédric à résolu le problème dans la version 1.1.1 du plugin postée hier. Merci Cédric !
      Cordialement,

    • Bonjour,
      juste une remarque qui m’occupe depuis pas mal de temps. J’ai appliqué le code précédent et dans mon cas la page bascule bien entre les deux versions (fr et en) de mes articles. Mais pour les articles ou je n’ai que la version francaise l’interface bascule bien en anglais mais je n’ai pas la version française de l’article. En clair, l’alternative de la boucle _article_traduit ne semble pas fonctionner.
      Qu’est-ce que j’ai raté ?

      .oOlivier

    Répondre à ce message

  • 9

    hello,

    Y a t il un moyen pour personnaliser l’affichage ? C-a-d, afficher le mot entier « Français » ou « Deutsch » plutot que « FR » ou « DE ».

    Merci pour votre réponse

    • Actuellement, non, mais ce pourrait devenir un paramètre de Configuration.

    • Avec une précision : la langue en clair s’affiche déjà en bulle d’aide.

    • J’ai modifié le formulaire en ajoutant « |traduire_nom_langue » aux boucles

      exemple :
      [<strong class="langue_#LANG" title="[(#LANG|traduire_nom_langue|ucfirst|attribut_html)]">(#LANG|traduire_nom_langue|ucfirst)</strong>]

      et cela fonctionne !

      dd

    • Bonjour —

      Tout d’abord merci pour ce plugin !

      Je viens de l’installer et j’ai la même question que filnug — comment faire pour que le choix de langues soit en mot complet au lieu qu’en abréviation ?

      J’ai regardé dans /Menu_langue_lien/plugins/formulaires/configurer_menu_lang_liens.html et j’ai trouvé le code que je pense être celui qui contrôle cette option :

      	<ul>
      		<li class="editer_mll_langues_supprimer[ (#ENV**{erreurs}|table_valeur{licence_defaut}|oui)erreur]">
      			<label for="format"><:mll:label_format:></label>
                  <div class="choix">
      			<input type="radio" name="format" id="abrege" value="abrege" [(#ENV{format,abrege}|=={'abrege'}|?{' ',''})checked]/> 
                  <label for="abrege"><:mll:label_format_abrege:></label>
                 	</div>
                  <div class="choix">
      			<input type="radio" name="format" id="complet" value="complet" [(#ENV{format,abrege}|=={'complet'}|?{' ',''})checked]/> 
                  <label for="complet"><:mll:label_format_complet:></label>
                 	</div>            
      		</li>
      	</ul>
      	<ul>
      		<li class="editer_mll_langues_supprimer[ (#ENV**{erreurs}|table_valeur{licence_defaut}|oui)erreur]">
      			<label for="formatliste"><:mll:label_format_liste:></label>
                  <div class="choix">
      			<input type="radio" name="formatliste" id="bloc" value="bloc" [(#ENV{formatliste,bloc}|=={'bloc'}|?{' ',''})checked]/> 
                  <label for="bloc"><:mll:label_format_liste_bloc:></label>
                 	</div>            
                  <div class="choix">
      			<input type="radio" name="formatliste" id="liste" value="liste" [(#ENV{formatliste,bloc}|=={'liste'}|?{' ',''})checked]/> 
                  <label for="liste"><:mll:label_format_liste_liste:></label>
                 	</div>
      		</li>
      	</ul>

      mais je ne sais pas comment le manipuler. Y’aurait-il quelqu’un qui saurait m’aider à faire ce changement ?

      J’utilise SPIP2.1.10. Je ne suis pas un codeur donc je nage toujours un peu perdue dans le PHP...

      Merci d’avance !!

    • J’ai aussi trouvé le code suivant dans la page /Menu_langue_lien/plugins/formulaires/menu_lang.html :

      	<BOUCLE_ListeLangues(POUR){tableau #GET{langues_a_afficher}}>
          	[(#CONFIG{menu_lang_liens/formatliste,bloc}|=={'liste'}|oui)<li [(#COMPTEUR_BOUCLE|=={1}|oui)class="first"] [(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)class="last"]>]
      		[(#REM)
      		Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
      		- fixer le cookie de langue sur la langue demandee
      		- rediriger sur l'article dans la langue demandee si opportun
      		  sinon, revenir sur la page en cours
      		]
              [(#CONFIG{menu_lang_liens/format,abrege}|=={'complet'}|oui)[(#SET{nom_langue,[(#VALEUR|traduire_nom_langue)]})]]   
              [(#CONFIG{menu_lang_liens/format,abrege}|=={'abrege'}|oui)[(#SET{nom_langue,[(#VALEUR)]})]]
      		[(#VALEUR|=={#ENV{lang}}|non)
      			[<a href="[(#URL_ACTION_AUTEUR{'converser', '', #GET{ListeTraductions}|table_valeur{#VALEUR}|sinon{#SELF}}|parametre_url{var_lang,#VALEUR})]" rel="alternate" lang="#VALEUR"[(#CONFIG{menu_lang_liens/format,abrege}|=={'abrege'}|oui) title="[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]"] class="langue_#VALEUR">(#GET{nom_langue}|ucfirst)</a>]
      		]
      		[(#REM)
      		Si la langue est celle en cours, afficher celle-ci en gras, sans lien
      		]
      		[(#VALEUR|=={#ENV{lang}}|oui)
      			[<strong class="langue_#VALEUR" lang="#VALEUR" title="[(#VALEUR|traduire_nom_langue|ucfirst|attribut_html)]">(#GET{nom_langue}|ucfirst)</strong>]
      		]
              [(#CONFIG{menu_lang_liens/formatliste,bloc}|=={'liste'}|oui)</li>]
      	</BOUCLE_ListeLangues>

      Peut-être que c’est ici où il faut faire le changement ?

      En réponse à DD, je ne sais pas où tu fais ce code, donc je ne sais pas utiliser ta solution... et comme j’écris un ans plus tard, je me demandais si cette solution était toujours valable...

      Merci encore !

    • Ok, messages multiples de ma part et je m’excuse, mais j’ai l’impression que je ne suis pas loin donc j’ai du mal à arrêter la recherche...

      Toujours dans le document /Menu_langue_lien/plugins/formulaires/menu_lang.html, j’ai ajouté |traduire_nom_langue au #VALEUR ce qui change la ligne 54 de

              [(#CONFIG{menu_lang_liens/format,abrege}|=={'abrege'}|oui)[(#SET{nom_langue,[(#VALEUR)]})]]

      à

              [(#CONFIG{menu_lang_liens/format,abrege}|=={'abrege'}|oui)[(#SET{nom_langue,[(#VALEUR|traduire_nom_langue)]})]]

      Du coup, j’ai le nom de la langue complet — j’avoue que je ne sais pas pourquoi, mais ça semble fonctionner. Après, je voudrais que la première lettre soit en minuscule, et non pas en majuscule mais quand je change le filtre ucfirst en lcfirst j’ai des erreurs pour usage d’un filtre non-définie. Quand j’enlève le filtre entièrement, rien ne se passe et la première lettre reste en majuscule.

      Merci de nouveau pour votre aide !

    • Bonjour —

      Du nouveau — j’ai réussi à transformer la première lettre en minuscule en utilisant du CSS ! Ouais !

      text-transform: lowercase;
    • Bonjour,
      Ah non, ce n’est pas si compliqué. La configuration du plugin est possible une fois CFG installé (l’installation de CFG n’est plus nécessaire avec SPIP 3). Il suffit ensuite d’aller dans le menu « Configuration > CFG » dans l’espace privé pour accéder à la page de configuration du plugin.
      Jean-Baptiste

    • Bonjour et merci pour ta réponse —

      Quand j’ai installé ce plugin j’ai regardé le plugin CFG aussi, mais je ne l’ai pas installé car sur la page qui lui est dédiée, c’était conseillé de ne pas l’installer si on utilisait SPIP 2.1 + SPIP Bonux, ce qui est mon cas.

      Par la suite, j’avais regardé dans Bonux mais ne trouvant pas un moyen de le faire, j’ai fait comme susmentionné...

    Répondre à ce message

  • Point sur l’évolution du plugin au mardi 15 novembre 2011

    Kent1 a modifié le plugin en mai 2011 (version 1.0.2), pour corriger le problème de redirection vers les traductions de l’article. Il a également rajouté un formulaire de configuration permettant si CFG est installé de choisir les langues ne devant pas apparaitre dans le menu de langue (par défaut, seules les langues affectées à au moins un article ou rubrique sont affichées dans le menu de langue).

    Yffic a rajouté une compatibilité du plugin avec la version 2.1 de SPIP.

    Je viens de rajouter la redirection vers les éventuelles traductions des rubriques, saisies avec le plugin Tradrub de Matthieu Marcillaud. Ainsi que la dépendance du plugin « Menu de langues sous forme de liens » avec SPIP Bonux et Tradrub.

    Ces versions en cours de développement ne sont pas téléchargeables à cette date sous forme d’archive ZIP, mais peuvent être récupérées par SVN sur la Zone.

    Répondre à ce message

  • Bonjour,
    je suis à la recherche d’un moyen d’afficher un menu de langue plat pour un de mes sites, qui est en version 2.1.8, et j’aurais une petite question :
    Ce plugin fonctionne-t’il correctement avec cette version ?
    Ou, il est préférable de ne pas l’installer sur une version en 2.1.x ?
    Merci d’avance pour vos réponses ^^.

    Répondre à ce message

  • 3

    Hello,

    Peut être un bug ! J’ai installé le plugin et j’ai su l’activer sans que CFG soit installé...

    J’ai constaté un comportement bizarre, j’ai donc voulu voir dans CFG si je pouvais éjecter des langues et c’est seulement à ce moment là que j’ai constaté l’oubli de CFG.

    J’ai donc installé CFG après coup, je vois bien maintenant l’interface de config pour éjecter les langues mais celle-ci est désespérément vide... désactivation, résintall du plugin, de CFG, ... rien n’y fait.

    De plus j’ai eu un message furtif dans le BO comme quoi une requête MySQL n’a pas trouvé ... désolé je ne le sais plus :-(

    A mon avis il doit rester une trace dans la table SPIP metas, mais comme il n’y a pas de désinstall propre de ce plugin je coince un peu...

    P.S. J’ai bien un article dans une autre langue, ma langue est bien activée, et j’ai bien installé le couteau suisse pour forcer la lang=true

    Une idée ?

    • Le formulaire de configuration contient une boucle « POUR ».

      Il faut donc aussi Bonux pour que ça marche. tu as Bonux ?

    • Hello,

      Je l’ai installé mais pas de modif notable ?

    • Bon j’ai effacé à l’arrache le dossier plugin, j’ai eu un message d’erreur dans l’interface privée forcément.
      J’ai vidé les caches et réinstall le plugin cela a l’air de tenir maintenant...

      Ne serait-il pas intéressant dès lors d’y ajouter les dépendances ;-)

    Répondre à ce message

  • 1

    Bonjour et merci pour ce plugin excellent !

    Je l’avais utilisé sur un précédent site sous SPIP 2.1.2 mais n’arrive pas à le faire fonctionner sur un nouveau site spip 2.1.10.

    Le plugin est installé, le fichier mes_options paramétré et la balise #MENU_LANG insérée mais rien n’apparaît alors que lorsque que je désinstalle le plugin le menu spip par défaut apparaît bien.

    Est-ce que vous sauriez d’ou peut venir le problème ?

    Merci beaucoup !

    • Je me réponds pour les autres : le menu ne s’affiche que lorsqu’il existe sur le site un article créé comme traduction d’un autre.

      J’utilisais uniquement les blocs multilingues sur le site et ça ne fonctionnait pas....

    Répondre à ce message

  • 1

    Bonjour et merci pour ce plugin.

    J’aurai voulu y apporter une petite modification : J’aimerai que le lien, si l’article n’a pas de traduction, pointe, non pas sur la « page courante + cookie de langue », mais plutôt sur la « page d’accueil + cookie de langue », mais je n’y arrive pas.

    Savez-vous comment changer ça dans formulaires/menu_lang.html ?

    Encore merci !

    • Petites précisions :
      Si je remplace #SELF par #URL_SITE_SPIP j’ai une redirection vers l’espace privé.

      [<a href="[(#URL_ACTION_AUTEUR{'converser', '', #GET{ListeTraductions}|table_valeur{#LANG}|sinon{#SELF}}|parametre_url{var_lang,#LANG})]" rel="alternate" lang="#LANG" title="[(#LANG|traduire_nom_langue|ucfirst|attribut_html)]" class="langue_#LANG">(#LANG{langues}|ucfirst)</a>]

      J’ai essayé d’ajouter ’redirect’ comme le conseillait nicofrand mais ça ne change rien chez moi.

    Répondre à ce message

  • 5

    Bonsoir,
    J’utilise la version 1.0 du plugin (téléchargée le 1er Janvier 2011) et j’ai remarqué que [(#INCLURE{fond=formulaires/menu_lang,env})] ne pouvait faire une redirection vers la traduction de l’article dans la langue choisie car il manque une boucle intermédiaire dans formulaires/menu_lang.html.

    En effet, la boucle :

    <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}>
    #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}}
    </BOUCLE_TraductionArticleCourant>

    doit être encapsulée dans une boucle utilisant le critère {id_article} pour fonctionner :

    <BOUCLE_ArticleCourant(ARTICLES){id_article}>
    <BOUCLE_TraductionArticleCourant(ARTICLES){traduction}>
    #SET_MERGE{ListeTraductions,#GET{ListeTraductions},#ARRAY{#LANG,#URL_ARTICLE}}
    </BOUCLE_TraductionArticleCourant>
    </BOUCLE_ArticleCourant>

    Merci pour ce plugin fort utile.

    Cordialement,

    • Pourtant, sur Yayin c’est bien ce menu, avec cet méthode d’appel qui est utilisé, et la navigation vers les traductions marche sans problème.

    • Pour moi aussi la solution de jean-baptiste a résolu le problème des articles.

      d’ailleurs sur le site http://www.yayin.fr/ en allant sur un article et en changeant de langue, je n’ai pas le contenu de l’article traduit, seulement le contexte.

      dd

    • Hello,
      Pour revenir au problème signalé plus haut, ce serait tout de même bizarre que la boucle TraductionArticleCourant puisse fonctionner sans qu’un id_article ne lui soit transmis, non ? Je suis le seul a avoir constaté le problème avec DD ?

    • D’ailleurs l’utilisation d’une boucle intermédiaire pour utiliser {traduction} semble nécessaire si l’on se réfère à cette page de programmer.spip.org.

    • Pour moi aussi la solution de Jean Baptiste à résolu mon problème.

      Merci

    Répondre à ce message

  • 3

    Bonjour,
    Quelqu’un a trouvé une solution pour le problème de renvoi vers l’espace privé ?
    Ce plugin n’est pas compatible avec la 2.1 ?

    Merci !

    • nicofrand

      J’utilise spip 2.1.2 et ai adapté le plugin de cette façon pour ne plus avoir de redirection vers l’espace privé :

      dans le dossier du plugin, dossier formulaires, éditez menu_lang.html et remplacez ceci :

      [<a href="[(#URL_ACTION_AUTEUR{'converser', '',

      par ceci :

      [<a href="[(#URL_ACTION_AUTEUR{'converser', 'redirect',

      Voilà, en espérant que ça fonctionnera également pour vous !

    • Je vais essayer, merci pour votre réponse !

    • hello,
      j’ai codé directement mon menu dans un squelette (ce plugin n’existait pas à l’époque) :

      href="[(#URL_ACTION{'converser'}|parametre_url{var_lang,#LANG}|parametre_url{redirect,#URL_SITE_SPIP/})]"

      et j’ai ce problème de redirection vers l’espace privé depuis la mise à jour de SPIP de 2.1.1 vers 2.1.8
      Déjà, il semble que URL_ACTION n’existe plus. C’est fort dommage parce que URL_ACTION_AUTEUR produit un hash=XXXXX abominable pour le référencement.

    Répondre à ce message

  • 1

    hello.

    est ce que ce plugin fonctionne pour spip 2.1 ?

    depuis que l’ai installé, les liens des langues n’apparaissent plus !

    Répondre à ce message

  • Re-bonjour,

    Comment puis-je faire pour gérer l’ordre ?
    J’ai maintenant trois langue, et je souhaiterais afficher fr puis en puis es.

    Pour l’instant je n’ai trouvé que de gérer ça par ordre alphabétique ou anti alphabétique.

    Merci d’avance,

    Répondre à ce message

  • 4

    Bonjour,

    Je viens d’installer votre plugin, je souhaiterais savoir comment je peux donner un id (css) à chacun des liens afin de pouvoir mettre une image plutot qu’un simple texte ?

    cordialement,

    • Genre mettre un drapeau national pour signifier une langue qui elle est internationale ?

      Genre pour choquer les suisses, les belges et les canadiens en leur disant que la langue française est le drapeau de la France ?

       ?

      Ceci dit, il y a peut-être un autre type d’image à mettre... Tu pensais à quoi en fait ?

    • Je pensais en effet à choquer Les suisse et les canadien :D

      Mais j’ai réussit. En bidouillant à fond mais j’ai réussit.

      Bastoune.fr/IdH

    • Et comment as tu fais ? Tu pourrais partager... car tu n’es pas le seul à vouloir choquer les suisses.. ils s’en remettront je suis moi même suisse ^^...
      Graphiquement le petit drapeaux attire plus vite l’oeil

    • Voici ce que j’ai modifier dans la page « menu_lang.html »

      	<BOUCLE_ListeLangues(ARTICLES){par lang}{fusion lang}>
      		[(#REM)
      		Si la langue n'est pas celle en cours, on fait un lien qui fait 2 actions :
      		- fixer le cookie de langue sur la langue demandée
      		- rediriger sur l'article dans la langue demandée si opportun
      		  sinon, revenir sur la page en cours
      		]
      		[(#LANG|=={#ENV{lang}}|non)
      			[<a href="[(#URL_ACTION_AUTEUR{'converser', '', #GET{ListeTraductions}|table_valeur{#LANG}|sinon{#SELF}}|parametre_url{var_lang,#LANG})]" rel="alternate" title="[(#LANG|traduire_nom_langue|ucfirst|attribut_html)]"><div id="#LANG"></div><div id="hidden">(#LANG{langues}|ucfirst)</div></a>]
      		]
      		[(#REM)
      		Si la langue est celle en cours, afficher celle-ci en gras, sans lien
      		]
      		[(#LANG|=={#ENV{lang}}|oui)
      			[<div id="#LANG"></div><div id="hidden">(#LANG{langues}|ucfirst)</div>]
      		]
      	</BOUCLE_ListeLangues>

      Pour faire fonctionner correctement la boucle on doit laisser (#LANGlangues), je l’ai donc foutu dans une div hidden pour qu’on ne voit pas En Fr, puis j’ai foutu à coté une div avec les drapeau en background et l’id de ces div, c’est soit fr soit en (dans mon cas). Voila le css qui va avec.

      #en{float:right;background:  url(img/en.png) no-repeat;width:34px;height:25px;}
      #fr{float:left;background:  url(img/fr.png) no-repeat;width:25px;height:24px;}
      #hidden{display:none;}

    Répondre à ce message

  • Renée Picard

    Avec SPIP 2.1.2 j’ai le même problème : lorsque je clique sur En j’arrive sur la page de connexion.

    Répondre à ce message

  • J’ai un site sur spip avec 2 langues. Avec le plugin, lorsque je change de langue je me retrouve automatiquement sur le formulaire de connexion admin.

    Répondre à ce message

  • 3

    Bonjour !

    J’aimerais installer le plugin de façon automatique (ds le répertoire auto), mais je ne trouve pas le plugin dans la liste !!!

    Quel est le nom de ce plugin ? Je ne trouve rien sous « menu_langue » !

    Merci

    • Le plugin n’était pas dans la liste des plugins installable de façon automatique. Je viens de corriger cela.

      Il faudra je pense attendre encore un peu (1-2h) histoire que le cache se recalcul

    • Merci Maïeul.

      Bonne journée.

    • Sans paraître impoli, le plugin n’est toujours pas disponible sur la liste pour l’installation automatique ;-)

    Répondre à ce message

  • J’ai fait un site sur spip en 2 langues tout marche super bien sauf une seule chose et cela fait quelques jours que je suis calé dessus et tous les sites spip que j’ai visité le font très bien.
    Quand je veux changer de langue je me retrouve automatiquement sur le formulaire de connexion admin.
    j’ai mis #MENU_LANG pour le changement de langue.
    je cherche désespèremment de l’aide !!!

    Répondre à ce message

  • 1

    Merci pour ce plugin.
    Il vient remplacer « menu_lang plat » qui est resté à la version de spip 1.9.X.

    Il vient également remplacer « menu langue plat pour SPIP 2.0 » qui n’a pas fonctionné pour MOI.

    Encore merci. C’est un grand apport.

    Répondre à ce message

  • Sinon est-ce qu’il y a un moyen pour modifier le code pour lorsque l’on clique sur une langue ça nous renvoie automatiquement à « l’accueil » du site traduit ?

    Mathieu

    Répondre à ce message

  • Toujours rien !

    Mathieu

    Répondre à ce message

  • 1

    Voilà le code de ma page article :

    <BOUCLE_principale(ARTICLES) {id_article}>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
    <head>
    <title>[(#NOM_SITE_SPIP|textebrut)][ - (#TITRE|textebrut|supprimer_numero)]</title>
    [<meta name="description" content="(#INTRODUCTION{150}|attribut_html)" />]
    <INCLURE{fond=inc-head}>
    </head>
    
    <body class="page_article">
    <div id="page">
    
    	[(#REM) Entete de la page + titre du site ]
    	<INCLURE{fond=inc-entete}>
    
    	[(#REM) Contenu principal : contenu de l'article ]
        <div class="hfeed" id="conteneur">
        <div class="hentry" id="contenu">
    
            <div class="cartouche">
    			[<div class="#EDIT{surtitre} surtitre">(#SURTITRE)</div>]
    			<h1 class="#EDIT{titre} titre">[(#TITRE|supprimer_numero)]</h1>
    			[<div class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</div>]
            	[<div class="#EDIT{texte} texte">(#TEXTE)</div>]
            </div>
            
    	</div><!--#contenu-->
    	</div><!--#conteneur-->
    
    
        [(#REM) Menu de navigation laterale ]
        <div id="navigation">
    
            [(#REM) Menu de navigation par rubriques ]
            <INCLURE{fond=inc-rubriques}{id_rubrique}>
    
        </div><!--#navigation-->
    
    	[(#REM) Pied de page ]
    	<INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
    
    </div><!--#page-->
    </body>
    </html>
    </BOUCLE_principale>

    Le menu lange se trouvant dans le fichier inc-rubriques.html appelé avec <INCLURE{fond=inc-rubriques}{id_rubrique}>

    Mathieu

    • Le menu langue se trouvant dans le fichier inc-rubriques.html appelé avec <INCLURE{fond=inc-rubriques}{id_rubrique}>

      Et voilà, tu as tout dit !

      <INCLURE{fond=inc-rubriques}{id_rubrique}{id_article}>

      Ou mieux car plus lisible et plus pérenne :
      <INCLURE{fond=inc-rubriques,id_rubrique,id_article}>

      Et ça devrait marcher. Tu ne passais pas id_article dans le contexte...

    Répondre à ce message

  • 1

    En lisant ta réponse hier soir chez moi j’ai bien cru que ça allait le faire mais malheureusement non !
    Mais je m’interroge sur une constatation que je viens de faire qui est lorsque je tape une url de ce type « http://localhost:8888/spip.php?article1&lang=en » directement dans la barre de navigation, ça ne me traduit également pas l’article... est-ce normal ?

    Mathieu

    • Oui, c’est tout à fait normal que ça ne traduise pas l’article.

      Ce que fait ce menu de langue quand il marche, c’est :

      • changer le cookie de langue
      • et changer d’url si l’article en cours avait une traduction dans la nouvelle langue (sinon, ça reste sur la même page).

      D’autre part, il faut dans config/mes_options.php avoir mis :
      $forcer_lang = true;

    Répondre à ce message

  • 1

    @RealET
    Je suis bien sous spip 2.0.10 !

    Mathieu

    • Je me suis mal exprimé. Est-ce que dans le squelette où tu fais appel au menu, il y a id_article dans le contexte ?

    Répondre à ce message

  • 1

    @RealET
    Merci pour ta réponse plus que rapide ! Mais j’utilise bien [(#INCLURE{fond=formulaires/menu_lang,env})]. Je ne sais pas pourquoi j’ai ce bug.

    Mathieu

    • Alors, il faut en plus que le squelette qui fait cet appel ait reçu l’identifiant de l’article en cours.

      Cet identifiant est passé au menu par le ,env (qui nécessite 2.0.10 pour fonctionner je crois bien)

    Répondre à ce message

  • 1

    Bonjour,
    j’ai installé le plugin sur un de mes sites, ça marche nickel pour les rubriques mais ça ne traduit pas l’articles sur lequel on se trouve. C’est à dire que si je change de langue quand je suis sur un article tout est traduit sauf l’article sur lequel je me trouve. Le menu est bien traduit mais pas le contenu (titre, texte...). Par contre lorsque je navigue dans le reste du site il est bien traduit et si je reviens sur l’article il est traduit.

    Merci, d’avance...

    • Comme le dit l’article, la fonctionnalité de redirection sur l’article traduit ne marche pas avec #MENU_LANG, mais seulement avec :
      [(#INCLURE{fond=formulaires/menu_lang,env})]

    Répondre à ce message

  • En l’occurrence, comme le menu fait rester sur la même page s’il n’y a pas de traduction, en quoi est-ce ballot ?

    Répondre à ce message

  • Généralement on propose ce genre de menu quand on a effectivement le site traduit à au moins 80%.

    Maintenant on peut avoir dans un site quelques articles traduits dans un langue sans pour autant proposer cette langue pour la navigation.

    Ce menu comme celui par défault de spip se base sur toutes les langues utilisées dans le site.

    C’est balot

    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