jsp페이지에 page디렉티브 태그의 import속성으로 패키지 java.util.Locale 설정
사용자가 사용하는 웹브라우저에 설정된 국가ㅘ 언어 이름을 통해 해당국가의 언어를 볼수있음
getLocale(): 현재 로케일의 언어 코드(소문자)를 가져옴
<%@ page contentType="text/html; charset=utf-8"%>
<%@page import="java.text.NumberFormat"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.*"%>
<html>
<head>
<title>Internationalization</title>
</head>
<body>
<h3>현재 로케일의 국가, 날짜, 통화</h3>
<%
Locale locale = request.getLocale();
Date currentDate = new Date();
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);
NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
%>
<p> 국가 : <%=locale.getDisplayCountry()%>
<p> 날짜 : <%=dateFormat.format(currentDate)%>
<p> 숫자 (12345.67) : <%=numberFormat.format(12345.67)%>
</body>
</html>
JSTL 라이브러리를 이용해야함
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
Locale설정 - setLocale : 로케일을 설정함
-requestEncoding: 요청 파라미터의 문자 인코딩을 설정
메세지 처리 - bundle : 사용할 리소스번들을 설정(properties파일을 읽어오는 역활)
- message: 리소스번들에서 로케일에 맞는 메시지를 가져와 출력
- setBundle: 리소스번들을 읽어와 특정변수에 저장(bundle대체해서 사용가능)
날짜 -formatDate : 날짜 형식을 표현
-parseDate : 문자열에서 원하는 패턴의 날짜 형식으로 변환
숫자 - parseNumber : 문자열에서 원하는 패턴의 숫자 형식으로 변환
- formatNumber : 숫자 형식을 표현한다
시간 - setTimeZone : 특정 범위의 시간대를 설정
- timeZone : 시간대를 설정함
사용 -> 새로운 팩키지안에 properties파일 생성후 원하는 내용을 바꾸고싶은 언어로 번역해야함
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<title>Internationalization</title>
</head>
<body>
<!-- 자동번역X -->
<p> --------기본 로케일--------
<fmt:setBundle basename="ch09.com.bundle.myBundle"/>
<p> 제목 :<fmt:message key="title" />
<p> 이름 :<fmt:message key="username" var="userMsg" />
<p> --------영문 로케일 --------
<fmt:setLocale value="en" />
<fmt:setBundle basename="ch09.com.bundle.myBundle" />
<p> 제목 :<fmt:message key="title" />
<p> 이름 :<fmt:message key="username" />
</body>
</html>