私は伝統的なSpring4/Thymeleafの国際化アプリケーション を持っている私は、古典的な春Thymeleaf:Iを切り替えるとき変更ロケールと現在のページにとどまる
org.springframework.web.servlet.i18n.LocaleChangeInterceptor
と
org.springframework.web.servlet.i18n.CookieLocaleResolver
で簡単にロケールを切り替えますサーバに常に/home?lang = frを送信してください。それはうまく動作します。しかし、私はより複雑な行動が必要です。 私がする必要があるのは、現在のページを維持しながら、ロケールの切り替え中にに保存することです。
私はこの thymeleafスニペットで半分ワーキング解決策を見つけた:問題は、私は自分自身に多くのコーナーケースを実装する必要がある
th:with="currentUrl=(${#httpServletRequest.pathInfo + '?' + #strings.defaultString(#httpServletRequest.queryString, '')})
:
- 任意のクエリパラメータが既に存在する場合
- lang = en param、
- など
誰もがネイティブ春やThymeleafツールでこのケースを管理する方法を知っていますか?または、私はThymeleaf用に独自のプロセッサを作成する必要がありますか?
あなたがテストしているサンプルアプリケーションを持っていますかこの機能はありますか?解決策を試してみるために、既に設定されているプロジェクトに対して作業することができればいいですか?言語セレクタが各ページのヘッダーまたはフッターとして表示されていることを推測しています。私は、現在のページのURLを含むモデルに値を追加するインターセプタを設定することにします。テンプレートは、ページの言語固有のURLを出力する役割を担います。 –