Traduction d’un article ET de l’interface d’un clic

Cette contrib est destinée aux sites multilingues qui ont choisi de relier entre elles les traductions d’un article (chaque article a sa propre langue), dans le cadre d’une navigation une rubrique = plusieurs langues (traduites grâce aux balises multi).

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.

Discussion

Une discussion

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