localeResolver.setLocale działa dobrze dla mnie, spróbuj coś takiego:
ApplicationContext
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="messages/messages" p:fallbackToSystemLocale="false" />
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
my_page.jsp
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
<body>
<p><spring:message code="my.message"/></p>
</body>
</html>
\ src \ main \ Resources \ komunikaty \ wiadomości. właściwości
my.me ssage = Message (język domyślny)
\ src \ main \ Resources \ komunikaty \ messages_en.properties
my.message = Komunikat w języku angielskim
\ src \ main \ Resources \ komunikaty \ messages_fr.properties
my.message = Komunikat po francusku
Controller
@Controller
@RequestMapping("/")
public class SampleController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String welcome(HttpServletRequest request, HttpServletResponse response) {
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
localeResolver.setLocale(request, response, StringUtils.parseLocaleString("fr"));
return "my_page";
}
}
Z tego kodu otrzymuję "Message in French", jeśli zmienię "FR" na "pl" otrzymuję "Message in English", a bez zaproszenia setlocale dostaję „Wiadomość (domyślny język)". Zmiana StringUtils.parseLocaleString ("fr") do nowego locale ("fr") daje takie same wyniki.
Próbuję ustawić ustawienia regionalne programowo. Wiadomości są nadal w języku angielskim. Zamiast tego używam metody? Locale = fr, wiadomości są teraz ładowane jako francuskie. – NRaf
proszę podać swój kod, w jaki sposób pobrać lokalne ustawienia użytkownika ze środowiska –