6

私のアプリケーションでは、ラベルの翻訳に Java リソース バンドルを使用しています。現在、次の 2 つのファイルがあります。

  • 英語のラベル付きの resources.properties (デフォルト言語)
  • フランス語のラベル付きの resources_fr.properties

次に、次のコマンドでバンドル プロパティを読み込みます。

ResourceBundle.getBundle(RESOURCE_BUNDLE_NAME, locale);

...localeはユーザーのロケールです。

フランス語の Web ブラウザーを使用している場合、ロケールが正しく fr に設定されているため、すべてのメッセージがフランス語で表示されます。しかし、ブラウザーを英語 (米国) に切り替えても、まだフランス語のままです。

変数はlocaleen_USロケールで正しく設定されていますが、getBundleメソッドはデフォルトのバンドルを返すだけでなく、frロケールのバンドルを返します...

それは正常な動作ですか?resources.propertiesロケールに特定のリソース バンドルが関連付けられていない場合 (フランス語など) 、英語の値が使用されることを期待していたので、非常に驚​​いています...

4

2 に答える 2

0

これはあなたの質問を明確にするのに役立つかもしれません:

http://docs.oracle.com/javase/tutorial/i18n/resbundle/propfile.html

これらの Locale オブジェクトは、前の 2 つの手順で作成したプロパティ ファイルと一致する必要があります。たとえば、Locale.FRENCH オブジェクトは LabelsBundle_fr.properties ファイルに対応します。Locale.ENGLISH には一致する LabelsBundle_en.properties ファイルがないため、デフォルトのファイルが使用されます。

于 2013-07-25T12:48:59.157 に答える