我来外部的类路径外I18N支持(属性文件)的弹簧MessageSource实现束,以便更容易地修改属性。我该怎么办呢?

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="test-messages"/>

谢谢!

有帮助吗?

解决方案

我们已经建立了一个消息源的实现,查找信息在数据库中。你必须做的就是创建一个从春天的AbstractMessageSource继承MessageSource的实现(以获得所有功能,看到的Javadoc)。

您必须在最小的抽象方法“resolveCode(字符串,区域设置)”来实现的(但实现“resolveCodeWithoutArguments(字符串,区域设置)”会增加你的表演),委托给一个DAO指向的是简单的表,用定义如这样:

table translation (
  translation_id number pk
  code varchar(20)
  locale varchar(5)
  translation varchar(100)
)

码和语言环境形成独特的索引。

和大功告成。当然,你会添加一些缓存功能,并提供“语言环境恶化”的行为(即,如果没有找到“EN_US”,试图“恩”),无论是在dao-或MessageSource的级别。

此完美。

其他提示

检查此螺纹,了解关于此问题的信息,但我认为是不是一个很好的做法,tomcat的环境之外文件,你永远不知道它要部署应用程序。

但是,在你需要的情况下,你会发现一些相当不错的解决方案在那里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top