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 langues 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 choisi de langue arrivent, ne reflète pas beaucoup le site et peut 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 afficher ? 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ète maintenant.
Ces boucles ont pour but de :
- lister les articles de préférence soit :
- dans la langue choisi par l’utilisateur 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.
<BOUCLE_lang_choisie(ARTICLES) {lang} {doublons prefere}>
<BOUCLE_exclus_trad(ARTICLES) {doublons exclustrad} {traduction} {exclus}> </BOUCLE_exclus_trad>
</BOUCLE_lang_choisie>
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.
<BOUCLE_lang_origine(ARTICLES) {origine_traduction} {doublons prefere}><BOUCLE_exclus_trad2(ARTICLES) {doublons prefere} {doublons exclustrad} {traduction} {exclus}
> </BOUCLE_exclus_trad2>
</BOUCLE_lang_origine>
On peut maintenant afficher les articles qui n’ont pas été exlus plus tôt dans le doublon exclustrad :
<B_derniers_articles>
<ul>
<BOUCLE_derniers_articles(ARTICLES) {par date} {inverse} {doublons exclustrad}>
<li>
[(#LOGO_ARTICLE_RUBRIQUE|right||reduire_image{200,200})]
[<span class="surtitre">(#SURTITRE)</span>]
<span class="titre-extrait">[#LANG] <a href="#URL_ARTICLE">[(#TITRE|supprimer_numero)]</a></span>
[<span class="surtitre">(#SOUSTITRE)</span>]
<span class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
[<:par_auteur:>#LESAUTEURS)]
</span>
[<span class="texte">(#INTRODUCTION)</span>]
</li>
</BOUCLE_derniers_articles>
</ul>
</B_derniers_articles>
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.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |