- 1
[Opened] Afficher la page en cours dans autre langue
Posted by Guitch on 04/01/2010 16:43
Salut
Dans un site multilingue, avec FR et EN par exemple dans mon header (qui est une zone commune), j'ai mis un drapeau FR et EN comme ceci
<a href="{jurl 'accueil~default:index', array('lang'=>'fr_FR')}"><div id="flag_fr"></div></a> | <a href="{jurl 'accueil~default:index' , array('lang'=>'en_EN')}"><div id="flag_en"></div></a>
je suis dans la page "conditions d'utilisations" en FR mais si j'appuie sur le drapeau EN, je désire voir la meme page en anglais or ici, cela me fait retourner sur la page d'accueil comment faire dans le header pour qu'on affiche la page en cours dans la nouvelle langue choisie sans retourner sur l'accueil ?
merci
[Opened] Re: Afficher la page en cours dans autre langue
Posted by catsoup on 04/01/2010 21:48
Salut, il y a une maniere simple de le faire, avec la méthode reload du plugin history: il suffit de créer une action qui fera le reload, par exemple:
<code> class historyCtrl extends jController { /** * action qui renvoie vers la page courante */ function reload() { // redirection vers la page precedente, avec le plugin history // l'action precedente doit avoir ete enregistree par le plugin $history = $GLOBALS['gJCoord']->getPlugin('history'); return $history->reload( $this->getResponse('redirect') ); } }</code>
Pour le lien, grace au plugin autolocale, il n'y a rien a faire pour le changement de langue:
<a href="{jurl 'autobench~history:reload', array('lang'=>'en_EN')}">
L'autre manière est de se faire une zone, avec passage de l'url courante, et des paramètres supplémentaires. On fera plutot comme ça si on a des urls propres par exemple, dans ton cas conditions-d-utilisations, la zone sera alors chargée de transformer l'url selon la langue.
[Opened] Re: Afficher la page en cours dans autre langue
Posted by laurentj on 04/02/2010 14:52
catsoup : je ne trouve pas super simple ta manière de faire, parce que ça oblige à avoir le plugin history activé, ce qu'on ne veut pas forcément :)
Il y a d'autres moyens
- appeler jUrl::getCurrent() et ajouter à la main "&lang=en_US"
- ou appeler jUrl::get("#~#", $params); (ou {jurl..} où $params = les paramètres de l'url courante que tu récupéreras, en ajoutant le parametre lang.
[Opened] Re: Afficher la page en cours dans autre langue
Posted by catsoup on 04/02/2010 22:17
A ben merci, du coup :) Testé et approuvé, avec
$params = $GLOBALS[['gJCoord']]->request->params;
- 1