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

6 discussions

  • 1

    Bonjour,
    dans l’article, il est indiqué {origine_traductionl} au leiu de {origine_traduction}
    Merci pour ce plugin !

    Répondre à ce message

  • Bonjour,
    je veut obtenir une traduction(du anglais à français) correcte à des phrases trés liés à son contexte .merci

    Répondre à ce message

  • 1

    Dans mes_options.php (qui sera enregistré dans le dossier /config) :
    //Gestion des langues
    $forcer_lang=true ;

    Normalement ça règle ce genre de problèmes. A savoir que je ne l’ai pas testé sous Spip 2.0...

    Le graphisme du site http://evasalmon.free.fr est absolument génial :)

    • j’ai trouvé comment faire pour que les rubriques soit traduites et qu’elles ne lâchent pas le critère lang quand on navigue, super ! merci le forum Spip !
      mais est-ce que vous avez une solution pour qu’on puisse recharger l’article lors de la demande de traduction (MENU_LANG) et faire afficher l’article traduit correspondant à la demande ?
      cela éviterait qu’on ait deux manip à faire,
      audedo

    Répondre à ce message

  • bonjour,
    j’ai un soucis avec cette gestion multilingue, sur le site en question j’ai souhaité afficher tous les articles en anglais si on choisit l’anglais et également ceux écrit en français lorsque ceux-ci ne sont pas traduit. Jusque là tout fonctionne, je clique sur l’article et les rubrique sont bien traduites (gestion avec la balise multi)
    Mon problème se trouve au clique sur les rubriques : lorsque je suis en anglais et que je clique sur une rubrique je retrouve la langue d’origine c’est à dire le francais.
    J’ai tout essayé avec lang_select=non ou ! land-select dans les boucles RUBRIQUES et rien n’y fait,
    j’ai essayé avec cette contrib dans les articles et çà ne fonctionne pas non plus,
    merci pour votre aide je suis vraiment perdue !!
    voir sur http://evasalmon.free.fr

    audedo

    Répondre à ce message

  • Merci bcp pour cette contrib, ca marche tres bien !!!!

    Répondre à ce message

  • Bonsoir,
    Cette contrib marche très bien lorsque je place la boucle dans le squelette article.html, c’est très pratique merci.

    J’aurais bien voulu placer ces liens de traduction dans l’entête de la page qui est appelée par <INCLURE{fond=inc-entete}{lang=#ENV{lang}}{id_rubrique}{id_article}>

    mais cela ne fonctionne pas : les liens n’apparaissent pas.
    dd

    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 :

  • 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