2011-08-17 15 views
14

Jak mogę zmienić wtyczkę Validation JQuery, która daje komunikat o błędzie w języku przeglądarki. Mam na myśli to, że jeśli uruchomię go w przeglądarce, w której błędy w języku angielskim będą w języku angielskim lub jeśli językiem przeglądarki są tureckie komunikaty o błędach, będzie również język turecki (oczywiście będę definiował wiadomości w tych językach, również powinienem zdefiniować domyślny język, jeśli nie zdefiniować listę wiadomości o błędzie w zależności od języka przeglądarki)JQuery Validation Internationalization Problem

Odpowiedz

1

Wtyczka sprawdzania poprawności jquery działa ze zmienną tablicową. I zdefiniowano różne zmienne tablicowe jak jak:

locale_tr, locale_en, locale_sw etc. 

mam język przeglądarki, jak dwa charakteru jak jak

tr en sw 

i wzywam zmienna:

locale_ + browser's two character language 

tak to działa na mnie .

25

mogłeś spojrzeć na wtyczce lokalizacyjnej jQuery za: http://keith-wood.name/localisation.html
umożliwia ona ładowanie plików javaScript oparte na określonym języku przeglądarki.

Wtyczka sprawdzania poprawności jquery jest dostarczana z plikami lokalizacyjnymi dostępnymi pod tym adresem: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_##.js gdzie ## jest kodem loc.

Możliwe jest załadowanie wtyczki sprawdzania poprawności za pomocą domyślnych komunikatów o błędach, a następnie użycie wtyczki lokalizacji do załadowania komunikatów o błędach właściwych dla danego języka. Można nawet napisać zlokalizowaną pliku js, składnia jest dość banalna:

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



Nadzieja to pomaga!

+0

@ Didier G. Rozwiązałem mój problem dzięki. – kamaci

0

Oto propozycja dla prosty sposób ustawić niestandardową wiadomość walidacji:

1. Utwórz plik js z nazwą XX_Messages.ee.js ze składnią:

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> 

Uwaga: import Twoje XX_Messages.ee.js w głowie html gdzie chcesz walidacji

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 
      } 
     } 

Uwaga:XX_Messages.ee.js plik musi być import w głowie kodu HTML przed js walidacji.

Powiązane problemy