message 패키지 및 하위 파일들을 만든다
messageSource_en.properties
# login.jsp
message.user.login.title=LOGIN
message.user.login.id=ID
message.user.login.password=PASSWORD
message.user.login.loginBtn=LOG-IN
message.user.login.language.en=English
message.user.login.language.ko=Korean
#getBoardList.jsp
message.board.list.mainTitle=BOARD LIST
message.board.list.welcomeMsg=! Welcome to my BOARD
message.board.list.search.condition.title=TITLE
message.board.list.search.condition.content=CONTENT
message.board.list.search.condition.btn=Search
message.board.list.table.head.seq=SEQ
message.board.list.table.head.title=TITLE
message.board.list.table.head.writer=WRITER
message.board.list.table.head.regDate=REGDATE
message.board.list.table.head.cnt=CNT
message.board.list.link.insertBoard=Insert Board
messageSource_ko.properties
한국어(아시아권 언어)는 유니코드로 변환하여 등록해야 한다.
그래서 먼저 txt 파일에 쓴 후 properties파일에 복사 붙여넣기를 한다.
# login.jsp
message.user.login.title=로그인
message.user.login.id=아이디
message.user.login.password=비밀번호
message.user.login.loginBtn=로그인
message.user.login.language.en=영어
message.user.login.language.ko=한글
#getBoardList.jsp
message.board.list.mainTitle=게시글 목록
message.board.list.welcomeMsg=님! 게시판에 오신 걸 환영합니다.
message.board.list.search.condition.title=제목
message.board.list.search.condition.content=내용
message.board.list.search.condition.btn=검색
message.board.list.table.head.seq=번호
message.board.list.table.head.title=제목
message.board.list.table.head.writer=작성자
message.board.list.table.head.regDate=등록일
message.board.list.table.head.cnt=조회수
message.board.list.link.insertBoard=새글 등록
유니코드로 변환되어 표시된다.
presentation-layer.xml
locale resolver 등록
해당 화면의 언어를 변경하고 싶을 때 쓸 수 있는 것이 LocaleChangeInterceptor 클래스이다.(헤더에 들어오는 locale 정보를 가로채서 우리가 알아서 하겠다.) 따라서 설정 파일에 인터셉터를 등록한다.
lang이라는 파라미터에 전송되는 locale에 따라 언어를 변경할 수 있다.
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><spring:message code="message.user.login.title"/></title>
</head>
<body>
<center>
<h1><spring:message code="message.user.login.title"/></h1>
<a href="login.do?lang=en">
<spring:message code="message.user.login.language.en"/>
</a>
<a href="login.do?lang=ko">
<spring:message code="message.user.login.language.ko"/>
</a>
<hr>
<form action="login.do" method="post">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="orange"><spring:message code="message.user.login.id"/></td>
<td><input type="text" name="id"
value="${userVO.id}"/></td>
</tr>
<tr>
<td bgcolor="orange"><spring:message code="message.user.login.password"/></td>
<td><input type="password" name="password"
value="${userVO.password}"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="<spring:message code="message.user.login.loginBtn"/>"/>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
파라미터 lang에 en을 전달 했을 때