如何使用Grails的XML文件国际化(i18n)

时间:2009-10-01 13:26:48

标签: xml grails internationalization

我需要使用XML文件来存储我的应用程序使用的每个键/值对(而不是通常的属性文件)。

Grails默认使用属性文件来处理国际化。

如何配置grails以读取XML文件中的国际化信息?

由于

1 个答案:

答案 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文件一起使用。