다국어처리

suyeon lee·2021년 3월 9일
0

JSP

목록 보기
17/24

Locale 태그사용

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 fmt 태그사용

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>

0개의 댓글