Spring Framework/SPRING MVC

메시지, 국제화

거북이의 기술블로그 2024. 9. 24. 16:22
1. 메시지
2. 국제화

 

Bean 등록 (message)

  •  직접 등록
@Bean
	public MessageSource messageSource(){
		ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
		messageSource.setBasenames("messages", "errors");
		messageSource.setDefaultEncoding("utf-8");
		return messageSource;
	}
  • 자동 등록
    • messages 라고 자동 등록 되어있음
  • spring boot 등록
spring.messages.basename=messages (기본 값)
// 값의 messages를 변경하면 파일이름을 다르게 설정할 수 있음

 

메시지, 국제화 파일 생성

  • /Resources 하위에 생성
    • messages.properties
    • messages_en.properites

 

메시지,국제화 사용법

  • messages.properties
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=취소
  • html 페이지 사용법
#{...}

ex) <div th:text="#{label.item}"></h2>

 

Spring Locale 설정

  • Spring 은 기본으로 http 헤더의 accept-Language를 사용
  • 수정하고 싶을경우 -> LocaleResolver 인터페이스 활용
클래스 설명
AcceptHeaderLocaleResolver Accept-Language를 기반으로 Locale 설정
- setLocale() 지원 x
SessionLocaleResolver setLocale()을 통해 세션에 Locale 정보 저장
CookieLocaleResolver setLocale()을 통해 쿠키에 Locale 정보 저장
FixedLocaleResolver 웹 요청에 상관없이 특정 Locale 설정
- setLocale() 지원 x