개인이 복습하기 위한 글이기에 정확성이 떨어질 수 있으니 참고만 부탁드립니다!
참조 페이지
현재 전자정부프레임워크를 사용한 maven 프로젝트를 다루는 중인데
이 웹 페이지를 한글/영어 버전으로 전환하는 과정을 맡게 되었다.
사전 조사를 하던 중 전자정부프레임워크에서 사용하는 다국어 처리 방법이 있다는 것을 알게 되었고
찾아본 것에 대해 정리해보려 한다.
egovframework:rte:ptl:internationalization [eGovFrame]
전자정부 표준 프레임워크에서는 Spring MVC 에서 제공하는 LocaleResolver를 이용한다. 우리는 여기서 LocaleResolver를 알아보고 적용하는 설정과 다국어가 적용된 message resource 를 가져와 활용하는 것을
www.egovframe.go.kr
해당 링크에 들어가면 xml 설정부터 jsp 파일에서 어떻게 사용하는 것인지 설명해주고 있다.
Spring MVC 는 다국어를 지원하기 위하여 아래와 같은 종류의 LocaleResolver 를 제공하고 있다.
CookieLocaleResolver : 쿠키를 이용한 locale정보 사용
SessionLocaleResolver : 세션을 이용한 locale정보 사용
AcceptHeaderLocaleResolver : 클라이언트의 브라우져에 설정된 locale정보 사용
Bean 설정 파일에 정의하지 않을 경우 AcceptHeaderLocaleResolver 를 default 로 적용된다.
applicationContext.xml
적용시 SessionLocaleResolver를 사용하였다.
이를 설정해주기 위해 Bean 설정을 해주어야 하는데
src/main/resources/applicationContext.xml 파일에 아래 구문을 입력하여 설정해준다.
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
properties 파일의 내용을 가져오기 위해서 properties파일이 위치한 경로를 설정해준다.
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/message/message</value>
</list>
</property>
</bean>
web.xml
이후 web.xml 파일에서
아래 코드를 이용하여 encoding설정을 해준다.
...
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
properties 파일 생성
bean으로 설정한 위치에 message_ko.properties / message_en.properties 파일을 생성해준다.
#message_ko.properties
hello=안녕하세요!
#message_en.properties
hello=Hello!
samlple-servlet.xml
링크에 들어있는 Locale(언어) 설정을 읽어들이는 것에 필요한 bean 설정을 해주는 부분이라 이해했다.
아래 코드는 cookie에 저장되어 있는 Locale(언어) 설정을 읽어들이는 것에 필요한 bean 설정 구문이다.
<!-- 세션을 이용한 Locale 이용시-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
이제 기본적인 설정은 끝났고
이를 사용하는 방법은
jsp파일 상단에
<%@ taglib prefix="spring" uri=http://www.springframework.org/tags %>
로 spring 메시지 태그를 설정해준 후
사용하고자 하는 곳에
<spring:message code="hello" />
와 같이 적용해준다.
참고로 서버단에서 불러오는 것이기 때문에 jsp 내부의 script 문에서는 사용이 가능하지만
별도의 js파일에서는 사용이 불가능하다는 점을 유의하시길 바란다.
'웹개발' 카테고리의 다른 글
svn branch 전략 활용을 위한 테스트 과정 정리 (2) | 2024.05.20 |
---|---|
[JAVA] VSCode Java 프로젝트 환경 설정 (0) | 2024.02.07 |
[JAVA] 개발환경 - 개념 정리 (2) | 2024.01.08 |
[Bootstrap] Bootstrap 사용법 익히기 (0) | 2023.12.21 |
[OpenAPI : Java] - 공공데이터포털 : 식품영양성분DB OPEN API (4) | 2023.11.22 |