com.ibm.icu.util

Class ULocale

Implemented Interfaces:
Serializable

public final class ULocale
extends Object
implements Serializable

A class analogous to Locale that provides additional support for ICU protocol. In ICU 3.0 this class is enhanced to support RFC 3066 language identifiers.

Many classes and services in ICU follow a factory idiom, in which a factory method or object responds to a client request with an object. The request includes a locale (the requested locale), and the returned object is constructed using data for that locale. The system may lack data for the requested locale, in which case the locale fallback mechanism will be invoked until a populated locale is found (the valid locale). Furthermore, even when a populated locale is found (the valid locale), further fallback may be required to reach a locale containing the specific data required by the service (the actual locale).

ULocale performs 'normalization' and 'canonicalization' of locale ids. Normalization 'cleans up' ICU locale ids as follows:

Canonicalization additionally performs the following: All ULocale constructors automatically normalize the locale id. To handle POSIX ids, canonicalize can be called to convert the id to canonical form, or the canonicalInstance factory method can be called.

This class provides selectors VALID_LOCALE and ACTUAL_LOCALE intended for use in methods named getLocale(). These methods exist in several ICU classes, including Calendar, Currency, UFormat, BreakIterator, Collator, DateFormatSymbols, and DecimalFormatSymbols and their subclasses, if any. Once an object of one of these classes has been created, getLocale() may be called on it to determine the valid and actual locale arrived at during the object's construction.

Note: The getLocale() method will be implemented in ICU 3.0; ICU 2.8 contains a partial preview implementation. The actual locale is returned correctly, but the valid locale is not, in most cases.

Authors:
weiv
Alan Liu
Ram Viswanadha
See Also:
Locale

Nested Class Summary

static class
ULocale.Type
Opaque selector enum for getLocale().

Field Summary

static ULocale.Type
ACTUAL_LOCALE
Selector for getLocale() indicating the locale of the resource containing the data.
static ULocale
CANADA
Useful constant for country/region.
static ULocale
CANADA_FRENCH
Useful constant for country/region.
static ULocale
CHINA
Useful constant for country/region.
static ULocale
CHINESE
Useful constant for language.
static ULocale
ENGLISH
Useful constant for language.
static ULocale
FRANCE
Useful constant for country/region.
static ULocale
FRENCH
Useful constant for language.
static ULocale
GERMAN
Useful constant for language.
static ULocale
GERMANY
Useful constant for country/region.
static ULocale
ITALIAN
Useful constant for language.
static ULocale
ITALY
Useful constant for country/region.
static ULocale
JAPAN
Useful constant for country/region.
static ULocale
JAPANESE
Useful constant for language.
static ULocale
KOREA
Useful constant for country/region.
static ULocale
KOREAN
Useful constant for language.
static ULocale
PRC
Useful constant for country/region.
static ULocale
ROOT
The root ULocale.
static ULocale
SIMPLIFIED_CHINESE
Useful constant for language.
static ULocale
TAIWAN
Useful constant for country/region.
static ULocale
TRADITIONAL_CHINESE
Useful constant for language.
static ULocale
UK
Useful constant for country/region.
static ULocale
US
Useful constant for country/region.
static ULocale.Type
VALID_LOCALE
Selector for getLocale() indicating the most specific locale for which any data exists.

Constructor Summary

ULocale(String localeID)
Construct a ULocale from a RFC 3066 locale ID.
ULocale(String a, String b)
Convenience overload of ULocale(String, String, String) for compatibility with java.util.Locale.
ULocale(String a, String b, String c)
Construct a ULocale from a localeID constructed from the three 'fields' a, b, and c.

Method Summary

