3

Javaでアプリケーションを作っています。このアプリケーションは、s を使用して国際化できますResourceBundle。ユーザーがアプリケーションに必要な言語を選択できるようにしたいと考えています。そして質問があります: プログラムで利用可能な言語を一覧表示するにはどうすればよいですか? Locale.getAvailableLocales()アプリが選択した言語の .properties ファイルを持っているかどうかわからないので、私は使用したくありません。2 番目の質問もあります。.jar ファイルの外部に言語ファイルを追加する機能を追加できますか? 最後の質問です。これより優れた国際化ソリューションはありますか?

よろしく

4

1 に答える 1

2

サポートされているロケールの固定リストをアプリケーションの定数に格納するだけで済みます。これを動的にする必要がある場合は、次の 2 つの解決策があります。

  • サポートされているロケールをリストしたプロパティ ファイルを使用し、起動時にこのプロパティ ファイルからそれらをロードします。
  • 利用可能なロケール (または言語) を反復処理し、対応するバンドル プロパティ ファイルを ( を使用してClass.getResourceAsStream()) ロードしようとします。InputStream を取得した場合はそのロケールがサポートされ、null を取得した場合はサポートされていないと見なします。

jar に加えて、クラスパスにディレクトリを配置することで、ユーザーにバンドルを追加させることができます。プロパティ ファイルをこのディレクトリにドロップします (パッケージ階層を考慮して)。

于 2012-05-31T17:50:45.483 に答える