다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.
messages.properties
item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량
각 HTML(타임리프)들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용할 수 있다.
<label for="itemName" th:text="#{item.itemName}"></label>
메시지 파일을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.
messages_en.properties
item=Item
item.id=Item ID
item.itemName=Item Name
item.price=price
item.quantity=quantity
messages_ko.properties
item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량
영어를 사용하는 사람이면 messages_en.propertis
를 사용하고, 한국어를 사용하는 사람이면 messages_ko.propertis
를 사용하게 개발하면 된다. 이렇게 하면 사이트를 국제화 할 수 있다.
한국에서 접근한 것인지 영어권에서 접근한 것인지를 인식하는 방법은 HTTP accept-language
해더 값을 사용하거나 사용자가 직접 언어를 선택하도록 하고, 쿠키 등을 사용해서 처리하면 된다.
메시지와 국제화 기능을 직접 구현할 수도 있겠지만, 스프링은 기본적인 메시지와 국제화 기능을 모두 제공한다. 그리고 타임리프도 스프링이 제공하는 메시지와 국제화 기능을 편리하게 통합해서 제공한다.