Jquery-validation: translate custom error messages

Created on 5 Jul 2018  路  5Comments  路  Source: jquery-validation/jquery-validation

Subject of the issue

Make it possible to translate data-msg attribute

Your environment

  • version of jquery-validate: 1.17
  • which browser and its version:

Steps to reproduce

i have a remote validator that return true or false. In my html markup i set data-msg-remote="duplicate"

Expected behaviour

replace duplicate with $.validator.messages.duplicate

Actual behaviour

it use the string duplicate

Question stale

Most helpful comment

we use a snippet like the following to translate error messages into DE:

    $.extend($.validator.messages, {
        required: "Dieses Feld ist ein Pflichtfeld.",
        maxlength: $.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
        minlength: $.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
        rangelength: $.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
        email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.",
        url: "Geben Sie bitte eine gültige URL ein.",
        date: "Bitte geben Sie ein gültiges Datum ein.",
        number: "Geben Sie bitte eine Nummer ein.",
        digits: "Geben Sie bitte nur Ziffern ein.",
        equalTo: "Bitte denselben Wert wiederholen.",
        range: $.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),
        max: $.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
        min: $.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
        creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
    });

maybe this is usefull for you.

All 5 comments

actually i use the errorPlacement function. But i would prefer to define a custom callback function where i translate the messages.

errorPlacement: function (error, element) {
    var text = error.text();
    if ($.validator.messages.hasOwnProperty(text)) {
        error.text($.validator.messages[text]);
    }
}

errorPlacement only works for first time. Better solution.

showErrors: function(errorMap, errorList) {
    $.each(errorList, function (key, error) {
        if ($.validator.messages.hasOwnProperty(error.message)) {
            error.message = $.validator.messages[error.message];
        }
    });

    this.defaultShowErrors();
},

we use a snippet like the following to translate error messages into DE:

    $.extend($.validator.messages, {
        required: "Dieses Feld ist ein Pflichtfeld.",
        maxlength: $.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
        minlength: $.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
        rangelength: $.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
        email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.",
        url: "Geben Sie bitte eine gültige URL ein.",
        date: "Bitte geben Sie ein gültiges Datum ein.",
        number: "Geben Sie bitte eine Nummer ein.",
        digits: "Geben Sie bitte nur Ziffern ein.",
        equalTo: "Bitte denselben Wert wiederholen.",
        range: $.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),
        max: $.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
        min: $.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
        creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
    });

maybe this is usefull for you.

@staabm thanks. i use it also. but it is not used when using remote validation messages or data-msg attributes.

This issue/proposal has been automatically marked as idle and stale because it hasn't had any recent activity. It will be automtically closed if no further activity occurs. If you think this is wrong, or the problem still persists, just pop a reply in the comments and one of the maintainers will (try!) to follow up.
Thank you for contributing :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MartinRobins picture MartinRobins  路  9Comments

harkinj picture harkinj  路  8Comments

nathanl picture nathanl  路  6Comments

iamandycohen picture iamandycohen  路  5Comments

mapeveri picture mapeveri  路  4Comments