J'utilise la balise <multi> dans le contenu des articles sans aucun problème : avec le menu lang, on peut afficher le même article en francais ou en anglais (même id_article).
Par contre comment afficher sur la MEME page le texte d'un article en français ET plus bas en anglais ? J'ai essayé <BOUCLE_art1(ARTICLES){id_article} {lang=fr} > et <BOUCLE_art2(ARTICLES){id_article} {lang=en} > mais ca ne marche pas.
Exemple avec #TEXTE = <multi>[fr]xxxxxxxxx[en]yyyyyyyyyyyyyy</multi>
je voudrais afficher sur la même page :
Salut,
Je viens de faire plusieurs tests car ce type de résultat m'intéresse mais je n'y arrive pas non plus.
Apparemment, le critère {lang=xx} n'intervient que sur les traductions d'articles et pas du tout sur la balise <MULTI>.
Et lorsque je supprime $forcer_lang = true; dans mes_options.php, alors, il n'y a plus que le texte en français qui apparait dans mes articles même lorsque le menu lang est en anglais. Je suppose que c'est parceque la langue principale du site est le français.
Donc je pense qu'il faudrait plutôt appliquer un filtre à la balise #TEXTE DU TYPE [(#TEXTE|lang=en)] ou [(#TEXTE|multi=en)].
Mais ce filtre n'existe pas.
Si quelqu'un a une idée...
Mathieu
Tropicaloo a écrit :
Bonsoir,
J'utilise la balise <multi> dans le contenu des articles sans aucun problème : avec le menu lang, on peut afficher le même article en francais ou en anglais (même id_article).
Par contre comment afficher sur la MEME page le texte d'un article en français ET plus bas en anglais ? J'ai essayé <BOUCLE_art1(ARTICLES){id_article} {lang=fr} > et <BOUCLE_art2(ARTICLES){id_article} {lang=en} > mais ca ne marche pas.
Exemple avec #TEXTE = <multi>[fr]xxxxxxxxx[en]yyyyyyyyyyyyyy</multi>
je voudrais afficher sur la même page :
soit écrire un filtre dans mes_options pour pouvoir extraire d'un multi toujours la langue désirée. Je ne l'ai pas essayé, mais je ne pense pas qu'il serait trop difficile.
Par contre comment afficher sur la MEME page le texte d'un article en français ET plus bas en anglais ? J'ai essayé <BOUCLE_art1(ARTICLES){id_article} {lang=fr} > et <BOUCLE_art2(ARTICLES){id_article} {lang=en} > mais ca ne marche pas. Exemple avec #TEXTE = <multi>[fr]xxxxxxxxx[en]yyyyyyyyyyyyyy</multi>
je voudrais afficher sur la même page :
xxxxxxxxxx
yyyyyyyyyy
Mathieu MAILLET avait prétendu :
Apparemment, le critère {lang=xx} n'intervient que sur les traductions d'articles et pas du tout sur la balise <MULTI>.
Et lorsque je supprime $forcer_lang = true; dans mes_options.php, alors, il n'y a plus que le texte en français qui apparait dans mes articles même lorsque le menu lang est en anglais. Je suppose que c'est parceque la langue principale du site est le français.
Donc je pense qu'il faudrait plutôt appliquer un filtre à la balise #TEXTE DU TYPE [(#TEXTE|lang=en)] ou [(#TEXTE|multi=en)].
Mais ce filtre n'existe pas.
Si quelqu'un a une idée...
Mathieu,
Ce qui est étrange c'est que le lang=en est pris en compte lorsqu'il est passé dans l'URL (ex spip.php?page=article&id_article=1&lang=en
mais pas dans la boucle.
Il doit y avoir un paramètre à passer dans la boucle avec #ENV mais comme j'ai pas trop compris grand chose à son utilisation .....
-Eric
Par contre comment afficher sur la MEME page le texte d'un article en français ET plus bas en anglais ?
Un peu compliqué, je pense. Soit il faut mettre des boucles environnantes pour "fixer" la langue... soit écrire un filtre dans mes_options pour pouvoir extraire d'un multi toujours la langue désirée.
Merci Paolo pour ces pistes.
La solution 1 suppose de créer une rubrique [en] fantôme.
Je me demande s'il n'y a pas de solution avec le #ENV. à creuser...
Quant au filtre, effectivement, il suffit de conserver tout ce qui existe entre [fr] et [en] dans un cas et entre [en] et </multi> dans le deuxième.
En tout cas, merci beaucoup pour tes conseils, je vais essayer.
Paolo a présenté l'énoncé suivant :
Regarde les fonctions dans ecrire/inc/filtres.php
dans la version 1.9.3 lignes après 1184
// Gestion des blocs multilingues ...
pas si simple d'adapter comme filtre que je pensais...
Super, j'ai trouvé Paolo !!!
il faut appeler un modèle auquel on passe la variable lang=en
Dans le modèle {boucle_en} il y a :
<BOUCLE_en(ARTICLES){id_article}> #TEXTE
</BOUCLE_en>
Et voilà !
Reste à gérer les cas où il n'y a que du français et pas de trad en anglais > le multi affiche alors par défaut le français. Mais ça c'est le comportement normal du <multi>.