본문 바로가기
Spring

Thymeleaf 템플릿 엔진에서 로케일 텍스트 메시지 처리

by jayden-lee 2019. 7. 25.
728x90

로케일 관련 텍스트 메시지 파일 생성

로케일 관련 텍스트 메시지 파일은 외부화 해서 웹 페이지와 독립적으로 개발하는 것이 효율적입니다. 스프링은 MessageSource 인터페이스를 구현한 메시지 소스로 텍스트 메시지를 해석할 수 있다.

 

messageSource를 Bean으로 등록하면, DispatcherServlet이 자동 감지하여 등록합니다. MessageSource 인터페이스의 구현체인 ResourceBundleMessageSource 클래스는 로케일마다 따로 리소스 번들을 생성하고 이를 이용하여 메시지를 해석합니다.

@Bean
public MessageSource messageSource() {
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("messages"); // 기본 이름이 messages 리소스 번들을 로드
    messageSource.setDefaultEncoding("UTF-8"); // 인코딩 설정하지 않으면 한글은 깨져서 보임
    return messageSource;
}

Message 리소스 번들 생성

resources 폴더 아래에 messages.properties, messages_ko.properties, messages_en.properties 등 로케일 파일을 생성한다.

 

Resource Bundle

Thymeleaf 템플릿 엔진에서 다국어 처리

<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Locale Text Message Example</title>
</head>

<body>
    <div>
        <span th:text="#{welcome.message}"/>
    </div>
</body>
</html>

댓글