localeResolver.setLocale hoạt động tốt đối với tôi, hãy thử một cái gì đó như thế này:
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 \ chính \ resources \ điệp \ tin nhắn. thuộc tính
my.me ssage = nhắn (ngôn ngữ mặc định)
\ src \ resources \ chính \ điệp \ messages_en.properties
my.message = tin nhắn bằng tiếng Anh
\ src \ resources \ chính \ điệp \ messages_fr.properties
my.message = tin nhắn bằng tiếng Pháp
khiển
@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";
}
}
Với mã này tôi nhận được "Thông điệp bằng tiếng Pháp", nếu tôi thay đổi "fr" thành "en" Tôi nhận được "tin nhắn bằng tiếng Anh", và không có cuộc gọi setLocale tôi nhận được "tin nhắn (ngôn ngữ mặc định)". Thay đổi StringUtils.parseLocaleString ("fr") đến Locale mới ("fr") cho kết quả tương tự.
Tôi đang cố gắng đặt ngôn ngữ lập trình. Các tin nhắn vẫn bằng tiếng Anh. Tôi sử dụng phương pháp? Locale = fr thay vào đó, các tin nhắn hiện đang được tải là tiếng Pháp. – NRaf
vui lòng cung cấp mã của bạn về cách bạn truy xuất ngôn ngữ của người dùng hiện tại từ môi trường –