SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 33 visiteurs en ce moment

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

Liste multilingue d’articles

7 janvier 2006 – par dani – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

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.

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

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.

  • Navigation AJAX

    31 janvier – 18 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)