由于某些原因,有一项功能已从 Web 应用程序移至 Web 服务。在 Web 应用程序方面,我们使用 FMT 标签来检索本地化文本,并且它过去工作正常。现在我需要在 Web 服务应用程序上实现相同的功能。为了实现这一点,我想到了使用 ResourceBundle 类,但是由于 Web 服务是无状态的,我不想调用
ResourceBundle.getBundle(文件名)
因为它可能会在每次我调用 Web 服务调用时调用 IO 操作。相反,由于我的语言环境 key 不是很大,我想到了将所有 ResourceBundle 加载到一个单独的 Map 中并传递 key 并获得捆绑类型的方法。
对此有疑问: a.) 这种方法好吗? b.) 我如何在单例映射中使用资源包加载所有语言环境,即有没有一种方法可以加载语言环境文件夹中提到的所有语言环境文件,而无需明确提及每个文件的名称。
提前感谢任何帮助。
关注,
爱国者
最佳答案
第一件事:我永远不会让我的网络服务“感知区域设置”。向用户显示本地化消息是调用者的工作。 Web 服务是后端组件,不关心语言,不关心屏幕分辨率。但无论如何...
...如果我无法就我的 Web 服务是“i18n 感知”讨价还价,我会在 java.util.Properties 中加载每个捆绑文件。对象,然后将所有这些对象放在一个 Map 中,并使其在应用程序的上下文中可用。
希望这对您有所帮助!
关于使用 ResourceBundle(locale.properties) 的 Java 本地化文本 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263653/