LocaleResolver란?

김준영·2022년 10월 14일
1

다국어 처리를 위해 Spring MVC는 LocaleResolver를 이용하여 웹 요청과 관련해서 Locale을 추출하고 이 Locale 객체를 이용해서 알맞은 언어의 메시지를 선택한다.

쉽게 말해 웹 브라우저의 언어 설정을 한국어, 영어 혹은 스페인어 등 설정한 언어에 따라 알맞은 메시지를 출력한다.

LocaleResolver 종류

타입설명
AcceptHeaderLocaleResolver웹 브라우저가 전송한 Accept-Language 헤더로부너 Locale 선택한다. setLocale()메서드를 지원하지 않는다
CookieLocaleResolver쿠키를 이용해서 Locale 정보를 구한다. setLocale() 메서드는 세션에 Locale 정보를 저장한다.
SessionLocaleResolver세션으로부터 Locale 정보를 구한다. setLocale() 메서드는 세션에 Locale 정보를 저장한다.
FixedLocaleResolver웹 요청에 상관없이 특정한 Locale로 설정한다. setLocale() 메서드를 지원하지 않는다.

예시 코드로 SessionLocaleResolver

@Bean
	public LocaleResolver localeResolver(){
		SessionLocaleResolver localeResolver = new SessionLocaleResolver();
		localeResolver.setDefaultLocale(Locale.US);
		return localeResolver;
	}

	@Bean
	public ResourceBundleMessageSource messageSource(){
		ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
		messageSource.setUseCodeAsDefaultMessage(true);
		messageSource.setBasenames("messages");
		return messageSource;
	}

setDefaultLocale로 Locale.US를 사용하였다.

특정 언어를 선택하면 그 언어에 맞는 properties가 선택된다.


하고있는 공부에 LocaleResolver가 간단하게 나와있어 궁금해서 작성해본다.

참고

profile
ㅎㅎ

0개의 댓글