FireDrago

[Thymeleaf] 메시지, 국제화 기능 사용하기 본문

프로그래밍/템플릿 엔진(thymeleaf, jsp)

[Thymeleaf] 메시지, 국제화 기능 사용하기

화이용 2024. 2. 7. 16:13

메시지와 국제화 기능은 클라이언트에게 보여지는 메시지를 한곳에서 관리하고,

Accept Language 헤더 정보에 따라 메시지를 다르게 표시할 수 있는 기능이다.

타임리프는 스프링과 통합하여 메시지 국제화 기능을 쉽게 사용할 수 있도록 해준다. 

먼저 스프링의 메시지 국제화 기능부터 살펴보자

 

1. 스프링에서 메시지와 국제화

MessageSource 인터페이스는 여러 구현체 빈을 통해서, properties, XML 등 여러 파일을 읽어들이고, 로케일 정보에 따라 적절한 메시지를 제공하며, 메시지를 꺼내어 사용할 수 있는 기능을 제공한다. 

 

Locale 정보를 가져올때는 LocaleResolver 인터페이스가 사용된다.

HTTP 헤더에 Accept-Language 헤더의 정보를 읽어올때는 AcceptHeaderLocaleResolver를 사용한다. 

 

2. 타임리프에서 메시지와 국제화

타임리프는 스프링과 연계하여 메시지, 국제화를 쉽게 사용할 수 있도록 해준다.

먼저 properties 파일을 만든다.

한국어 , 영어 버전의 properties

타임리프가 적용된 HTML 파일에서 메시지를 불러올때는 #{...} (메시지 표현식)을 사용한다.

또한 위 파일의 '상품 ID {0}' 에 파라미터를 전달 할 수 도 있다.

일반적인 메시지 사용
파라미터를 전달하는 방법

그렇다면 국제화 기능은 어떻게 사용할까? 

브라우저의 언어설정만 바꿔주면 자동으로 적용된다.