이런식으로 해서 다중언어 지원 하려고 할 때
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가 해준다. 그래서 설정 기능 추가하고 싶으면 저거 찾아보면 됨.
'CS > 김영한 스프링 강의' 카테고리의 다른 글
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션5. 검증2 - Bean Validation (0) | 2023.07.31 |
---|---|
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션4. 검증1 - Validation (0) | 2023.07.30 |
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션3. 타임리프 - 스프링 통합과 폼 (0) | 2023.07.25 |
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 섹션2. 타임리프 - 기본 기능 (0) | 2023.07.24 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 섹션7. 스프링 MVC - 웹 페이지 만들기 (0) | 2023.07.22 |