リクエストの Accept-Language ヘッダーに応じて、レスポンスのロケールを尊重する方法を見つけようとしています。ジャージーの実装を使用しています。これは、アプリケーションの Restful 側のためのものです。WebApplication 側 (JSF) については既にカバーしていますが、Jersey/JAXRS は連携していません。
基本的には、エラー応答を返す必要があると言います。英語のロケールでは「Problem」、スペイン語のロケールでは「Problema」という文字列を送り返したいと思います。
これまでのところ、この同様の投稿を見つけましたが、具体的な回答は得られませんでした - JSF および JAX-RS で動作する Locale プロバイダーの実装
あなたの助けに感謝します
アップデート:
これまでのところ、次のようにしてロケールを取得できます。
@Controller @Path("/test")
@Produces("plain/text")
public class TestRouteController implements Serializable{
@GET
@RestrictedRoute(permissions={SCConstant.PERMISSION_SEARCH_VIEW_CLIENT})
public Response testMethong(@Context HttpServletRequest request){
String message = "Locale in request is " + request.getLocale();
return ResponseGenerator.response(message);
}
}
次に、送り返す文字列メッセージのロケールを尊重したいと思います。これを見た場合:
if(request.getLocale() == "sp-VE")
message = "El locale en la requesta es " + request.getLocale();
else if(request.getLocale() == "sp-MX")
message = "La localizacion en la requesta es " + request.getLocale();
多くのことをローカライズしたいので、これはできません。