관리 메뉴

거니의 velog

(17) 표현 언어와 JSTL 8 본문

Java/Java_JSP

(17) 표현 언어와 JSTL 8

Unlimited00 2023. 9. 20. 15:59

8. 다국어 태그 라이브러리 사용하기

* 여러 온라인 쇼핑몰을 이용하다 보면 간혹 영어나 일본어로 언어를 변환해서 표시해 주는 화면을 보았을 것이다. 특정 쇼핑몰에서 해당 언어에 해당하는 국기를 클릭하면 종종 쇼핑몰 사이트가 해당 국가의 언어로 표시되는 것을 볼 수 있다.

* 이러한 기능은 어떻게 구현하는 것일까?

* JSP에서 다국어 태그 라이브러리를 사용하면 다국어 기능을 쉽게 구현할 수 있다. 다음 표는 JSP에서 다국어 기능을 구현하는 태그들이다.

<다국어 태그 라이브러리 종류>

분류 태그 설명
다국어 <fmt:setLocale> Locale(언어)을 지정한다.
<fmt:message> 지정한 언어에 해당하는 언어를 표시한다.
<fmt:setBundle> 사용할 번들을 지정한다.
<fmt:setParam> 전달할 매개변수를 지정한다.
<fmt:requestEncoding> 요청 매개변수의 문자 인코딩을 지정한다.

* 실제로 다국어 태그 라이브러리를 어떻게 사용하는지 살펴보자.


9. 한글을 아스키 코드로 변환하기

* 다국어 기능을 사용하려면 미리 한글을 아스키 코드로 변환한 형태로 저장하고 있다가 요청 시 이 아스키 코드를 다시 한글로 변환해서 표시한다. 따라서 표시할 한글을 아스키 코드로 변환하는 방법부터 알아보자.


(1) Properties Editor 설치하기

* 그럼 먼저 이클립스에 한글을 아스키 코드로 변환하는 기능을 제공하는 Properties Editor 플러그인을 설치한다.

1. 이클립스 상단 메뉴에서 Help > Install New Software를 선택한다.

2. Add... 를 클릭한다.

3. Name은 Properties Editor 로, Location은 http://propedit.sourceforge.jp/eclipse/updates 로 입력하고 Add를 클릭한다.

4. PropertiesEditor  항목을 선택한 후 Next를 클릭한다.

5. Install Details 화면이 나타나면 Next를 클릭한다.

6. 라이선스 정책에 동의한 후 Finish를 클릭한다.

7. 설치 후 이클립스를 재실행할지 묻는 창이 나타나면 Restart Now를 클릭한다.


(2) 한글 아스키 파일 만들기

* 그럼 이제 한글 아스키 코드를 저장하는 properties 파일을 만들어 보자. properties 파일을 만드는 과정은 다음과 같다.

1. 프로젝트의 src 폴더에 resource 패키지를 생성하고 마우스 오른쪽 버튼을 클릭한 후 New > Other...를 선택한다.

2. General 항목의 File을 선택한 후 Next를 클릭한다.

3. 파일 이름으로 member.properties 를 입력한 후 Finish를 클릭한다.

4. resource 패키지에 member.properties가 생성된 것을 확인할 수 있다.

5. 같은 방법으로 member_ko.properties 와 member_en.properties 파일을 생성한다.

6. member.properties 파일을 열어 키/값 쌍으로 회원 정보를 한글로 작성한 후 저장한다.

mem.name = 홍길동
mem.address = 서울시 강남수
mem.job = 회계사

7. 작성한 회원 정보 전체를 마우스로 드래그한 후 오른쪽 버튼을 클릭해 Unicode 표시를 선택한다.

8. 창에 표시된 아스키 코드 전체를 마우스로 드래그한 후 Ctrl + C를 눌러 복사한다.

9. member_ko.properties 파일을 열어 붙여 넣은 후 저장한다.

10. member_en.properties 파일을 열어 동일한 key에 대한 회원 정보를 영어로 따로 입력한다.

mem.name = hong kill-dong
mem.address = kang-name gu, seoul
mem.job = account

(3) JSP 페이지에 다국어 표시하기

* 자, 그럼 앞에서 만든 아스키 코드를 이용해 한글과 영어를 표시해 보자.

1. 먼저 프로젝트의 WebContent 폴더에 test05 폴더를 만든 후 message1.jsp 파일을 저장한다.

2. message1.jsp 파일을 다음과 같이 작성한다. <fmt:setLocale> 태그를 이용해 표시할 locale(언어)을 지정한 후 <fmt:bundle> 태그를 이용해 resource 패키지의 프로퍼티 파일을 읽어온다. 그리고 <fmt:message> 태그를 이용해 프로퍼티 파일의 키(key)에 대한 값을 각각 출력한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	request.setCharacterEncoding("UTF-8");
	// locale을 영어로 지정한다.
	// locale을 한글로 지정한다.
	// resource 패키지 아래 member 프로퍼티 파일을 읽어온다.
	// <fmt:message> 태그의 key 속성에 프로퍼티 파일의 key를 지정하여 값(value)을 출력한다.
%>
<html lang="ko">

    <head>
        <meta charset="UTF-8">
        <title>JSTL 다국어 기능</title>
    </head>

    <body>
        <fmt:setLocale value="en_US" />
        <%-- <fmt:setLocale value="ko_KR" /> --%>

        <h1>
            회원정보<br><br>
            <fmt:bundle basename="resource.member">
                이름:
                <fmt:message key="mem.name" /><br>
                주소:
                <fmt:message key="mem.address" /><br>
                직업:
                <fmt:message key="mem.job" />
            </fmt:bundle>
        </h1>
    </body>

</html>

3. 다음의 주소로 요청한다. 최초 요청 시 한글로 회원 정보를 출력한다. 최초 요청 시 한글로 회원 정보를 출력한다.

- http://localhost:8090/pro14/test05/message1.jsp

4. message1.jsp에서 한글 locale을 주석 처리하고 영어 locale을 활성화한다.

5. 브라우저에서 다시 요청하면 다음과 같이 영어로 회원 정보를 출력한다.

* 그런데 브라우저에 출력되는 '이름', '주소', '직업'과 JSP 제목(title)은 여전히 한글로 표시되는데, 이 부분은 직접 다국어 기능을 이용해 구현해 보길 바란다.

'Java > Java_JSP' 카테고리의 다른 글

(19) JSP 페이지를 풍부하게 하는 오픈 소스 기능  (0) 2023.09.20
(18) 표현 언어와 JSTL 9  (0) 2023.09.20
(16) 표현 언어와 JSTL 7  (0) 2023.09.18
(15) 표현 언어와 JSTL 6  (0) 2023.09.15
(14) 표현 언어와 JSTL 5  (0) 2023.09.15