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