Javaの国際化:1つのResourceBundleパッケージごとアクセサ、またはプロジェクト全体のための1つを使用して?
-
20-09-2019 - |
質問
私は国際化については何も知りません。
私はいくつかのパッケージを使用してプロジェクトを持っています。私は、プロパティファイルに私のクラスで文字列定数を抽出し、静的アクセサの呼び出しでこれらの文字列を置き換えるためにEclipseの内蔵の「外部化文字列」ウィザードを使用しています。だから、代わりに
System.out.println("Hello, world!");
私は
で終わりますSystem.out.println(Messages.getString("MyKey"));
とすべてのパッケージでMessages
ユーティリティクラス([この場合getString
ファイル]のResourceBundleから所望の文字列を取得するための静的.properties
方法を提供します)。それは、すべてのパッケージにMessages
クラスを持っている、またはプロジェクト全体のための単一のMessages
クラスを持っているのがベストですか?
解決
私は、グローバルローカライズファイルに賛成です。あなたが重複またはネストを必要と思われる(「OK」、「キャンセル」)、およびリソースが集約されている場合は外のローカライズ人とのインタフェースが容易になり、重複キーを持つことになります。
他のヒント
私は1つあたりのパッケージを続けるだろう。この方法で、保守/リファクタリング/ユニットテストがはるかに簡単です。
また、単一のファイルには世界的な依存関係はありません。
所属していません StackOverflow