이야기앱 세상
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>
------------------------------------------------------------------
'IT > JSP' 카테고리의 다른 글
servlet 매핑하기 (0) | 2016.03.23 |
---|---|
JSTL i18n capable formatting 라이브러리2 (0) | 2016.03.22 |
JSTL core 라이브러리 정리 (0) | 2016.03.22 |
post 방식으로 데이터 전송시 한글 깨짐 해결 (0) | 2016.03.22 |
tomcat 6.0 에서 get 방식으로 한글 데이터 전송시 깨짐 현상 해결 (0) | 2016.03.22 |