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
- Réaliser un site multilingue (Documentation officielle)
Discussions par date d’activité
65 discussions
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 :
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 :
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à
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
enlcfirst
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 !
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
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
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
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é.J’ai essayé d’ajouter ’redirect’ comme le conseillait nicofrand mais ça ne change rien chez moi.
Répondre à ce message
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 dansformulaires/menu_lang.html
.En effet, la boucle :
doit être encapsulée dans une boucle utilisant le critère
{id_article}
pour fonctionner :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
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 !
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 :
par ceci :
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) :
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
hello.
est ce que ce plugin fonctionne pour spip 2.1 ?
depuis que l’ai installé, les liens des langues n’apparaissent plus !
chez moi c’est bon avec une 2.1.8
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
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |