我需要使用XML文件来存储我的应用程序使用的每个键/值对(而不是通常的属性文件)。
Grails默认使用属性文件来处理国际化。
如何配置grails以读取XML文件中的国际化信息?
由于
答案 0 :(得分:2)
实际上,Grails脚本中存在一个错误。打包时,Grails将仅复制位于 / grails-app / i18n 文件夹下的.properties文件。您的XML文件将被忽略。
要修复它,您可以手动编辑文件 {grails-sources} /scripts/_GrailsPackage.groovy 。
寻找:
if(config.grails.enable.native2ascii) {
profile("converting native message bundles to ascii") {
ant.native2ascii(src:"${basedir}/grails-app/i18n",
dest:i18nDir,
includes:"*.properties",
encoding:"UTF-8")
}
}
else {
ant.copy(todir:i18nDir) {
fileset(dir:"${basedir}/grails-app/i18n", includes:"*.properties")
}
}
并替换为:
if(config.grails.enable.native2ascii) {
profile("converting native message bundles to ascii") {
ant.native2ascii(src:"${basedir}/grails-app/i18n",
dest:i18nDir,
includes:"*.properties, *.xml",
encoding:"UTF-8")
}
}
else {
ant.copy(todir:i18nDir) {
fileset(dir:"${basedir}/grails-app/i18n", includes:"*.properties, *.xml")
}
}
下次运行时,它会在Grails应用的资源路径中复制您的消息* .xml。 您可以使用messages.xml作为起点 - 它必须尊重Java DTD。
在视图中使用将与messages.properties文件一起使用。