私のアプリケーションでは、ラベルの翻訳に Java リソース バンドルを使用しています。現在、次の 2 つのファイルがあります。
- 英語のラベル付きの resources.properties (デフォルト言語)
- フランス語のラベル付きの resources_fr.properties
次に、次のコマンドでバンドル プロパティを読み込みます。
ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME, locale);
...locale
はユーザーのロケールです。
フランス語の Web ブラウザーを使用している場合、ロケールが正しく fr に設定されているため、すべてのメッセージがフランス語で表示されます。しかし、ブラウザーを英語 (米国) に切り替えても、まだフランス語のままです。
変数はlocale
en_USロケールで正しく設定されていますが、getBundle
メソッドはデフォルトのバンドルを返すだけでなく、frロケールのバンドルを返します...
それは正常な動作ですか?resources.properties
ロケールに特定のリソース バンドルが関連付けられていない場合 (フランス語など) 、英語の値が使用されることを期待していたので、非常に驚いています...