Wicket は、次のルールを使用してメッセージ リソースを見つけようとします。
Wicket は、 から始まり、 のコンポーネント階層を介してPage特定のメッセージにドリルダウンして、メッセージを見つけようとします。これはトップダウン検索であることに注意してください。ComponentPage
コンポーネント階層でメッセージが見つからない場合は、Applicationクラスで検索されます。
すべてのクラスでのリソースのルックアップは、次のように機能します。
ローカライズされた検索では、Java の場合と同様に、ロケールをファイル名に追加しますLogin_nl.properties( 、次に) 。Login.propertiesResourceBundle
クラス階層をダウントップします。つまり、あるクラスでリソースが見つからない場合、そのリソースは、ヒットするまでそのスーパークラスで検索されますjava.lang.Object。
したがって、特定のケースでLoginは、 がPanelinsideHomePageの場合、 でリソースを定義するだけですHomePage(_nl).properties。また、特定のアプリケーション全体のメッセージがある場合は、それらを で定義できることを覚えておいてくださいWicketApplication(_nl).properties。
次の Wicket wiki ページが見つかるかもしれません。
(...) . これは、最初にコンポーネント階層 (別名ページ階層) 内のすべての親のメッセージを (上記のアルゴリズムに従って) 検索することで容易になります。すべてのコンポーネントはその子コンポーネントのメッセージをオーバーライドできるため、検索はページのプロパティから開始され、それを使用するコンポーネント (つまり、トップダウン) まで細流化されます。特定の子コンポーネントに固有のオーバーライドを作成するために、メッセージ キーの前に子のコンポーネント ID を付けることができます。詳細については、ComponentStringResourceLoader を参照してください。
ページ階層にメッセージが見つからない場合は、別の検索が開始され、アプリケーション クラスとそのスーパー クラスが調べられます。そのため、Wicket は最初に MyApplication.properties (MyApplication がアプリケーションの名前である場合) を調べ、次にクラス階層を上って、org.apache.wicket.Application を渡し、java.lang.Object まで渡します。これが、Wicket が多くのデフォルトの i18n テキストを提供する方法です。