我有一个关于 jQuery 验证的问题要问 plugin .
我已使用本地化来更改以西类牙语显示的错误消息的默认语言,但我找不到任何有关要翻译的自定义消息的信息。有什么线索吗?
例如
我已经包含了西类牙语的翻译文件,这是我的代码:
$('.signup-form').validate({
lang : 'es',
rules:{
tandc : {required : true}
},
messages:{
tandc : {required : "You have to accept terms and conditions to proceed further"}
}
})
诸如“此字段为必填”等默认消息以西类牙语显示,现在我想将上述消息翻译为西类牙语,但我找不到在哪里以及如何定义翻译文本。
最佳答案
插件没有“翻译”任何内容。翻译是手动完成的,然后您将这些新消息放入 a localization file他们覆盖默认值。
还有没有这样的 .validate()
option叫lang
任何地方in this plugin .
使用本地化文件只是意味着在包含插件后将文件包含在某个位置...
<script type="text/javascript" src="...path-to/jquery.validation/1.15.0/jquery.validate.js" />
<script type="text/javascript" src="...path-to/jquery-validation/localization/messages_es.js" />
然后所有默认消息都将为西类牙语。
Default messages like "This field is required" etc are appearing in Spanish, now I want to translate the above message to Spanish but I cannot find where and how to define the translated text.
包含西类牙语本地化文件只是告诉插件替换西类牙语本地化文件定义的默认消息。
您的messages
对象会覆盖这些默认消息,因此如果您希望西类牙语消息覆盖 required
规则仅适用于单个输入字段,那么您需要用西类牙语编写该规则。 没有内置的动态翻译可以即时解释您的消息。
rules:{
tandc : {
required : true
}
},
messages:{
tandc : {
required : "Tienes que aceptar los términos y condiciones de seguir avanzando"
}
}
这是所使用消息的优先级:
通过规则为单个字段或使用
messages
的整个字段声明的任何文本.validate()
内的对象或类似的方法。如果第 #1 项中未定义任何内容:覆盖
$.extend( $.validator.messages, {...})
定义的插件默认消息。这就是本地化文件的工作原理。如果第 #2 项中未定义任何内容:插件定义的默认消息(英语)。
现在,如果您需要动态更改 messages
定义的任何消息.validate()
之后的对象已在您的表单上初始化插件,您必须使用 .rules('add')
方法来覆盖它。
$('[name="foo"]').rules('add', {
messages: {
required: "yo! I'm required."
}
});
关于jquery - 翻译自定义 jQuery 验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630386/