I should have specified, I'm using tapestry 3.0.3.
Jesse Kuhnert <[EMAIL PROTECTED]> 02/17/2006 12:59 PM Please respond to "Tapestry users" <[email protected]> To Tapestry users <[email protected]> cc Subject Re: Localizing a single page (in an app that's localized in different language) I don't remember the exact syntax offhand, but I think you can use one of the "meta" tags in your page spec to set this. On 2/17/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Greetings, > I?m trying to change the locale of only 1 page in my web app. The system > as a whole allows for a variety of locales, but 1 page in particular is > displayed in a data specified locale. I?ve tried > myPage.setLocale(Locale.GERMAN), before activating the page, but that just > seems to result in a ApplicationRuntimeException. So I created a work > around, in the specially localized page I did: > > public void pageBeginRender(PageEvent event) { > super.pageBeginRender(event); > if (!event.getRequestCycle().isRewinding()) { > Locale dataLocale = new Locale(getData().getLanguage()); > if (getEngine().getLocale().equals(dataLocale) == false) > { > getEngine().setLocale(dataLocale); > event.getRequestCycle().cleanup(); > throw new PageRedirectException(this); > } > > AppVisit visit = (AppVisit) getVisit(); > App app = visit.getSession(); > > getEngine().setLocale(app.getDefaultLocale()); > } > } > > > Which should check to see if the current locale is different than the data > locale, change the engine locale to the data locale, refresh the page. If > the two locales are the same, then reset the locale to the default locale. > > > This seems to work fairly well, except when the user logs out. When the > user logs out we do ((IEngineServiceView) > cycle.getEngine()).restart(cycle), and redirect to the login page. When > that redirection happens, the user?s locale seems to be whatever the data > locale was. > > So as an example, the user logs in in English, browses to the data sees it > in German, then browses other pages (back in English). When the user logs > out, for some reason they get presented with a German login screen. Their > browser is set to English, the session default is English, only that data > page is in German. > > Mostly I dislike messing with the engine locale, I?d like to just set it > for the specific page, but I haven?t figured out how. > > Ideas for what I?m doing wrong, or possible alternatives? > > Thanks! > > Chris >
