Java ResourceBundle.Control getFallbackLocale() Method



Description

The java ResourceBundle.Control getFallbackLocale(String baseName, Locale locale) method returns a Locale to be used as a fallback locale for further resource bundle searches by the ResourceBundle.getBundle factory method. This method is called from the factory method every time when no resulting resource bundle has been found for baseName and locale, where locale is either the parameter for ResourceBundle.getBundle or the previous fallback locale returned by this method.

Declaration

Following is the declaration for java.util.Control.getFallbackLocale() method

public Locale getFallbackLocale(String baseName, Locale locale)

Parameters

  • baseName − the base name of the resource bundle, a fully qualified class name for which ResourceBundle.getBundle has been unable to find any resource bundles (except for the base bundle)

  • locale − the Locale for which ResourceBundle.getBundle has been unable to find any resource bundles (except for the base bundle)

Return Value

This method returns a Locale for the fallback search, or null if no further fallback search is desired.

Exception

NullPointerException − if baseName or locale is null

Getting FallBack Locale from a ResourceBundle Control of US Locale Example

The following example shows the usage of Java ResourceBundle.Control getFallbackLocale() method to get the fallback locale. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then fallback locale of US Locale for the corresponding hello_en_US.properties file is printed using getFallbackLocale() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getFallbackLocale("hello", Locale.US));
   }
}

Output

Assuming we have a resource file hello_en_US.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hello World!

Let us compile and run the above program, this will produce the following result −

en_IN

Getting FallBack Locale from a ResourceBundle Control of France Locale Example

The following example shows the usage of Java ResourceBundle.Control getFallbackLocale() method to get the fallback locale. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then fallback locale of French Locale for the corresponding hello_fr_FR.properties file is printed using getFallbackLocale() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getFallbackLocale("hello", Locale.FRANCE));
   }
}

Output

Assuming we have a resource file hello_fr_FR.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Bonjour le monde!

Let us compile and run the above program, this will produce the following result −

en_IN

Getting FallBack Locale from a ResourceBundle Control of German Locale Example

The following example shows the usage of Java ResourceBundle.Control getControl() method to get the fallback locale. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then fallback locale of German Locale for the corresponding hello_de_DE.properties file is printed using getFallbackLocale() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      // print the CandidateLocales
      System.out.println(rbc.getFallbackLocale("hello", Locale.GERMANY));
   }
}

Output

Assuming we have a resource file hello_de_DE.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hallo Welt!

Let us compile and run the above program, this will produce the following result −

en_IN
java_util_resourcebundle_control.htm
Advertisements