인프런 커뮤니티 질문&답변

Jiwon Jung님의 프로필 이미지

작성한 질문수

스프링 프레임워크 핵심 기술

IoC 컨테이너 7부: MessageSource

Locale.getDefault()에 대한 질문

18.10.23 01:04 작성

·

3.8K

2

안녕하세요. 강의 항상 잘 보고 있습니다.

Locale.getDefault()

디폴트 locale을 사용하는 부분에서 기선님과 다른 부분이 있어서 질문드립니다.

저는 Locale.getDefault()와 Locale.KOREA 두 가지 모두 messages_ko_KR.properties에 있는 한글값이 출력됩니다.

default locale의 경우 default locale 값이 별도로 설정되어있는 것이 아니라 messages.properties라는 파일을 default로 판단하여 출력하는 것이라 예상하였는데 ko_KR의 결과가 찍혀서 의문입니다.

ko_KR의 파일이름을 messages.ko_KR.properties와 같이 인식할 수 없도록 수정 후에 출력하면 영문으로 결과가 잘 찍히는데요... 왜 messages_ko_KR.properties파일만 추가하면 default도 한글이 출력되는지 궁금합니다....

답변 3

1

백기선님의 프로필 이미지
백기선
지식공유자

2018. 10. 23. 13:25

https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#getDefault()

저도 잘은 모르겠지만, 문서를 읽어보면 짐작할 수 있는데요. 아마 JVM이 구동될 때 OS 환경 변수 등에서 정보를 읽어 설정하는 것 같습니다. 따라서 사용하시는 운영체제에 설정된 (기본) 언어가 한국어라 그렇게 된거라 추측해 봅니다.

0

KS L님의 프로필 이미지

2020. 05. 28. 14:06

저도 OS default가 ko_KR이라서 한글로만 찍히더라구요. 저는 그냥 greetingKR , greetingEN 으로 변수를 달리하여 불러오는 방식으로 다르게 찍었습니당...

0

olikuj933님의 프로필 이미지

2019. 11. 08. 17:04

저도 같은 문제네요 실제로 println()으로 
Locale.getDefault()를 출력해 보면 ko_KR이 출력됩니다.

좀 알아본 결과

Locale.getDefault() 는 운영체제의 기본값으로 읽어온다고 합니다.

대신 Spring의 기본 언어값을 XML로 설정해 주고

LocaleContextHolder.getLocale()을 이용하면 

설정해 놓은 기본값을 읽어온다고 하네요