2016-06-02 5 views
0

Repo에서 사용할 수있는 기존 번역을 사용하여 오류 메시지 언어를 동적으로 (즉, JS 코드에서) 설정/변경 할 수 있습니까?jquery-validate 현지화 사용 방법

해결책 번호 1 : 현지화 스크립트 (<script type="text/javascript" src="localization/messages_XX.js">)로드는 클라이언트 측에서 변경할 수 없기 때문에 작동하지 않습니다.

: setDefaults으로 맞춤 메시지를 설정하려면 기존 문자열을 다시 사용하지 말고 내 자신의 문자열을 사용해야합니다.

답변

2

jQuery $.extend()을 사용하면 언제든지 모든 메시지를 동적으로 바꿀 수 있습니다.

$.extend($.validator.messages, {....}); 

예 :

var en = { 
     required: "This field is required.", 
     .... 
    }, 
    ca = { 
     required: "Aquest camp és obligatori.", 
     .... 
    }, 
    de = { 
     required: "Dieses Feld ist ein Pflichtfeld.", 
     .... 
    }; 

$('#language').on('change', function() { 
    $.extend($.validator.messages, eval($(this).val())); 
}); 

$('#myform').validate({ .... 

DEMO : http://jsfiddle.net/Lwvoo39u/

현지화 : github.com/jzaefferer/jquery-validation/tree/master/src/localization은 내가 찾던 정확히 아니더라도 가능으로 내가이되었습니다

+0

. 정리하려면 : repo에서 현지화 파일을 그대로 사용하고 싶습니다 (해당 파일의 향후 변경/개선 사항을 직접 활용하면 도움이됩니다). 귀하의 솔루션 (또는 이와 유사한 'setDefaults'솔루션)을 사용하여 messages_de.js, messages_et.js 등의 현지화 데이터를 수동으로 내 코드에 복사해야합니다. 수동으로 해당 데이터를 관리해야했습니다. 나는 예를 들어 다음과 같은 동적 인 메커니즘을 원했다. lib의 자체 현지화 데이터를 동적으로로드하는 API를 제공하는 Datatables (datatables.net). –

+0

@dr_barto, 시간이 지남에 따라 변경되어야하는 현지화에는 아무 것도 포함되어 있지 않으므로 메시지가 사용자의 파일에 복사되면 "유지 관리"할 코드가 없습니다. – Sparky