static ULocale
acceptLanguage(String acceptLanguageList, boolean[] fallback)
Based on a HTTP formatted list of acceptable locales, determine an available locale for the user.
static ULocale
acceptLanguage(String acceptLanguageList, ULocale[] availableLocales, boolean[] fallback)
Based on a HTTP formatted list of acceptable locales, determine an available locale for the user.
static ULocale
acceptLanguage(ULocale[] acceptLanguageList, boolean[] fallback)
Based on an ordered array of acceptable locales, determine an available locale for the user.
static ULocale
acceptLanguage(ULocale[] acceptLanguageList, ULocale[] availableLocales, boolean[] fallback)
Based on a list of acceptable locales, determine an available locale for the user.
static String
canonicalize(String localeID)
Returns the canonical name for the specified locale ID.
Object
clone()
This is for compatibility with Locale-- in actuality, since ULocale is immutable, there is no reason to clone it, so this API returns 'this'.
static ULocale
createCanonical(String nonCanonicalID)
Create a ULocale from the id by first canonicalizing the id.
boolean
equals(Object obj)
Returns true if the other object is another ULocale with the same full name, or is a String localeID that matches the full name.
static ULocale
forLocale(Locale loc)
Return a ULocale object for a Locale.
static ULocale[]
getAvailableLocales()
Returns a list of all installed locales.
String
getBaseName()
Returns the (normalized) base name for this locale.
static String
getBaseName(String localeID)
Returns the (normalized) base name for the specified locale.
String
getCountry()
Returns the country/region code for this locale, which will either be the empty string or an uppercase ISO 3166 2-letter code.
static String
getCountry(String localeID)
Returns the country/region code for this locale, which will either be the empty string or an uppercase ISO 3166 2-letter code.
static ULocale
getDefault()
Returns the current default ULocale.
String
getDisplayCountry()
Returns this locale's country localized for display in the default locale.
static String
getDisplayCountry(String localeID, String displayLocaleID)
Returns a locale's country localized for display in the provided locale.
static String
getDisplayCountry(String localeID, ULocale displayLocale)
Returns a locale's country localized for display in the provided locale.
String
getDisplayCountry(ULocale displayLocale)
Returns this locale's country localized for display in the provided locale.
static String
getDisplayKeyword(String keyword)
Returns a keyword localized for display in the default locale.
static String
getDisplayKeyword(String keyword, String displayLocaleID)
Returns a keyword localized for display in the specified locale.
static String
getDisplayKeyword(String keyword, ULocale displayLocale)
Returns a keyword localized for display in the specified locale.
String
getDisplayKeywordValue(String keyword)
Returns a keyword value localized for display in the default locale.
static String
getDisplayKeywordValue(String localeID, String keyword, String displayLocaleID)
Returns a keyword value localized for display in the specified locale.
static String
getDisplayKeywordValue(String localeID, String keyword, ULocale displayLocale)
Returns a keyword value localized for display in the specified locale.
String
getDisplayKeywordValue(String keyword, ULocale displayLocale)
Returns a keyword value localized for display in the specified locale.
String
getDisplayLanguage()
Returns this locale's language localized for display in the default locale.
static String
getDisplayLanguage(String localeID, String displayLocaleID)
Returns a locale's language localized for display in the provided locale.
static String
getDisplayLanguage(String localeID, ULocale displayLocale)
Returns a locale's language localized for display in the provided locale.
String
getDisplayLanguage(ULocale displayLocale)
Returns this locale's language localized for display in the provided locale.
String
getDisplayName()
Returns this locale name localized for display in the default locale.
static String
getDisplayName(String localeID, String displayLocaleID)
Returns the locale ID localized for display in the provided locale.
static String
getDisplayName(String localeID, ULocale displayLocale)
Returns the locale ID localized for display in the provided locale.
String
getDisplayName(ULocale displayLocale)
Returns this locale name localized for display in the provided locale.
String
getDisplayScript()
Returns this locale's script localized for display in the default locale.
static String
getDisplayScript(String localeID, String displayLocaleID)
Returns a locale's script localized for display in the provided locale.
static String
getDisplayScript(String localeID, ULocale displayLocale)
Returns a locale's script localized for display in the provided locale.
String
getDisplayScript(ULocale displayLocale)
Returns this locale's script localized for display in the provided locale.
String
getDisplayVariant()
Returns this locale's variant localized for display in the default locale.
static String
getDisplayVariant(String localeID, String displayLocaleID)
Returns a locale's variant localized for display in the provided locale.
static String
getDisplayVariant(String localeID, ULocale displayLocale)
Returns a locale's variant localized for display in the provided locale.
String
getDisplayVariant(ULocale displayLocale)
Returns this locale's variant localized for display in the provided locale.
ULocale
getFallback()
Returns the fallback locale for this locale.
static String
getFallback(String localeID)
Returns the fallback locale for the specified locale, which might be the empty string.
String
getISO3Country()
Returns a three-letter abbreviation for this locale's country/region.
static String
getISO3Country(String localeID)
Returns a three-letter abbreviation for this locale's country/region.
String
getISO3Language()
Returns a three-letter abbreviation for this locale's language.
static String
getISO3Language(String localeID)
Returns a three-letter abbreviation for this locale's language.
static String[]
getISOCountries()
Returns a list of all 2-letter country codes defined in ISO 3166.
static String[]
getISOLanguages()
Returns a list of all 2-letter language codes defined in ISO 639.
String
getKeywordValue(String keywordName)
Returns the value for a keyword in this locale.
static String
getKeywordValue(String localeID, String keywordName)
Returns the value for a keyword in the specified locale.
Iterator
getKeywords()
Returns an iterator over keywords for this locale.
static Iterator
getKeywords(String localeID)
Returns an iterator over keywords for the specified locale.
String
getLanguage()
Returns the language code for this locale, which will either be the empty string or a lowercase ISO 639 code.
static String
getLanguage(String localeID)
Returns the language code for the locale ID, which will either be the empty string or a lowercase ISO 639 code.
String
getName()
Returns the (normalized) full name for this locale.
static String
getName(String localeID)
Returns the (normalized) full name for the specified locale.
String
getScript()
Returns the script code for this locale, which might be the empty string.
static String
getScript(String localeID)
Returns the script code for the specified locale, which might be the empty string.
String
getVariant()
Returns the variant code for this locale, which might be the empty string.
static String
getVariant(String localeID)
Returns the variant code for the specified locale, which might be the empty string.
int
hashCode()
Returns the hashCode.
static void
setDefault(ULocale newLocale)
Sets the default ULocale.
ULocale
setKeywordValue(String keyword, String value)
Given a keyword and a value, return a new locale with an updated keyword and value.
static String
setKeywordValue(String localeID, String keyword, String value)
Given a locale id, a keyword, and a value, return a new locale id with an updated keyword and value.
Locale
toLocale()
Convert this ULocale object to a Locale.
String
toString()
Returns a string representation of this object.

