오봉이와 함께하는 개발 블로그
스프링 MVC 2 - 웹 애플리케이션 국제화 적용(Thymeleaf) 본문
웹 애플리케이션에 국제화 적용하기
국제화를 적용하기 위해 영어 메시지를 추가하자.message_en.properties
label.item=Item
label.item.id=Item ID
label.item.itemName=Item Name
label.item.price=price
label.item.quantity=quantity
page.items=Item List
page.item=Item Detail
page.addItem=Item Add
page.updateItem=Item Update
button.save=Save
button.cancel=Cancel
앞에서 템플릿 파일에는 모두 #{...}
를 통해서 메시지를 사용하도록 적용해두었기 때문에 국제화 작업은 거의 끝났다.
웹으로 확인
웹 브라우저의 언어 설정 값을 변경하면서 국제화 적용을 확인하자.
크롬 브라우저 -> 설정 -> 언어를 검색하고 우선순위를 영어로 변경해서 테스트해보자.
웹 브라우저의 언어 설정 값을 변경하면 요청시 Accept-Language
의 값이 변경된다.
Accept-Language
는 클라이언트가 서버에 기대하는 언어 정보를 담아서 요청하는 HTTP 요청 헤더다.
스프링의 국제화 메시지 선택
메시지 기능은 Locale
정보를 알아야 언어를 선택할 수 있다.
결국 스프링도 Locale
정보를 알아야 언어를 선택할 수 있는데 스프링은 언어 선택시 기본으로 Accept-Language
헤더의 값을 사용한다.
그리고 타임리프도 스프링의 메시지 소스를 찾아서 locale
정보를 얻어 렌더링 한다.
LocaleResolver
스프링은 Locale
선택 방식을 변경할 수 있도록 LocaleResolver
라는 인터페이스를 제공하는데, 스프링 부트는 기본으로 Accept-Language
를 활용하는 AcceptHeaderLocaleResolver
를 사용한다.
LocaleResolver 인터페이스
public interface LocaleResolver {
Locale resolveLocale(HttpServletRequest request);
void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale);
}
LocaleResolver 변경
만약 Locale
선택 방식을 변경하려면 LocaleResolver
의 구현체를 변경해서 쿠키나 세션 기반의 Locale
선택 기능을 사용할 수 있다.
예를 들면 고객이 직접 애플리케이션에서 Locale
을 선택하도록 하는 것이다.
-> 예 : 한글 https://www.apple.com/kr/, 영어 https://www.apple.com/
출처 : 인프런 김영한 지식공유자님 강의 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
'BE > Thymeleaf' 카테고리의 다른 글
스프링 MVC 2 - 웹 애플리케이션에 메시지 적용(Thymeleaf) (0) | 2022.08.18 |
---|---|
스프링 MVC 2 - 셀렉트 박스 (0) | 2022.08.18 |
스프링 MVC 2 - 라디오 버튼 (0) | 2022.08.18 |
스프링 MVC 2 - 체크 박스 멀티 (0) | 2022.08.17 |
스프링 MVC 2 - 체크 박스 단일 (0) | 2022.08.17 |