본문 바로가기
Spring

Thymeleaf 에서 현재 로케일 값 출력하기

by jayden-lee 2019. 7. 25.
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>

댓글