【问题标题】:ReloadableResourceBundleMessageSource: order of message files matters?ReloadableResourceBundleMessageSource:消息文件的顺序很重要吗?
【发布时间】:2013-11-15 14:19:47
【问题描述】:

我使用ReloadableResourceBundleMessageSource 来处理本地化消息。我用sci-xxx.properties 表示英语(默认),sci-xxx_de.properties 表示德语版本。

我有一个 junit 测试,它检查消息是否已解析为英文版本。在本地它总是很好。 诀窍是,在 CI (Jenkins) 上它失败了 - 加载了德语版本,即使在调用期间也是如此

resourceBundleMessageSource.getMessage(code, params, resolveLocale()); 

resolveLocale() 的调用返回“en”。

我发现的不同之处在于resourceBundleMessageSource.toString() 输出。在本地,它显示按字母顺序排列的文件列表。在 CI 上,它是混合的,包含我的测试消息的 commons_de 文件位于默认文件之前:

basenames=[messages/sci-commons_de,messages/sci-commons,messages/sci-user,messages/sci-user_de]

所以我将我的德语消息从 commons_de 移到了 user_de,最后加载。猜猜看 - 现在测试是绿色的。

我真的很困惑......文件顺序真的很重要吗?我怎样才能强制正确的顺序?还是我错过了什么?

我相信,CI 服务器有德语语言环境,但它应该被我的resolveLocale() 覆盖,对吧?

【问题讨论】:

    标签: java spring messages


    【解决方案1】:

    问题消失了,当我将文件从 _de 重命名为 _de_DE 并在 resolveLocale() 中使用“两部分”语言环境枚举 de_DE 和 en_US 时

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多