서비스에 국제화 추가하기 - Locale

Jinsan Lee·2022년 7월 17일
0

애플리케이션이 서비스를 제공할 때에는 당연히 각국의 사용자들이 존재한다.
그러므로 그에 맞는 다양한 언어 호환성을 지원해주는 것이 좋다.

서비스에 대한 LocaleResolver와 ResourceBundleMessageSource를 생성하기 위해 메인 클래스를 위와 같이 수정하였다.

위에서 주목할 점은 localeResolver()에서 Locale.US를 디폴트 로케일로 설정했다는 것이다.
이는 메시지를 조회할 때 Locale을 설정하지 않으면 messageSource는 디폴트 로케일(Locale.US)를 사용한다.

  • message_es.properties 파일

  • message_en.properties 파일

여기까지 메시지와 @Beans 애노테이션을 구현했으므로 메시지 리소스를 호출하도록 컨트롤러나 서비스에서 코드를 수정하자.

  • 서비스 클래스 코드 수정

위 코드에서 강조해야 할 사항은 세 가지가 존재한다.

  1. 컨트롤러 자체에서 로케일을 전달 받을 수 있다는 것.
  2. 전달 받은 매개변수를 사용해서 message.getMessage("license.create.message", null, locale)을 호출할 수 있다는 것.
  3. message.getMessage("license.create", null, null)처럼 로케일 없이도 호출할 수 있다는 것.

그리고 마지막으로 서비스의 createLicense 코드에 매개변수 locale이 추가되었으므로 licenseService와 의존되어 있는 컨트롤러의 createLicense 메소드 매개변수도 수정해주자. (깃허브에 업로드)

그럼 아래와 같은 최종 결과를 확인할 수 있다.

0개의 댓글