참새의 이야기
[MVC2] 메시지와 국제화 본문
메시지
기획자가 어느 날 문득 화면의 문구가 마음에 들지 않는다며 상품명
을 모두 상품 이름
으로 바꿔 달라고 하는 일이 발생했다고 가정하자.
HTML의 label의 문구를 하나하나 바꿔야 한다.
작은 서비스라면 금방 바꿀 수 있겠지만 서비스의 규모가 커지면 오랜 시간이 걸리는 작업이 될 것이다.
작은 서비스라도 실수로 몇 개 빠뜨리는 일이 생길 수도 있다.
이런 일을 방지하기 위해 메시지라는 기능이 있다.
우선, messages.properties
라는 파일을 만든다.
해당 파일에는 아래와 같이 메시지를 저장한다.
label.item=상품
label.item.id=상품 ID
label.item.itemName=상품명
label.item.price=가격
label.item.quantity=수량
템플릿에서는 아래와 같이 활용할 수 있다.
<label for="itemName" th:text="#{label.item.itemName}">상품명</label>
페이지 이름, 레이블, 그리고 버튼까지 어디든 th:text=”${…}”
로 메시지를 적용할 수 있다.
국제화
위의 메시지에서는 한국어를 언어로 한 메시지만 적용 가능하다.
국제 서비스에서는 다른 언어를 적용해야 할 일이 생길 것이다.
label.item=Item
label.item.id=Item ID
label.item.itemName=Item Name
label.item.price=price
label.item.quantity=quantity
위와 같은 영어 메시지 파일을 사용하려면 파일명을 messages_en.properties
로 지정하면 된다.
사용자의 언어 설정 값의 우선순위에서 한국어보다 영어가 우위에 있다면 자동으로 messages_en.properties
파일의 문구를 가져와서 출력한다.
reference
이 글은 김영한님의 '스프링 MVC 2편'을 듣고 작성했습니다.
'Spring' 카테고리의 다른 글
[MVC2] Bean Validation (0) | 2023.08.08 |
---|---|
[MVC2] Validation (2) | 2023.08.08 |
[MVC2] Thymeleaf - 스프링 통합과 폼 (0) | 2023.08.05 |
[MVC2] Thymeleaf - 기본 (0) | 2023.08.05 |
[MVC1] 데이터 담아 Redirect하기 (2) | 2023.08.04 |