강의

멘토링

로드맵

Inflearn brand logo image

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

jangeh3031님의 프로필 이미지
jangeh3031

작성한 질문수

국제화 MessageTest 오류

작성

·

26

0

image.png

안녕이 반환되어야하는데 hello가 반환되어 테스트가 통과되지 않고 있습니다.

파일 인코딩은 UTF-8로 잘 설정되어있습니다.

 

image.png

현재 두개의 properties를 만들었는데

만약 messages_en.properties를 지우면 안녕이 반환되면서 테스트를 통과합니다.

두 파일이 모두 존재할 경우 messages_en.properties를 먼저 선택하는 듯한 느낌입니다.

 

image.png

messages_en을 삭제했을 때 모습입니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
jangeh3031님께서 국제화 MessageTest 오류에 대해 질문해 주셨네요.

지금 발생한 문제는 messages_en.properties 파일이 존재할 때 Locale.KOREA를 사용해도 “hello”라는 값을 반환하는 상황인 것 같습니다. 이 문제의 근원은 메시지 소스 설정이 fallback-to-system-locale 설정에 의존하기 때문일 수 있습니다.

Spring Boot에서 국제화 메시지를 설정할 때, messages.properties가 기본 메시지 파일로 사용됩니다. 현재 messages.propertiesmessages_en.properties 모두가 존재할 때, 시스템은 명시적인 로케일을 제공하지 않는 경우 Locale.ENGLISH를 사용하여 messages_en.properties를 우선 사용하게 되는 경우가 있습니다.

해결 방안으로는 application.properties 또는 application.yml 파일에 다음과 같이 설정을 추가하여 시스템의 실패 시 기본 로케일을 사용하지 않도록 할 수 있습니다:

spring.messages.fallback-to-system-locale=false

이 설정은 메시지를 찾을 때 기본 로케일로 돌아가는 것을 방지하기 때문에 명시된 로케일(이 경우 Locale.KOREA)에 맞는 메시지 파일을 사용하게 만듭니다.

보다 더 확실한 해결책은 properties 파일을 명확하게 로케일에 맞도록 이름을 지정하고, 각 파일에 원하는 내용이 존재하는지 확인하는 것입니다.

자세한 정보는 Spring Boot Internationalization Documentation을 참고하시면 도움이 될 것입니다.

추가적인 질문이 있으면 언제든지 문의해 주세요!

jangeh3031님의 프로필 이미지
jangeh3031

작성한 질문수

질문하기