Search code examples
blackberrylocalizationinternationalizationblackberry-jde

BlackBerry Localization: Pick specific resource locale issue


I need to know if it is possible to select a specific resource locale for my language.

Instead of changing my phone's language setting, can I in code make use of it depending upon some conditions?

Here's a piece of code I wrote: A user should be able to change language and see its effect inside the app itself.

String appLocale = LanguageManager.getCurrentUserSelectedLanguage();

if (appLocale.equals("en" /*or "de" or "es" etc */)) {
    ResourceBundle _resources = ResourceBundle.getBundle(BUNDLE_ID, BUNDLE_NAME);
    localizedString = _resources.getString(key);
} ...

return localizedString;

Solution

  • Finally I was able to solve the issue! This is for all who are interested. Here's the code:

    if(appLocale.equals("en")){
    ResourceBundle _resources = ResourceBundle.getBundle(LocalizationResource.BUNDLE_ID, LocalizationResource.BUNDLE_NAME).getBundle(Locale.get(Locale.LOCALE_en));
    localizedString = _resources.getString(key);
    }
    else if(appLocale.equals("es")){
    ResourceBundle _resources = ResourceBundle.getBundle(LocalizationResource.BUNDLE_ID, LocalizationResource.BUNDLE_NAME).getBundle(Locale.get(Locale.LOCALE_es));
    localizedString = _resources.getString(key);
    }
    

    I used only one resource file(.rrh) and simply picked up the language bundle using Locale.LOCALE_es and Locale.LOCALE_en depending upon my app language I received from the user.