SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Multilinguisme > Menus multilingues

Afficher les articles dans un sommaire multilingue

vendredi 31 mars 2006, par mortimer. Dernier ajout samedi 16 décembre 2006


Voici un problème qui revient souvent dans un site multilingue. Comment fournir un sommaire riche qui ne soit pas juste une liste de langue mais reflette aussi la vie du site.


Le sommaire multilingue

Il y a un grand nombre de façons de faire un site multilingue qui se séparent en deux grands groupes :

  1. les sites séparés en secteurs par langue
  2. les sites mixtes

Dans les deux cas le sommaire est souvent un problème, dans le premier cas on peut toujours juste afficher une liste de langue qui va rediriger vers les secteurs de langue. Les sommaires de chaque langue étant la page du secteur. Mais ce sommaire initial, où tous les visiteurs qui n’ont pas encore choisit de langue arrivent, ne reflètent pas beaucoup le site et peuvent tout simplement repousser les visiteurs.

Il serait bien plus agréable pour le visiteur de voir une partie de la vie du site quand il arrive sur le sommaire. Mais alors quelle langue affichée ? Il n’y a pas de raison de privilégier un langue, en particulier, quand on chaque langue offre des articles différents.

L’idéal est donc de faire une boucle sur tous les derniers articles. Mais si des articles sont traduits dans plusieurs langues, alors on risque d’avoir des problémes de doublons. Et un simple critère {doublons} ne nous sauvera pas ici puisque chaque traduction est un article différent.

Afficher les articles sans doublons

Il faut donc faire une boucle un peu plus complexe. La combinaison de boucles donnée plus bas s’inspire du code fournis sur le wiki ainsi que d’une première contrib un peu obsoléthe maintenant.

Ces boucles ont pour but de :

  1. lister les articles de préférence soit :
    • dans la langue choisi par l’utlisateur avec #MENU_LANG s’il l’a fait
    • dans la langue par défaut du site (fixée à la configuration)
  2. lister les articles qui n’existent pas dans cette langue dans leur langue d’origine
  3. exclure les doublons due aux traductions

On veut afficher tous les articles dans la langue choisie. On exclut donc tous les articles qui sont des traductions de ces articles, grâce au doublons exclustrad.

Pour les articles qui restent (ceux qui ne sont pas dans le doublon prefere), on ne veut pas afficher les traductions. On veut juste l’article dans sa langue d’origine. On exlut donc les traductions des articles d’origines qui ne sont pas des articles dans la langue choisie avec le doublons exclustrad.

On peut maintenant afficher les articles qui n’ont pas été exlus plus tôt dans le doublon exclustrad :

Remarque :
- le code de l’affichage n’est là qu’à titre indicatif, on peut mettre ce que l’on veut
- on peut ajouter des critères à la boucle pour afficher moins d’articles. Il faut alors penser à ajouter ces critères aux boucles _lang_choisie et _lang_origine sans les critères de limitation du nombre.


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net