Spring

Spring 다국어 처리

Clearing 2022. 9. 29. 11:41
728x90

다국어 처리(국제화)는 하나의 페이지를 여러가지의 언어로 서비스하는 것으로
과거에는 언어별로 페이지를 다르게 제작하였지만 현재는 이와 같이 사용하지 않는다.

-> 프레임워크의 다국어처리기능을 사용(별도 페이지 제작 안 함)

 

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" />

 

 

실행 결과

한국어

 

영어

728x90

'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