Hi,
I am trying to enable I18N in my struts based application, here is what I
have done:

- added a LocaleFilter, which I copied from Appfuse:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 String locale = request.getParameter("locale");
 Locale preferredLocale = (*null* == locale) ? *null* : *new*Locale(locale);
 HttpSession session = request.getSession(*false*);
*  if* (session != *null*) {
*      if* (preferredLocale == *null*) {
        preferredLocale = (Locale) session.getAttribute(Globals.*LOCALE_KEY
*);
     } *else* {
       session.setAttribute(Globals.*LOCALE_KEY*, preferredLocale);
       Config.*set*(session, Config.*FMT_LOCALE*, preferredLocale);
    }
*     if* (preferredLocale != *null* && !(request
*instanceof*LocaleRequestWrapper)) {
       request = *new* LocaleRequestWrapper(request, preferredLocale);
       LocaleContextHolder.*setLocale*(preferredLocale);
    }
 }
  chain.doFilter(request, response);
  // Reset thread-bound LocaleContext.
  LocaleContextHolder.*setLocaleContext*(*null*);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- created ApplicationResources_XXX.properties
- added <message-resources parameter="ApplicationResources" /> in
struts-config.xml
- added <%@ page language="java" pageEncoding="UTF-8"
contentType="text/html;charset=UTF-8"
%>
 in each JSP file
- in my IE, I also added additional languages.

but i only saw english strings. no effect whethere I have <html:html
locale="true"/> or not.

anything else I miss out ?

thanks
lixin

ps. i debug the filter, it seems that the language is indeed saved in the
session though.

Reply via email to