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.
Discussions par date d’activité
4 discussions
Bonjour,
Ce sujet m’intéresse beaucoup mais je ne sais pas ou coller ce code...
désolé pour ma naïveté mais je débute !
Merci
Répondre à ce message
Bonjour,
On dirait que c’est exactement ce que je veux faire...mais je ne suis vraiment pas habile avec le code !
Oú est-ce que je dois coller ce code ? Dans quel fichier ? Je viens d’installer un Spip 2.0
Merci de votre aide
Ange
Répondre à ce message
Bonjour,
J’ai recopié le code et cela ne fonctionne pas.
J’ai un article en anglais et français... et il apparait 2 fois....
A moins que je me sois trompé... j’ai collé les 3 bouts de codes à la suite ????
Merci
Répondre à ce message
Bonjour,
J’ai utilise cette contribution et elle fonctionne correctement si dans la Boucle_exclu_trad2, le critere doublon prefere est retire.
En effet, la contribution actuelle fourni plusieurs traductions d’un meme article si l’article n’a pas de traduction dans la langue choisie.
Grand merci.
Michel
L’information ci-dessus est incorrecte.
L’ordre des conditions dand la boucle est primordiale. La contribution est parfaitement juste.
Mille excuses.
Michel
Répondre à ce message
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 : |