Today Yewon Learned

[Egov] 전자정부 표준 프레임워크 Internationalization(국제화) 본문

Spring/Egov

[Egov] 전자정부 표준 프레임워크 Internationalization(국제화)

데브워니 2022. 4. 1. 13:50

전자정부 표준 프레임워크에서는 Spring MVC 에서 제공하는 LocaleResolver를 이용한다.
우리는 여기서 LocaleResolver를 알아보고 적용하는 설정과 다국어가 적용된 message resource 를 가져와 활용하는 것을 보도록 하겠다.

Spring MVC 는 다국어를 지원하기 위하여 아래와 같은 종류의 LocaleResolver 를 제공하고 있다.

  • CookieLocaleResolver : 쿠키를 이용한 locale정보 사용
  • SessionLocaleResolver : 세션을 이용한 locale정보 사용
  • AcceptHeaderLocaleResolver : 클라이언트의 브라우져에 설정된 locale정보 사용

- dispatcher-servlet.xml

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
	<property name="webBindingInitializer">
    <bean class="egovframework.example.cmmn.web.EgovBindingInitializer"/>
    </property>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
     <property name="interceptors">
         <list>
	         <ref bean="localeChangeInterceptor" />
         </list>
     </property>
</bean>
    
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
 <!-- 쿠키를 이용한 Locale 이용시 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/> -->
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="language" />
</bean>

 

스프링 3.0 이상 버전을 사용중이므로, 위와같은 설정이 필요하다.

 

- egovframework에서 제공해주는 MassageSource를 이용하기 위해, 아래 폴더 구조를 보면 message properties파일이 ko버전과 en버전이 나눠져있다.

 

- en버전과 ko버전의 MessageKey를 동일하게 지정해주고 각 나라별로 Parameter를 기입한다.

 

-language 변환이 필요한 jsp페이지 상단에 아래 태그를 추가해야한다.

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

 

 

HTML/JSP 에서 사용 예

<spring:message code="messageKey" />
<div class="d-sm-flex mb-4">
    <div class="col-md-4"><h1 class="h3 mb-0 text-gray-800"><spring:message code="menu_title_user" /></h1></div>
    <div class="col-md-8 text-right">
        <button type="button" class="btn btn-success" onclick="btn_add();"><spring:message code="button.reset" /></button>
        <button type="button" class="btn btn-primary" onclick="btn_save();"><spring:message code="button.create" /></button>
        <button type="button" class="btn btn-danger" onclick="btn_remove();"><spring:message code="button.delete" /></button>
    </div>
</div>

 

JAVASCRIPT 에서 사용 예

<script>
	alert('<spring:message code="admin.hello" /> ');
</script>

 

결과)

 

http://localhost:8080/Project/user.do?language=ko

http://localhost:8080/Project/user.do?language=en

추후에는 버튼을 이용하여 language를 변경해볼 예정이다.

 

[참고]

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:internationalization

 

egovframework:rte2:ptl:internationalization [eGovFrame]

전자정부 표준 프레임워크에서는 Spring MVC 에서 제공하는 LocaleResolver를 이용한다. 우리는 여기서 LocaleResolver를 알아보고 적용하는 설정과 다국어가 적용된 message resource 를 가져와 활용하는 것을

www.egovframe.go.kr

https://velog.io/@bey1548/Spring%EC%97%90%EC%84%9C-%EB%8B%A4%EA%B5%AD%EC%96%B4-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

 

Spring에서 다국어 적용하기

스프링 다국어처리를 이용하려면 controller를 통해서 해당 페이지로 이동하게 해야 한다.servlet-context.xml에서 다국어 처리부분을 기술ResourceBundleMessageSource 부분이 바로 위에서 저장된 messages 파일

velog.io

 

Comments