Как изменить сообщение о языке JQuery Validator - PullRequest
19 голосов
/ 31 мая 2011

Я использую JQuery Validator из http://bassistance.de/jquery-plugins/jquery-plugin-validation/. Как мне сделать так, чтобы сообщения были нестандартными, а не на английском.

Ответы [ 10 ]

32 голосов
/ 01 августа 2011

Если вы загляните в каталог «локализация», вы можете найти разные файлы .js, которые содержат сообщения об ошибках на разных языках. [что-то вроде «messages_XX.js»]

Выберите файл нужного вам языка и просто добавьте следующую строку в тег после включения jquery.validate.js

<script type="text/javascript" src="localization/messages_XX.js"></script>
17 голосов
/ 02 августа 2013

Сделайте это следующим образом:

$(document).ready(function() {
  $("form#login").validate({
    lang: 'en'  // or whatever language option you have.
  });
});

Если язык, который вы хотите указать, не является языком по умолчанию, сделайте следующее:

$.tools.validator.localize("fi", {
    '*'          : 'Virheellinen arvo',
    ':email'     : 'Virheellinen s&auml;hk&ouml;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&auml;n arvo on annettava'
});

  $("form#login").validate({
    lang: 'fi'
  });

См. этиинструкции для более.

6 голосов
/ 02 декабря 2014

Лучший способ - расширить плагин, как это необходимо

$.extend($.validator.messages, {
    required: "my required message",
    ....
});
5 голосов
/ 27 февраля 2014

Здесь будет ваша структура 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!'
};

Таким образом, вы можете повторно использовать те же функции, те же дополнительные методы и те же типы ошибок и просто использовать правильный файл messages.js, основанный на языке HTML, который должен быть обнаружен в браузере, или как вы иметь это. Этот конкретный метод работал хорошо для меня.

3 голосов
/ 20 ноября 2016

Взгляните на мое решение

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}.")
    });

и этот функционал abp.localization.localize(Key) возвращает локализованную строку, основанную на текущей культуре, эта функция из используемой мною среды называется aspnetboilerplate

для получения дополнительной информации см. Этот поток переполнения стека Проверка JQuery: изменить сообщение об ошибке по умолчанию

2 голосов
/ 21 апреля 2016

Вы также можете поместить сообщения об ошибках непосредственно в разметку, например:

<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"
                        }
                    }
             }
        }
 }
1 голос
/ 02 июля 2019

Если вы используете npm / yarn для управления активами, вы можете просто импортировать файл локализации, например, (конечно же, заменить ISO-код, здесь он французский) :

import 'jquery-validation';
import 'jquery-validation/dist/localization/messages_fr';

Тогда используйте:

$form.validate({
    lang: 'fr',
});
1 голос
/ 31 мая 2011

Используйте объект messages.

Пары ключ / значение, определяющие пользовательские Сообщения. Ключ это имя элемент, значение сообщения для отображения для этого элемента. Вместо равнины сообщение другой карте с конкретными сообщения для каждого правила могут быть использованы. Переопределяет атрибут заголовка элемент или сообщение по умолчанию для метод (в таком порядке). Каждое сообщение может быть строкой или обратным вызовом. обратный вызов вызывается в рамках валидатор и с правилом параметры в качестве первого и элемент как второй фактор, это должен вернуть строку для отображения в качестве сообщение.

Пример

$(".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 name@domain.com"
     }
   }
})

Источник .

0 голосов
/ 13 ноября 2013

Поздно к игре, но если вы используете один и тот же шаблон для нескольких языков, вы можете сделать это встроенным:

if($('html').attr('lang')=='he'){
    $('form').validate({
        messages: {
            email:  "חובה",
            phone:  "חובה",
            zip:    "חובה"
        }
    });
}else{
    $('form').validate({
        messages: {
            email:  "Required",
            phone:  "Required",
            zip:    "Required"
        }
    });
};
0 голосов
/ 31 мая 2011

просто введите «обязательное» значение в json, которое определяет валидацию.проверьте источник демонстрации, но он находится в категории сообщений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...