Field Details

ACTUAL_LOCALE

public static ULocale.Type ACTUAL_LOCALE
Selector for getLocale() indicating the locale of the resource containing the data. This is always at or above the valid locale. If the valid locale does not contain the specific data being requested, then the actual locale will be above the valid locale. If the object was not constructed from locale data, then the valid locale is null.

CANADA

public static final ULocale CANADA
Useful constant for country/region.

CANADA_FRENCH

public static final ULocale CANADA_FRENCH
Useful constant for country/region.

CHINA

public static final ULocale CHINA
Useful constant for country/region.

CHINESE

public static final ULocale CHINESE
Useful constant for language.

ENGLISH

public static final ULocale ENGLISH
Useful constant for language.

FRANCE

public static final ULocale FRANCE
Useful constant for country/region.

FRENCH

public static final ULocale FRENCH
Useful constant for language.

GERMAN

public static final ULocale GERMAN
Useful constant for language.

GERMANY

public static final ULocale GERMANY
Useful constant for country/region.

ITALIAN

public static final ULocale ITALIAN
Useful constant for language.

ITALY

public static final ULocale ITALY
Useful constant for country/region.

JAPAN

public static final ULocale JAPAN
Useful constant for country/region.

JAPANESE

public static final ULocale JAPANESE
Useful constant for language.

