12.3.3 실습 LocaleResolver와 LocaleChangeInterceptor를 이용하여 다국어 변경하기
MessageSource를 기반으로 언어별로 쉽게 변경할 수 있도록 LocaleResolver와 LocaleChangeInterceptor를 이용하여 도서 등록 페이지의 폼 필드 이름을 출력하는 것을 구현해 보겠습니다.
앞서 생성한 src/main/resources 폴더에 메시지 리소스 파일 messages_ko.properties와 messages_en.properties를 사용합니다.
1. servlet-context.xml 파일에 언어별로 변경할 수 있게 LocaleResolver와 LocaleChangeInterceptor 객체를 등록합니다.
코드 12-5 servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans...>
...
<interceptors>
<beans:bean class="com.springmvc.interceptor.MonitoringInterceptor"/>
<beans:bean class= com.springmvc.interceptor.AuditingInterceptor"/>
<beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> ➊
<beans:property name="paramName" value="language"/> ➋
</beans:bean>
</interceptors>
<beans:bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> ➌
<beans:property name="defaultLocale" value="ko"/> ➍
</beans:bean>
<beans:bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<beans:property name="basename" value="messages"/>
<beans:property name="defaultEncoding" value="UTF-8"/>
</beans:bean>
</beans:beans>