Application의 기능 중에는 MessageSource도 있다.
스크린샷 2020-01-22 오후 4.13.23.png

MessageSource

메세지를 다국화 할 수 있는 인터페이스이다.

예제

먼저 resources 밑에 원하는 언어의 messages.properties 파일을 만들어준다.(ex. 한글: messages_ko_KR.properties, 영어: messages_en.properties)

messages.properties 파일의 내용은 "key값"="value값이 기본이며 원한다면 {0}, {1} 등을 추가하여 원하는 string을 추가해서 사용할 수도 있다.
스크린샷 2020-01-22 오후 5.04.21.png

그 후 ,MessageSource를 Bean 등록해준다. 이때 이름은 MessageSource messageSource로 해주어야한다.

ReloadableResourceBundleMessageSource 객체를 생성해주고, setBasename 메서드로 아까 만들어준 messages 프로퍼티가 존재하는 bundle을 가리키게 하고, 한글이 깨지지 않게 하기위해 UTF-8로 인코딩해준다.
스크린샷 2020-01-22 오후 4.54.35.png

그 후 getMessage 메서드를 사용해서 값을 가져올 수 있다.
첫 번째 인자는 .properties 파일에서 설정해준 key값이고, 두 번째 인자는 아까 {0}으로 표시해준 부분에 들어가는 string 값들이다. 세 번째인자는 어떤 properties 파일을 사용할건지 정해주는 것이다.
스크린샷 2020-01-22 오후 5.08.36.png

제대로 출력됨을 볼 수 있다.

스크린샷 2020-01-22 오후 5.08.53.png

0개의 댓글