본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 스프링 부트에서 메시지 국제화, Gradle

by 환풍 2023. 9. 18.
728x90

 

 

1
2
3
4
5
6
7
@Bean
public MessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasenames("messages", "errors");
    messageSource.setDefaultEncoding("utf-8");
    return messageSource;
}
cs

원래라면 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource 인터페이스를 빈으로 등록해야한다.

 

하지만, 스프링 부트를 사용하면 스프링 부트가 MessageSource를 자동으로 스프링 빈으로 등록한다.

따라서 위 코드는 없어도 된다.

 

application.properties

application.properties에서 spring.messages.basename=messages 를 작성한다.

이는 기본 값이라 작성하지 않아도 위 코드가 자동으로 등록된다.

 

messages.properties

messages.properties는 locale이 지정되지 않았을때 기본으로 출력할 properties이고,

messages_en.properties는 locale이 en으로 지정됐을때 출력되는 properties이다. 경로는 src/main/resources 아래에.

 

(static) index.html

이후 #{userId}를 통해 '아뒤'로 바껴야하는데 바뀌지 않았다. 왜그런 것일까? 바로 static인 정적 폴더에 있기 때문이다.

 

(template) boardWrite.html

얘는 성공적으로 #{board.title}과 #{board.content} 내용이 잘 먹힌것을 볼 수 있다.

 

구글 설정 -> 언어 -> 한국어

이러면 자동으로 한국어로 나오고,

구글 설정 -> 언어 -> 영어

이렇게하면 자동으로 messages_en.properties가 적용되어 나타난다.

반응형

댓글