【发布时间】:2014-07-12 17:12:53
【问题描述】:
可以在生产时修改 message.properties 中的文本而无需重新部署/重新启动。
【问题讨论】:
标签: grails internationalization properties-file
可以在生产时修改 message.properties 中的文本而无需重新部署/重新启动。
【问题讨论】:
标签: grails internationalization properties-file
这很有可能,但是您需要将默认的 messageSource bean 替换为 ReloadableResourceBundleMessageSource。您可以通过在 grails-app/conf/spring/resources.groovy 中配置新的 messageSource bean 定义来做到这一点,如下所示:
beans = {
messageSource(org.springframework.context.support.ReloadableResourceBundleMessageSource) {
basenames = ["classpath:grails-app/i18n/myApp", "file:grails-app/i18n/messages", "WEB-INF/grails-app/i18n/messages"]
}
}
以上内容适用于开发和生产。您可能还想使用ReloadableResourceBundleMessageSource 研究其他可用的选项。
【讨论】:
如果您使用默认的messageSource bean,这是不可能的。如果您想这样做,一种选择是将消息存储在数据库中而不是属性文件中。这里有几个支持这个的插件(我自己从来没有使用过)
或者,将默认的 messageSource bean 替换为支持重新加载的 bean,例如ReloadableResourceBundleMessageSource.
【讨论】: