【发布时间】:2011-06-07 22:23:26
【问题描述】:
我尝试本地化来自域类的错误消息。这可以通过默认错误消息来实现,例如:
default.blank.message=属性 [{0}] 不能为空
和本地化的属性名称,例如:
customer.address.label=客户地址
“客户”是我的域类,地址是它的属性。
我的问题是我无法本地化某些属性,因为我需要特定的错误消息。 例如:
has.to.be.a.number=属性 [{0}] 必须是数字
contingent.size.label=条件大小。
但我得到的消息是“属性 [大小] 必须是数字”而不是“属性 [条件大小] 必须是数字”。
我无法本地化的消息如下:
- 属性 [{0}] 必须是数字
- 属性 [{0}] 必须是有效日期 // 我不能在这种情况下使用 g:datePicker
我添加了一些其他示例以及其他一些也不起作用的域类
package cz.quanti.spaportal.touristOffice
import ...
class TouristOffice {
String customerNumber
int minimalContingent
Address address
User user
ContactPerson contactPerson
static hasMany = [contingents: Contingent]
static constraints = {
customerNumber(unique:true, nullable: true, blank: true)
user(nullable: true, blank: true)
contactPerson(nullable: false)
minimalContingent(min: 0)
address(nullable: false)
}
只有“minimalContingent”未本地化:(消息已本地化,minimal 属性未本地化) 属性 [minimalContingent] 必须是一个数字。
【问题讨论】:
-
你使用什么验证器?请添加带有约束的域类代码。
-
您的域类是在一个包中,还是在使用默认包?
-
此外,您是否在让标签正常工作或让自定义验证消息正常工作方面遇到问题?我假设是前者,但在重新阅读你的问题后,现在对你遇到的问题有点模糊。
-
@mflorian - 我正在使用标准 grails 验证,使用域类中定义的约束。
-
@Rob Hruska - 好吧,我想让标签本地化,因为消息有效。但如果没有其他可能,我想做自定义验证消息。
标签: grails localization internationalization