質問

リソース バンドル プロパティ ファイルがある場合:

A. プロパティ:

thekey={0} This is a test

そして、リソースバンドルをロードする Java コードがあります。

ResourceBundle labels = ResourceBundle.getBundle("A", currentLocale);
labels.getString("thekey");

{0} テキストを何らかの値に置き換えるにはどうすればよいですか

labels.getString("thekey", "Yes!!!");

出力は次のようになります。

Yes!!! This is a test.

リソース バンドルの一部には、これを行うためのメソッドはありません。また、私はStrutsを使用していますが、MessagePropertiesを使用して置換を行う方法はありますか。

役に立ちましたか?

解決

探しているクラスは java.text.MessageFormat です。具体的には、電話をかける

MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"});

または

MessageFormat.format("{0} This {1} a test", "Yes!!!", "is");

戻ります

"Yes!!! This is a test"

[残念ながら、Struts 接続については役に立ちませんが、 これ 関連性があるようです。]

他のヒント

クラスがあります org.apache.struts.util.MessageResources getMessage のさまざまなメソッドを使用すると、実際のメッセージに挿入する引数を受け取るメソッドもあります。

例えば。:

messageResources.getMessage("thekey", "Yes!!!");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top