본문 바로가기
☕Java/Spring

스프링 국제화(Internationalization, I18N)

by 캔 2024. 4. 2.

스프링 웹 MVC는 국제화를 단순화하도록 지원해 준다. 국제화를 위해서는 LocaleResolver, MessageSource, LocaleChangeInterceptor의 빈 등록이 필요하다.

 

LocaleResolver는 사용자의 로케일을 얻는다.

 

  • AcceptHeaderLocaleResolver - 요청의 Accept-Language 헤더 상의 로케일을 반환한다.
  • SessionLocaleResolver - 세션에 저장된 로케일을 반환한다.
  • FixedLocaleResolver - 고정된 기본 로케일을 반환한다.

MessageSource는 현재 로케일에 맞는 메시지를 가져온다.

 

ResourceBundleMessageSource - 특정 빈 이름으로 자원 번들에 접근하는 MessageSource 구현체

ReloadedResourceBundleMessageSource - 자원 번들 리로딩을 지원하는 ResourceBundleMessageSource

 

 

LocaleChangeInterceptor 요청 파라미터를 사용해서 요청의 현재 로케일 변화를 감지한다. 빈 등록 후 인터셉터로 등록하여 사용하면 된다.