- 모든 경로를 인터셉트해서 language 체크->language변경
message properties 작성
- 경로: main – resources – egovframework – message – context내
예시
- message-context.properties(디폴트)
home.name=연습 홈페이지
home.content=반갑습니다.
- message-context_ko.properties
home.name=연습 홈페이지
home.content=반갑습니다.
- message-context_en.properties
home.name= Web Page Practice
home.content=Hello
빈 설정
Context-common.xml
- context.xml: 톰캣에서 구동되는 웹 어플리케이션 자체 설정 관리
- 사용할 message.properties 파일을 설정
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/egovframework/message/com/message-common</value>
… 추가 가능
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
Servlet.xml
- servlet.xml: 스프링 설정파일
- interceptor를 설정해서 페이지 접속 시 인터셉트해서 language를 설정함
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
Controller
// 언어를 영어로 바꿈
@ResponseBody
@RequestMapping(value = "langEng.do")
public void langKor (HttpServletRequest request, HttpServletResponse response) throws Exception {
String language = “en";
Locale locale = new Locale(language);
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
localeResolver.setLocale(request, response, locale);
}
// 언어를 한국어로 바꿈
@ResponseBody
@RequestMapping(value = "langKor.do")
public void langKor (HttpServletRequest request, HttpServletResponse response) throws Exception {
String language = “ko";
Locale locale = new Locale(language);
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
localeResolver.setLocale(request, response, locale);
}
View
<img src="/kor.png" style="height: 50px" id="lang-kor" class="lang">
<img src="/eng.png" style="height: 50px" id="lang-eng" class="lang">
$(document).on("click", "#lang-kor", function(){
alert("kor클릭");
$.ajax({
url:"/langKor.do",
success: function(){
location.reload();
}
})
});
$(document).on("click", "#lang-eng", function(){
alert("eng클릭");
$.ajax({
url:"/langEng.do",
success: function(){
location.reload();
}
})
});
<spring:message code="msg.test" arguments="${home.content }"/>