스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션3. 메시지, 국제화
CS/김영한 스프링 강의

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션3. 메시지, 국제화

이런식으로 해서 다중언어 지원 하려고 할 때

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=수량

 

접근 언어를 인식하는 방법은 HTTP 헤더에 accept-language값을 이용하거나 사용자가 직접 언어를 선택하게 하고, 쿠키같은걸 써도 된다.

등록은 직접 할 수도 있지만 스프링 부트를 쓰면 자동으로 해준다.

application.properties 설정 파일에서 다음 코드를 넣는다.

spring.messages.basename=messages // 기본값으로 작성 안해도 됨

spring.messages.basename=messages,config.i18n.messages // 커스텀 할 때

 

resources 밑에 파일명 messages.properties을 만들고 언어 기본값을 넣어준다. 이름 명이 무조건 같아야 함. 언어를 더 추가하고 싶으면 뒤에 _en을 붙인다. IntelliJ가 알아서 번들로 묶어준다.

언어값이 null이면 기본값 언어를 출력한다.

 

원래 이걸 적용하려면 타임리프에서 뭘 해야되네 말아야되네.. 할 수 있지만 이미 선배 개발자님들이 다 해놓으셨다.

타임리프 내에 #{} 문법을 만들어놔서 걍 쓰면 됨.

 

 

영어는 형식에 맞춰 걍 추가하면 된다.

요청 헤더에서 영어가 우선순위 위에 있어서 영어가 출력된거다. 하지만 사용자가 굳이 자기 웹 브라우저 언어 설정이나 시스템 설정을 잘 안바꿀테니 쿠키나 세션에 언어 설정을 저장해서 불러오는 방식으로 많이 한다. 이걸 스프링의 LocaleResolver가 해준다. 그래서 설정 기능 추가하고 싶으면 저거 찾아보면 됨.