Post

Spring 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 3. 메시지, 국제화

3. 메시지, 국제화


메시지, 국제화 소개

다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.

  • 메시지 관리용 파일
  • messages.properties
1
2
3
4
5
item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량

key 값을 불러와서 사용
<label for="itemName" th:text="#{item.itemName}"></label>

국제화

messages.properties을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.

한국에서 접근한 것인지 영어에서 접근한 것인지는 인식하는 방법은 HTTP accept-language 해더 값을 사용하거나 사용자가 직접 언어를 선택하도록 하고, 쿠키 등을 사용해서 처리하면 된다.

스프링 메시지 소스 설정

메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource 를 스프링 빈으로 등록하면 되는데, MessageSource 는 인터페이스이다. 따라서 구현체인 ResourceBundleMessageSource 를 스프링 빈으로 등록하면 된다.

스프링 부트

스프링 부트를 사용하면 스프링 부트가 MessageSource 를 자동으로 스프링 빈으로 등록한다.

스프링 부트 메시지 소스 기본 값

spring.messages.basename=messages

타임리프 메시지 적용

타임리프의 메시지 표현식 #{...} 를 사용하면 스프링의 메시지를 편리하게 조회할 수 있다. 예를 들어서 방금 등록한 상품이라는 이름을 조회하려면 #{label.item} 이라고 하면 된다.

렌더링 전

<div th:text="#{label.item}"></h2>

렌더링 후

<div>상품</h2>


References: 김영한 - [스프링 MVC 2편 - 백엔드 웹 개발 활용 기술]
This post is licensed under CC BY 4.0 by the author.