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 :
- les sites séparés en secteurs par langue
- 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 :
- 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)
- lister les articles qui n’existent pas dans cette langue dans leur langue d’origine
- 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.