Spring 多模块 i18n,带有扩展 messageSource 内容的模块

标签 spring spring-mvc internationalization spring-3 multi-module

我有一个带有 Maven 的多模块 Spring 项目。我正在使用带有注释配置的 Spring 3.2.3。

我有以下布局:

parent
    common  (depends on parent)
    webapp  (depends on parent, common, module1, module2)
    module1 (depends on parent)
    module2 (depends on parent)

我需要 common , module1module2可以指定自己的 i18n 属性(webapp 收集这些文件并以某种方式提供它们?!):
common:  src/main/resources/i18n/messages_en.properties
module1: src/main/resources/i18n/messages_en.properties
module2: src/main/resources/i18n/messages_en.properties

我尝试使用
@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:/i18n/messages");
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setUseCodeAsDefaultMessage(true);
    return messageSource;
}

但似乎 Spring 只会使用 一个 那些翻译文件,但它应该使用所有。

另一种可能性是为每个模块指定一个唯一的属性文件名,但是我不知道通过 messageSource.setBasename(...) 设置什么基本名称.

谢谢你的帮助!

最佳答案

我在模块中有一条消息,在父基名数组中我放置了类路径

      <property name="basenames">

      <array>

        <value>/WEB-INF/resources/xxx.i18n</value>

          <value>#{T(com.prueba.test.J2EEDeclarations).MESSAGES_BASENAME}</value>

      </array>
  </property>

关于Spring 多模块 i18n,带有扩展 messageSource 内容的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661252/

相关文章:

java - Spring 不显示 home.html

java - 如何动态限制Spring Security中的路由?

html - 如何使用 Express 和 Kraken.js 的 Makara 模块从 I18N 属性文件中设置 "pull out"样式的 HTML 标签?

java - 如何将 🎌 Japanese Era Date 字符串值解析为 LocalDate 和 LocalDateTime

java - 在 Spring 中定义 @ManyToOne 关系后,如何访问底层列?

spring - 使用 Spring Boot 和 Spring Data GemFire 连接 GemFire

java - 如何在虚拟机退出后创建临时文件并删除

ruby-on-rails - 更改 form_for 中标签上的文本

java - Jhipster实体生成错误

spring-mvc - java.lang.ClassNotFoundException : org. springframework.security.access.expression.SecurityExpressionHandler 使用 <security:authorize > 标签时