2011-08-17 12 views
14

¿Cómo puedo cambiar el complemento de Validación de JQuery que proporciona un mensaje de error en el idioma del navegador? Quiero decir, si lo ejecuto en un navegador que tiene errores en el idioma inglés será en inglés o si el idioma del navegador es turco, los mensajes de error también serán en turco (por supuesto definiré los mensajes en esos idiomas, también debería definir un idioma predeterminado si yo no defino una lista de mensajes de error según el idioma del navegador)Problema de internacionalización de validación de JQuery

Respuesta

1

El complemento de validación Jquery funciona con una variable de matriz. He definido diferentes variables de matriz como como:

locale_tr, locale_en, locale_sw etc. 

me sale el idioma del navegador como dos caracteres como como

tr en sw 

y que llamo la variable de:

locale_ + browser's two character language 

por lo que funciona para mí .

25

Se puede echar un vistazo a la localización del plug-in de jQuery: http://keith-wood.name/localisation.html
permite la carga de javascript archivos basados ​​en el lenguaje definido del navegador.

El complemento de validación jquery viene con archivos de localización disponibles en esta dirección: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_##.js donde ## es el código loc.

Lo que puede hacer es cargar el complemento de validación con los mensajes de error predeterminados y luego usar el complemento de localización para cargar los mensajes de error específicos del idioma. Puede incluso escribir su archivo js localizada, la sintaxis es bastante trivial:

/* 
* Translated default messages for the jQuery validation plugin. 
* Locale: FR 
*/ 
jQuery.extend(jQuery.validator.messages, { 
    required: "Ce champ est requis.", 
    remote: "Veuillez remplir ce champ pour continuer.", 
    email: "Veuillez entrer une adresse email valide.", 
    url: "Veuillez entrer une URL valide.", 
    date: "Veuillez entrer une date valide.", 
    dateISO: "Veuillez entrer une date valide (ISO).", 
    number: "Veuillez entrer un nombre valide.", 
    digits: "Veuillez entrer (seulement) une valeur numérique.", 
    creditcard: "Veuillez entrer un numéro de carte de crédit valide.", 
    equalTo: "Veuillez entrer une nouvelle fois la même valeur.", 
    accept: "Veuillez entrer une valeur avec une extension valide.", 
    maxlength: jQuery.validator.format("Veuillez ne pas entrer plus de {0} caractères."), 
    minlength: jQuery.validator.format("Veuillez entrer au moins {0} caractères."), 
    rangelength: jQuery.validator.format("Veuillez entrer entre {0} et {1} caractères."), 
    range: jQuery.validator.format("Veuillez entrer une valeur entre {0} et {1}."), 
    max: jQuery.validator.format("Veuillez entrer une valeur inférieure ou égale à {0}."), 
    min: jQuery.validator.format("Veuillez entrer une valeur supérieure ou égale à {0}.") 
}); 



Espero que esto ayude!

+0

@ Didier G. He resuelto mi problema gracias. – kamaci

0

He aquí una sugerencia para una forma sencilla de definir el mensaje de validación personalizada:

1. Crear un archivo js con el nombre XX_Messages.ee.js con la sintaxis:

LANG = { 

    PERSONAL_BIRTHDAY_CAN_T_BLANK : 'Birthday cannot be left blank', 
    PERSONAL_COUNTRY_CAN_T_BLANK : 'Country cannot be left blank', 
    PERSONAL_CITY_CAN_T_BLANK : 'City cannot be left blank', 
....... 
TEAM_EMAIL_NOT_VALID : 'E-mail is not a valid email address' 
}; 

2.

<head> 
.... 
<g:set var="locale" value="${session['language']}"/> 
    <g:if test="${locale.equals("ee")}"> 
     <script src="${resource(dir: 'js',file:'/XX_Messages.ee.js')}"></script> 
    </g:if> 
.... 
</head> 

Nota: importación sus XX_Messages.ee.js en la cabeza html donde quieren validación

3.

messages: { 
      gender: { 
       required: LANG.PERSONAL_BIRTHDAY_CAN_T_BLANK 
      }, 
      firstName: { 
       required: LANG.PERSONAL_CITY_CAN_T_BLANK 
      }, 
      lastName: { 
       required: LANG.PERSONAL_COUNTRY_CAN_T_BLANK 
      } 
     } 

Nota:XX_Messages.ee.js archivo debe ser de importaciones en la cabeza de su html antes de JS validación.

Cuestiones relacionadas