リソースバンドルとMessageFormatを使用すると、次のような結果になる可能性はありますか?
getBundle("message.07", "test")
私が取得するために呼び出すとき"Group test"
getBundle("message.07", null)
私が取得するために呼び出すとき"No group selected"
私がインターネットで見つけたすべての例は、惑星、ディスク上のファイルなどです。
リソースバンドルのプロパティファイルに1つのパラメータが存在するnull
(または存在しない)かどうかを確認するだけで済みます。nullパラメータの特別な形式を見つけたいと思っています{0,choice,null#No group selected|notnull#Group {0}}
。
バンドルを取得するために使用する方法は次のとおりです。
public String getBundle(String key, Object... params) {
try {
String message = resourceBundle.getString(key);
if (params.length == 0) {
return message;
} else {
return MessageFormat.format(message, params);
}
} catch (Exception e) {
return "???";
}
}
このメソッドは、次のような他のバンドルに対しても呼び出します。
getBundle("message.08", 1, 2)
=>"Page 1 of 2"
(常にパラメータ、チェックする必要はありませんnull
)getBundle("message.09")
=>"Open file"
(パラメータなし、チェックする必要はありませんnull
)
message.07
結果を説明するには、.propertiesファイルに何を書き込む必要がありますか?
私が今持っているのは:
message.07=Group {0}
message.08=Page {0} of {1} # message with parameters where I always send them
message.09=Open file # message without parameters