본문 바로가기
홈페이지 만들기/Spring

스프링 다국어처리

by 리틀홍콩 2015. 4. 16.
728x90

프레젠테이션 레이어 서블릿 관리하는 xml에서

(나의 경우 WEB-INF/config/presentation-layer.xml)에 위치시켯다)

 

 

 

 

==== presentation-layer.xml ===============================================

 

...

...

...

 

<!-- 다국어 관련 설정 -->
 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basenames">
   <list>
    <value>message.messageSource</value>
   </list>
  </property>
 </bean>
 
 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
 
 <mvc:interceptors>
  <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
   <property name="paramName" value="lang"></property>
  </bean>
 </mvc:interceptors>

 

 

=========================================================================

** 1. 메시지 파일(~~.properties)을 읽어들이는 MessageSource 객체를 Bean에 등록한다.

※ 여기서 파일을 보면 messageSource_en.properties, messageSource_ko.properties라고 작성되어있는 파일인데 xml에서는 message패키지.파일명(_ko,en제외)인것을 알수있다. 프로그램상에서 properties가 이름일수있는 예외적인상황도 있어(인공지능이 아니므로),확장자를 제거해주고 또한 _ko _en 등 자세히 기억은 안나지만 제외를 시켜줄수있다고 교육을 받았다.  (이에 대하여 자세히 알고있는분은 댓글로 부탁드려요..)

 

** 2. 이렇게 등록을 한 뒤, localeResolver로 클라이언트의 요청이 들어오면 그 정보(Locale)를 설정한다. 이때 정의가 되어있지 않다면(나의 경우 LocaleChangeInterceptor 로 설정하였다.), AccepHaderLocaleResolver를 이용하는데 성능이 떨어지므로, 나처럼 Session~ 으로 하는걸 추천한다.

 

** 3. 마지막으로 웹페이지 이용 중 중간에 언어를 변경하려면 LocaleChaneInterceptor를 설정해야만 적용이 가능하다. class는 꼭 org.springframework.web.servlet.i18n.LocaleChangeInterceptor 로 설정하고, 속성안에 value의 값에 따라 웹페이지에서 index.jsp?lang=ko 파라메터 데이터이름을 변경해주어야한다.

 

 

마지막으로. properties 데이터 입력시 아시아언어는 2byte를 사용하므로 유니코드로 변경하여 데이터를 입력해주어야 한다. (이클립스 루나버전의 경우 텍스트 파일에 한글로 입력하고 properties에 붙여넣기하면 자동으로 변환이 된다. 나머지 버전은 잘 모르겠다. 아니면 자바 경로 ex) C:\Program Files\Java\jdk1.7.0_04\bin\native2ascii 를 이용하여 변환이 가능하다)

 

 

 

 

 

 

'홈페이지 만들기 > Spring' 카테고리의 다른 글

iBatis 연동  (0) 2015.04.17
스프링 파일 업로드  (0) 2015.04.16
스프링 ViewResolver  (0) 2015.04.15
스프링 action-servlet 위치 및 파일명 변경  (0) 2015.04.15
스프링 한글 인코딩으로 만들기  (0) 2015.04.15

댓글