2016-06-02 2 views
0

Есть ли способ динамически (т. Е. Из JS-кода) установить/изменить язык сообщений об ошибках, используя существующие переводы, доступные в репо?Как использовать локализацию jquery-validate

Не решение № 1: Загрузка сценария локализации (<script type="text/javascript" src="localization/messages_XX.js">) не будет работать, поскольку его нельзя изменить на стороне клиента.

Non-solution # 2: Настройка пользовательских сообщений с помощью 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

Я пометил этот ответ, как принято, даже если это не совсем то, что я искал. Чтобы уточнить: я хотел бы использовать файлы локализации из репо as-is (напрямую используя будущие изменения/улучшения для этих файлов); с вашим решением (или аналогичным решением setDefaults), я должен вручную скопировать данные локализации из messages_de.js, messages_et.js и т. д. в свой собственный код, требуя от меня вручную управлять этими данными. Я надеялся на динамический механизм, подобный, например, Datatables (datatables.net), который предоставляет API для динамической загрузки собственных данных локализации библиотеки. –

+0

@dr_barto, в локализации практически ничего не должно быть, что должно меняться со временем, поэтому после того, как сообщения будут скопированы в ваш собственный файл, нет кода для «поддержания». – Sparky

Смежные вопросы