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를 읽어온다.

 

테스트 결과 :