본문 바로가기

dev/java(egov)

egov 4.1 spring boot 다국어

반응형

다국어도 처리하고 진행해야겠다. 생각이 들어 다국어 처리를 해보겠습니다.

 

기존 spring에서는 다국어 처리를 web.xml 및 dispatcher-servlet.xml 에서 처리 했던 기억이 납니다.

egov spring boot 기본 설정에 web.xml 설정이 없고 대부분 java에서 설정을 하고 있다.

기존 설정을 조금 검색해 보았습니다.

 

아래는 기존에 설정했던 xml 부분입니다.

기존 web.xml
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

 

기존 dispatcher-servlet.xml
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
    <property name="defaultLocale" value="ko" />
</bean>

<!-- 쿠키를 이용한 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>
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="interceptors">
        <list>
            <ref bean="localeChangeInterceptor"/>
        </list>
    </property>
</bean>

 

 

egov설정 파일을 둘러보면 아래 경로에 다국어 설정파일이 있는 걸 확인할 수 있습니다.

경로 : \src\main\resources\egovframework\message\

 

소스를 들여다보다 EgovWebMvcConfiguration.java 파일을 확인하였습니다.

이미 적용이 되어 있는 거 같았습니다.

// 경로 : \src\main\java\egovframework\example\boot\web\EgovWebMvcConfiguration.java

	@Bean
    public SessionLocaleResolver localeResolver() {
        return new SessionLocaleResolver();
    }

	@Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
        interceptor.setParamName("language");
        return interceptor;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }

 

 

그래서 jsp에서 확인을 해보았습니다.

jsp 다국어 처리
  • 상단에 taglib 추가되어 있어야 합니다.
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
  • 다국어를 조회할 때 아래와 같이 jsp에 작성합니다.
<spring:message code="button.create" />
  • 아래 언어 설정 파일에 있는 문자열이 출력됩니다.
// 경로 파일 : \src\main\resources\egovframework\message\message-common.properties
button.modify=수정
button.create=등록

 

Locale 설정
  • 아래 설정 되었던 setParamName에서 설정 한 파라미터 명입니다.
	@Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
        interceptor.setParamName("language");
        return interceptor;
    }

 

결과 영어

결과 한글

 

설정한 파라미터 명으로 다국어 설정 문자를 넘기면 다국어 확인을 할 수 있습니다.

 

반응형