- ailleurs sur le site public : l'internaute sélectionne sa langue parmi celles disponibles sur le site public
Une fois que tu as indiqué ta langue de visiteur, tu navigues sur les
mêmes pages qu'avant, avec le même contenu. D'où cette impression que
"ça ne marche pas". Autrement dit, ce menu dans l'espace public n'a de
sens qu'avec $forcer_lang=true;
Sur la page d'un article. Mais pas sur la page d'accueil ou sur le plan du site qui ne portent pas sur des objets ayant une valeur de langue.
L'incohérence vient du fait qu'on propose dans le public un menu pensé
pour l'espace privé, et incompatible avec le modèle standard de
multilinguisme de SPIP.
C'est peut-être le modèle de multilinguisme de SPIP qui est complexe et pas toujours cohérent. Certains objets ont une variable de langue (comme les articles) et d'autres non (comme les mots-clés, les auteurs, etc.).
Dans certains cas, on peut repérer les traductions d'un objet via un lien de traduction et dans d'autres il faut utiliser des balises multi.
Il faut jongler entre langue de l'interface et langue de l'objet. Et parfois ça a du sens d'avoir une interface dans une langue autre que celle de l'objet.
Bref, il existe de fait plusieurs logiques pour organiser un site multilingue. Dans certaines de ces logiques, la balise #MENU_LANG est pertinente.
Tu évoques un modèle standard de multilinguisme dans SPIP. Lequel est-ce ?
Effectivement, il y a des incohérences dans certains squelettes dont celui de la dist. La page sommaire par exemple liste tous les articles quelque soit leur langue. L'interface est pour sa part dans la langue principale du site sauf si on la change avec #MENU_LANGUE. On a bien une page avec des objets dans différentes langues mais une interface dans une langue donnée. Par contre, quand on bouge ensuite sur un article, l'interface est dans la langue de l'article.
Le squelette devrait plutôt, me semble-t-il, adopter une des deux approches ci-dessous :
- soit la langue de l'interface est indépendante de la langue de l'objet. Cette langue d'interface est gérée au choix de l'internaute. Choisir une langue avec #MENU_LANGUE change donc la langue de l'interface.
- soit on ne distingue pas langue d'interface et langue d'objet. Il y a une version fr et une version en du site. La page d'accueil ne devrait donc lister que les articles dans la langue en cours. On garde un menu de langue sur la page d'accueil pour basculer de l'un à l'autre. Changer de langue modifie la liste des objets listés. Sur la page d'un article, on a les liens de traduction mais pas d'autre menu de langue.
Conclusion : je prône sa suppression.
C'est excessif. Par contre je suis d'accord qu'il faille modifier certains squelettes.
Bien cordialement
Joseph