안녕하세요.
메시지, 국제화 강의 자료 내용 중에 개선 가능한 부분이 있는 것 같아서 제보드립니다.
-----------
----------
---------
위는 "3. 메시지, 국제화.pdf" 강의 자료 내용입니다.
강의 영상에서는 <스프링 메시지 소스 사용> 2분 30초 및 3분 55초 부근에서 해당 내용을 다룹니다.
강의 자료 및 강의 영상에서는 MessageSource 객체의 getMessage 메서드를 호출할 때, locale을 null로 넘기면
곧바로 messages.properties 파일에서 데이터를 조회하는 것처럼 설명되어 있습니다.
그런데 https://www.inflearn.com/questions/286899 에서 영한님이 답변을 해주신 바와 같이
locale을 null로 넘기면
locale = Locale.getDefault();
를 호출하여 시스템 기본 locale로 먼저 조회를 하고 (시스템 기본 locale이 ko_KR 라면 messages_ko.properties 를 먼저 찾고),
이후 시스템 기본 locale로 조회되는 것이 없을 경우에 messages.properties를 찾는 것으로 보입니다.
정리하면, 현재 pdf 자료와 영상에서는
locale = null 인 경우 -> messages.properties 조회
라고 알려주고 있는데
이를 다음과 같이 중간 과정을 설명해주는 내용으로 개선하면 더 정확하지 않을까 생각합니다.
locale = null 인 경우 -> 시스템 기본 locale이 ko_KR이므로messages_ko.properties 조회 시도
-> 조회 실패 -> messages.properties 조회
제 컴퓨터에서는 시스템 기본 언어가 en으로 되어 있어, 본 강의 내용을 들을 때, 영한님이 강의에서 보여주신 것과 동작이 달라서
문제 원인이 무엇인가 구글도 찾아보고 인프런 게시판도 찾아봤었습니다. 인프런 게시판을 검색해보니 저와 비슷한 현상을 겪으신 분들(https://www.inflearn.com/questions/259370, https://www.inflearn.com/questions/286899, https://www.inflearn.com/questions/489062)이 더러 있더라구요. 위에 언급한 강의 자료 내용을 개선해주시면 시스템 언어 설정이 달라서 발생하는 이런 혼란이 줄어들 수 있지 않을까 싶습니다.
항상 좋은 강의에 감사드립니다!
이규태님 고맙습니다.
지난번에 https://www.inflearn.com/questions/489062
관련 내용을 깔끔하게 잘 정리해주셔서 감동이었습니다.
관련 내용 패치해서 올리도록 할께요^^!
답글
깔끔하게 잘 정리해주셔서, 듣는 저도 도움이 많이 되었습니다. 감사합니다
답글