다국어 처리(국제화)는 하나의 페이지를 여러가지의 언어로 서비스하는 것으로
과거에는 언어별로 페이지를 다르게 제작하였지만 현재는 이와 같이 사용하지 않는다.
-> 프레임워크의 다국어처리기능을 사용(별도 페이지 제작 안 함)
1) 메세지 파일 제작
파일의 확장자는 .properties로 생성
언어 선택을 Locale 정보로 수행하며 파일명에 언어에 해당하는 Locale 코드를 추가한다.
ex) xxx_en.properties, xxx_ko.properties, ...
파일 내부에는 메세지 키+메세지 값을 작성한다. (영어를 제외한 나머지 언어는 유니코드로 작성)
-> 유니코드 작성은 자동 지원해준다.
파일 생성 위치
소스/메인/리소스 -> message 패키지 생성 -> messageSource_en.properties
message.messageSource_en.properties 파일
# login.jsp
message.header.h1 = Spring Project
message.header.p = spring project by
message.introduction.h2 = login
message.introduction.id = ID
message.introduction.password = PASSWORD
message.introduction.login = LOGIN
message.introduction.sign = SIGN IN
message.messageSource_ko.properties 파일
# login.jsp
message.header.h1 = \uC2A4\uD504\uB9C1 \uD504\uB85C\uC81D\uD2B8
message.header.p = \uBE14\uB85C\uADF8 \uB9C1\uD06C :
message.introduction.h2 = \uB85C\uADF8\uC778
message.introduction.id = \uC544\uC774\uB514
message.introduction.password = \uD328\uC2A4\uC6CC\uB4DC
message.introduction.login = \uB85C\uADF8\uC778
message.introduction.sign = \uD68C\uC6D0\uAC00\uC785
2) 스프링 설정 파일(DS.xml)에게 메세지 파일들을 읽어 들일 수 있도록 클래스(MessageSource) 추가(<bean> 등록)
-> DS.xml에 MessageSource 클래스 <bean> 등록
<!-- 다국어 처리 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>message.messageSource(.properties 생략, 로케일 코드 정보도 자동으로 추가된다.)</value>
</list>
</property>
</bean>
3) Locale 정보를 알아서 판단해줄 LocaleResolver 등록(DS.xml)
-> SessionLocaleResolver
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
4) Locale 정보를 변경해서 사용하기 위해 LocaleChangeInterceptor 클래스 등록
-> lang 파라미터로 Locale 정보를 변경
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
</mvc:interceptors>
5) 사용하기 위해서 사용할 페이지에 태그 작성
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
6) 태그 작성 이후 키값을 입력하면 그에 맞는 밸류 값이 출력
ex) <h1><spring:message code="message.header.h1" /></h1>
<p><spring:message code="message.header.p" />
실행 결과
한국어

영어

'Spring' 카테고리의 다른 글
| Mybatis 프레임워크 스프링 연동 (0) | 2022.10.05 |
|---|---|
| Mybatis 프레임워크 (1) | 2022.10.04 |
| Spring 예외 페이지 설정 (0) | 2022.09.28 |
| Spring 이미지 업로드 (0) | 2022.09.27 |
| 2-Layered 아키텍처 (0) | 2022.09.26 |