背景
我们正在迁移一个遗留数据库,该数据库在数据库中具有国际化字段的标签。我们仍然将messages.properties
用于一些静态资源,例如 css 类(名称)。该表如下所示:
ITEMS
-------------------------------------------
code number(3) not null PK
language_code number(3) not null PK
label varchar2(90) not null
hint varchar2(250) not null
help varchar2(4000)
label_client varchar2(90) not null
hint_client varchar2(250) not null
help_client varchar2(4000)
对于 html 组件,我们只需在此表中查找项目,设置他的标签(自定义 TagLib),这很有效。请注意,我们还给客户端修改一些标签(*_client 字段)的机会。
问题
默认情况下,Grails 将尝试查看带有后缀的 messages.properties,.label
以便在验证错误消息中使用。例如 ( Person.name.label=name
):
Property name must not be blank.
如果我在数据库中的项目具有人的标签名称,则在验证中这将是不一致的,因为输入的标签不同。
我们无法将项目与 .properties 同步,因为客户端可以更改它们。所以解决方案是以某种方式修改 Grails 验证消息以返回数据库的内容。
这可能吗?仅对于验证消息,我如何从数据库而不是属性中获取?