既存の Java/JSF Web サイトがあります。画面上のすべてのテキストは、applicaltion.properties からテキストを取得する <f:loadBundle basename="org.example.applicaltion" var="applicaltion" /> を介してプロパティ ファイルから取得されます。
これらの実行時に構成可能なサブセットについては、他の場所 (Web サービス経由の CMS) から文字列を取得したいと考えています。ResourceBundle クラスを見ると、親 ResourceBundle への委譲により、これに近いもののためのインフラストラクチャーがあるように見えます。
私はこのような何かを望んでいます
public class Applicaltion extends ResourceBundle{
@Override
protected Object handleGetObject(String key) {
if(overridenKey(key)){
return overridedValue(key);
}
return null; // ResourceBundle.getObject will delegate to parent
// if we return null
}
}
私はこれを試しましたが、親は null です。これは、デフォルト -> en -> en_GB の場合により多く使用されると思います。
プロパティ ファイルにカスタム resourceBundle とは別の名前を付けてから、CustomResourceBundle.handleGetObject(key) 内から ResourceBundle.getBundle(PROPERTY_FILE_NAME).getString(key) のフル スタックを委任するというあまり魅力的ではないオプションを検討しています。
より良いアイデアはありますか?