Getting Message from all resource files in differe

2019-06-14 07:03发布

问题:

I have different locale file for messages to user in JSF based Project. i want to retrieve messages from all locale available in my project using Key

I am using in managed bean

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

Instead of one String i want all messages as a array or list assosiated with this key in all resource bundles like messages.properties, messages_hin.properties etc.

回答1:

As you've already figured how to get a locale-specific bundle and then get its message by key and that part thus doesn't need to be answered, your sole question basically boils down to:

How can I get all supported locales of my JSF application?

You can get all supported locales by Application#getSupportedLocales().

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

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