티스토리 뷰
동기
쇼핑몰 사이트를 맡게 되어 정말 오랜만에 locale 설정에 의해 properties 로 다국어 작업을 해보게 되었다.
방법
#1. xml 설정
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> <property name="defaultLocale" value="ko" /> </bean> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="WEB-INF/message/message" /> <property name="defaultEncoding" value="UTF-8" /> <property name="fileEncodings" value="UTF-8" /> <property name="cacheSeconds" value="5" /> <property name="useCodeAsDefaultMessage" value="true" /> </bean>
|
언어 설정하는 리졸버는 여러가지 있는데, 그 중에서 session 으로 설정할 수 있는 SessionLocaleResolver 를 선택하였다.
- basename : 로딩할 메시지의 기본 이름?(루트?)를 설정한다.
- cacheSeconds : value 값(초 설정)이 설정된 초마다 properties 가 수정된 것을 인지해서 반영해준다.
- defaultEncoding : 기본 인코딩을 설정한다.
- fileEncodings : 파일 인코딩을 설정한다.
- useCodeAsDefaultMessage :
#2. properties 설정(ex. message_ko.properties)
... hello=안녕 ...
|
#3. 언어 설정(java단에서 처리해주어야 하는 부분)
... String locales = "ko"; // 보통 전달인자로 받겠지만, 예시이므로 ko 로 넣어봤다. ... session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locales); ...
|
※ SessionLocaleResolver 를 사용해주었기 때문에 session 에 locale을 설정해주면 언어는 세션 값에 의해 해당 언어로 설정이 된다.
#4. jsp 사용
... <%@ taglib prefix="msg" uri="http://www.springframework.org/tags"%> ... <msg:message code="hello"/> ...
|
필자는 spring 에서 제공해주는 태그라이브러리를 이용하였다.
참고
설정별 역할만 알고, 내부사정은 잘 몰라서 링크를 걸어봤다. ㅎㅎ
http://devbox.tistory.com/entry/Spring-Locale-%EC%B2%98%EB%A6%AC
'개발자의 삶' 카테고리의 다른 글
[SVN] TortoiseSVN 클라이언트 (0) | 2017.05.08 |
---|---|
[디자인] 파비콘(Favicon) 만들기 (0) | 2017.01.04 |
[개발 버전 호환] Common DBCP jdk jdbc 호환 관련 자료 (0) | 2016.02.07 |
[개발 환경 호환] Servlet, Tomcat, Java, ... 개발환경에 따른 호환 확인하기( (0) | 2015.07.22 |
샘플로 본 서블릿의 구조와 작동원리 1 (0) | 2014.09.05 |
Controller - Service - DAO (0) | 2014.08.06 |
There is a problem with the site's security certificate (0) | 2014.08.01 |