【发布时间】:2016-01-16 22:59:23
【问题描述】:
我们有一个使用 Struts 1.2.9 的旧应用程序。该应用程序目前以标准方式国际化 - 所有 UI 标签、错误、消息等的 .properties 文件; <message-resouces> 使用默认 Factory 和 MessageResources 定义为 struts-config.xml 中的每个 .properties 文件定义; <bean:message> 在所有 JSP 中的使用。到目前为止,这一直很有效,但事实上,应用程序本身是一个框架,供数百个(是的,100 个!)内部其他应用程序使用的服务。
我们需要扩展 i18n 的功能如下:
- 为
.properties文件定义一个自定义目录——这样就超出了类路径的范围;基本上不在.war包内。这个想法是只支持消息字符串更改,而无需重新部署整个应用程序。 - 此自定义目录还将包含每个受支持的应用程序消息 - 这可能只是现有的子集或专门为该应用程序定制的整个资源集。
- 支持每个请求的自定义方式
Locale设置 - 排除所有其他考虑因素(默认堆栈、类路径/包查找等),这类似于I18nInterceptor在带有requestOnlyParameterName属性集的 Struts2 中的工作方式到true。
是的,我知道同时加载 100 个捆绑包会占用大量内存,但在我们的情况下这是可以接受的。
感谢任何帮助 - 无论是方向、示例代码等。
注意:我完全同意迁移到更新的 UI 平台可能是最好的解决方案。但我们不能。
TIA。
【问题讨论】:
-
看起来实现自己的 MessageResources 和 MessageResourcesFactory 是要走的路。想法?
标签: java internationalization customization struts-1