본문 바로가기
JAVA/SpringBoot

타임리프의 인라인 표현식과 국제화:동적 웹 개발과 다국어 지원

by GangDev 2024. 3. 26.

 

타입리프의 인라인 표현식과 국제화에 대해 알아보자.
이 두 기능을 통해 동적 스크립트 생성, 다국어 지원 등 다양한 요구사항을 유연하고 효과적으로 처리할 수 있다.
인라인 표현식은 자바스크립트와 CSS에 서버 사이드 데이터를 직접 적용할 수 있게 하며, 국제화 기능은 다양한 언어의 사용자들에게 맞춤형 콘텐츠를 제공해준다.
(웹 애플리케이션의 사용자 경험과 접근성 향상)

 

인라인 표현식 >>
th:inline="javascript" 와 th:inline="text"
HTML 내에서 자바스크립트 또는 일반 텍스트에 타임리프 표현식을 직접 사용해서 동적으로 데이터를 다룬다.
th:inline = "javascript" : 자바스크립트 내에서 타임리프 변수를 직접 사용할 수 있게 한다.
th:inline = "text" : 일반 텍스트 내에서 타임리프 변수를 사용할 수 있게 한다.

<script th:inline="javascript">
  var username = [[${user.name}]];
  alert('Hello, ' + username + '!');
</script>

 

위 예시에서, [[${user.name}]] 은 타임리프를 통해 서버 사이드에서 user.name 값을 자바스크립트 변수에 할당한다.

<p th:inline="text">Welcome to our application, [[${user.name}]]!</p>

 

[[${user.name}]] 은 HTML 텍스트 내에서 사용자 이름을 동적으로 표시한다.

 

국제화 >>

 

다양한 언어 및 지역 설정에 따라 텍스트를 동적으로 변경하여 다국어 지원을 제공한다.
messages 파일을 여러 언어로 작성하고, 타임리프의 메시지 표현식 ('#{...}')을 사용하여 적용하면 된다.

#messages_en.properties

welcome.message=Welcome, user!

#messages_ko.properties

welcome.message=환영합니다, 사용자님!
<p th:text="#{welcome.message}">Default welcome message</p>

 

위 코드에서 타임리프는 사용자의 언어 설정에 따라 적절한 welcome.message 를 선택한다.