2016-09-22 18 views
0

jQueryの検証に関して質問がありますpluginカスタムjQuery検証メッセージを翻訳する

ローカライゼーションを使用してスペイン語で表示するエラーメッセージのデフォルト言語を変更しましたが、翻訳するカスタムメッセージに関するものは見つかりませんでした。すべての手がかりは?例

ため

私はスペイン語のための翻訳ファイルを含めまして、これは私のコードです:など「このフィールドは必須です」のような

$('.signup-form').validate({ 
    lang : 'es', 
    rules:{ 
     tandc : {required : true} 
    }, 
    messages:{ 
     tandc : {required : "You have to accept terms and conditions to proceed further"} 
    } 
}) 

デフォルトのメッセージは、私は今、スペイン語で表示されています上記のメッセージをスペイン語に翻訳したいのですが、翻訳されたテキストをどこでどのように定義するのかわかりません。

答えて

4

プラグインによって「翻訳された」ものはありません。翻訳は手動で行われ、これらの新しいメッセージは​​に配置され、デフォルトの設定を上書きします。

langどこでもin this plugin呼ばそのような.validate() optionもありません。ローカライズファイルを使用するには

は、単にあなたがプラグインが含まれた後

<script type="text/javascript" src="...path-to/jquery.validation/1.15.0/jquery.validate.js" /> 
<script type="text/javascript" src="...path-to/jquery-validation/localization/messages_es.js" /> 

その後、すべてのデフォルトのメッセージはスペイン語になります...などどこかなどのファイルを含むことを意味します。

「このフィールドは必須です」などのメッセージはスペイン語で表示されますが、今は上記のメッセージをスペイン語に翻訳したいところですが、翻訳されたテキストを定義する場所と方法はわかりません。

スペイン語のローカリゼーションファイルを含めると、スペイン語のローカリゼーションファイルで定義されているデフォルトのメッセージを置き換えるようにプラグインに指示するだけです。

あなたのmessagesオブジェクトはこれらのデフォルトメッセージをオーバーライドします。したがって、スペイン語のメッセージが1つの入力フィールドについてrequiredルールをオーバーライドするようにするには、そのメッセージをスペイン語で記述する必要があります。 オンザフライでメッセージを解釈できる組み込みの動的翻訳はありません。任意のテキストが.validate()又は類似の方法内messagesオブジェクトを使用してルールまたはフィールド全体によって単一のフィールドに対して宣言

  1. rules:{ 
        tandc : { 
         required : true 
        } 
    }, 
    messages:{ 
        tandc : { 
         required : "Tienes que aceptar los términos y condiciones de seguir avanzando" 
        } 
    } 
    

    これは、使用されるメッセージの優先順位です。

  2. 項目#1に何も定義されていない場合、オーバーライドプラグインのデフォルトメッセージは$.extend($.validator.messages, {...})で定義されています。これは、ローカリゼーションファイルの仕組みです。

  3. 項目#2に何も定義されていない場合:プラグインで定義されているデフォルトのメッセージ(英語)。


あなたは動的変更する必要がある場合は今.validate()messagesオブジェクトで定義されたすべてのメッセージは、フォーム上のプラグインを初期化している、あなたは以上に.rules('add')メソッドを使用する必要があります-それに乗る。

$('[name="foo"]').rules('add', { 
    messages: { 
     required: "yo! I'm required." 
    } 
}); 

DEMO: "LANG" のことをクリアするためのjsfiddle.net/3fLkf47u/

+0

おかげで、私はそれがどこかに使用さ見て、この周りをだましました。 とにかく私は "messages_es"ファイルで翻訳を定義する方法を尋ねていましたが、私はこの追加メソッドを使ってスペイン語にメッセージを上書きする必要があるため、私は私の答えがあると思います。適切な説明のために乾杯! –

+0

[github](https://github.com/jquery-validation/jquery-validation/tree/master/src/localization)のサポートされているすべての言語と翻訳キーを確認してください。 –

関連する問題