在Grails中创建一个新的资源包?

Ben*_*chi 4 grails resources bundle internationalization

我想创建另一个资源包来组织我的Grails应用程序.Grails提供了一个"消息"资源包,我需要创建一个"myApp"资源包.

如何使用'g:message'GSP标记创建新资源包并读取其属性?

roc*_*chb 9

你必须在grails-app/conf/spring/resources.groovy中创建一个bean ,它将覆盖默认的MessageSource.

// Place your Spring DSL code here
beans = {
      messageSource(org.springframework.context.support.ReloadableResourceBundleMessageSource) {
        basename = "classpath:grails-app/i18n/myApp"
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您需要自定义Grails,我可以给您的唯一建议是通过以下链接熟悉Spring框架(特别是Spring-MVC):


lun*_*dov 7

Grails(从1.0.3版开始)会grails-app/i18n自动将目录中找到的所有属性文件添加到资源包中.无需手动添加它们:)


小智 5

从 Grails 1.3.4 开始,添加到grails-app/i18n目录中的任何属性文件都将添加到messageSource.

此外,如果您尝试手动添加 bean(及其下的基本名称),当您进入生产环境时,它不会加载它们。它将在开发模式下工作(在 IDEA 9.0.3 和 tomcat 插件 v1.3.4 下测试运行),但不能在生产模式下工作。

这发生在我遵循@rochb 提供的答案之后(我在尝试简单的方法之前检查了答案并实现了),我不得不删除 messageSource bean 配置以更正它。