在 rails 中覆盖用于验证的默认 Parsley 翻译

Overwrite the default Parsley translation for validations in rails

我已经在 rails 配置语言环境中以我需要的所有语言提供了所有错误消息,那么我如何更改

所需欧芹(和其他验证器)的默认消息

This field is required

然后如何添加不同语言的消息?

简单 :)

Parsley.addMessage('en', 'required', "something else");
Parsley.addMessage('en', 'maxlength', 'something else max is %s')
Parsley.addCatalog('zh-HANS', {required: "其他的东西"}, true);

这会将新语言 'zh-HANS' 添加到目录中,带有一个翻译,最后的参数 true 表示将 Parsley 更改为该语言环境,因此如果您只是填充一个一群不同的当地人。更改语言环境的专用方法是 Parsley.setLocale('zh-HANS')

Rails部分

(如果您正在使用 rails 并且遇到类似情况,请继续阅读。)

关于 rails 和翻译成 javascript,我喜欢使用数据属性,所以如果 I18n.locale 是 zh-HANS,我会添加一个 div 有一些像

这样的 id
%div#parsley-translations{data:{'current-locale'=> I18n.locale, required: I18n.t('forms.errors.required'), 'maxlength'=>I18n.t('forms.errors.maxlength')}}

然后在 javascript

var translationData = $('#parsley-translations').data();
// now use AddLocale with all the keys and values from translationData for the translationData.currentLocale - Will adjust this once I have tested and got it working