스프링/4. 스프링 MVC-2

25. 메시지, 국제화 적용

sdafdq 2023. 8. 27. 14:34

messages.properties

 

hello=안녕
hello.name=안녕 {0}

label.item=상품
label.item.id=상품 ID
label.item.itemName=상품명
label.item.price=가격
label.item.quantity=수량
page.items=상품 목록
page.item=상품 상세
page.addItem=상품 등록
page.updateItem=상품 수정
button.save=저장
button.cancel=취소

 

타임리프 템플릿

<h2 th:text="#{page.addItem}">상품 등록 폼</h2>

#{~} 이게 메시지 접근자임.

이렇게 하면 이제 저 messages.properties의 page.addItem을 가져옴.

 

<h2 th:text="#{hello.name(${item.name})}">상품 등록 폼</h2>

이렇게 인자넣기 가능. 함수처럼 쓰면 됨.

 

 

message_en.properties

 

hello=hello
hello.name=hello {0}


label.item=ITEM
label.item.id=Item ID
label.item.itemName=Item Name
label.item.price=Price
label.item.quantity=Count
page.items=Item List
page.item=Item Details
page.addItem=Add Item
page.updateItem=Edit Item
button.save=Save
button.cancel=Cancel

success.addItem = Success Add Item!!

끝. 이제 사용자의 요청에 따라서 알아서 해줌.

사용자의 요청에서 Accept였나 그게 영어면 이제 이걸로 보여줌

이 Accept는 아마 브라우저 설정 언어에서 영어를 우선순위 제일 위로 두면 영어가 우선순위 높게 바뀔거임.

 

 

 

 

 

일단 기본적으로는 이렇게 요청의 헤더로 검사를 해서 언어를 선택하는데,

 

클라이언트가 직접 언어를 선택하는 경우가 있다.

그럴 때는, 우선 기본적으로 요 언어를 선택하는 로직은

LocalResolver의 구현체인 AcceptHeaderLocalResolver를 사용한다.

근데 이거를, CookieLocaleResolver나 SessionLocaleResolver를 통해서 바꿀 수 있다.

 

세션에 관한 설명이 나중에 나오니, 그 때 기억나면 살펴 보도록 하자.

 

'스프링 > 4. 스프링 MVC-2' 카테고리의 다른 글

27. 검증 직접 구현  (0) 2023.08.28
26. 검증  (0) 2023.08.27
24. 메시지, 국제화  (0) 2023.08.27
23. 셀렉트 버튼  (0) 2023.08.27
22. 라디오버튼  (0) 2023.08.27