0

RequestFactoryがjsr303バリデータを使用してドメインオブジェクトを検証すると、ローカライズされたcontraint違反メッセージとメッセージキーが取得されます。私はコードをデバッグし、クライアント側でどのロケールが使用されていても、デフォルトのロケールがサーバー側で使用されます。私はペイロードにロケールの設定も見つけられませんでした。GWT RequestFactoryを使用したJSR303ローカライズされたメッセージ

RequestFactoryとBeanValidationを使用してローカライゼーションを処理する方法の例はありますか? メッセージはクライアントまたはサーバー側で翻訳する必要がありますか? ベストプラクティスは何ですか?

ありがとうございます!

答えて

3

私はこの問題の青いプリントが見つかりませんでしたので、私は自分のメカを実装しました。 現在選択されている言語をヘッダーに属性として追加し、サーバー側でヘッダーから言語を読み取りました。

クライアント側:

MyRequestFactory factory = GWT.create(MyRequestFactory.class); 
factory.initialize(new SimpleEventBus(), new DefaultRequestTransport() { 

    @Override 
    protected void configureRequestBuilder(RequestBuilder builder) { 
     super.configureRequestBuilder(builder); 
     builder.setHeader("X-GWT-Language", 
      LocaleInfo.getCurrentLocale().getLocaleName()); 
    } 
}); 

サーバー側(Grailsの):

def index = { 
    String gwtLanguage = request.getHeader("X-GWT-Language") 
    if(gwtLanguage){ 
     Locale gwtLocale = new Locale(gwtLanguage) 
     RequestContextUtils.getLocaleResolver(request).setLocale(request, response, gwtLocale) 
    } 
    // ... Handle the RequestFactory request 
関連する問題