Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

참새의 이야기

[MVC2] 메시지와 국제화 본문

Spring

[MVC2] 메시지와 국제화

참새짹짹! 2023. 8. 6. 11:02

메시지

기획자가 어느 날 문득 화면의 문구가 마음에 들지 않는다며 상품명 을 모두 상품 이름으로 바꿔 달라고 하는 일이 발생했다고 가정하자.

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