Spring MVC 프레임워크를 사용하여 웹 애플리케이션을 개발할 때, 다국어 지원 및 번역 처리는 중요한 요소입니다. 이를 통해 사용자들이 웹 애플리케이션을 자신의 언어로 이해할 수 있으며, 국제 시장에 대한 접근성을 개선할 수 있습니다.
1. 다국어 설정하기
Spring MVC에서 다국어를 지원하려면 다음과 같이 설정해야 합니다.
1.1. 메시지 리소스 구성
먼저, MessageSource
빈을 구성하여 다국어 메시지들을 로드할 수 있도록 해야 합니다. 이는 MessageSource
인터페이스를 구현한 클래스를 생성하고, 해당 클래스의 빈을 스프링 컨텍스트에 등록하는 과정을 포함합니다.
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
위의 예제에서는 ResourceBundleMessageSource
클래스를 사용하여 메시지 리소스를 구성하였습니다. basename
속성은 메시지 리소스 파일(messages.properties
, messages_en.properties
, messages_fr.properties
등)의 기본 이름을 나타냅니다. defaultEncoding
속성은 메시지 리소스 파일의 인코딩을 설정합니다.
1.2. 다국어 설정 적용
spring-webmvc.xml
파일에 다음과 같이 다국어 설정을 추가해야 합니다.
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
</mvc:interceptors>
<mvc:annotation-driven />
이 설정은 LocaleChangeInterceptor
인터셉터를 등록하여 사용자의 언어 설정을 변경하는 데 사용됩니다. 또한 mvc:annotation-driven
요소가 있는지 확인해야 합니다.
2. 번역 처리하기
위의 설정을 마쳤다면, 이제 번역 처리를 할 준비가 되었습니다. 번역 처리는 다음과 같은 방법으로 수행할 수 있습니다.
2.1. 컨트롤러에서 번역 사용하기
컨트롤러 메서드에서 MessageSource
를 주입받아 번역 처리를 할 수 있습니다.
@Controller
public class MyController {
@Autowired
private MessageSource messageSource;
@RequestMapping("/greeting")
public ModelAndView greeting(Locale locale) {
String greeting = messageSource.getMessage("greeting.message", null, locale);
ModelAndView modelAndView = new ModelAndView("greeting");
modelAndView.addObject("greeting", greeting);
return modelAndView;
}
}
위의 예제에서 messageSource.getMessage()
메서드를 사용하여 다국어에 따른 메시지를 가져옵니다. greeting.message
은 messages.properties
파일에서 해당 메시지의 키를 나타냅니다.
2.2. 뷰 템플릿에서 번역 사용하기
뷰 템플릿에서 번역 처리를 할 경우, 다음과 같이 사용할 수 있습니다.
<h1 th:text="#{greeting.message}"></h1>
위의 예제에서 #{greeting.message}
은 messages.properties
파일에서 해당 메시지의 키를 나타냅니다.
3. 메시지 리소스 파일 생성하기
다국어별로 번역된 메시지를 담은 리소스 파일을 생성해야 합니다. 예를 들어, 다음과 같이 messages_en.properties
와 messages_fr.properties
파일을 생성할 수 있습니다.
# messages_en.properties
greeting.message=Hello!
# messages_fr.properties
greeting.message=Bonjour!
이렇게 생성한 리소스 파일을 클래스 경로에 위치시켜야 합니다.
4. 결과 확인하기
다국어 설정과 번역 처리가 모두 완료되었다면, 웹 애플리케이션을 다국어로 접속하여 결과를 확인할 수 있습니다.
예를 들어, http://localhost:8080/yourapp/greeting?lang=en
와 http://localhost:8080/yourapp/greeting?lang=fr
를 차례로 접속하여 영어와 프랑스어로 번역된 인사말을 확인할 수 있습니다.
참고 자료
- Spring Framework Documentation
- Spring MVC Internationalization and Localization
- Spring MVC Internationalization Example