KOREA

public static final ULocale KOREA
Useful constant for country/region.

KOREAN

public static final ULocale KOREAN
Useful constant for language.

PRC

public static final ULocale PRC
Useful constant for country/region.

ROOT

public static final ULocale ROOT
The root ULocale.

SIMPLIFIED_CHINESE

public static final ULocale SIMPLIFIED_CHINESE
Useful constant for language.

TAIWAN

public static final ULocale TAIWAN
Useful constant for country/region.

TRADITIONAL_CHINESE

public static final ULocale TRADITIONAL_CHINESE
Useful constant for language.

UK

public static final ULocale UK
Useful constant for country/region.

US

public static final ULocale US
Useful constant for country/region.

VALID_LOCALE

public static ULocale.Type VALID_LOCALE
Selector for getLocale() indicating the most specific locale for which any data exists. This is always at or above the requested locale, and at or below the actual locale. If the requested locale does not correspond to any resource data, then the valid locale will be above the requested locale. If the object was not constructed from locale data, then the actual locale is null.

Note: The valid locale will be returned correctly in ICU 3.0 or later. In ICU 2.8, it is not returned correctly.

Constructor Details

ULocale

public ULocale(String localeID)
Construct a ULocale from a RFC 3066 locale ID. The locale ID consists of optional language, script, country, and variant fields in that order, separated by underscores, followed by an optional keyword list. The script, if present, is four characters long-- this distinguishes it from a country code, which is two characters long. Other fields are distinguished by position as indicated by the underscores. The start of the keyword list is indicated by '@', and consists of one or more keyword/value pairs separated by commas.

This constructor does not canonicalize the localeID.

Parameters:
localeID - string representation of the locale, e.g: "en_US", "sy_Cyrl_YU", "zh__pinyin", "es_ES@currency=EUR,collation=traditional"

ULocale

public ULocale(String a,
               String b)
Convenience overload of ULocale(String, String, String) for compatibility with java.util.Locale.

ULocale

public ULocale(String a,
               String b,
               String c)
Construct a ULocale from a localeID constructed from the three 'fields' a, b, and c. These fields are concatenated using underscores to form a localeID of the form a_b_c, which is then handled like the localeID passed to ULocale(String localeID).

Java locale strings consisting of language, country, and variant will be handled by this form, since the country code (being shorter than four letters long) will not be interpreted as a script code. If a script code is present, the final argument ('c') will be interpreted as the country code. It is recommended that this constructor only be used to ease porting, and that clients instead use the single-argument constructor when constructing a ULocale from a localeID.

Parameters:
a - first component of the locale id
b - second component of the locale id
c - third component of the locale id

Method Details

acceptLanguage

public static ULocale acceptLanguage(String acceptLanguageList,
                                     boolean[] fallback)
Based on a HTTP formatted list of acceptable locales, determine an available locale for the user. NullPointerException is thrown if acceptLanguageList or availableLocales is null. If fallback is non-null, it will contain true if a fallback locale (one not in the acceptLanguageList) was returned. The value on entry is ignored. ULocale will be one of the locales in availableLocales, or the ROOT ULocale if if a ROOT locale was used as a fallback (because nothing else in availableLocales matched). No ULocale array element should be null; behavior is undefined if this is the case. This function will choose a locale from the ULocale.getAvailableLocales() list as available.
Parameters:
acceptLanguageList - list in HTTP "Accept-Language:" format of acceptable locales
fallback - if non-null, a 1-element array containing a boolean to be set with the fallback status
Returns:
one of the locales from the ULocale.getAvailableLocales() list, or null if none match

acceptLanguage

public static ULocale acceptLanguage(String acceptLanguageList,
                                     ULocale[] availableLocales,
                                     boolean[] fallback)
