728x90
이번에는 request Header에 포함된 locale정보에 따른 다국어 지원 로직을 간단히 구현해보겠다. 우선 아래와 같이 message.properties 파일을 두 개 만든다.
하나는 기본 locale인 한국 기준의 파일이고, 하나는 영문(en) 일때의 파일이다. 내용은 동일하게 greeting.message라는 값을 선언해서 "안녕하세요"와 "Hello"를 할당해준다.
그리고 application.yml 파일에도 위와 같이 설정을 적용해준다.
그리고 기본 spirngboot 어플리케이션(main함수)에 위와 같은 bean을 추가해 locale을 받아올 수 있게 만든다.
그리고 테스트 할 컨트롤러(여기서는 HelloWorldContorller)에 MessageSource를 의존성 주입 한다. MessageSource는 자동으로 만들어 놓은 message에 getMessage로 locale에 따른 설정파일로 접근한다.
위와 같이 선언하면, header에 선언된 로케일 값에 따라 다른 properties 파일을 참조하게 되고, 선언된 greeting.message값을 불러온다
-test
헤더에 아무정보도 넣지 않고 테스트하면 기본 로케일인 한국어로 "안녕하세요"가 반환된다.
헤더에 Accept-Language = en으로 전송하면, 설정값에 따라 Hello가 리턴된다. 시스템 운영을 하면서 간편하게 사용하고 있는 locale인데, 그 원리를 알게 되어 좋았던 것 같다.
끝 :)
'IT' 카테고리의 다른 글
프로그래머스 포켓몬 HashSet으로 해결, HashSet의 개념까지 (0) | 2025.01.19 |
---|---|
[Vue.js 공부] #1 환경설정, Node.js, NVM 등 (0) | 2022.06.28 |
Springboot #7 Exception handling 예외처리 (0) | 2022.04.03 |
Springboot #6 User 관리 API (0) | 2022.03.27 |
Springboot #5 Spring 동작 원리, Dispatcher Servlet (0) | 2022.03.27 |