티스토리 뷰
Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (2)
zepinos 2019. 1. 28. 16:092019/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)
'Programming > Spring Boot 시작하기' 카테고리의 다른 글
Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (4) (0) | 2019.02.01 |
---|---|
Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (3) (0) | 2019.01.29 |
Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (1) (0) | 2019.01.28 |
Spring Boot 실행과 종료 시 특정 동작을 실행하도록 해보기 (2) | 2019.01.25 |
외부 resource 을 서비스하기 (3) | 2019.01.24 |
- Total
- Today
- Yesterday
- messages.properties
- 내장 WAS
- paging
- Spring MVC
- OracleJDK
- boot
- git
- KDE
- 클라우드플레어
- docker
- Nas
- java config
- 워드프레스
- proxmox
- Redmine
- NoSQL
- SI
- 프로젝트 규모
- jooq
- Spring Boot
- couchbase
- Phabricator
- 엘지
- 외장 WAS
- manjaro
- 시니어 프로그래머
- Spring
- 페이징
- 도입기
- RestTemplate
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |