원격 웹 브라우저 설정 언어 설정에 맞게 웹 응용 프로그램을 만들 때 몇 가지 문제가 있습니다. ResourceBundleMessageSource를 사용했습니다.스프링 로컬 감지 데이터
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="resources/messages" /> </bean>
그리고 두 .properties의 파일이 있습니다 : 그것은 다음과 같습니다 그들은 SRC에있는
messages.properties
messages_ru.properties
을/resources/messages.
원격 사용자 브라우저 언어 설정에 러시아어가 포함되어 있으면 내 앱에서 러시아어 메시지 (messages_ru)를 사용해야하며 그렇지 않으면 언어가 구성되지 않았거나 러시아어가 아닌 경우 meessages를 사용해야합니다. .properties (영어 메시지 포함).
브라우저에서 러시아어를 설치하면 올바르게 작동합니다. 모든 설정을 지울 때 러시아어도 표시됩니다 (시스템 로캘 설정에 따라 다름). 그리고 다른 언어를 설정하면 러시아어 메시지도 표시됩니다.
내 앱에서 영어 메시지를 표시하도록하는 유일한 방법은 messages.properties의 이름을 messages_en.properties로 바꾸고 브라우저에서 설정하는 것입니다. 그러나 나는 모든 언어 설정 (러시아어를 사용할 때, 필요하다면 영어를 사용하고, 다른 모든 설정과 다른 나라에서는 영어로 사용)을 위해 앱을 채택하고자합니다.
아이디어가 있으십니까?
ResourceBundleMessageSource에는 fallbackToSystemLocale 속성이 없습니다. 또한이 속성을 포함하는 ReloadableResourceBundleMessageSource를 사용하려고했습니다. 그러나 사양은 다음과 같이 말합니다 : "시스템 Locale은 java.util.ResourceBundle의 기본 동작이지만 시스템 Locale이 응용 프로그램과 전혀 관련이없는 응용 프로그램 서버 환경에서는 바람직하지 않습니다. 그런 시나리오에서 "거짓"으로 플래그하십시오. ". – Ilnur
그리고 내 시도도 결과를 얻지 못한다. 이제 브라우저를 러시아어로 구성하면 러시아어 메시지가 표시되고, 그렇지 않으면 오류 메시지가 표시됩니다 (즉, 언어 이름) (예 : messages_de) 파일이 존재하지 않습니다. – Ilnur
@llnur : 업데이트되었습니다. – axtavt