• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Locale.getDefault()에 대한 질문

18.10.23 01:04 작성 조회수 3.36k

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

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

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

0

KS L님의 프로필

KS L

2020.05.28

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

0

olikuj933님의 프로필

olikuj933

2019.11.08

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

좀 알아본 결과

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

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

LocaleContextHolder.getLocale()을 이용하면 

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