Sur un site SPIP 4 multilingue, j’utilise le plugin Menus mais je n’arrive pas à avoir un menu par langue.
La problématique est complexe car, avec un secteur par langue, pour chaque article du secteur « Français » ont a un article de traduction dans le secteur « English ».
Mon menu ne pointe que vers des pages et pour chaque page on a 2 articles : l’original en français et l’article de traduction.
Il faudrait sans doute compléter les formulaires de configuration du plugin Menus pour qu’il y ait la possibilité d’ajouter un numéro d’article pour la traduction.
Des champs extra peut-être ?
J’ai tenté les bloc multi, mais ça ne fonctionne pas.
Il y a sans doute plusieurs solutions, celle que j’utilise sur un site multilingue avec un secteur français et un English est de dupliquer le menu avec un en français et l’autre en anglais.
J’ai donc un menu pied_en et un menu pied_fr
Et dans mon squelette j’appelle le menu ainsi : #INCLURE{fond=inclure/menu, env, identifiant=pied_(#ENV{lang})}
Le menu correspondant s’affiche en fonction du contexte de langue.
Si les menus ne changent pas souvent c’est une solution viable.
Une alternative un peu dans la même idée que celle proposée par @Jack31 : depuis la v1.7 il est possible d’associer des menus aux contenus.
Dans la config, activer les menus sur les rubriques, puis créer un menu par secteur de langue, et les associer à ces derniers.
Ensuite dans les squelettes, il suffit de récupérer le menu associé au secteur courant.
De tête, quelque chose comme ça (vérifier qu’il y ait bien id_secteur dans l’env, sinon adapter) :
avec comme identifiant du menu en anglais « barre_en », j’ai tenté, sans succès: <div class="NavHoriz">#INCLURE{fond=inclure/menu, env, identifiant=barre_(#ENV{lang})}</div>
Pour la solution avec le suffixe en, tu as bien l’environnement de langue passée dans l’url ? ?lang=en
En ce qui concerne la solution proposée par Tcharlss il faut d’abord que tu ailles dans la configuration du plugin menus ecrire/?exec=configurer_menus tu sélectionnes rubrique dans « Choisissez les contenus auxquels on peut associer des menus », tu enregistres et ensuite tu as la possibilité d’associer un des menus que tu as créés en allant dans la rubrique.
Je ne connaissais pas mais ça a l’air assez élégant comme solution
Finalement, #INCLURE{fond=inclure/menu, env, identifiant=barre_(#ENV{lang})} fonctionne avec mes menus barre_fr et barre_en, mais c’est le plugin Menu de langues sous forme de liens - SPIP-Contrib qui empêche une bonne part des éléments des squelettes de basculer entre les langues et même avec les squelettes_dist.
une fois ce plugin désactivé, on retrouve le comportement multilingue normal.
il faudrait investiguer ce qui ne va pas dans ce plugin qui est fort utile ne temp normal.
j’ai laissé un commentaire sur sa page sur contrib.spip.net