http://bassistance.de/jquery-plugins/jquery-plugin-validation/ からJQuery Validatorを使用しています。メッセージがカスタムであり英語ではないようにするにはどうすればよいですか?.
次のようにします:
$(document).ready(function() {
$("form#login").validate({
lang: 'en' // or whatever language option you have.
});
});
指定する言語がデフォルトの言語のいずれでもない場合は、次を実行します。
$.tools.validator.localize("fi", {
'*' : 'Virheellinen arvo',
':email' : 'Virheellinen sähköpostiosoite',
':number' : 'Arvon on oltava numeerinen',
':url' : 'Virheellinen URL',
'[max]' : 'Arvon on oltava pienempi, kuin $1',
'[min]' : 'Arvon on oltava suurempi, kuin $1',
'[required]' : 'Kentän arvo on annettava'
});
$("form#login").validate({
lang: 'fi'
});
詳細については、 これらの手順 を参照してください。
「ローカリゼーション」ディレクトリを調べると、さまざまな言語のエラーメッセージが含まれるさまざまな.jsファイルを見つけることができます。 ["messages_XX.js"のようなもの]
必要な言語のファイルを選択し、jquery.validate.jsをインクルードした後、タグに次の行を追加するだけです
<script type="text/javascript" src="localization/messages_XX.js"></script>
最適な方法は、必要に応じてこのようにプラグインを拡張することです
$.extend($.validator.messages, {
required: "my required message",
....
});
Alex has のような初期検証スクリプトのJSON構造は次のとおりです。
rules: {
accntTypeCL: {
required: true,
},
accntNoCL: {
required: true,
minlength: 19,
numberDash: true,
}
},
messages : {
accntTypeCL : {
required : Messages.ERR_TEST,
},
accntNoCL : {
required : Messages.ERR_TEST,
numberDash : Messages.ERR_TEST,
minlength : Messages.ERR_TEST2,
},
}
//This would be in your messages.js file... But you'll need to make sure you are using a Java backend or something that will pull the messages.js correctly
//For IBM worklight this worked great
Messages = {
// Add here your messages for the default language.
// Generate a similar file with a language suffix containing the translated messages
ERR_TOPLEVEL : '<span role=\"presentation\">One or more of the required fields was left blank or is invalid.<\/span>',
//Test Messages for tracing
ERR_TEST: 'This be the test yar!',
ERR_TEST2: 'This be the test2 yar!'
};
このようにして、同じ関数、同じ追加のメソッド、同じエラータイプを再利用し、ブラウザーで検出する必要のあるHTMLの言語に基づいて、またはそれを使用しているにもかかわらず、正しいmessages.jsファイルを使用することができます。この特定の方法は私にとってはうまくいきました。
私のソリューションを見てください
_jQuery.extend(jQuery.validator.messages, {
required: abp.localization.localize("FormValidationMessageRequired"),//"This field is required.",
remote: "Please fix this field.",
email: abp.localization.localize("FormValidationMessageEmail"),//"Please enter a valid email address.",
url: abp.localization.localize("FormValidationMessageUrl"),//"Please enter a valid URL.",
date: abp.localization.localize("FormValidationMessageDate"),//"Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: abp.localization.localize("FormValidationMessageNumber"),//"Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: abp.localization.localize("FormValidationMessageDataEquals"),//"Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format(abp.localization.localize("FormValidationMessageMinlength")),//jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format(abp.localization.localize("FormValidationMessageMax")),//jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format(abp.localization.localize("FormValidationMessageMin"))//jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
_
このfunc abp.localization.localize(Key)
は、現在のカルチャに基づいてローカライズされた文字列を返します。この関数は、私が使用したフレームワークの aspnetboilerplate
詳細については、このスタックオーバーフロースレッドを参照してください jQuery検証:デフォルトエラーメッセージの変更
次のように、エラーメッセージをマークアップに直接配置することもできます。
<input required data-msg="Please fill this field">
<input data-rule-minlength="2" data-rule-maxlength="4" data-msg-minlength="At least two chars" data-msg-maxlength="At most fours chars">
ドキュメント を参照してください
ある種のローカライズプラグインを使用する場合、メッセージを別のファイルに移動できます。ここではi18n-2(npmモジュール)を使用します。
<input id="email" type="email" name="email" data-msg=__("pages.apply.form.email.errormsg.required"))
次に、言語ファイルをフォルダーに入れます。
/locales
da.json
en.json
en.json
"pages": {
"apply": {
"subtitle": "Apply here",
"form": {
"email": {
"title": "Email",
"placeholder": "Your email address",
"warning": "NB! DER AFSENDES EN MAIL HERTIL",
"errormsg": {
"required": "Enter a valid email address"
}
}
}
}
}
messages
オブジェクトを使用します。
カスタムメッセージを定義するキーと値のペア。キーは要素の名前、値はその要素に対して表示するメッセージです。プレーンなメッセージの代わりに、ルールごとに特定のメッセージを持つ別のマップを使用できます。要素のtitle属性またはメソッドのデフォルトメッセージを(この順序で)オーバーライドします。各メッセージは、文字列またはコールバックにすることができます。コールバックはバリデーターのスコープ内で呼び出され、ルールのパラメーターを最初に、要素を2番目の引数として、メッセージとして表示するストリングを返す必要があります。
$(".selector").validate({
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please specify your name",
email: {
required: "We need your email address to contact you",
email: "Your email address must be in the format of [email protected]"
}
}
})
ソース 。
npm
/yarn
を使用してアセットを管理する場合、次のようにローカライズファイルをインポートできます(もちろんISOコードを置き換えてください、ここではフランス語です)。 :
import 'jquery-validation';
import 'jquery-validation/dist/localization/messages_fr';
次に使用します:
$form.validate({
lang: 'fr',
});