- 텍스트 국제화(Text Internationalization)란?
텍스트 국제화는 다국어 지원을 위해 사용되는 기술이다. 웹 애플리케이션이나 소프트웨어를 다국어로 제공할 때, 각 언어에 맞는 텍스트를 표시해야 하는데, 텍스트 국제화는 이러한 다국어 지원을 가능하게 한다.
텍스트 국제화를 사용하면 애플리케이션에서 텍스트를 하드코딩하지 않고, 대신에 각 텍스트에 고유한 식별자를 부여하고 이 식별자에 해당하는 텍스트를 메시지 파일에 저장한다. 이 메시지 파일은 다국어 지원을 위해 여러 언어로 작성될 수 있다.
- 사용 방법
기본적으로 Thymeleaf는 '#{}' 구문을 사용하여 메시지 소스에서 텍스트를 가져오도록 구성되어 있으며, 이는 주로 프로퍼티 파일에서 가져온 메시지를 나타내는 데 사용된다. 프로퍼티 파일에는 각 언어별로 텍스트가 저장되어 있어서, 언어 설정에 따라 다른 언어의 텍스트를 가져올 수 있다.
1) 한국어 메시지 파일(messages_ko.properties)
welcome.message=안녕하세요! 환영합니다!
2) 영어 메시지 파일(messages_en.properties)
welcome.message=Hello! Welcome!
- 폴더 구조
src
└── main
└── resources
└── messages
├── messages_en.properties
├── messages_fr.properties
├── messages_ko.properties
└── messages_ja.properties
사용자의 언어 설정은 주로 HTTP 요청의 Accept-Language 헤더를 기반으로 서버에서 결정된다. 서버는 이 헤더를 해석하여 사용자의 기본 언어 설정을 파악하고, 이 정보를 사용하여 적절한 다국어 컨텐츠를 제공한다.
아래 코드에서 th:text="#{welcome.message}"는 다국어 메시지 소스에서 welcome.message에 해당하는 텍스트를 가져와서 화면에 표시한다. 만약 해당 메시지가 없는 경우 Fallback Message가 대신 표시된다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>다국어 메시지 테스트</title>
</head>
<body>
<p th:text="#{welcome.message}">Fallback Message</p>
</body>
</html>