Based on a HTTP formatted list of acceptable locales, determine an available locale for the user. NullPointerException is thrown if acceptLanguageList or availableLocales is null. If fallback is non-null, it will contain true if a fallback locale (one not in the acceptLanguageList) was returned. The value on entry is ignored. ULocale will be one of the locales in availableLocales, or the ROOT ULocale if if a ROOT locale was used as a fallback (because nothing else in availableLocales matched). No ULocale array element should be null; behavior is undefined if this is the case.
Parameters:
acceptLanguageList - list in HTTP "Accept-Language:" format of acceptable locales
availableLocales - list of available locales. One of these will be returned.
fallback - if non-null, a 1-element array containing a boolean to be set with the fallback status
Returns:
one of the locales from the availableLocales list, or null if none match

acceptLanguage

public static ULocale acceptLanguage(ULocale[] acceptLanguageList,
                                     boolean[] fallback)
Based on an ordered array of acceptable locales, determine an available locale for the user. NullPointerException is thrown if acceptLanguageList or availableLocales is null. If fallback is non-null, it will contain true if a fallback locale (one not in the acceptLanguageList) was returned. The value on entry is ignored. ULocale will be one of the locales in availableLocales, or the ROOT ULocale if if a ROOT locale was used as a fallback (because nothing else in availableLocales matched). No ULocale array element should be null; behavior is undefined if this is the case. This function will choose a locale from the ULocale.getAvailableLocales() list as available.
Parameters:
acceptLanguageList - ordered array of acceptable locales (preferred are listed first)
fallback - if non-null, a 1-element array containing a boolean to be set with the fallback status
Returns:
one of the locales from the ULocale.getAvailableLocales() list, or null if none match

acceptLanguage

public static ULocale acceptLanguage(ULocale[] acceptLanguageList,
                                     ULocale[] availableLocales,
                                     boolean[] fallback)
Based on a list of acceptable locales, determine an available locale for the user. NullPointerException is thrown if acceptLanguageList or availableLocales is null. If fallback is non-null, it will contain true if a fallback locale (one not in the acceptLanguageList) was returned. The value on entry is ignored. ULocale will be one of the locales in availableLocales, or the ROOT ULocale if if a ROOT locale was used as a fallback (because nothing else in availableLocales matched). No ULocale array element should be null; behavior is undefined if this is the case.
Parameters:
acceptLanguageList - list of acceptable locales
availableLocales - list of available locales. One of these will be returned.
fallback - if non-null, a 1-element array containing a boolean to be set with the fallback status
Returns:
one of the locales from the availableLocales list, or null if none match

canonicalize

public static String canonicalize(String localeID)
Returns the canonical name for the specified locale ID. This is used to convert POSIX and other grandfathered IDs to standard ICU form.
Parameters:
localeID - the locale id
Returns:
the canonicalized id

clone

public Object clone()
This is for compatibility with Locale-- in actuality, since ULocale is immutable, there is no reason to clone it, so this API returns 'this'.

createCanonical

public static ULocale createCanonical(String nonCanonicalID)
Create a ULocale from the id by first canonicalizing the id.
Parameters:
nonCanonicalID - the locale id to canonicalize
Returns:
the locale created from the canonical version of the ID.

equals

public boolean equals(Object obj)
Returns true if the other object is another ULocale with the same full name, or is a String localeID that matches the full name. Note that since names are not canonicalized, two ULocales that function identically might not compare equal.
Returns:
true if this Locale is equal to the specified object.

forLocale

public static ULocale forLocale(Locale loc)
Return a ULocale object for a Locale. The ULocale is canonicalized.
Parameters:
loc - a JDK locale

getAvailableLocales

public static ULocale[] getAvailableLocales()
Returns a list of all installed locales.

getBaseName

public String getBaseName()
Returns the (normalized) base name for this locale.
Returns:
the base name as a String.

getBaseName

public static String getBaseName(String localeID)
Returns the (normalized) base name for the specified locale.
Parameters:
localeID - the locale ID as a string
Returns:
the base name as a String.

getCountry

