JSP에서 JSTL을 사용한 메시지 번들 관리와 다국어 지원 방법

JSP에서 JSTL을 사용한 메시지 번들 관리와 다국어 지원 방법

이번 글에서는 다국어 지원을 위한 메시지 번들 관리 방법에 대해 알아보겠습니다. 글로벌 웹 애플리케이션에서는 다양한 언어와 지역에 맞춘 콘텐츠를 제공하는 것이 중요한데, 이를 위해 JSTL의 <fmt:bundle><fmt:message> 태그를 사용하여 메시지 번들을 관리하고, 번역된 콘텐츠를 JSP 페이지에 적용하는 방법에 대해 알아봅니다.

1. 다국어 지원의 필요성

글로벌 웹 애플리케이션을 개발할 때, 다양한 언어와 지역에 맞춘 콘텐츠를 제공하는 것이 필수적입니다. 이를 위해 다국어 지원을 구현하고, 각 언어에 따라 메시지를 번역하여 제공하는 방법이 필요합니다. JSP에서는 JSTL의 <fmt:bundle><fmt:message> 태그를 사용하여 다국어 메시지를 처리할 수 있습니다. 이러한 태그를 통해 동일한 페이지에서 사용자의 언어 설정에 따라 자동으로 번역된 콘텐츠를 표시할 수 있습니다.

2. 메시지 번들 관리: <fmt:bundle> 태그

<fmt:bundle> 태그는 메시지 리소스 번들(Resource Bundle)을 지정하는 데 사용됩니다. 리소스 번들은 일반적으로 각 언어별로 번역된 메시지를 포함하는 프로퍼티 파일(.properties)로 구성됩니다. 이 태그를 사용하면 지정한 리소스 번들에서 메시지를 가져와 사용할 수 있습니다.

2.1 <fmt:bundle> 태그의 주요 속성

  • basename: 메시지 리소스 번들의 기본 이름을 지정합니다.

3. 다국어 메시지 출력: <fmt:message> 태그

<fmt:message> 태그는 <fmt:bundle> 태그에서 지정한 리소스 번들로부터 특정 메시지를 가져와 출력하는 데 사용됩니다. 이 태그를 사용하여 다국어 메시지를 JSP 페이지에 쉽게 적용할 수 있습니다.

3.1 <fmt:message> 태그의 주요 속성

  • key: 리소스 번들에서 가져올 메시지의 키를 지정합니다.

3.2 메시지 번들 예제

먼저, 메시지 번들 파일을 준비해야 합니다. 예를 들어, messages_en.propertiesmessages_ko.properties라는 두 개의 파일을 생성합니다.

messages_en.properties (영어)

greeting=Hello
farewell=Goodbye

messages_ko.properties (한국어)

greeting=안녕하세요
farewell=안녕히 가세요

이제 JSP 페이지에서 이 메시지 번들을 사용해 다국어 지원을 구현해보겠습니다.

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>
<head>
    <title>JSTL fmt:bundle 및 fmt:message 태그 예제</title>
</head>
<body>
    <h1>JSTL fmt:bundle 및 fmt:message 태그 예제</h1>

    <!-- 한국어 메시지 번들 설정 -->
    <fmt:setLocale value="ko_KR" />
    <fmt:bundle basename="messages">
        <p>한국어 인사말: <fmt:message key="greeting" /></p>
        <p>한국어 작별인사: <fmt:message key="farewell" /></p>
    </fmt:bundle>

    <!-- 영어 메시지 번들 설정 -->
    <fmt:setLocale value="en_US" />
    <fmt:bundle basename="messages">
        <p>English Greeting: <fmt:message key="greeting" /></p>
        <p>English Farewell: <fmt:message key="farewell" /></p>
    </fmt:bundle>

</body>
</html>

예제 설명

  • 메시지 번들 파일: 두 개의 .properties 파일을 사용하여 한국어(messages_ko.properties)와 영어(messages_en.properties)에 대한 번역된 메시지를 정의합니다. 각 파일에는 동일한 키(greeting, farewell)에 대해 다른 언어로 번역된 메시지가 포함됩니다.
  • 로케일 설정과 번들 지정: JSP 페이지에서 <fmt:setLocale> 태그를 사용하여 로케일을 설정하고, <fmt:bundle> 태그를 사용하여 해당 로케일에 맞는 메시지 번들을 지정합니다. 이후 <fmt:message> 태그를 사용하여 번들에서 메시지를 가져와 출력합니다.
  • 다국어 메시지 출력: 사용자가 선택한 로케일에 따라 JSP 페이지는 자동으로 해당 언어로 번역된 메시지를 표시합니다. 이 예제에서는 한국어와 영어로 메시지를 출력하는 방법을 보여줍니다.
JSTL fmt:bundle 및 fmt:message 태그 예제 코드 실행 결과 화면

결론

JSTL의 <fmt:bundle><fmt:message> 태그를 사용하면 다국어 지원을 쉽게 구현할 수 있습니다. 이 방법을 사용하면 동일한 JSP 페이지에서 다양한 언어로 번역된 콘텐츠를 제공할 수 있어, 글로벌 웹 애플리케이션을 개발할 때 매우 유용합니다. 각 언어별 메시지 번들을 관리함으로써 코드의 복잡성을 줄이고, 유지보수를 쉽게 할 수 있습니다.

함께 보면 좋은 이전 게시글

위로 스크롤