2011-08-17 10 views
14

브라우저의 언어로 오류 메시지를 표시하는 JQuery 유효성 검사 플러그인을 어떻게 변경합니까? 나는 영어 오류가있는 브라우저에서 실행하면 영어로 표시되거나 브라우저 언어가 터키어 오류 메시지도 터키어가 될 것입니다 (물론 해당 언어로 메시지를 정의 할 것입니다. 또한 기본 언어를 정의해야합니다. http://keith-wood.name/localisation.html
그것은 브라우저의 정의 언어를 기반으로 적재 자바 스크립트 파일을 수 있습니다 : 나는 당신은 jQuery의 현지화 플러그인을 살펴 가질 수JQuery 유효성 검사 국제화 문제

답변

1

Jquery 유효성 검사 플러그인은 배열 변수와 함께 작동합니다.

locale_tr, locale_en, locale_sw etc. 

내가

tr en sw 

등이 개 문자로 브라우저의 언어를 얻고 난의 변수 전화 : 나는 등 다른 배열 변수를 정의 그래서 나를 위해 작동

locale_ + browser's two character language 

을 .

25

브라우저의 언어에 따라 오류 메시지 목록)를 정의하지 않았다.

jquery 유효성 확인 플러그인은이 주소에서 사용할 수있는 현지화 파일이 있습니다. http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_##.js 여기서 ##는 loc 코드입니다.

당신이 할 수있는 것은 유효성 검사 플러그인을 기본 오류 메시지와 함께로드 한 다음 지역화 플러그인을 사용하여 언어 별 오류 메시지를로드하는 것입니다. 당신은 심지어 지역화 된 JS 파일을 작성할 수 있습니다, 구문은 매우 간단하다 :

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



희망이 도움이!

+0

@ Didier G. 나는 내 문제를 해결했습니다. – kamaci

0

다음은 사용자 정의 유효성 검사 메시지를 설정하는 간단한 방법에 대한 제안입니다 :

1 구문과 XX_Messages.ee.js 이름으로 JS 파일을 만듭니다

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> 

참고 : 수입 HTML 헤드에 XX_Messages.ee.js은 어디 검증

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

참고합니다 :XX_Messages.ee.js 파일은 검증 JS 전에 HTML의 머리에 가져 오기를해야합니다.