티스토리 뷰

반응형

2019/01/28 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (1)


그렇다면 Spring 은 어떻게 사용자의 언어나 국가를 판단하는 것일까요? 사실 매우 간단한데, 어떻게 처리하고 있는건지 모르는 분들이 많습니다.

방법은 바로 브라우져의 언어 설정입니다.

많이들 사용하시는 크롬에서는 "설정 > 고급 > 언어" 에서 이를 설정하고, 우선순위를 결정할 수도 있습니다.



저의 기본 브라우져인 파이어폭스에서는 아래와 같이 "설정 > 언어와 표현 > 언어" 에서 "선택" 버튼을 클릭하면 언어를 추가/제거하거나 순서를 변경할 수 있습니다.



언어의 우선순위를 변경하면 HTTP 요청 시 header 에 언어 정보가 포함되어 전송됩니다. 이에 대한 설명은 Accept-Language(https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept-Language) 에 대한 문서들을 찾아보시면 확인할 수 있습니다.


Spring 에서는 header 로 넘어온 브라우져의 언어 선호도를 확인하여 제공할 수 있는 properties 파일을 찾은 뒤 없을 경우 default 파일인 messages.properties 파일의 내용을 사용자에게 표시하게 됩니다. messages 파일에 test.message.value 와 같은 key 로 다국어를 저장해뒀다면 Thymeleaf 와 같은 Template 에서 #{test.message.value} 와 같이 key 을 이용해 value 을 출력할 때 다국어를 출력해줍니다.


그러므로, REST API 을 이용해 다국어 메세지를 전송받기 위해서는 Accept-Language 정보를 전달하거나, 매개변수로 서비스할 언어-국가코드를 넘겨줘서 처리할 수 있도록 개발해야 합니다. 이를 위해 Spring 에서는 LocaleResolver interface 을 이용해서 언어 정보가 넘어오지 않았을 때의 기본 언어와 언어 정보를 어떤 식으로 저장하고 있을지 지정할 수 있는 기능을 제공하고 있습니다.


2019/01/29 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (3)


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함