본문 바로가기

개발/JSP

chap16-03 국제화태그

3.2 예제로 사용할 리소스 번들

메시지 처리 태그에 대해서 살펴보기 전에 메시지 태그에서 사용할 리소스 번들 파일을 작성해 보자. 메시지 번들 파일은 클래스 패스에 위치해야 하기 때문에 웹 어플리케이션에서 사용할 메시지 번들 파일은 WEB-INF\classes 디렉토리에 생성하거나 WEB-INF\lib에 포함된 jar 파일에 포함시키면 된다.

먼저 영문 메시지를 보여주는 리소스 번들 파일을 작성해 보자. 이 파일은 다음과 같다.

chap16\WEB-INF\classes\resource\message.properties
TITLE = MadVirus's Learning JSP 2.0
GREETING = HI! I'm BK
VISITOR = Your ID is {0}
Note : 이클립스 프로젝트에서 진행할 경우 프로젝트의 소스 디렉터리에 resource 패키지를 생성한 뒤 resource 패키지에 리소스 번들 파일을 위치시키면 된다.

한글 메시지를 보여주는 리소스 번들의 파일의 원본은 다음과 같다.

chap16\WEB-INF\classes\resource\message_ko.properties.src
TITLE = 최범균의 JSP 2.0 배우기
GREETING = 안녕하세요. 최범균입니다.
VISITOR = 당신의 아이디는 {0}입니다.
리소스 번들에서는 위와 같이 한글을 직접적으로 사용할 수 없으며, 각 글자를 유니코드 숫자로 표시한 형태로 변환한 것만을 사용할 수 있다. 이 변환은 JDK가 제공하는 native2ascii.exe를 통해서 처리할 수 있다. 명령 프롬프트에서 다음과 같이 실행하면 해당하는 리소스 번들 파일을 생성할 수 있다.

C:\..\resource>native2ascii message_ko.properties.src message_ko.properties

이렇게 해서 생성된 실제 리소스 번들 파일인 message_ko.properties 파일은 다음과 같다.

chap16\WEB-INF\classes\resource\message_ko.properties
TITLE = \ucd5c\ubc94\uade0\uc758 JSP 2.0 \ubc30\uc6b0\uae30
GREETING = \uc548\ub155\ud558\uc138\uc694. \ucd5c\ubc94\uade0\uc785\ub2c8\ub2e4.
VISITOR = \ub2f9\uc2e0\uc758 \uc544\uc774\ub514\ub294 {0}\uc785\ub2c8\ub2e4.
Note : 자바의 리소스 번들은 java.util.Properties 클래스에 정의된 방법으로 파일을 읽어오는데, java.util.Properties 클래스는 알파벳이나 숫자, 라틴문자 등을 제외한 나머지 언어에 대해서는 유니코드에서의 코드 값으로 표현하도록 하고 있다.