
[ 다국어 처리 ]
- "국제화" 라고도 함
하나의 페이지를 여러가지의 언어로 서비스하는 것
과거에는 언어별로 페이지를 다르게 제작함 ( = 국제화 X )
>> 프레임워크의 다국어처리기능을 사용 ( 별도 페이지 제작을 하지 않고 표현할 예정 )
1) 메세지 파일 제작
new >> file 생성
. properties 확장자 고정
언어를 Locale 정보로 수행 ( ko, ja, en, zh )
>> 파일명에 언어에 해당하는 Locale 코드를 추가
ex) xxx_en.properties, xxx_ko.properties
파일 내부에는 메세지변수 + 메세지 값을 작성
값은 유니코드로 작성 ( 자동변환 됨 )

2) 스프링설정파일에게 메세지 파일들을 읽어들일수있도록 클래스 추가

다국어 처리 클래스
클래스를 생성하며 setter 해줄 basenames 변수에
<list> 태그를 이용하여 폴더명 . 파일이름 까지만 적어준다 (message.messageSource)
>> Loacle 정보 + 확장자는 적어주지 않는다
>> 확장자까지 적게되면 패키지와 혼동이올 수 있기때문
다국어 처리 본인의 Loacle 정보를 가져와주는 Resolver
현재 자신의 Loacle 정보를 가져와 준다 ( 난 한국이라 ko )
다국어 처리 Loacle 정보를 변경해 주는 클래스
lang 파라미터로 Locale정보를 변경 할 수 있게된다
** Namespace 에서 mvc를 체크해야 사용 가능하다

lang 값을 같이 보내주면 Loacle 정보를 변경해주고
message.messageSource 안에 존재하는 Loacle 파일이 존재하는지 확인하여
ex ) ko 일 경우 message.messageSource_ko.properties 파일을 확인
파일에 등록된 정보들을 페이지에 출력해줌
3) 사용할 페이지(jsp)에 lib 등록하여 사용
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

4) . properties 파일 내부

# 적용할 페이지 이름 기재
적용한 페이지에서 사용할 변수 + 값 넣기
한글, 일어, 중국어는 자동으로 유니코드로 변환
5) .properties에 적용한 변수를 jsp 페이지에서 사용

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 등록해야함
<spring:message> 태그를 사용하여 값을 가져올 수 있고
속성의 code = ".properties 폴더에 저장한 변수명" 을 넣으면 값이 온다
ko, en, ja, zh 4종류를 만들어 놓았다
2) 설명에서 lang 파라미터로 Loacle 값을 보내어 바꿀 수 있다



** 오류 가능성이 높은 중요 포인트 **
web.xml에서 *.do 요청에 반응하도록 설정해놓았기 때문에
.jsp로 바로 넘어갔을 경우 <spring:message> 태그에서 값을 가져오지 못하고 오류가 발생함!
그냥 jsp로 넘어가는 부분을 모두 do 요청으로 바꿔야하고
C에서 forward 액션으로 jsp로 보내주어야 한다
'Spring' 카테고리의 다른 글
[ Mybatis 프레임워크 ] 새로운 DAO 관리 (1) | 2022.10.04 |
---|---|
[ 이미지 업로드 ] 간편하게 Spring으로 표현 (0) | 2022.09.28 |
[ 에러 페이지 설정 ] @과 xml설정 (0) | 2022.09.28 |
[ 2-Layered 아키텍처 ] MVC2로 교체하기 (0) | 2022.09.27 |
[ MVC 패턴 ] Spring으로 표현하기 (3) (0) | 2022.09.23 |