본문 바로가기

Servlet&JSP

JSTL i18n capable formatting 라이브러리 1 (국제화)

반응형

-  JSTL i18n capable formatting 라이브러리의 국제화 태그를 이용해 국제화 지원

jsp 페이지에 i18n capable formatting 라이브러리를 사용할 수 있도록 taglib 디렉티브 명시

<%@ taglib prefix="fmt" uri=http://java.sun.com/jsp/jstl/fmt %>

prefix : 접두사

uri : i18n capable formatting 라이브러리가 존재하는 위치

 

1) <fmt:bundle basename="properties파일경로및 파일명" prefix="prefix">....</fmt:bundle>

- 국제화를 적용을 위해 properties 파일경로 및 파일을 읽어와서 언어 적용

 

basename :  사용할 언어별 데이터가 key와 value의 쌍으로 작성된 properties 파일의 경로및 파일명 지정

prefix :  bundle 태그 내에서 message 태그를 통해 value를 읽어올 때 key속성 앞에 접두사 지정

 

2) <fmt:message key="메시지의 key값" bundle="setBundle 태그를 통해 로딩한 번들을 얽어올 때 사용함" var="변수명" scope="범위" />

- 국제화를 적용한 메시지의 key에 대한 value를 호출

 

key : 메시지의 key값을 통해 value 호출

var :  변수명을 지정하면 message태그를 출력기능을 상실하고 변수를 out 태그 또는 el를 통해 호출 하여 value를 출력해야 함

 

3) <fmt:setBundle basename="properties파일경로및 파일명" var="메시지를 저장할 변수명" scope="범위" />

- 페이지 전체에서 사용할 번들을 지정

 

--------------------------------------------------

국제화 처리 예)

1. 각 페이지에서 읽어갈 key와 value가 저장될 properties 파일 작성

 

message.properties <-  default 언어가 사용될 파일

message_ko.properties <- 한글이 사용될 파일

message_en.properties <- 영어가 사용될 파일

 

2. properties 파일이 들어갈 폴더 생성

WEB-INF/classes/폴더 생성(bundle) <- 배포시 (Dynamic Web Project를 만들어 이클립스에서 작업중이라면 Java Resources:src 에 폴더를 만듬, 자동적으로 classes 이하에 폴더가 복사됨)

 

3. 생성한 폴더에 message.properties, message_ko.properties 파일 등을 만들고 내용 입력

message_ko.properties 예

 

member_admin_title=회원관리

member_admin_name=관리자

member_admin_email=admin@test.com
member_admin_phone= 관리자 연락처는 {0}입니다. <- {0}은 message 태그 호출시 param 태그로 전달되는 데이터를 받음

 

4-1. properties 파일의 내용을 읽어갈 jsp 파일 작성(bundle 태그 이용시)

bundle 태그를 사용하면 지정된 영역내에 단일한 언어를 적용함

---------------------------------------------------------------

<%@ page contentType = "text/html; charset=euc-kr" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:bundle basename="bundle.message">
<html>
<head>

   <title><fmt:message key="member_admin_title"/></title>

</head>
<body>

  <fmt:message key="member_admin_name"/>
  <br>
   <fmt:message key="member_admin_phone">
      <fmt:param value="${phone}" />
   </fmt:message>
</body>
</html>
</fmt:bundle>

------------------------------------------------------------------

4-2. properties 파일의 내용을 읽어갈 jsp 파일 작성(setBundle 태그 이용시)

setBunde 태그를 사용할 경우 setBundle 태그에 변수를 지정해서 페이지내에서

적용할 bundle를 선택적으로 사용할 수 있음

------------------------------------------------------------------

<%@ page contentType = "text/html; charset=euc-kr" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle var="msg" basename="bundle.message"/>
<html>
<head>

  <title><fmt:message bundle="${msg}" key="member_admin_title"/></title>

</head>
<body>

<fmt:message bundle="${msg}" key="member_admin_name"/>
<br>
 <fmt:message bundle="${msg}" key="member_admin_phone">
    <fmt:param value="${phone}" />
 </fmt:message>
</body>
</html>

------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

반응형