[java] Spring Framework를 활용한 다국어 지원 구현 방법

Spring Framework는 다국어 지원을 위한 다양한 기능과 도구를 제공합니다. 이를 활용하여 애플리케이션에서 다국어 지원을 구현할 수 있습니다. 이번 블로그 포스트에서는 Spring Framework를 사용하여 다국어 지원을 구현하는 방법에 대해 알아보겠습니다.

1. 다국어 리소스 파일 생성

먼저, 각 언어에 맞는 다국어 리소스 파일을 생성해야 합니다. Spring Framework에서는 다음과 같은 형식의 리소스 파일을 지원합니다.

각 리소스 파일에는 다음과 같이 키-값 쌍으로 다국어 메시지를 작성합니다.

greeting=안녕하세요!

2. MessageSource 설정

Spring Framework에서는 MessageSource 인터페이스를 통해 다국어 메시지를 관리합니다. 이를 위해 messageSource 빈을 설정해야 합니다.

@Configuration
public class AppConfig {

    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasenames("messages");
        return messageSource;
    }
}

위 예제에서는 messages를 기본 리소스 파일 이름으로 지정하고 있습니다. 여러 개의 리소스 파일을 사용할 경우, 쉼표로 구분하여 여러 개의 파일을 지정할 수 있습니다.

3. 다국어 메시지 사용

다국어 메시지를 사용하는 방법은 다양합니다. 예를 들어, 컨트롤러에서 메시지를 사용하여 다국어로 인사말을 출력하는 예를 살펴보겠습니다.

@Controller
public class GreetingController {

    @Autowired
    private MessageSource messageSource;

    @GetMapping("/greeting")
    public String greeting(Model model, Locale locale) {
        String greetingMessage = messageSource.getMessage("greeting", null, locale);
        model.addAttribute("greeting", greetingMessage);
        return "greeting";
    }
}

위 예제에서는 MessageSource를 주입받아 getMessage() 메서드를 사용하여 다국어 메시지를 가져오고 있습니다. getMessage() 메서드의 첫 번째 인자로는 키를, 두 번째 인자로는 메시지에 전달할 파라미터 배열을 넘겨줍니다. 세 번째 인자로는 사용자의 로케일 정보를 전달합니다.

4. 뷰에서 다국어 메시지 출력

마지막으로, 다국어 메시지를 뷰에서 출력하는 방법을 알아보겠습니다. Thymeleaf 템플릿 엔진을 사용하는 경우, 다음과 같이 메시지를 출력할 수 있습니다.

<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org">
<body>
    <h1 th:text="#{greeting}"></h1>
</body>
</html>

위 예제에서는 #{greeting}으로 키를 지정하여 다국어 메시지를 출력하고 있습니다.

이제 Spring Framework를 활용하여 애플리케이션에서 다국어 지원을 구현하는 방법에 대해 알아보았습니다. 이를 통해 사용자들에게 더욱 편리한 다국어 서비스를 제공할 수 있습니다.

참고 문서: