Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
com.ibm.icu.util.ULocale
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:
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.
Locale
Nested Class Summary | |
static class |
|
Field Summary | |
static ULocale.Type |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale.Type |
|
Constructor Summary | |
| |
| |
|
Method Summary | |
static ULocale |
|
static ULocale |
|
static ULocale |
|
static ULocale |
|
static String |
|
Object |
|
static ULocale |
|
boolean |
|
static ULocale | |
static ULocale[] |
|
String |
|
static String |
|
String |
|
static String |
|
static ULocale |
|
String |
|
static String |
|
static String |
|
String |
|
static String |
|
static String |
|
static String |
|
String |
|
static String |
|
static String |
|
String |
|
String |
|
static String |
|
static String |
|
String |
|
String |
|
static String |
|
static String |
|
String |
|
String |
|
static String |
|
static String |
|
String |
|
String |
|
static String |
|
static String |
|
String |
|
ULocale |
|
static String |
|
String |
|
static String |
|
String |
|
static String |
|
static String[] |
|
static String[] |
|
String |
|
static String |
|
Iterator |
|
static Iterator |
|
String |
|
static String |
|
String |
|
static String |
|
String |
|
static String |
|
String |
|
static String |
|
int |
|
static void |
|
ULocale |
|
static String |
|
Locale | |
String |
|
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.
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.
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"
public ULocale(String a, String b)
Convenience overload of ULocale(String, String, String) for compatibility with java.util.Locale.
- See Also:
ULocale(String,String,String)
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 toULocale(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 idb
- second component of the locale idc
- third component of the locale id
- See Also:
ULocale(String)
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 localesfallback
- 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
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 localesavailableLocales
- 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
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
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 localesavailableLocales
- 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
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
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'.
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.
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.
public static ULocale forLocale(Locale loc)
Return a ULocale object for aLocale
. The ULocale is canonicalized.
- Parameters:
loc
- a JDK locale
public static ULocale[] getAvailableLocales()
Returns a list of all installed locales.
public String getBaseName()
Returns the (normalized) base name for this locale.
- Returns:
- the base name as a String.
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.
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
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
public String getDisplayCountry()
Returns this locale's country localized for display in the default locale.
- Returns:
- the localized country name.
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 displayeddisplayLocaleID
- the id of the locale in which to display the name.
- Returns:
- the localized country name.
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.
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.
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
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
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
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.
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.
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.
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.
public String getDisplayLanguage()
Returns this locale's language localized for display in the default locale.
- Returns:
- the localized language name.
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 displayeddisplayLocaleID
- the id of the locale in which to display the name.
- Returns:
- the localized language name.
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.
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.
public String getDisplayName()
Returns this locale name localized for display in the default locale.
- Returns:
- the localized locale name.
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.
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.
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.
public String getDisplayScript()
Returns this locale's script localized for display in the default locale.
- Returns:
- the localized script name.
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 displayeddisplayLocaleID
- the id of the locale in which to display the name.
- Returns:
- the localized script name.
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.
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.
public String getDisplayVariant()
Returns this locale's variant localized for display in the default locale.
- Returns:
- the localized variant name.
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 displayeddisplayLocaleID
- the id of the locale in which to display the name.
- Returns:
- the localized variant name.
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.
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.
public ULocale getFallback()
Returns the fallback locale for this locale. If this locale is root, returns null.
public static String getFallback(String localeID)
Returns the fallback locale for the specified locale, which might be the empty string.
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.
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.
public String getISO3Language()
Returns a three-letter abbreviation for this locale's language. If the locale doesn't specify a language, returns the empty string. Otherwise, returns a lowercase ISO 639-2/T language code. The ISO 639-2 language codes can be found on-line atftp://dkuug.dk/i18n/iso-639-2.txt
public static String getISO3Language(String localeID)
Returns a three-letter abbreviation for this locale's language. If the locale doesn't specify a language, returns the empty string. Otherwise, returns a lowercase ISO 639-2/T language code. The ISO 639-2 language codes can be found on-line atftp://dkuug.dk/i18n/iso-639-2.txt
public static String[] getISOCountries()
Returns a list of all 2-letter country codes defined in ISO 3166. Can be used to create Locales.
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.]
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.
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
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.
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.
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
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
public String getName()
Returns the (normalized) full name for this locale.
- Returns:
- String the full name of the localeID
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
public String getScript()
Returns the script code for this locale, which might be the empty string.
- See Also:
getDisplayScript
public static String getScript(String localeID)
Returns the script code for the specified locale, which might be the empty string.
- See Also:
getDisplayScript
public String getVariant()
Returns the variant code for this locale, which might be the empty string.
- See Also:
getDisplayVariant
public static String getVariant(String localeID)
Returns the variant code for the specified locale, which might be the empty string.
- See Also:
getDisplayVariant
public int hashCode()
Returns the hashCode.
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
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
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 modifykeyword
- 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
public Locale toLocale()
Convert this ULocale object to aLocale
.
- Returns:
- a JDK locale that either exactly represents this object or is the closest approximation.
public String toString()
Returns a string representation of this object.