-
[Spring + Thymeleaf] messages 국제화Spring 2025. 11. 14. 21:56
메시지 리소스 번들
src/main/resources 하위에 메시지 프로퍼티 파일들을 생성합니다.
messages.properties
home.welcome=안녕하세요~!messages_ko.properties
home.welcome=안녕하세요~!messages_en.properties
home.welcome=Hi~!
설정 클래스
LocaleChangeInterceptor를 다음과 같이 설정해주면, URL 파라미터로 lang을 받아서 처리해줍니다. API를 사용할 때, lang=ko와 같은 값을 넘겨준 경험이 있으시다면 익숙할 것입니다.
@Configuration public class WebConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(Locale.KOREA); return localeResolver; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("lang"); // URL 파리미터로 lang을 받아서 처리 return localeChangeInterceptor; } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); } }
컨트롤러
@Controller public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; } }
HTML
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p th:text="#{home.welcome}">호호</p> </body> </html>th:text의 '#{...}'은 메시지 표현식으로, 내부의 값(home.welcome)을 key로하여 메시지 프로퍼티값(안녕하세요~! 혹은 Hi~!)을 가져올 수 있게 해줍니다.
결과


참고
Thymeleaf document
(https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html)
'Spring' 카테고리의 다른 글
[Spring MVC] Form 검증 (0) 2025.11.13 [Spring] 전자정부프레임워크 crypto를 활용한 암호화 (0) 2024.06.17 [Spring] @RequestBody와 @ResponseBody를 사용해 JSON 형식의 데이터 주고받기 (0) 2023.08.31 스프링 IoC 컨테이너와 빈의 생성 (0) 2023.06.26