JSP
[JSP]다국어 태그 라이브러리
dev-in-daily-life
2024. 8. 15. 20:58
반응형
- JSP에서 다국어 태그 라이브러리를 사용하면 다국어 기능을 쉽게 구현할 수 있다.
다국어 태그 라이브러리 종류
| 분류 | 태그 | 설명 |
| 다국어 | <fmt:setLocale> | Locale(언어)을 지정한다. |
| <fmt:message> | 지정한 언어에 해당하는 언어를 표시한다. | |
| <fmt:setBundle> | 사용할 번들을 지정한다. | |
| <fmt:setParam> | 전달할 매개변수를 지정한다. | |
| <fmt:requestEncoding> | 요청 매개변수의 문자 인코딩을 지정한다. |
한글을 아스키 코드로 변환하기
- 다국어 기능을 사용하려면 미리 한글을 아스키 코드로 변환한 형태로 저장하고 있다가 요청 시 이 아스키 코드를
다시 한글로 변환해서 표시한다.
- 아스키 코드 변환 시 다음 사이트를 이용하여 변환한다.
https://ko.rakko.tools/tools/76/
텍스트-ASCII 변환기 / 번역기 : ASCII에서 텍스트로, 텍스트에서 ASCII로 | RAKKOTOOLS🔧
텍스트를 아스키로 또는 아스키를 텍스트로 변환
ko.rakko.tools
한글 아스키 파일 생성
- 한글 아스키 코드를 설정하는 properties 파일을 만든다.
- resource 패키지 생성 후 member.properties 파일을 생성하고, 다음과 같이 입력한다.
mem.name = 홍길동
mem.address = 서울시 강남구
mem.job = 회계사
- 이제 member_ko.properties 파일을 생성하고 다음과 같이 작성한다.
mem.name = \uD64D\uAE38\uB3D9
mem.address = \uC11C\uC6B8\uC2DC \uAC15\uB0A8\uAD6C
mem.job = \uD68C\uACC4\uC0AC
- member_en.properties 파일도 생성하고 다음과 같이 작성한다.
mem.name = hong kildong
mem.address = kang-nam gu, seoul
mem.job = account
JSP 페이지에 다국어 표시하기
- <fmt:setLocale> 태그를 이용해 표시할 locale(언어)을 지정한 후 <fmt:bundle> 태그를 이용해 resource 패키지의
프로퍼티 파일을 읽어온다.
- <fmt:message> 태그를 이용해 프로퍼티파일의 키(key)에 대한 값을 각각 출력한다.
* message1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ 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");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL 다국어 기능</title>
</head>
<body>
<%--<fmt:setLocale value="en_US"/> -> 로케일을 영어로 지정한다. --%>
<fmt:setLocale value="ko_KR" />
<h1>회원 정보
<br><br>
<%--resource 패키지 아래 member 프로퍼티 파일을 읽어온다. --%>
<fmt:bundle basename="resource.member" >
<%--<fmt:message> 태그의 key 속성에프로퍼티파일의 key를 지정하여 값을 출력한다. --%>
이름 : <fmt:message key="mem.name" /><br>
주소 : <fmt:message key="mem.address" /><br>
직업 : <fmt:message key="mem.job" />
</fmt:bundle>
</h1>
</body>
</html>

- Local을 영어로 설정 시
<fmt:setLocale value="en_US" />

반응형