java - Struts 1 自定义本地化

标签 java localization internationalization struts1

我需要一些帮助来解决以下问题。我们有一个现有的 Web 应用程序,根本不使用框架(仅使用 servlet),我们需要添加新功能,但我们不是将新的 servlet 添加到 web.xml 中,而是添加 Struts 1与 Spring 一起。

由于该项目已经存在,我们必须配置 Struts 以便能够与已有的约定相处。其中之一是本地化。

所有可本地化文本都来 self 们的数据库,而不是使用 .property 文件,因此我实现了自己的 MessageResourcesFactoryMessageResources 类。问题是,在我们的应用程序中,我们从名为“LANGUAGE”的整数 session 属性获取用户语言,而不是从区域设置属性“org.apache.struts.action.LOCALE”获取用户语言。 Strong> Struts 默认使用的。

问题是这样的。如何告诉 Struts 从自定义 Integer 属性而不是标准 Locale 属性中获取用户语言?

谢谢。

最佳答案

据我所知,没有直接的方法告诉 Struts 使用另一个 session 属性来使用区域设置。即使 Struts 可以做到这一点,您也需要在自定义整数和“真实”Locale 对象之间实现映射。

我的建议:

  • 实现您自己的 javax.servlet.http.HttpSessionAttributeListener,它将 LANGUAGE 属性同步到相应的 Struts 区域设置属性
  • 或者更改设置 LANGUAGE 属性的代码以同时设置 Struts session 属性

关于java - Struts 1 自定义本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707276/

相关文章:

java - 我应该将gsdll64.dll放在Windows7和tomcat7主机中的哪里?

c# - Windows .NET 框架的所有可用语言列表

java - 这是设置包容性规模的正确方法吗?

iphone - 将 localized.strings 转换为电子表格?

ios - Swift 中的本地化 - 即使应用程序有多种语言,也将应用程序限制为一种语言

internationalization - Flutter 国际化 - 动态字符串

javascript - JS 中的 Angular Translate 同步问题

linux - 用于设置 MIME 类型的 xgettext、msginit、msgfmt 序列的命令或选项?

java - TextViews 和 Intents 问题

java - hibernate 的二级 (L2) 缓存的默认实现是哪个?