public String getCountry()
Returns the country/region code for this locale, which will either be the empty string or an uppercase ISO 3166 2-letter code.
See Also:
getDisplayCountry

getCountry

public static String getCountry(String localeID)
Returns the country/region code for this locale, which will either be the empty string or an uppercase ISO 3166 2-letter code.
Parameters:
localeID -
See Also:
getDisplayCountry

getDefault

public static ULocale getDefault()
Returns the current default ULocale.

getDisplayCountry

public String getDisplayCountry()
Returns this locale's country localized for display in the default locale.
Returns:
the localized country name.

getDisplayCountry

public static String getDisplayCountry(String localeID,
                                       String displayLocaleID)
Returns a locale's country localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose country will be displayed
displayLocaleID - the id of the locale in which to display the name.
Returns:
the localized country name.

getDisplayCountry

public static String getDisplayCountry(String localeID,
                                       ULocale displayLocale)
Returns a locale's country localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose country will be displayed.
displayLocale - the locale in which to display the name.
Returns:
the localized country name.

getDisplayCountry

public String getDisplayCountry(ULocale displayLocale)
Returns this locale's country localized for display in the provided locale.
Parameters:
displayLocale - the locale in which to display the name.
Returns:
the localized country name.

getDisplayKeyword

public static String getDisplayKeyword(String keyword)
Returns a keyword localized for display in the default locale.
Parameters:
keyword - the keyword to be displayed.
Returns:
the localized keyword name.
See Also:
getKeywords

getDisplayKeyword

public static String getDisplayKeyword(String keyword,
                                       String displayLocaleID)
Returns a keyword localized for display in the specified locale.
Parameters:
keyword - the keyword to be displayed.
displayLocaleID - the id of the locale in which to display the keyword.
Returns:
the localized keyword name.
See Also:
getKeywords

getDisplayKeyword

public static String getDisplayKeyword(String keyword,
                                       ULocale displayLocale)
Returns a keyword localized for display in the specified locale.
Parameters:
keyword - the keyword to be displayed.
displayLocale - the locale in which to display the keyword.
Returns:
the localized keyword name.
See Also:
getKeywords

getDisplayKeywordValue

public String getDisplayKeywordValue(String keyword)
Returns a keyword value localized for display in the default locale.
Parameters:
keyword - the keyword whose value is to be displayed.
Returns:
the localized value name.

getDisplayKeywordValue

public static String getDisplayKeywordValue(String localeID,
                                            String keyword,
                                            String displayLocaleID)
Returns a keyword value localized for display in the specified locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose keyword value is to be displayed.
keyword - the keyword whose value is to be displayed.
displayLocaleID - the id of the locale in which to display the value.
Returns:
the localized value name.

getDisplayKeywordValue

public static String getDisplayKeywordValue(String localeID,
                                            String keyword,
                                            ULocale displayLocale)
Returns a keyword value localized for display in the specified locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose keyword value is to be displayed.
keyword - the keyword whose value is to be displayed.
displayLocale - the id of the locale in which to display the value.
Returns:
the localized value name.

getDisplayKeywordValue

public String getDisplayKeywordValue(String keyword,
                                     ULocale displayLocale)
Returns a keyword value localized for display in the specified locale.
Parameters:
keyword - the keyword whose value is to be displayed.
displayLocale - the locale in which to display the value.
Returns:
the localized value name.

getDisplayLanguage

public String getDisplayLanguage()
Returns this locale's language localized for display in the default locale.
Returns:
the localized language name.

getDisplayLanguage

public static String getDisplayLanguage(String localeID,
                                        String displayLocaleID)
Returns a locale's language localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose language will be displayed
displayLocaleID - the id of the locale in which to display the name.
Returns:
the localized language name.

getDisplayLanguage

public static String getDisplayLanguage(String localeID,
                                        ULocale displayLocale)
Returns a locale's language localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose language will be displayed.
displayLocale - the locale in which to display the name.
Returns:
the localized language name.

