2011-12-28 5 views
1

タペストリー国際化 - ロケールのプレフィックスを削除するロケールを切り替えるときタペストリーがURLに自動的にロケールプレフィックスを追加し

http://host/en/home 
http://host/es/home 
http://host/fr/home 

など それを回避する方法。

configuration.add(SymbolConstants.ENCODE_LOCALE_INTO_PATH, "false"); 

及び使用LinkCreationListener2またはLinkCreationListener自分で(タペストリー< 5.2 *用):私はあなたがAppModuleクラスに追加の設定を追加する必要がありタペストリーAPIで発見しました。誰ももっと情報や例を与えることができますか? Thks

答えて

1

これは、ロケールの追跡の目的によって異なります。 Tapestry 5.0はロケールを追跡するためにクッキーを使用します。 Tapestry 5.1はそれをパスにエンコードするように切り替えました。私はパスで正しいと思う...結局のところ、ユーザーがページのフランス語版をブックマークする場合、ブックマークを使用すると、月後のページのフランス語版が表示されます。

プラン:

  • オーバーライド
  • はクッキーを保存するために値
  • オーバーライドにPersistentLocaleサービスを設定するには、クッキーを読み込むのRequestHandlerパイプラインへのRequestFilterを拠出する「偽」のシンボル
+0

こんにちは、Howardさん、ありがとうございます。残念ながら、私はTapestryのユーザガイド/チュートリアルやドキュメンテーションで、あなたが何をするべきかを達成する方法を見つけることはできません。つまり、RequestHandlerパイプラインにRequestFilterを与え、値を設定するためにクッキーを読み込み、クッキーを保存するためにPersistentLocaleサービスをオーバーライドします。どんなヒントも感謝しています:);ありがとう。 – belgoros

+0

フィルタの寄稿などについては、Tapestry IoCのドキュメントを参照してください。 http://tapestry.apache.org/tapestry-ioc-configuration.html IoCがどのようにコンフィギュレーションとオーバーライドに近づいているかを理解していることを前提としています。Tapestryには単一のアプローチがあり、すべてのフレーバのすべてのサービスが同じように。 –

関連する問題