SPRING/WEBSERVICE
[Restuful 학습] - 다국어처리 실습 및 예제
JUMP개발자
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를 읽어온다.
테스트 결과 :