getDisplayLanguage

public String getDisplayLanguage(ULocale displayLocale)
Returns this locale's language localized for display in the provided locale.
Parameters:
displayLocale - the locale in which to display the name.
Returns:
the localized language name.

getDisplayName

public String getDisplayName()
Returns this locale name localized for display in the default locale.
Returns:
the localized locale name.

getDisplayName

public static String getDisplayName(String localeID,
                                    String displayLocaleID)
Returns the locale ID localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the locale whose name is to be displayed.
displayLocaleID - the id of the locale in which to display the locale name.
Returns:
the localized locale name.

getDisplayName

public static String getDisplayName(String localeID,
                                    ULocale displayLocale)
Returns the locale ID localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the locale whose name is to be displayed.
displayLocale - the locale in which to display the locale name.
Returns:
the localized locale name.

getDisplayName

public String getDisplayName(ULocale displayLocale)
Returns this locale name localized for display in the provided locale.
Parameters:
displayLocale - the locale in which to display the locale name.
Returns:
the localized locale name.

getDisplayScript

public String getDisplayScript()
Returns this locale's script localized for display in the default locale.
Returns:
the localized script name.

getDisplayScript

public static String getDisplayScript(String localeID,
                                      String displayLocaleID)
Returns a locale's script localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose script will be displayed
displayLocaleID - the id of the locale in which to display the name.
Returns:
the localized script name.

getDisplayScript

public static String getDisplayScript(String localeID,
                                      ULocale displayLocale)
Returns a locale's script localized for display in the provided locale.
Parameters:
localeID - the id of the locale whose script will be displayed.
displayLocale - the locale in which to display the name.
Returns:
the localized script name.

getDisplayScript

public String getDisplayScript(ULocale displayLocale)
Returns this locale's script localized for display in the provided locale.
Parameters:
displayLocale - the locale in which to display the name.
Returns:
the localized script name.

getDisplayVariant

public String getDisplayVariant()
Returns this locale's variant localized for display in the default locale.
Returns:
the localized variant name.

getDisplayVariant

public static String getDisplayVariant(String localeID,
                                       String displayLocaleID)
Returns a locale's variant localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose variant will be displayed
displayLocaleID - the id of the locale in which to display the name.
Returns:
the localized variant name.

getDisplayVariant

public static String getDisplayVariant(String localeID,
                                       ULocale displayLocale)
Returns a locale's variant localized for display in the provided locale. This is a cover for the ICU4C API.
Parameters:
localeID - the id of the locale whose variant will be displayed.
displayLocale - the locale in which to display the name.
Returns:
the localized variant name.

getDisplayVariant

public String getDisplayVariant(ULocale displayLocale)
Returns this locale's variant localized for display in the provided locale.
Parameters:
displayLocale - the locale in which to display the name.
Returns:
the localized variant name.

getFallback

public ULocale getFallback()
Returns the fallback locale for this locale. If this locale is root, returns null.

getFallback

public static String getFallback(String localeID)
Returns the fallback locale for the specified locale, which might be the empty string.

getISO3Country

public String getISO3Country()
Returns a three-letter abbreviation for this locale's country/region. If the locale doesn't specify a country, returns the empty string. Otherwise, returns an uppercase ISO 3166 3-letter country code.

getISO3Country

public static String getISO3Country(String localeID)
Returns a three-letter abbreviation for this locale's country/region. If the locale doesn't specify a country, returns the empty string. Otherwise, returns an uppercase ISO 3166 3-letter country code.

getISO3Language

public String getISO3Language()

getISO3Language

public static String getISO3Language(String localeID)

getISOCountries

public static String[] getISOCountries()
Returns a list of all 2-letter country codes defined in ISO 3166. Can be used to create Locales.

getISOLanguages

