插件不会“翻译”任何内容。翻译是手动完成的,然后您将这些新消息放入本地化文件他们覆盖默认值。
还有no such .validate() option called lang
任何地方在这个插件中.
使用本地化文件只是意味着在包含插件后将文件包含在某个地方......
<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" />
那么所有默认消息都将是西班牙语。
像“此字段为必填”等默认消息以西班牙语出现,现在我想将上述消息翻译为西班牙语,但我找不到在哪里以及如何定义翻译文本。
包含西班牙语本地化文件只是告诉插件替换西班牙语本地化文件定义的默认消息。
Your 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."
}
});
DEMO: jsfiddle.net/3fLkf47u/