Le contexte
Dans le contexte expliqué ci-dessus (une rubrique = plusieurs langues), changer la langue d’une rubrique se fait grâce au #MENU_LANG
. Si vos squelettes sont construits de cette manière :
- vous entrez sur le site par une langue (si vous êtes arrivé par un autre moyen, c’est la langue par défaut du site qui vous est proposée)
- vous naviguez dans cette langue, mais avez toujours un lien pour passer d’une langue à une autre grâce au #MENU_LANG
- Dans chaque rubrique, s’affichent les articles dans la langue de navigation, ou dans toutes les langues, selon ce que vous avez mis en place.
Si vous cliquez sur un article, celui-ci s’affiche dans sa propre langue. Mais l’interface de navigation va continuer à s’afficher selon la langue que vous aurez sélectionné pour votre navigation (c’est un cookie sur votre ordinateur qui sélectionne la langue de navigation, lorsque vous la choisissez dans #MENU_LANG
). Pour changer de langue dans cette page d’article, vous avez alors deux possibilités :
- changer la langue de l’interface de navigation (tout change sauf le contenu de l’article qui reste dans sa propre langue à lui), avec #MENU_LANG
- cliquer sur la traduction de l’article (une simple boucle traduction). Dans ce cas, l’article va changer, et s’afficher dans une autre langue, mais l’interface de navigation va rester dans la langue du cookie.
Mixer les deux clics
Cette contrib vous propose de mixer les deux clics : dans un squelette article, lorsqu’on clique sur la traduction d’un article, changer aussi la langue de navigation. La solution la plus simple est de provoquer le changement de langue dans le cookie à travers l’URL des boucles de traduction.
<BOUCLE_Traductions(ARTICLES){traduction}{exclus}{unique}>
<a href="spip.php?action=cookie&url=#URL_ARTICLE&var_lang=#LANG">
[(#LANG|traduire_nom_langue)]</a> </BOUCLE_Traductions>
Et si vous utilisez le critère {origine_traduction}
pour indiquer la version originale de chaque article :
<BOUCLE_Original(ARTICLES){traduction}{origine_traduction}{exclus}{unique}>
<a href="spip.php?action=cookie&url=#URL_ARTICLE&var_lang=#LANG">
[ (#LANG|traduire_nom_langue)]</a> (original) </BOUCLE_Original>
<BOUCLE_Traductions(ARTICLES){traduction}{exclus}{unique}>
<a href="spip.php?action=cookie&url=#URL_ARTICLE&var_lang=#LANG">
[(#LANG|traduire_nom_langue)]</a> </BOUCLE_Traductions>
Pour jouer la transparence, on peut mettre cette boucle au même endroit qu’on aura mis #MENU_LANG
dans les autres squelettes.
Aucune discussion
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 : |