SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

291 Plugins, 198 contribs sur SPIP-Zone, 85 visiteurs en ce moment

Accueil > Multilinguisme > Structures de sites multilingues > Liste multilingue d’articles

Liste multilingue d’articles

7 janvier 2006 – par dani – commentaires

1 vote

Boucles pour un site multilingue, mais sans multilinguisme structuré a priori.

Le contexte tour de Babel et langue de référence

Les boucles présentées ont été conçues pour un site multilingue, mais sans multilinguisme structuré a priori. Les traductions et articles en différentes langues peuvent être un peu partout. Plutôt tour de Babel, donc.

Néanmoins, le visiteur qui arrive peut exprimer sa langue de préférence. Spip, alors, essayera autant que possible de lui montrer le site dans la langue choisie. Outre l’utilisation des techniques habituelles intrinsèques à SPIP (blocs <multi>, <:chaines:> d’internationalisations, ...) on utilise ici la traduction d’articles pour sélectionner dans une liste d’articles autant que possible, la version dans la langue de préférence.

Mais puisqu’on est dans une tour de Babel il est fort possible que bon nombre d’articles ne soient pas dans la langue de préférence, et aussi que notre visiteur soit un peu polyglotte. Ainsi, si un article n’existe pas dans la langue du visiteur, SPIP montrera la langue de référence de l’article.

La suite de boucles ci-dessous affiche les dix derniers si possible dans la langue du contexte où elles sont appelées, tel que décrit ci-dessus. On peut voir le fonctionnement d’une boucle de ce type dans mon site http://abuelo.belvil.net/.

Le code

Il vous faudra mettre un code comme le suivant à l’endroit où vous voulez voir la liste d’articles.

Pour finir l’exemple

Essayez simplement cette boucle dans un squelettes basique de sommaire,
sans la mettre dans une autre boucle.

Techniquement, c’est mieux de configurer notre site avec la variable $forcer_lang = true; dans mes_options.php3.

Pour que le visiteur puisse exprimer sa langue de préférence, on mettra une balsie #MENU_LANG un peu n’importe où sur la page.

Dans le squelette article_une.html on mettra ce que l’on souhaite pour les élements de la liste. Par exemple :

Ainsi, quoi qu’il en soit, on construira des liens vers toutes les traductions d’un article.

Explication de l’idée de développement

Comme dans beaucoup de cas pour appliquer des critères de sélection avec des relations logiques complexes, on utilisera avantageusement les critères {doublons} et {exclus} : on fait une première série de boucles sans rien afficher, seulement pour exclure ce qu’on ne souhaite pas afficher.

On tirera profit du nouveau paramètre optionnel pour faire des {doublons} « nommés », permettant de constituer plusieurs listes de résultats à exclure ailleurs.

On va donc d’abord sélectionner les 10 les plus récents articles dans la langue préférée [1]. Disons que la langue préférée est l’espagnol. On va exclure les traductions de ces articles en d’autres langues. On constituera deux fois cette liste d’exclusions (pour l’utiliser deux fois : trad_lang_pref et trad_lang_pref2).

En utilisant une première fois l’exclusion ci-dessus, on selectionnera les 10 articles les plus récents dans d’autres langues que l’espagnol. Et on ira examiner l’existence de traductions de ces articles en espagnol pour constituer une troisième liste d’exclusions (trad_lang_autres) :
-  si l’article est traduit en espagnol on excluera toutes ses traductions,
-  si l’article n’existe pas en espagnol alors on excluera toutes ses traductions, sauf l’article de référence (seul ou origine des traductions).

On fera ensuite une sélection qui sera celle des dix articles les plus récents sauf ceux de l’union de la première exclusion (trad_lang_pref) et de cette troisième (trad_lang_autres). Cela devrait devrait nous choisir, dans l’ordre anté-chronologique, dix articles parmis l’union des 10 articles les plus récents en espagnol et les dix les plus récents dans les autres langues (qui peuvent être ou non traduits en espagnol).

Après, pour chacun de ces articles, on l’affiche en espagnol s’il est disponible, et sinon dans la langue de l’article d’origine. Et dans le squelette inclus, on fait affiche toutes les autres traductions.

Notes

[1en fait la langue du contexte. hors toute autre boucle il s’agit de la langue choisie dans l’URL ou à défaut la langue principale du site.

Dernière modification de cette page le 24 mars 2007

Retour en haut de la page

Vos commentaires

  • Le 23 février 2007 à 17:42, par Hugues En réponse à : Liste multilingue d’articles

    Je voudrais utiliser votre contrib pour réaliser un menu qui contient tous les articles de la rubrique, p.ex.

    -  first
    -  second
    -  third

    Supposons qu’il y a aussi primo et premier (traductions de first), et qu’il n’y a pas de traductions de second et third.

    Si le visiteur choisit ’primo’ comme version de l’article, je voudrais que le menu change en

    -  primo
    -  second
    -  third

    Est-ce possible ? Comment faire avec spip 1.9.1 ?

    Merci.

    • Le 7 mai 2007 à 19:29, par popojcb En réponse à : Liste multilingue d’articles

      Peut-être n’ai-je pas pas bien compris la question, mais avec la balise multi sur le titre, lorsque tu swicth de langue, cela dois fonctionner non ?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2534 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Le Couteau Suisse

    4 mai 2007 – 1863 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : le contrôle de nombreuses variables « cachées » de SPIP, des améliorations ou facilités typographiques, (...)

  • Facteur

    21 janvier 2010 – 424 commentaires

    Un plugin pour regrouper toutes les fonctions avancées autour de l’envoi de courriels. Introduction SPIP propose une fonction générique envoyer_mail() pour envoyer un courriel. Elle est assez simple d’utilisation mais peut paraître limitée (...)

  • Owl Carousel 2

    30 novembre 2017 – 43 commentaires

    Owl Carousel est un diaporama jQuery adaptable aux différentes tailles d’écran, qu’on peut actionner par glisser, il utilise CSS3 mais il est compatible avec les vieux navigateurs, et il est aussi paramétrable. Le présent plugin permet d’utiliser (...)

  • GIS 4

    11 août 2012 – 1535 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)