2016-11-19 19 views
3
私は、私は、フォームのエラーを取得し、AJAXを使用して、それをレンダリングしようとしている遊びのJava 2.5.9 を使用していますフレームワークを再生する新たなんだ

(私はform.errorsAsJson()を使用しています理由です)、エラーは私が試したアラビア語でプレイ-javaの2.5.9 form.errorsAsJson()は常に英語のエラーメッセージを返す

を表示し、このような私のconf/messages.arにエラーメッセージを配置する必要があります:

#bean validation messages 
validation.required=لابد من إدخال قيمة في هذا الحقل 
error.required=لابد من إدخال قيمة في هذا الحقل 

私も試したとのconf/ValidationMessages_ar.propertiesに次のように置かれている:

error.required=\u0627\u0644\u062D\u0642\u0644 \u0645\u0637\u0644\u0648\u0628 validation.required=\u0644\u0627\u0628\u062F \u0645\u0646 \u0625\u062F\u062E\u0627\u0644 \u0642\u064A\u0645\u0629 \u0641\u064A \u0647\u0630\u0627 \u0627\u0644\u062D\u0642\u0644 どちらも二つのメッセージのはrenderdですが、私は常に取得:

This field is required 

次のように私のアクションコードは次のとおりです。

@Transactional 
public Result addUOMType(){ 
    ObjectNode result = Json.newObject(); 
    Form<UnitOfMeasureType> uomTypeForm = formFactory.form(UnitOfMeasureType.class); 
    try{ 
     uomTypeForm = uomTypeForm.bindFromRequest(); 
     System.out.println(Http.Context.current() != null ? Http.Context.current().lang() : ""); 
     if(uomTypeForm.hasErrors()){ 
      result.put("status", "error"); 
      result.put("errors", uomTypeForm.errorsAsJson()); 
      return ok(result); 
     } 
     UnitOfMeasureType uomType = uomTypeForm.get(); 
     uomType.save(); 
     result.put("status", "success"); 
     result.put("message", Messages.get("response.success")); 
    }catch (Exception exp){ 
     result.put("status", "error"); 
     result.put("errors", Json.toJson(exp.getMessage())); 
    } 

    return ok(result); 
} 

するSystem.out.printlnプリント: ラング(AR)

+0

あなたのmain.scala.htmlに? – chabeee

答えて

2

Form.errorsAsJsonoverloaded version taking Lang parameterがあります

public com.fasterxml.jackson.databind.JsonNode errorsAsJson(Lang lang) 
// Returns the form errors serialized as Json using the given Lang. 

だから、あなたが行うことができます:

result.put("errors", uomTypeForm.errorsAsJson(lang())); 

、それは限り、あなたはconf/messages.arでそれらを定義するよう、適切にローカライズされたメッセージが返されます。私はちょうど私のプロジェクトでこれを試したとうまくいった。

方法lang()defined in play.mvc.Controllerです。

+0

私の質問に答えてくれたPawelさん、ありがとうございました。すべてのメッセージエラーキーがどこにあるのか知っていますか?例えば私は置くそれは私がSize' @ 'のために何を使用する必要があり、Required'注釈@'で働いerror.required、私はすべてのメッセージキーのリストが必要 –

+0

これらのアノテーションの内側 'message'でフィールドがそう、そこだと思われる下さい@HassaanHassaan [ドキュメントをチェックインする](https://playframework.com/documentation/2.5.9/api/java/play/data/validation/Constraints.MinLength.html#message--)またはアノテーションに 'message'パラメータを渡します。あなたはまた、(https://github.com/playframework/playframework/blob/2.5.9/framework/src/play-java/src/main/java/play/data/ [直接ソースに]チェックすることができ@HassaanHassaan –

+0

validation/Constraints.java)を参照してください。 –

0

あなたはconf/application.confでサポートされている言語にarを追加しましたか?このよう

play.i18n.langs = [ "en", "ar" ] 

また、あなたはconf/ValidationMessages_ar.propertiesを削除することができます - あなたは、このファイルは必要ありません。

関連する問題