i18n変換されたURLパスをマップするアプローチは何ですか?例えばi18nパス部分を使用したSpring MVCリクエストマッピング
は、我々は(ロケールエンため)follwing URLの話を言うことができます:(デ)ドイツ語で
www.foo.tld/car/manufacturer
このURLは次のようになり、私はコントローラRequestMapping私について知っていること
www.foo.tld/auto/hersteller
これらのURLを1つのメソッドにマップするのにseverelの値を使うことができます
@GetMapping(value={"/car/manufacturer/", "/auto/hersteller/"})
その他のSEO最適化woおそらく
@GetMapping(value={"/en/car/manufacturer/", "/de/auto/hersteller/"})
のようなパスで現在のロケールを持つものになる...しかし、私は最高のURIのSEOのが賢明だろうどのような議論を開始したいいけないULD。
これは多少のロケール/言語しか使用していないとしても、これは何とか動的にしたいと思っています。以下のために、すでにそれらを使用して
uri.car=car
uri.manufacturer=manufacturer
messages_de.properties
uri.car=auto
uri.manufacturer=hersteller
イム
messages.properties: は現在のように、自分のアプリケーション内のURLを生成するためのURLパス部分をマップするmessages_xx.propertiesを使用してイムうまく動作するユーザーロケールを参照するリンクを構築します。
私が現在検索しているものは、コントローラでこれらのURLをマップするエレガントで誤りの少ないプルーニング方法です。上記の例のように私のコントローラに静的なRequestMappingを持っていれば、それを変更する必要もあります(もし忘れていなければ!)。 また、別の言語のサポートを追加したいのであれば、すべてのコントローラで検索し、別の値マッピングを追加する必要があるかどうかを確認する必要があります。
Springコントローラのi18nパス部分をマッピングする方法が理想的です。理想的にはリクエストロケールを尊重し、messages_xx.propertiesを使用してパス文字列を解決しますか? または、リクエストされたロケールに従ってパス部分を抽出し、URLをマッピングするために内部的に1つの言語のみを使用するフィルタになるでしょうか?