public static String[] getISOLanguages()
Returns a list of all 2-letter language codes defined in ISO 639. Can be used to create Locales. [NOTE: ISO 639 is not a stable standard-- some languages' codes have changed. The list this function returns includes both the new and the old codes for the languages whose codes have changed.]

getKeywordValue

public String getKeywordValue(String keywordName)
Returns the value for a keyword in this locale. If the keyword is not defined, returns null.
Parameters:
keywordName - name of the keyword whose value is desired. Case insensitive.
Returns:
the value of the keyword, or null.

getKeywordValue

public static String getKeywordValue(String localeID,
                                     String keywordName)
Returns the value for a keyword in the specified locale. If the keyword is not defined, returns null. The locale name does not need to be normalized.
Parameters:
keywordName - name of the keyword whose value is desired. Case insensitive.
Returns:
String the value of the keyword as a string

getKeywords

public Iterator getKeywords()
Returns an iterator over keywords for this locale. If there are no keywords, returns null.
Returns:
iterator over keywords, or null if there are no keywords.

getKeywords

public static Iterator getKeywords(String localeID)
Returns an iterator over keywords for the specified locale. If there are no keywords, returns null.
Returns:
an iterator over the keywords in the specified locale, or null if there are no keywords.

getLanguage

public String getLanguage()
Returns the language code for this locale, which will either be the empty string or a lowercase ISO 639 code.
See Also:
getDisplayLanguage

getLanguage

public static String getLanguage(String localeID)
Returns the language code for the locale ID, which will either be the empty string or a lowercase ISO 639 code.
See Also:
getDisplayLanguage

getName

public String getName()
Returns the (normalized) full name for this locale.
Returns:
String the full name of the localeID

getName

public static String getName(String localeID)
Returns the (normalized) full name for the specified locale.
Parameters:
localeID - the localeID as a string
Returns:
String the full name of the localeID

getScript

public String getScript()
Returns the script code for this locale, which might be the empty string.
See Also:
getDisplayScript

getScript

public static String getScript(String localeID)
Returns the script code for the specified locale, which might be the empty string.
See Also:
getDisplayScript

getVariant

public String getVariant()
Returns the variant code for this locale, which might be the empty string.
See Also:
getDisplayVariant

getVariant

public static String getVariant(String localeID)
Returns the variant code for the specified locale, which might be the empty string.
See Also:
getDisplayVariant

hashCode

public int hashCode()
Returns the hashCode.

setDefault

public static void setDefault(ULocale newLocale)
Sets the default ULocale. This also sets the default Locale. If the caller does not have write permission to the user.language property, a security exception will be thrown, and the default ULocale will remain unchanged.
Parameters:
newLocale - the new default locale
See Also:
SecurityManager.checkPermission, PropertyPermission

setKeywordValue

public ULocale setKeywordValue(String keyword,
                               String value)
Given a keyword and a value, return a new locale with an updated keyword and value. If keyword is null, this removes all keywords from the locale id. Otherwise, if the value is null, this removes the value for this keyword from the locale id. Otherwise, this adds/replaces the value for this keyword in the locale id. The keyword and value must not be empty.
Parameters:
keyword - the keyword to add/remove, or null to remove all keywords.
value - the value to add/set, or null to remove this particular keyword.
Returns:
the updated locale

setKeywordValue

public static String setKeywordValue(String localeID,
                                     String keyword,
                                     String value)
Given a locale id, a keyword, and a value, return a new locale id with an updated keyword and value. If keyword is null, this removes all keywords from the locale id. Otherwise, if the value is null, this removes the value for this keyword from the locale id. Otherwise, this adds/replaces the value for this keyword in the locale id. The keyword and value must not be empty.
Parameters:
localeID - the locale id to modify
keyword - the keyword to add/remove, or null to remove all keywords.
value - the value to add/set, or null to remove this particular keyword.
Returns:
the updated locale id

toLocale

public Locale toLocale()
Returns:
a JDK locale that either exactly represents this object or is the closest approximation.

toString

public String toString()
Returns a string representation of this object.

Copyright (c) 2006 IBM Corporation and others.