Spring
Thymeleaf 에서 현재 로케일 값 출력하기
jayden-lee
2019. 7. 25. 14:30
728x90
쿠키값에 따라 로케일 해석
CookieLocaleResolver
클래스는 사용자 브라우저의 쿠키값에 따라 로케일을 해석한다. 해당 쿠키가 없으면, accept-language 헤더로 기본 로케일을 설정한다. LocaleChangeInterceptor
클래스는 Http 요청에 특정한 매개변수 값이 존재하는지 확인하고, 해당 값으로 사용자 로케일을 변경한다.
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
private static final Locale DEFAULT_LOCALE = new Locale("en");
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("language");
return localeChangeInterceptor;
}
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setCookieName("language");
localeResolver.setCookieMaxAge(3600); // 쿠키 유지 시간 (초)
localeResolver.setDefaultLocale(DEFAULT_LOCALE); // 기본 로케일
return localeResolver;
}
}
현재 로케일 값 출력
<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymeleaf 로케일 값 출력</title>
</head>
<body>
<span th:text="${#locale}"></span>
</body>
</html>