[myapp.models.mymodule.MyModel]
[members]
[my_member]
# Your member's name, and other related strings
[errors]
# You can put all your error customizations here
[cocktail.schema.exceptions.MaxValueError]
en: Member XYZ is too high!
es: El campo XYZ es demasiado grande!
在旧版本上的等效方法是在strings.py文件中添加以下内容:
translations.define(
"MyModel.my_member-error: cocktail.schema.exceptions.MaxValueError",
en = u"Member XYZ is too high!",
es = u"El campo XYZ es demasiado grande!"
)
[myapp.models.mymodule.MyModel]
[members]
[my_member]
# Your member's name, and other related strings
[errors]
# You can put all your error customizations here
[cocktail.schema.exceptions.MaxValueError(member, error)]
en: Member t{member} is too high! The maximum permitted value is ${member.translate_value(error.max)}
es: El campo t{member} es demasiado grande! El valor máximo permitido es ${member.translate_value(error.max)}
旧版本:
translations.define(
"MyModel.my_member-error: cocktail.schema.exceptions.MaxValueError",
en = lambda instance: u"Member %s is too high! The maximum allowed value is %s" % (translations(instance.member, instance.member.translate_value(instance.max))),
es = lambda instance: u"El campo %s es demasiado grande! El valor máximo permitido es %s" % (translations(instance.member, instance.member.translate_value(instance.max))),
)
这是可以做到的,但是在woost 2.11“pacman”和更新版本之后,确切的过程会有一些变化。此外,如果您不熟悉如何为模式成员获取翻译,那么可能会觉得有点复杂
要定义与此模式匹配的转换键:
Pacman及更新版本:
旧版本:
请注意,键如何将成员的名称与要定义其描述的异常类型组合在一起
请注意,尽管与以前版本中使用的更紧凑的模式相比,Pacman约定似乎过长,但它应用了适当的名称空间以避免命名冲突,而且它还利用了新的.strings文件格式,允许您编写如下内容:
在旧版本上的等效方法是在strings.py文件中添加以下内容:
无论使用哪个版本,都可以查看cocktail.schema.Member.translate_error方法,了解鸡尾酒在引擎盖下的作用,以获得翻译
此外,如果您正在处理验证错误,则可能正在使用模式适配器。如果是这种情况,您将需要考虑您的自定义翻译是否属于模型或适应的表单模式,这取决于您的自定义是否适合此字段产生此错误的任何场景,或者它是否仅适用于您的特定表单。如果要将其限制在表单中,请将myapp.models.MyModel替换为表单的限定名称
最后,您可能希望使用动态翻译,将错误对象的详细信息包括在翻译中:
Pacman及更新版本:
旧版本:
相关问题 更多 >
编程相关推荐