On this page

LocaleUtils

public class org.apache.commons.lang3.LocaleUtils[source]

Operations to assist when working with a Locale.

This class tries to handle null input gracefully. An exception will not be thrown for a null input. Each method documents its behavior in more detail.

See also:

Locale

Since:

2.2

Constructors

LocaleUtils()

Deprecated. LocaleUtils instances should NOT be constructed in standard programming.

@Deprecated public LocaleUtils()[source]

Deprecated: TODO Make private in 4.0.

LocaleUtils instances should NOT be constructed in standard programming. Instead, the class should be used as LocaleUtils.toLocale("en_GB");.

This constructor is public to permit tools that require a JavaBean instance to operate.

Methods

availableLocaleList()

Gets an unmodifiable and sorted list of installed locales.

availableLocaleSet()

Gets an unmodifiable set of installed locales.

countriesByLanguage(String)

Gets the list of countries supported for a given language.

isAvailableLocale(Locale)

Tests whether the locale specified is in the set of available locales.

isLanguageUndetermined(Locale)

Tests whether a Locale’s language is undetermined.

languagesByCountry(String)

Obtains the list of languages supported for a given country.

localeLookupList(Locale)

Obtains the list of locales to search through when performing a locale search.

localeLookupList(Locale, Locale)

Obtains the list of locales to search through when performing a locale search.

toLocale(String)

Converts a String to a Locale.

toLocale(Locale)

Returns the given locale if non-null, otherwise Locale#getDefault().

public static List<Locale> availableLocaleList()[source]

Gets an unmodifiable and sorted list of installed locales.

This method is a wrapper around Locale#getAvailableLocales(). It is more efficient, as the JDK method must create a new array each time it is called.

Returns:

The unmodifiable and sorted list of available locales.

public static Set<Locale> availableLocaleSet()[source]

Gets an unmodifiable set of installed locales.

This method is a wrapper around Locale#getAvailableLocales(). It is more efficient, as the JDK method must create a new array each time it is called.

Returns:

The unmodifiable set of available locales.

public static List<Locale> countriesByLanguage(String languageCode)[source]

Gets the list of countries supported for a given language.

This method takes a language code and searches to find the countries available for that language. Variant locales are removed.

Parameters:

languageCode – The 2 letter language code, null returns empty.

Returns:

An unmodifiable List of Locale objects, not null.

public static boolean isAvailableLocale(Locale locale)[source]

Tests whether the locale specified is in the set of available locales.

Parameters:

locale – The Locale object to check if it is available.

Returns:

true if the locale is a known locale.

public static boolean isLanguageUndetermined(Locale locale)[source]

Tests whether a Locale’s language is undetermined.

A Locale’s language tag is undetermined if it’s value is "und". If a language is empty, or not well-formed (for example, “a” or “e2”), it will be equal to "und".

Parameters:

locale – The locale to test.

Returns:

whether a Locale’s language is undetermined.

See also:

Locale#toLanguageTag()

Since:

3.14.0

public static List<Locale> languagesByCountry(String countryCode)[source]

Obtains the list of languages supported for a given country.

This method takes a country code and searches to find the languages available for that country. Variant locales are removed.

Parameters:

countryCode – The 2-letter country code, null returns empty.

Returns:

An unmodifiable List of Locale objects, not null.

public static List<Locale> localeLookupList(Locale locale)[source]

Obtains the list of locales to search through when performing a locale search.

localeLookupList(Locale("fr", "CA", "xxx"))
  = [Locale("fr", "CA", "xxx"), Locale("fr", "CA"), Locale("fr")]
Parameters:

locale – The locale to start from.

Returns:

The unmodifiable list of Locale objects, 0 being locale, not null.

public static List<Locale> localeLookupList(Locale locale, Locale defaultLocale)[source]

Obtains the list of locales to search through when performing a locale search.

localeLookupList(Locale("fr", "CA", "xxx"), Locale("en"))
  = [Locale("fr", "CA", "xxx"), Locale("fr", "CA"), Locale("fr"), Locale("en"]

The result list begins with the most specific locale, then the next more general and so on, finishing with the default locale. The list will never contain the same locale twice.

Parameters:
  • locale – The locale to start from, null returns empty list.

  • defaultLocale – The default locale to use if no other is found.

Returns:

The unmodifiable list of Locale objects, 0 being locale, not null.

public static Locale toLocale(String str)[source]

Converts a String to a Locale.

This method takes the string format of a locale and creates the locale object from it.

  LocaleUtils.toLocale("")           = new Locale("", "")
  LocaleUtils.toLocale("en")         = new Locale("en", "")
  LocaleUtils.toLocale("en_GB")      = new Locale("en", "GB")
  LocaleUtils.toLocale("en-GB")      = new Locale("en", "GB")
  LocaleUtils.toLocale("en_001")     = new Locale("en", "001")
  LocaleUtils.toLocale("en_GB_xxx")  = new Locale("en", "GB", "xxx")   (#)
  LocaleUtils.toLocale("US")         = new Locale("", "US") // Because "US" is Locale.getISOCountries()

(#) The behavior of the JDK variant constructor changed between JDK1.3 and JDK1.4. In JDK1.3, the constructor upper cases the variant, in JDK1.4, it doesn’t. Thus, the result from getVariant() may vary depending on your JDK.

This method validates the input strictly. The language code must be lowercase. The country code must be uppercase. The separator must be an underscore or a dash. The length must be correct.

Parameters:

str – The locale String to convert, null returns null.

Returns:

A Locale, null if null input.

Throws:

java.lang.IllegalArgumentException – Thrown if the string is an invalid format.

See also:
public static Locale toLocale(Locale locale)[source]

Returns the given locale if non-null, otherwise Locale#getDefault().

Parameters:

locale – A locale or null.

Returns:

The given locale if non-null, otherwise Locale#getDefault().

Since:

3.12.0