protected String getMessage(String code, Object[] args) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); Locale locale = localeResolver.resolveLocale(request); return getRes().getMessage(code, args, locale); }
@RequestMapping(value = "/changeLang", method = RequestMethod.GET) public String changeLocale( @RequestParam String language, HttpServletRequest req, HttpServletResponse resp) { LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(req); localeResolver.setLocale(req, resp, StringUtils.parseLocaleString(language)); return "redirect:/"; }
@RequestMapping(value = "/canviaIdioma", method = RequestMethod.GET) public String canviaIdioma( @RequestParam String idioma, HttpServletRequest request, HttpSession session, HttpServletResponse response) { LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); localeResolver.setLocale(request, response, new Locale(idioma)); session.setAttribute("data", obtenirData(localeResolver.resolveLocale(request))); return "redirect:/"; }
/** {@inheritDoc} */ @Override public boolean preHandle( final HttpServletRequest request, final HttpServletResponse response, final Object handler) throws ServletException { String newLocale = request.getParameter(this.paramName); if (newLocale != null) { final LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); if (localeResolver == null) { throw new IllegalStateException( "No LocaleResolver found: not in a DispatcherServlet request?"); } if (!acceptedLocales.contains(newLocale)) { newLocale = getDefaultLocale(); } if (!request.getLocale().getLanguage().equals(new Locale(newLocale).getLanguage())) LOGGER.info("Switching to new Locale: " + newLocale); localeResolver.setLocale(request, response, StringUtils.parseLocaleString(newLocale)); } // Proceed in any case. return true; }
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, EuropeanaQueryException { Language oldLocale = ControllerUtil.getLocale(request); String newLocale = request.getParameter(this.paramName); if (newLocale != null) { if (newLocale.contains("*")) { throw new EuropeanaQueryException(QueryProblem.UNABLE_TO_CHANGE_LANGUAGE.toString()); } LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); if (localeResolver == null) { throw new IllegalStateException( "No LocaleResolver found: not in a DispatcherServlet request?"); } LocaleEditor localeEditor = new LocaleEditor(); localeEditor.setAsText(newLocale); localeResolver.setLocale(request, response, (Locale) localeEditor.getValue()); clickStreamLogger.logLanguageChange( request, oldLocale, ClickStreamLogger.UserAction.LANGUAGE_CHANGE); } // Proceed in any case. return true; }