#LANG dans une boucle spip

Bonjour à tous,

J’ai besoin d’utiliser la variable #LANG à l’intérieur d’une boucle SPIP dans le cadre d’un site multilingue utilisant THELIA.

Le problème, c’est qu’il semble que la boucle modifie la valeur de cette variable.

J’ai fait un test simple en ayant passé le site en Anglais:

#LANG
<BOUCLE_test(RUBRIQUES){racine}>
#LANG
</BOUCLE_test>

Le premier #LANG, avant la boucle SPIP, prend bien la valeur « en » que j’attend, mais le second, dans la boucle SPIP, prend d’office la valeur « fr », quelque soit la langue dans laquelle je passe le site.

Je suis sous SPIP 1.9.2d

Quelqu’un pourrait m’aider sur ce point?

Merci

{lang} dans ta boucle peut-être ? Il passera alors l'environnement à ta boucle

2008/10/7 Stéphane Hanrez <hanrez.stephane@gmail.com>:

Bonjour à tous,

J'ai besoin d'utiliser la variable #LANG à l'intérieur d'une boucle SPIP
dans le cadre d'un site multilingue utilisant THELIA.

Le problème, c'est qu'il semble que la boucle modifie la valeur de cette
variable.
J'ai fait un test simple en ayant passé le site en Anglais:

#LANG
<BOUCLE_test(RUBRIQUES){racine}>
#LANG
</BOUCLE_test>

Le premier #LANG, avant la boucle SPIP, prend bien la valeur "en" que
j'attend, mais le second, dans la boucle SPIP, prend d'office la valeur
"fr", quelque soit la langue dans laquelle je passe le site.

Je suis sous SPIP 1.9.2d

Quelqu'un pourrait m'aider sur ce point?

Merci
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

--
Philippe

Si je passe ce critère dans la boucle, alors celle-ci ne me retourne plus aucun éléments sauf dans ma langue par défault (fr).

Par contre, je viens de trouver la solution… Il suffit en fait d’utiliser #ENV{lang} plutôt que #LANG qui n’est pas valide à l’intérieur d’une boucle spip…

Merci

2008/10/7 Philippe Auriol <philippe.listes@gmail.com>

{lang} dans ta boucle peut-être ? Il passera alors l’environnement à ta boucle

2008/10/7 Stéphane Hanrez <hanrez.stephane@gmail.com>:

Bonjour à tous,

J’ai besoin d’utiliser la variable #LANG à l’intérieur d’une boucle SPIP
dans le cadre d’un site multilingue utilisant THELIA.

Le problème, c’est qu’il semble que la boucle modifie la valeur de cette
variable.
J’ai fait un test simple en ayant passé le site en Anglais:

#LANG
<BOUCLE_test(RUBRIQUES){racine}>
#LANG
</BOUCLE_test>

Le premier #LANG, avant la boucle SPIP, prend bien la valeur « en » que
j’attend, mais le second, dans la boucle SPIP, prend d’office la valeur
« fr », quelque soit la langue dans laquelle je passe le site.

Je suis sous SPIP 1.9.2d

Quelqu’un pourrait m’aider sur ce point?

Merci


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip


Philippe

Stéphane Hanrez a écrit :

Si je passe ce critère dans la boucle, alors celle-ci ne me retourne plus aucun éléments sauf dans ma langue par défault (fr).
Par contre, je viens de trouver la solution... Il suffit en fait d'utiliser #ENV{lang} plutôt que #LANG qui n'est pas valide à l'intérieur d'une boucle spip...
Merci

#LANG te retourne la valeur de langue du contexte et donc de ta boucle ...
si tu utilises ca dans une boucle rubrique et que cette rubrique est paramétré en langue par défaut en fr alors ton #LANG vaudra fr ...
ce qui est ton cas

Salut,

ça depend de comment t'as configuré ton multilinguisme:
a] config de base; tu fais du multilinguisme par secteur (genre spip.net)... alors la langue de la rubrique est importante et les articles dans ces rubriques auront la langue de la rubrique
b] il faut changer un peu de variable; ca a l'air d'etre ton cas. Tu veux la langue surtout pour traduire l'interface, mais les articles traduits sont mélangé dans les rubriques.

Par défaut les boucles de spip tournent pour la config a] et donc, dans une boucle RUBRIQUES #LANG retourne la langue de la rubrique (etc. pour les autres boucles). les blocs multi et <:chaines_traduites:> seront alors traduite dans la langue de l'element de la boucle... dans ton cas, de la rubrique.

Tu peux eviter cela boucle par boucle en ajoutant le critere {!lang_select}.

Dans le cas b], le mieux, c'est de mettre $forcer_lang=true; dans ton fichier mes_options.php. Cela va globalement dire à toutes les boucles d'ignorer la langue de l'objet selectionné par la boucle et de prendre la langue spécifiée dans l'url. S'il n'y a pas de langue spécifiée dans l'url, alors ca prendra la langue principale du site (c.f. page de config du multilinguisme).
En plus, si cette variable est true dans ton mes_options et que tu utilise la balise #MENU_LANG sur le site public, SPIP va rediriger l'utilisateur automatiquement vers une url avec lang=XX. Ainsi, l'utilisateur aura toujours les pages dans la langue qu'il a choisit.
Dans ce cas, les blocs <multi> et les <:chaines:> seront traduites dans la langue de l'url (ou principale du site)

Je te conseille de lire Multilinguisme
et aussi de regarder ce qui est décrits sur:
Carnet Multilinguisme
(fouillit, mais tout y est)

Le cas a] est le plus simple à utiliser avec SPIP et la dist. le cas b] te permet de mélanger les traductions ou de traduire juste l'interface même si les articles sont pas traduits. C'est mieux si tu as peux de traductions sur le site etc. mais ca demande bcp plus de travail sur les squelettes.

Pierre

Stéphane Hanrez wrote:

Bonjour à tous,
J'ai besoin d'utiliser la variable #LANG à l'intérieur d'une boucle SPIP
dans le cadre d'un site multilingue utilisant THELIA.
Le problème, c'est qu'il semble que la boucle modifie la valeur de cette
variable.

J'ai fait un test simple en ayant passé le site en Anglais:
#LANG
<BOUCLE_test(RUBRIQUES){racine}>
#LANG
</BOUCLE_test>
Le premier #LANG, avant la boucle SPIP, prend bien la valeur "en" que
j'attend, mais le second, dans la boucle SPIP, prend d'office la valeur
"fr", quelque soit la langue dans laquelle je passe le site.
Je suis sous SPIP 1.9.2d
Quelqu'un pourrait m'aider sur ce point?
Merci