Class LocaleUtils
- java.lang.Object
-
- org.apache.commons.lang.LocaleUtils
-
public class LocaleUtils extends java.lang.Object
Operations to assist when working with a
Locale
.This class tries to handle
null
input gracefully. An exception will not be thrown for anull
input. Each method documents its behaviour in more detail.- Since:
- 2.2
- Version:
- $Id: LocaleUtils.java 911968 2010-02-19 20:26:21Z niallp $
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.List
cAvailableLocaleList
Unmodifiable list of available locales.private static java.util.Set
cAvailableLocaleSet
Unmodifiable set of available locales.private static java.util.Map
cCountriesByLanguage
Unmodifiable map of country locales by language.private static java.util.Map
cLanguagesByCountry
Unmodifiable map of language locales by country.
-
Constructor Summary
Constructors Constructor Description LocaleUtils()
LocaleUtils
instances should NOT be constructed in standard programming.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.List
availableLocaleList()
Obtains an unmodifiable list of installed locales.static java.util.Set
availableLocaleSet()
Obtains an unmodifiable set of installed locales.static java.util.List
countriesByLanguage(java.lang.String languageCode)
Obtains the list of countries supported for a given language.private static void
initAvailableLocaleList()
Initializes the availableLocaleList.private static void
initAvailableLocaleSet()
Initializes the availableLocaleSet.static boolean
isAvailableLocale(java.util.Locale locale)
Checks if the locale specified is in the list of available locales.static java.util.List
languagesByCountry(java.lang.String countryCode)
Obtains the list of languages supported for a given country.static java.util.List
localeLookupList(java.util.Locale locale)
Obtains the list of locales to search through when performing a locale search.static java.util.List
localeLookupList(java.util.Locale locale, java.util.Locale defaultLocale)
Obtains the list of locales to search through when performing a locale search.static java.util.Locale
toLocale(java.lang.String str)
Converts a String to a Locale.
-
-
-
Field Detail
-
cAvailableLocaleList
private static java.util.List cAvailableLocaleList
Unmodifiable list of available locales.
-
cAvailableLocaleSet
private static java.util.Set cAvailableLocaleSet
Unmodifiable set of available locales.
-
cLanguagesByCountry
private static final java.util.Map cLanguagesByCountry
Unmodifiable map of language locales by country.
-
cCountriesByLanguage
private static final java.util.Map cCountriesByLanguage
Unmodifiable map of country locales by language.
-
-
Method Detail
-
toLocale
public static java.util.Locale toLocale(java.lang.String str)
Converts a String to a Locale.
This method takes the string format of a locale and creates the locale object from it.
LocaleUtils.toLocale("en") = new Locale("en", "") LocaleUtils.toLocale("en_GB") = new Locale("en", "GB") LocaleUtils.toLocale("en_GB_xxx") = new Locale("en", "GB", "xxx") (#)
(#) The behaviour 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. 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
- if the string is an invalid format
-
localeLookupList
public static java.util.List localeLookupList(java.util.Locale locale)
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, never null
-
localeLookupList
public static java.util.List localeLookupList(java.util.Locale locale, java.util.Locale defaultLocale)
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 listdefaultLocale
- the default locale to use if no other is found- Returns:
- the unmodifiable list of Locale objects, 0 being locale, never null
-
availableLocaleList
public static java.util.List availableLocaleList()
Obtains an unmodifiable 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 list of available locales
-
initAvailableLocaleList
private static void initAvailableLocaleList()
Initializes the availableLocaleList. It is separate from availableLocaleList() to avoid the synchronized block affecting normal use, yet synchronized and lazy loading to avoid a static block affecting other methods in this class.
-
availableLocaleSet
public static java.util.Set availableLocaleSet()
Obtains 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
-
initAvailableLocaleSet
private static void initAvailableLocaleSet()
Initializes the availableLocaleSet. It is separate from availableLocaleSet() to avoid the synchronized block affecting normal use, yet synchronized and lazy loading to avoid a static block affecting other methods in this class.
-
isAvailableLocale
public static boolean isAvailableLocale(java.util.Locale locale)
Checks if the locale specified is in the list of available locales.
- Parameters:
locale
- the Locale object to check if it is available- Returns:
- true if the locale is a known locale
-
languagesByCountry
public static java.util.List languagesByCountry(java.lang.String countryCode)
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, never null
-
countriesByLanguage
public static java.util.List countriesByLanguage(java.lang.String languageCode)
Obtains 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, never null
-
-