ABOUT ME

Today
Yesterday
Total
  • [Restuful 학습] - 다국어처리 실습 및 예제
    SPRING/WEBSERVICE 2020. 8. 8. 15:57
    package com.example.demo;
    
    import java.util.Locale;
    
    @SpringBootApplication
    public class RestStudyApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(RestStudyApplication.class, args);
    	}
    
    
    	// 다국어 처리 (한국어 기본설정)
    	@Bean
    	public LocaleResolver localeResolver() {
    		SessionLocaleResolver localeResolver = new SessionLocaleResolver();
    		localeResolver.setDefaultLocale(Locale.KOREA);
    		return localeResolver;
    	}
    
    }
    

     

    다국어 처리 설정은 위와 같이 SpringBootApplication 파일에서 설정할 수 있다.

     

    또한 위 스크린샷과 같이 각 언어에 맞게 messeage.properties 파일들을 생성하고, 설정할 메시지들을 등록해야한다.

     

    package com.example.demo.helloworld;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.MessageSource;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestHeader;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Locale;
    
    
    @RestController
    public class HelloWorldController {
    
    	@Autowired
    	private MessageSource messageSource;
    
    	@GetMapping(path= "/hello-world-internationlized")
    	public String helloWorldInternationalized(
    		@RequestHeader(name="Accept-Language", required = false) Locale locale) {
    		return messageSource.getMessage("greeting.message",null,locale);
    	}
    	
    }
    ​

     

    위와 같이  messageSource의 메시지를 가져오는 메서드를 실행하면 Locale 값에 따라 다르게 설정파일(messages.properties 파일)을 읽어오는 것을 알 수있다.

    Acceppt-Language를 en으로 설정하면 messages_en.properties를 읽어오고, fr로 설정하면 messages_fr.properties를 읽어온다.

     

    테스트 결과 : 

Designed by Tistory.