The simplest way I know is to change the locale, and then throw a 
redirectexception to the page where you want to go. That will make the 
magic.

On 6/26/05, Vinicius Carvalho <[EMAIL PROTECTED]> wrote:
> 
> Hello ppl. Once again here I am. As my presentation gets closer, I'd
> like to have things shinning :D
> 
> I just implemented localization with Tapestry (It's so easy that I
> can't even calculate the effort for doing it ).
> 
> Here's how I've done:
> 
> I have a LocaleChange Component with a listener:
> 
> public void changeLocale(IRequestCycle cycle){
> String language = (String)cycle.getServiceParameters()[0];
> String country = null;
> if(language.equals("pt")){
> country = "BR";
> }
> else
> country = "US";
> Locale locale = new Locale(language,country);
> getPage().getEngine().setLocale(locale);
> cycle.activate(getPage());
> }
> 
> <component id="brazil" type="DirectLink">
> <binding name="listener" expression="listeners.changeLocale"/>
> <static-binding name="parameters" value="pt"/>
> </component>
> <component id="us" type="DirectLink">
> <binding name="listener" expression="listeners.changeLocale"/>
> <static-binding name="parameters" value="en"/>
> </component>
> 
> <context-asset name="brazilianFlag" path="images/brazil.gif"/>
> <context-asset name="usFlag" path="images/usa.gif"/>
> 
> Due my high level of stupidity I did not figure out yet how to pass
> more than one parameter using binding so I decided to do that ugly
> trick (if-else).
> 
> It changes the locale, but the activate returns to the caller page
> with the previous idiom. One must click in another page to see the
> results. I thought that by forcing cycle.activate() that would be done
> automatically.
> 
> Any ideas?
> 
> Thanks all
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

Reply via email to