从密钥中获取来自不同语言环境的所有资源文件的消息

时间:2014-09-09 11:29:45

标签: jsf properties locale

我在基于JSF的Project中为用户提供了不同的语言环境文件。 我想使用Key

从我的项目中可用的所有语言环境中检索消息

我在托管bean中使用

    String message=ResourceBundle.getBundle("com.tech.resources.messages",
              new Locale(loggedInUser.getLanguage())).getString("label.hostel.room.allocated"); 

而不是一个字符串我希望所有消息都作为数组或列表与所有资源包中的此键相关联,如messages.properties,messages_hin.properties等。

1 个答案:

答案 0 :(得分:2)

由于您已经考虑过如何获取特定于语言环境的捆绑包然后通过密钥获取其消息,因此该部分不需要回答,您的唯一问题基本归结为:

  

如何获得我的JSF应用程序的所有受支持的语言环境?

您可以Application#getSupportedLocales()获取所有支持的区域设置。

Application application = FacesContext.getCurrentInstance().getApplication();
Iterator<Locale> supportedLocales = application.getSupportedLocales();

while (supportedLocales.hasNext()) {
    Locale supportedLocale = supportedLocales.next();
    // ...
}