スプリングローカル感受性データ
-
28-09-2019 - |
質問
リモートユーザーブラウザーの言語設定にWebアプリを適応させることにいくつかの問題があります。 ResourceBundleMessageSourceを使用しました。このように見えます:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="resources/messages" /> </bean>
そして、私は2つの.propertiesファイルを持っています:
message.properties
messages_ru.properties
それらはSRC/リソース/メッセージにあります。
リモートユーザーのブラウザ言語設定にロシア語が含まれている場合、アプリはロシア語メッセージ(messages_ru)を使用する必要がある場合(言語が構成されていない場合、またはロシア語ではない場合)、meessages.properties(it(it)を使用する必要があるため、アプリを設定したいと思います。英語のメッセージが含まれています)。
ブラウザでロシア語をセットアップすると、正常に動作します。すべての設定を消去すると、ロシア語も表示されます(システムのロケール設定に依存すると思います)。そして、私が別の言語を設定したとき、それはまた私にロシアのメッセージを見せてくれます。
英語のメッセージを表示するアプリを作成する唯一の方法は、messages.propertiesをmessages_en.propertiesに変更し、ブラウザー英語のラングに設定することです。しかし、私はすべての言語設定にアプリを採用したいと思っています(ロシア語を使用している場合、必要に応じて、他の設定やその他の国に英語を使用します)。
何か案は?
解決
設定する必要があります
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resources/messages" />
<property name="fallbackToSystemLocale" value="false" />
</bean>
この場合、スプリングは使用します messages.properties
フォールバックとして、アプリケーションの「デフォルト」ロケールにメッセージを含める必要があります。