parsley.js not displaying error messages in french

2.7k Views Asked by At

I've got Parsley.js installed and working correctly (dead easy) however I am unable to get it to display error messages in French. I've tried both methods detailed in the documentation But error message continue to display in English.

I've checked the console and there are no errors, I can also load the language file directly in the browser so it is there.

My current code is:

  <script src="/js/parsley/i18n/en.js"></script>
  <script src="/js/parsley/i18n/fr.js"></script>
  <script src="/js/parsley/parsley.min.js"></script>
  <script type="text/javascript">
    window.ParsleyValidator.setLocale('fr');
  </script>

Please advise.

3

There are 3 best solutions below

0
On

Parsley relies on jQuery (>= 1.8), and it would need to be included before including Parsley.

0
On

I was also unable to make it work by following the instructions on the parsley.js page.

This is what worked for me, since as of 11/18/2015 following the documentation on the parsley page still doesnt work.

1- Put First the parsley js and then the localization file (from https://github.com/guillaumepotier/Parsley.js/tree/master/src/i18n):

<script src="parsley.min.js"></script>
<script src="i18n/es.js"></script>

2- Edit the localization file: comment the 'import', and add 'window.' before each of the 2 js instructions. example:

//import Parsley from 'parsley';

window.Parsley.addMessages('es', {
  defaultMessage: "Este valor parece ser inválido.",
  type: {
    email:        "Este valor debe ser un correo válido.",
    url:          "Este valor debe ser una URL válida.",
    number:       "Este valor debe ser un número válido.",
    integer:      "Este valor debe ser un número válido.",
    digits:       "Este valor debe ser un dígito válido.",
    alphanum:     "Este valor debe ser alfanumérico."
  },
  notblank:       "Este valor no debe estar en blanco.",
  required:       "Este valor es requerido.",
  pattern:        "Este valor es incorrecto.",
  min:            "Este valor no debe ser menor que %s.",
  max:            "Este valor no debe ser mayor que %s.",
  range:          "Este valor debe estar entre %s y %s.",
  minlength:      "Este valor es muy corto. La longitud mínima es de %s caracteres.",
  maxlength:      "Este valor es muy largo. La longitud máxima es de %s caracteres.",
  length:         "La longitud de este valor debe estar entre %s y %s caracteres.",
  mincheck:       "Debe seleccionar al menos %s opciones.",
  maxcheck:       "Debe seleccionar %s opciones o menos.",
  check:          "Debe seleccionar entre %s y %s opciones.",
  equalto:        "Este valor debe ser idéntico."
});

window.Parsley.setLocale('es');
0
On

If anyone see this and search for answer:

I could fix this Problem for me by adding "$( document ).ready(function() {}" around the code.

$( document ).ready(function() {
  Parsley.addMessages('fr', {
    defaultMessage: "Cette valeur semble non valide.",
    type: {
      email:        "Cette valeur n'est pas une adresse email valide.",
      url:          "Cette valeur n'est pas une URL valide.",
      number:       "Cette valeur doit être un nombre.",
      integer:      "Cette valeur doit être un entier.",
      digits:       "Cette valeur doit être numérique.",
      alphanum:     "Cette valeur doit être alphanumérique."
    },
    notblank:       "Cette valeur ne peut pas être vide.",
    required:       "Ce champ est requis.",
    pattern:        "Cette valeur semble non valide.",
    min:            "Cette valeur ne doit pas être inférieure à %s.",
    max:            "Cette valeur ne doit pas excéder %s.",
    range:          "Cette valeur doit être comprise entre %s et %s.",
    minlength:      "Cette chaîne est trop courte. Elle doit avoir au minimum %s caractères.",
    maxlength:      "Cette chaîne est trop longue. Elle doit avoir au maximum %s caractères.",
    length:         "Cette valeur doit contenir entre %s et %s caractères.",
    mincheck:       "Vous devez sélectionner au moins %s choix.",
    maxcheck:       "Vous devez sélectionner %s choix maximum.",
    check:          "Vous devez sélectionner entre %s et %s choix.",
    equalto:        "Cette valeur devrait être identique."
  });

  Parsley.setLocale('fr');
});