더북(TheBook)

12.3.3 실습 LocaleResolver와 LocaleChangeInterceptor를 이용하여 다국어 변경하기

MessageSource를 기반으로 언어별로 쉽게 변경할 수 있도록 LocaleResolverLocaleChangeInterceptor를 이용하여 도서 등록 페이지의 폼 필드 이름을 출력하는 것을 구현해 보겠습니다.

앞서 생성한 src/main/resources 폴더에 메시지 리소스 파일 messages_ko.properties와 messages_en.properties를 사용합니다.

1. servlet-context.xml 파일에 언어별로 변경할 수 있게 LocaleResolverLocaleChangeInterceptor 객체를 등록합니다.

코드 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>
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.