单位要开发web程序,我对PHP、JAVA一点也不懂,临急抱佛脚上网找了一下,说Grails开发如何快速,云云。试用了一下,几分钟就利用scaffold (脚手架) 开发了一个程序,可惜出来的效果是全英文,数据库字段也不接受中文。网上跟汉化字段、改字段显示方面有关的文章、帖子没有,只好买了省科技书店唯一的一本Grails方面的书,但照书操作修改i18n里面的中文信息,没有效果,我感觉是我的版本跟书上介绍的版本不同所致,因为我用的是最新版1.3.7。好在书上有一条经验帮了我,它说可以生成scaffold 的所有代码来分析,我其实不懂Groovy语言,不过勉强编程还有点底,仔细分析之下看到如何利用i18n“汉化”scaffold生成的界面。
附:Grails版本:1.3.7
我用NetBeans6.9作为IDE的,NetBeans对Grails支持已经很不错了。NetBeans打开工程名称后,一般i18n的文件存放在“消息包”里面,找到并打开 messages_zh_CN.properties 文件,NetBeans自动会帮你处理一切unicode转码问题。将下面几行加入到该文件中,用于汉化scaffold的按钮与提示:
default.create.label=新建记录 {0}
default.edit.label=编辑 {0}
default.home.label=主页
default.list.label={0} 明细列表
default.new.label=新建 {0} 记录
default.show.label=显示 {0}
default.button.create.label=新建保存
default.button.delete.label=删除
default.button.delete.confirm.message=你确定要删除吗?
default.button.edit.label=编辑
default.button.update.label=更改
default.created.message=新建了
default.deleted.message=删除了
default.updated.message=更新了
紧接着还要对数据库字段的标题进行汉化,例如有一个数据库表叫Student,数据库的一张表在Grails里面叫Domain(域),表里面有姓名name、学号sid、性别gender等字段,那还要在该文件加入如下信息(注意student已经改为小写,这里要遵从Grails的大小写原则并且大小写敏感,特别是字段名,不能以大写开头):
student.label=学生信息
student.name.label=姓名
student.sid.label=学号
student.gender.label=性别
附:Student.groovy文件的原始内容,以便读者对照参考:
class Student {
String name //姓名
String sid //学号
String gender //性别
static constraints = {
}
}
2011/2/25 更改:default.edit.label=编辑 改成 default.edit.label=编辑 {0} ,这个{0}显示的是数据库名,在这里是学生信息,英文就是student。