Hi Is this something you are looking for
http://tawus.wordpress.com/2013/01/07/changing-locale-based-on-domain/ regards Taha On Feb 8, 2013, at 7:09 PM, René Bernhardsgrütter wrote: >> I've never heard of filters named "SetupRender" or "BeginRender" so I'm >> pretty sure "before:SetupRender" has no effect > I just tried this while I was trying to get it work. > >> Interfaces are very necessary!!!. They are crucial to tapestry to support >> lazy loading etc. You should NEVER refer to your services by their concrete >> type. > >> Should be: >> binder.bind(RequestFilter.class, TimingFilter.class).withSimpleId(); >> should be: >> public static void >> contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, >> @InjectService("TimingFilter") RequestFilter timingFilter) {; > > Ok, I didn't know that. > > Now the code is: > > binder.bind(RequestFilter.class, TimingFilter.class).withSimpleId(); > binder.bind(RequestFilter.class, > LocaleRequestFilter.class).withSimpleId(); > > and: > > public static void contributeRequestHandler( > OrderedConfiguration<RequestFilter> configuration, > @InjectService("TimingFilter") RequestFilter timingFilter, > @InjectService("LocaleRequestFilter") RequestFilter > localeRequestFilter) { > configuration.add("TimingFilter", timingFilter); > configuration.add("LocaleRequestFilter", localeRequestFilter, > "before:*"); > } > >> René, I think I've figured out what your problem is. You should not be using >> LocalizationSetter as this is backed by the PersistantLocale which is >> ultimately responsible for including the language as the first folder in the >> URL. > > I've also changed this, to: > > public class LocaleRequestFilter implements RequestFilter { > > private Cookies cookies; > private ThreadLocale threadLocale; > > public LocaleRequestFilter(Cookies cookies, ThreadLocale threadLocale) { > this.cookies = cookies; > this.threadLocale = threadLocale; > } > > @Override > public boolean service(Request request, Response response, RequestHandler > handler) throws IOException { > TranslatedLanguage preferredLanguage; > > String languageValueInCookie = > cookies.readCookieValue(PlainTraySetting.COOKIE_LANGUAGE_VALUE_NAME); > String languageValueInHttpRequest = request.getLocale().getLanguage(); > > if (languageValueInCookie != null) { > preferredLanguage = > TranslatedLanguage.findLanguage(languageValueInCookie); > } else { > preferredLanguage = > TranslatedLanguage.findLanguage(languageValueInHttpRequest); > } > > if (preferredLanguage == null) { > preferredLanguage = PlainTraySetting.DEFAULT_LANGUAGE; > } > > if (languageValueInCookie == null) { > > cookies.writeCookieValue(PlainTraySetting.COOKIE_LANGUAGE_VALUE_NAME, > preferredLanguage.toString()); > } > > System.out.println("set locale to " + new > Locale(preferredLanguage.toString()).getLanguage()); > threadLocale.setLocale(new Locale(preferredLanguage.toString())); > System.out.println("get locale is " + > threadLocale.getLocale().getLanguage()); > return handler.service(request, response); > } > } > > I see the output "set locale to de" and on the next line "get locale is de", > so I'm pretty sure threadLocale.setLocale(...) ran correctly. > But it still doesn't work. I always get the browser locale (English). > > > On 08.02.2013 13:58, Lance Java wrote: >> René, I think I've figured out what your problem is. You should not be using >> LocalizationSetter as this is backed by the PersistantLocale which is >> ultimately responsible for including the language as the first folder in the >> URL. >> >> As I said initially, if you want your own custom logic (ie storing in a >> cookie) then I suggest you use ThreadLocale instead. >> >> >> >> -- >> View this message in context: >> http://tapestry.1045711.n5.nabble.com/How-to-call-locale-properties-file-based-on-urls-tp5719862p5719874.html >> Sent from the Tapestry - User mailing list archive at Nabble.com. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org >