public final class ULocale extends Object implements Serializable, Comparable<ULocale>
java.util.Locale
. Methods, fields, and other functionality specific to ICU are labeled '[icu]'.
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:
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 actual locale is returned correctly, but the valid locale is not, in most cases.
Locale
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
ULocale.AvailableType
|
static class |
ULocale.Builder
Builder is used to build instances of ULocale
from values configured by the setters. |
static class |
ULocale.Category
Enum for locale categories.
|
static class |
ULocale.Minimize
Deprecated.
This API is ICU internal only.
|
static class |
ULocale.RegionValidateMap
Deprecated.
This API is ICU internal only.
|
static class |
ULocale.Type
Opaque selector enum for getLocale().
|
Modifier and Type | Field and Description |
---|---|
static ULocale.Type |
ACTUAL_LOCALE
[icu] 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 char |
PRIVATE_USE_EXTENSION
The key for the private use locale extension ('x').
|
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 char |
UNICODE_LOCALE_EXTENSION
The key for Unicode locale extension ('u').
|
static ULocale |
US
Useful constant for country/region.
|
static ULocale.Type |
VALID_LOCALE
[icu] Selector for getLocale() indicating the most specific
locale for which any data exists.
|
Constructor and Description |
---|
ULocale(String localeID)
[icu] Constructs 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)
Constructs a ULocale from a localeID constructed from the three 'fields' a, b, and
c.
|
Modifier and Type | Method and Description |
---|---|
static ULocale |
acceptLanguage(String acceptLanguageList,
boolean[] fallback)
[icu] 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)
[icu] Based on a HTTP formatted list of acceptable locales, determine an available
locale for the user.
|
static ULocale |
acceptLanguage(ULocale[] acceptLanguageList,
boolean[] fallback)
[icu] Based on an ordered array of acceptable locales, determine an available
locale for the user.
|
static ULocale |
acceptLanguage(ULocale[] acceptLanguageList,
ULocale[] availableLocales,
boolean[] fallback)
[icu] Based on a list of acceptable locales, determine an available locale for the
user.
|
static ULocale |
addLikelySubtags(ULocale loc)
[icu] Adds the likely subtags for a provided locale ID, per the algorithm
described in the following CLDR technical report:
http://www.unicode.org/reports/tr35/#Likely_Subtags
If the provided ULocale instance is already in the maximal form, or there is no
data available available for maximization, it will be returned.
|
static String |
canonicalize(String localeID)
[icu] Returns the canonical name according to CLDR 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'.
|
int |
compareTo(ULocale other)
Compares two ULocale for ordering.
|
static ULocale |
createCanonical(String nonCanonicalID)
[icu] Creates a ULocale from the id by first canonicalizing the id according to CLDR.
|
static ULocale |
createCanonical(ULocale locale)
Creates a ULocale from the locale by first canonicalizing the locale according to CLDR.
|
boolean |
equals(Object obj)
Returns true if the other object is another ULocale with the
same full name.
|
static ULocale |
forLanguageTag(String languageTag)
Returns a locale for the specified IETF BCP 47 language tag string.
|
static ULocale |
forLocale(Locale loc)
[icu] Returns a ULocale object for a
Locale . |
static ULocale[] |
getAvailableLocales()
[icu] Note: Unlike the Locale API, this returns an array of |
static Collection<ULocale> |
getAvailableLocalesByType(ULocale.AvailableType type)
Returns a list of all installed locales according to the specified type.
|
String |
getBaseName()
[icu] Returns the (normalized) base name for this locale,
like
getName() , but without keywords. |
static String |
getBaseName(String localeID)
[icu] Returns the (normalized) base name for the specified locale,
like
getName(String) , but without keywords. |
String |
getCharacterOrientation()
[icu] Returns this locale's layout orientation for characters.
|
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)
[icu] 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.
|
static ULocale |
getDefault(ULocale.Category category)
Returns the current default ULocale for the specified category.
|
String |
getDisplayCountry()
Returns this locale's country localized for display in the default
DISPLAY locale. |
static String |
getDisplayCountry(String localeID,
String displayLocaleID)
[icu] Returns a locale's country localized for display in the provided locale.
|
static String |
getDisplayCountry(String localeID,
ULocale displayLocale)
[icu] 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)
[icu] Returns a keyword localized for display in the default
DISPLAY locale. |
static String |
getDisplayKeyword(String keyword,
String displayLocaleID)
[icu] Returns a keyword localized for display in the specified locale.
|
static String |
getDisplayKeyword(String keyword,
ULocale displayLocale)
[icu] Returns a keyword localized for display in the specified locale.
|
String |
getDisplayKeywordValue(String keyword)
[icu] Returns a keyword value localized for display in the default
DISPLAY locale. |
static String |
getDisplayKeywordValue(String localeID,
String keyword,
String displayLocaleID)
[icu] Returns a keyword value localized for display in the specified locale.
|
static String |
getDisplayKeywordValue(String localeID,
String keyword,
ULocale displayLocale)
[icu] Returns a keyword value localized for display in the specified locale.
|
String |
getDisplayKeywordValue(String keyword,
ULocale displayLocale)
[icu] Returns a keyword value localized for display in the specified locale.
|
String |
getDisplayLanguage()
Returns this locale's language localized for display in the default
DISPLAY locale. |
static String |
getDisplayLanguage(String localeID,
String displayLocaleID)
[icu] Returns a locale's language localized for display in the provided locale.
|
static String |
getDisplayLanguage(String localeID,
ULocale displayLocale)
[icu] 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 |
getDisplayLanguageWithDialect()
[icu] Returns this locale's language localized for display in the default
DISPLAY locale. |
static String |
getDisplayLanguageWithDialect(String localeID,
String displayLocaleID)
[icu] Returns a locale's language localized for display in the provided locale.
|
static String |
getDisplayLanguageWithDialect(String localeID,
ULocale displayLocale)
[icu] Returns a locale's language localized for display in the provided locale.
|
String |
getDisplayLanguageWithDialect(ULocale displayLocale)
[icu] Returns this locale's language localized for display in the provided locale.
|
String |
getDisplayName()
Returns this locale name localized for display in the default
DISPLAY locale. |
static String |
getDisplayName(String localeID,
String displayLocaleID)
[icu] Returns the locale ID localized for display in the provided locale.
|
static String |
getDisplayName(String localeID,
ULocale displayLocale)
[icu] 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 |
getDisplayNameWithDialect()
[icu] Returns this locale name localized for display in the default
DISPLAY locale. |
static String |
getDisplayNameWithDialect(String localeID,
String displayLocaleID)
[icu] Returns the locale ID localized for display in the provided locale.
|
static String |
getDisplayNameWithDialect(String localeID,
ULocale displayLocale)
[icu] Returns the locale ID localized for display in the provided locale.
|
String |
getDisplayNameWithDialect(ULocale displayLocale)
[icu] Returns this locale name localized for display in the provided locale.
|
String |
getDisplayScript()
Returns this locale's script localized for display in the default
DISPLAY locale. |
static String |
getDisplayScript(String localeID,
String displayLocaleID)
[icu] Returns a locale's script localized for display in the provided locale.
|
static String |
getDisplayScript(String localeID,
ULocale displayLocale)
[icu] 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 |
getDisplayScriptInContext()
Deprecated.
This API is ICU internal only.
|
static String |
getDisplayScriptInContext(String localeID,
String displayLocaleID)
Deprecated.
This API is ICU internal only.
|
static String |
getDisplayScriptInContext(String localeID,
ULocale displayLocale)
Deprecated.
This API is ICU internal only.
|
String |
getDisplayScriptInContext(ULocale displayLocale)
Deprecated.
This API is ICU internal only.
|
String |
getDisplayVariant()
Returns this locale's variant localized for display in the default
DISPLAY locale. |
static String |
getDisplayVariant(String localeID,
String displayLocaleID)
[icu] Returns a locale's variant localized for display in the provided locale.
|
static String |
getDisplayVariant(String localeID,
ULocale displayLocale)
[icu] 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.
|
String |
getExtension(char key)
Returns the extension (or private use) value associated with
the specified key, or null if there is no extension
associated with the key.
|
Set<Character> |
getExtensionKeys()
Returns the set of extension keys associated with this locale, or the
empty set if it has no extensions.
|
ULocale |
getFallback()
[icu] Returns the fallback locale for this locale.
|
static String |
getFallback(String localeID)
[icu] 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)
[icu] 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)
[icu] 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 unique language codes defined in ISO 639.
|
Iterator<String> |
getKeywords()
[icu] Returns an iterator over keywords for this locale.
|
static Iterator<String> |
getKeywords(String localeID)
[icu] Returns an iterator over keywords for the specified locale.
|
String |
getKeywordValue(String keywordName)
[icu] Returns the value for a keyword in this locale.
|
static String |
getKeywordValue(String localeID,
String keywordName)
[icu] Returns the value for a keyword in 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 |
getLineOrientation()
[icu] Returns this locale's layout orientation for lines.
|
String |
getName()
[icu] Returns the (normalized) full name for this locale.
|
static String |
getName(String localeID)
[icu] Returns the (normalized) full name for the specified locale.
|
static String |
getRegionForSupplementalData(ULocale locale,
boolean inferRegion)
Deprecated.
This API is ICU internal only.
|
String |
getScript()
Returns the script code for this locale, which might be the empty string.
|
static String |
getScript(String localeID)
[icu] Returns the script code for the specified locale, which might be the empty
string.
|
Set<String> |
getUnicodeLocaleAttributes()
Returns the set of unicode locale attributes associated with
this locale, or the empty set if it has no attributes.
|
Set<String> |
getUnicodeLocaleKeys()
Returns the set of Unicode locale keys defined by this locale, or the empty set if
this locale has none.
|
String |
getUnicodeLocaleType(String key)
Returns the Unicode locale type associated with the specified Unicode locale key
for this locale.
|
String |
getVariant()
Returns the variant code for this locale, which might be the empty string.
|
static String |
getVariant(String localeID)
[icu] Returns the variant code for the specified locale, which might be the empty string.
|
int |
hashCode()
Returns the hashCode.
|
boolean |
isRightToLeft()
[icu] Returns whether this locale's script is written right-to-left.
|
static ULocale |
minimizeSubtags(ULocale loc)
[icu] Minimizes the subtags for a provided locale ID, per the algorithm described
in the following CLDR technical report:
http://www.unicode.org/reports/tr35/#Likely_Subtags
If the provided ULocale instance is already in the minimal form, or there
is no data available for minimization, it will be returned.
|
static ULocale |
minimizeSubtags(ULocale loc,
ULocale.Minimize fieldToFavor)
Deprecated.
This API is ICU internal only.
|
static void |
setDefault(ULocale.Category category,
ULocale newLocale)
Sets the default
ULocale for the specified Category . |
static void |
setDefault(ULocale newLocale)
Sets the default ULocale.
|
ULocale |
setKeywordValue(String keyword,
String value)
[icu] 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.
|
String |
toLanguageTag()
Returns a well-formed IETF BCP 47 language tag representing
this locale.
|
static String |
toLegacyKey(String keyword)
[icu] Converts the specified keyword (BCP 47 Unicode locale extension key, or
legacy key) to the legacy key.
|
static String |
toLegacyType(String keyword,
String value)
[icu] Converts the specified keyword value (BCP 47 Unicode locale extension type,
or legacy type or type alias) to the canonical legacy type.
|
Locale |
toLocale()
[icu] Converts this ULocale object to a
Locale . |
String |
toString()
Returns a string representation of this object.
|
static String |
toUnicodeLocaleKey(String keyword)
[icu] Converts the specified keyword (legacy key, or BCP 47 Unicode locale
extension key) to the equivalent BCP 47 Unicode locale extension key.
|
static String |
toUnicodeLocaleType(String keyword,
String value)
[icu] Converts the specified keyword value (legacy type, or BCP 47
Unicode locale extension type) to the well-formed BCP 47 Unicode locale
extension type for the specified keyword (category).
|
public static final ULocale ENGLISH
public static final ULocale FRENCH
public static final ULocale GERMAN
public static final ULocale ITALIAN
public static final ULocale JAPANESE
public static final ULocale KOREAN
public static final ULocale CHINESE
public static final ULocale SIMPLIFIED_CHINESE
public static final ULocale TRADITIONAL_CHINESE
public static final ULocale FRANCE
public static final ULocale GERMANY
public static final ULocale ITALY
public static final ULocale JAPAN
public static final ULocale KOREA
public static final ULocale CHINA
public static final ULocale PRC
public static final ULocale TAIWAN
public static final ULocale UK
public static final ULocale US
public static final ULocale CANADA
public static final ULocale CANADA_FRENCH
public static final ULocale ROOT
public static ULocale.Type ACTUAL_LOCALE
public static ULocale.Type VALID_LOCALE
Note: The valid locale will be returned correctly in ICU 3.0 or later. In ICU 2.8, it is not returned correctly.
public static final char PRIVATE_USE_EXTENSION
getExtension(char)
,
ULocale.Builder.setExtension(char, String)
,
Constant Field Valuespublic static final char UNICODE_LOCALE_EXTENSION
getExtension(char)
,
ULocale.Builder.setExtension(char, String)
,
Constant Field Valuespublic ULocale(String localeID)
This constructor does not canonicalize the localeID. So, for
example, "zh__pinyin" remains unchanged instead of converting
to "zh@collation=pinyin". By default ICU only recognizes the
latter as specifying pinyin collation. Use createCanonical(java.lang.String)
or canonicalize(java.lang.String)
if you need to canonicalize the localeID.
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)
ULocale(String, String, String)
public ULocale(String a, String b, String c)
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.
a
- first component of the locale idb
- second component of the locale idc
- third component of the locale idULocale(String)
public static ULocale forLocale(Locale loc)
Locale
.
The ULocale is canonicalized.loc
- a Locale
public static ULocale createCanonical(String nonCanonicalID)
nonCanonicalID
- the locale id to canonicalizepublic static ULocale createCanonical(ULocale locale)
locale
- the ULocale to canonicalizepublic Locale toLocale()
Locale
.Locale
that either exactly represents this object
or is the closest approximation.public static ULocale getDefault()
The default ULocale is synchronized to the default Java Locale. This method checks the current default Java Locale and returns an equivalent ULocale.
public static void setDefault(ULocale newLocale)
By setting the default ULocale with this method, all of the default category locales are also set to the specified default ULocale.
newLocale
- the new default localeSecurityException
- if a security manager exists and its
checkPermission
method doesn't allow the operation.NullPointerException
- if newLocale
is nullSecurityManager.checkPermission(java.security.Permission)
,
PropertyPermission
,
setDefault(Category, ULocale)
public static ULocale getDefault(ULocale.Category category)
category
- the categorypublic static void setDefault(ULocale.Category category, ULocale newLocale)
ULocale
for the specified Category
.
This also sets the default Locale
for the specified Category
of the JVM. If the caller does not have write permission to the
user.language property, a security exception will be thrown,
and the default ULocale for the specified Category will remain unchanged.category
- the specified category to set the default localenewLocale
- the new default localeSecurityManager.checkPermission(java.security.Permission)
,
PropertyPermission
public Object clone()
public int hashCode()
public boolean equals(Object obj)
public int compareTo(ULocale other)
Note: The order might change in future.
compareTo
in interface Comparable<ULocale>
other
- the ULocale to be compared.NullPointerException
- if other
is null.public static ULocale[] getAvailableLocales()
[icu] Note: Unlike the Locale API, this returns an array of ULocale
,
not Locale
.
Returns a list of all installed locales. This is equivalent to calling
getAvailableLocalesByType(com.ibm.icu.util.ULocale.AvailableType)
with AvailableType.DEFAULT.
public static Collection<ULocale> getAvailableLocalesByType(ULocale.AvailableType type)
public static String[] getISOCountries()
public static String[] getISOLanguages()
public String getLanguage()
getDisplayLanguage()
,
getDisplayLanguage(ULocale)
public static String getLanguage(String localeID)
getDisplayLanguage()
,
getDisplayLanguage(ULocale)
public String getScript()
getDisplayScript()
,
getDisplayScript(ULocale)
public static String getScript(String localeID)
getDisplayScript()
,
getDisplayScript(ULocale)
public String getCountry()
getDisplayCountry()
,
getDisplayCountry(ULocale)
public static String getCountry(String localeID)
localeID
- The locale identification string.getDisplayCountry()
,
getDisplayCountry(ULocale)
@Deprecated public static String getRegionForSupplementalData(ULocale locale, boolean inferRegion)
locale
- The locale (includes any keywords) from which
to get the region to use for supplemental data.inferRegion
- If true, will try to infer region from other
locale elements if not found any other way.public String getVariant()
getDisplayVariant()
,
getDisplayVariant(ULocale)
public static String getVariant(String localeID)
getDisplayVariant()
,
getDisplayVariant(ULocale)
public static String getFallback(String localeID)
public ULocale getFallback()
public String getBaseName()
getName()
, but without keywords.public static String getBaseName(String localeID)
getName(String)
, but without keywords.localeID
- the locale ID as a stringpublic String getName()
public static String getName(String localeID)
localeID
- the localeID as a stringpublic String toString()
public Iterator<String> getKeywords()
public static Iterator<String> getKeywords(String localeID)
public String getKeywordValue(String keywordName)
keywordName
- name of the keyword whose value is desired. Case insensitive.public static String getKeywordValue(String localeID, String keywordName)
keywordName
- name of the keyword whose value is desired. Case insensitive.public static String canonicalize(String localeID)
localeID
- the locale idpublic ULocale setKeywordValue(String keyword, String value)
Related: getBaseName()
returns the locale ID string with all keywords removed.
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.public static String setKeywordValue(String localeID, String keyword, String value)
Related: getBaseName(String)
returns the locale ID string with all keywords removed.
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.public String getISO3Language()
ftp://dkuug.dk/i18n/iso-639-2.txt
MissingResourceException
- Throws MissingResourceException if the
three-letter language abbreviation is not available for this locale.public static String getISO3Language(String localeID)
ftp://dkuug.dk/i18n/iso-639-2.txt
MissingResourceException
- Throws MissingResourceException if the
three-letter language abbreviation is not available for this locale.public String getISO3Country()
MissingResourceException
- Throws MissingResourceException if the
three-letter country abbreviation is not available for this locale.public static String getISO3Country(String localeID)
MissingResourceException
- Throws MissingResourceException if the
three-letter country abbreviation is not available for this locale.public boolean isRightToLeft()
addLikelySubtags(ULocale)
.
If no likely script is known, then false is returned.
A script is right-to-left according to the CLDR script metadata which corresponds to whether the script's letters have Bidi_Class=R or AL.
Returns true for "ar" and "en-Hebr", false for "zh" and "fa-Cyrl".
public String getDisplayLanguage()
DISPLAY
locale.ULocale.Category.DISPLAY
public String getDisplayLanguage(ULocale displayLocale)
displayLocale
- the locale in which to display the name.public static String getDisplayLanguage(String localeID, String displayLocaleID)
localeID
- the id of the locale whose language will be displayeddisplayLocaleID
- the id of the locale in which to display the name.public static String getDisplayLanguage(String localeID, ULocale displayLocale)
localeID
- the id of the locale whose language will be displayed.displayLocale
- the locale in which to display the name.public String getDisplayLanguageWithDialect()
DISPLAY
locale.
If a dialect name is present in the data, then it is returned.ULocale.Category.DISPLAY
public String getDisplayLanguageWithDialect(ULocale displayLocale)
displayLocale
- the locale in which to display the name.public static String getDisplayLanguageWithDialect(String localeID, String displayLocaleID)
localeID
- the id of the locale whose language will be displayeddisplayLocaleID
- the id of the locale in which to display the name.public static String getDisplayLanguageWithDialect(String localeID, ULocale displayLocale)
localeID
- the id of the locale whose language will be displayed.displayLocale
- the locale in which to display the name.public String getDisplayScript()
DISPLAY
locale.ULocale.Category.DISPLAY
@Deprecated public String getDisplayScriptInContext()
DISPLAY
locale.ULocale.Category.DISPLAY
public String getDisplayScript(ULocale displayLocale)
displayLocale
- the locale in which to display the name.@Deprecated public String getDisplayScriptInContext(ULocale displayLocale)
displayLocale
- the locale in which to display the name.public static String getDisplayScript(String localeID, String displayLocaleID)
localeID
- the id of the locale whose script will be displayeddisplayLocaleID
- the id of the locale in which to display the name.@Deprecated public static String getDisplayScriptInContext(String localeID, String displayLocaleID)
localeID
- the id of the locale whose script will be displayeddisplayLocaleID
- the id of the locale in which to display the name.public static String getDisplayScript(String localeID, ULocale displayLocale)
localeID
- the id of the locale whose script will be displayed.displayLocale
- the locale in which to display the name.@Deprecated public static String getDisplayScriptInContext(String localeID, ULocale displayLocale)
localeID
- the id of the locale whose script will be displayed.displayLocale
- the locale in which to display the name.public String getDisplayCountry()
DISPLAY
locale.
Warning: this is for the region part of a valid locale ID; it cannot just be the region code (like "FR").
To get the display name for a region alone, or for other options, use LocaleDisplayNames
instead.ULocale.Category.DISPLAY
public String getDisplayCountry(ULocale displayLocale)
LocaleDisplayNames
instead.displayLocale
- the locale in which to display the name.public static String getDisplayCountry(String localeID, String displayLocaleID)
LocaleDisplayNames
instead.
This is a cover for the ICU4C API.localeID
- the id of the locale whose country will be displayeddisplayLocaleID
- the id of the locale in which to display the name.public static String getDisplayCountry(String localeID, ULocale displayLocale)
LocaleDisplayNames
instead.
This is a cover for the ICU4C API.localeID
- the id of the locale whose country will be displayed.displayLocale
- the locale in which to display the name.public String getDisplayVariant()
DISPLAY
locale.ULocale.Category.DISPLAY
public String getDisplayVariant(ULocale displayLocale)
displayLocale
- the locale in which to display the name.public static String getDisplayVariant(String localeID, String displayLocaleID)
localeID
- the id of the locale whose variant will be displayeddisplayLocaleID
- the id of the locale in which to display the name.public static String getDisplayVariant(String localeID, ULocale displayLocale)
localeID
- the id of the locale whose variant will be displayed.displayLocale
- the locale in which to display the name.public static String getDisplayKeyword(String keyword)
DISPLAY
locale.keyword
- the keyword to be displayed.getKeywords()
,
ULocale.Category.DISPLAY
public static String getDisplayKeyword(String keyword, String displayLocaleID)
keyword
- the keyword to be displayed.displayLocaleID
- the id of the locale in which to display the keyword.getKeywords(String)
public static String getDisplayKeyword(String keyword, ULocale displayLocale)
keyword
- the keyword to be displayed.displayLocale
- the locale in which to display the keyword.getKeywords(String)
public String getDisplayKeywordValue(String keyword)
DISPLAY
locale.keyword
- the keyword whose value is to be displayed.ULocale.Category.DISPLAY
public String getDisplayKeywordValue(String keyword, ULocale displayLocale)
keyword
- the keyword whose value is to be displayed.displayLocale
- the locale in which to display the value.public static String getDisplayKeywordValue(String localeID, String keyword, String displayLocaleID)
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.public static String getDisplayKeywordValue(String localeID, String keyword, ULocale displayLocale)
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.public String getDisplayName()
DISPLAY
locale.ULocale.Category.DISPLAY
public String getDisplayName(ULocale displayLocale)
displayLocale
- the locale in which to display the locale name.public static String getDisplayName(String localeID, String displayLocaleID)
localeID
- the locale whose name is to be displayed.displayLocaleID
- the id of the locale in which to display the locale name.public static String getDisplayName(String localeID, ULocale displayLocale)
localeID
- the locale whose name is to be displayed.displayLocale
- the locale in which to display the locale name.public String getDisplayNameWithDialect()
DISPLAY
locale.
If a dialect name is present in the locale data, then it is returned.ULocale.Category.DISPLAY
public String getDisplayNameWithDialect(ULocale displayLocale)
displayLocale
- the locale in which to display the locale name.public static String getDisplayNameWithDialect(String localeID, String displayLocaleID)
localeID
- the locale whose name is to be displayed.displayLocaleID
- the id of the locale in which to display the locale name.public static String getDisplayNameWithDialect(String localeID, ULocale displayLocale)
localeID
- the locale whose name is to be displayed.displayLocale
- the locale in which to display the locale name.public String getCharacterOrientation()
public String getLineOrientation()
public static ULocale acceptLanguage(String acceptLanguageList, ULocale[] availableLocales, boolean[] fallback)
This is a thin wrapper over LocalePriorityList
+ LocaleMatcher
.
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 statusLocaleMatcher
,
LocalePriorityList
public static ULocale acceptLanguage(ULocale[] acceptLanguageList, ULocale[] availableLocales, boolean[] fallback)
This is a thin wrapper over LocaleMatcher
.
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 statusLocaleMatcher
public static ULocale acceptLanguage(String acceptLanguageList, boolean[] fallback)
This is a thin wrapper over LocalePriorityList
+ LocaleMatcher
.
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 statusLocaleMatcher
,
LocalePriorityList
public static ULocale acceptLanguage(ULocale[] acceptLanguageList, boolean[] fallback)
This is a thin wrapper over LocaleMatcher
.
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 statusLocaleMatcher
public static ULocale addLikelySubtags(ULocale loc)
loc
- The ULocale to maximizepublic static ULocale minimizeSubtags(ULocale loc)
http://www.unicode.org/reports/tr35/#Likely_SubtagsIf the provided ULocale instance is already in the minimal form, or there is no data available for minimization, it will be returned. Since the minimization algorithm relies on proper maximization, see the comments for addLikelySubtags for reasons why there might not be any data. Examples:
"en_Latn_US" minimizes to "en" "de_Latn_US" minimizes to "de" "sr_Cyrl_RS" minimizes to "sr" "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the script, and minimizing to "zh" would imply "zh_Hans_CN".)
loc
- The ULocale to minimize@Deprecated public static ULocale minimizeSubtags(ULocale loc, ULocale.Minimize fieldToFavor)
http://www.unicode.org/reports/tr35/#Likely_SubtagsIf the provided ULocale instance is already in the minimal form, or there is no data available for minimization, it will be returned. Since the minimization algorithm relies on proper maximization, see the comments for addLikelySubtags for reasons why there might not be any data. Examples:
"en_Latn_US" minimizes to "en" "de_Latn_US" minimizes to "de" "sr_Cyrl_RS" minimizes to "sr" "zh_Hant_TW" minimizes to "zh_TW" if fieldToFavor ==The fieldToFavor only has an effect if either the region or the script could be suppressed, but not both.ULocale.Minimize.FAVOR_REGION
"zh_Hant_TW" minimizes to "zh_Hant" if fieldToFavor ==ULocale.Minimize.FAVOR_SCRIPT
loc
- The ULocale to minimizefieldToFavor
- Indicate which should be preferred, when either the region or the script could be suppressed, but not both.public String getExtension(char key)
[0-9A-Za-z]
. Keys are case-insensitive, so
for example 'z' and 'Z' represent the same extension.key
- the extension keyIllegalArgumentException
- if key is not well-formedPRIVATE_USE_EXTENSION
,
UNICODE_LOCALE_EXTENSION
public Set<Character> getExtensionKeys()
public Set<String> getUnicodeLocaleAttributes()
public String getUnicodeLocaleType(String key)
key
- the Unicode locale keyIllegalArgumentException
- if the key is not well-formedNullPointerException
- if key
is nullpublic Set<String> getUnicodeLocaleKeys()
public String toLanguageTag()
If this ULocale
has a language, script, country, or
variant that does not satisfy the IETF BCP 47 language tag
syntax requirements, this method handles these fields as
described below:
Language: If language is empty, or not well-formed (for example "a" or "e2"), it will be emitted as "und" (Undetermined).
Script: If script is not well-formed (for example "12" or "Latin"), it will be omitted.
Country: If country is not well-formed (for example "12" or "USA"), it will be omitted.
Variant: If variant is well-formed, each sub-segment (delimited by '-' or '_') is emitted as a subtag. Otherwise:
[0-9a-zA-Z]{1,8}
(for example "WIN" or "Oracle_JDK_Standard_Edition"), the first
ill-formed sub-segment and all following will be appended to
the private use subtag. The first appended subtag will be
"lvariant", followed by the sub-segments in order, separated by
hyphen. For example, "x-lvariant-WIN",
"Oracle-x-lvariant-JDK-Standard-Edition".
[0-9a-zA-Z]{1,8}
, the variant will be truncated
and the problematic sub-segment and all following sub-segments
will be omitted. If the remainder is non-empty, it will be
emitted as a private use subtag as above (even if the remainder
turns out to be well-formed). For example,
"Solaris_isjustthecoolestthing" is emitted as
"x-lvariant-Solaris", not as "solaris".Note: Although the language tag created by this method is well-formed (satisfies the syntax requirements defined by the IETF BCP 47 specification), it is not necessarily a valid BCP 47 language tag. For example,
new Locale("xx", "YY").toLanguageTag();will return "xx-YY", but the language subtag "xx" and the region subtag "YY" are invalid because they are not registered in the IANA Language Subtag Registry.
forLanguageTag(String)
public static ULocale forLanguageTag(String languageTag)
If the specified language tag contains any ill-formed subtags,
the first such subtag and all following subtags are ignored. Compare
to ULocale.Builder.setLanguageTag(java.lang.String)
which throws an exception
in this case.
The following conversions are performed:
ULocale loc; loc = ULocale.forLanguageTag("en-US-x-lvariant-icu4j); loc.getVariant(); // returns "ICU4J" loc.getExtension('x'); // returns null loc = Locale.forLanguageTag("de-icu4j-x-URP-lvariant-Abc-Def"); loc.getVariant(); // returns "ICU4J_ABC_DEF" loc.getExtension('x'); // returns "urp"
ULocale.forLanguageTag("ar-aao").getLanguage(); // returns "aao" ULocale.forLanguageTag("en-abc-def-us").toString(); // returns "abc_US"
This implements the 'Language-Tag' production of BCP 47, and so supports legacy language tags (marked as “Type: grandfathered” in BCP 47) (regular and irregular) as well as private use language tags.
Stand-alone private use tags are represented as empty language and extension 'x-whatever', and legacy tags are converted to their canonical replacements where they exist.
Note that a few legacy tags have no modern replacement; these will be converted using the fallback described in the first paragraph, so some information might be lost.
Note: there is no guarantee that toLanguageTag
and forLanguageTag
will round-trip.
languageTag
- the language tagNullPointerException
- if languageTag
is null
toLanguageTag()
,
ULocale.Builder.setLanguageTag(String)
public static String toUnicodeLocaleKey(String keyword)
When the specified keyword is unknown, but satisfies the BCP syntax,
then the lower-case version of the input keyword will be returned.
For example,
toUnicodeLocaleKey("ZZ")
returns "zz".
keyword
- the input locale keyword (either legacy key
such as "collation" or BCP 47 Unicode locale extension
key such as "co").toLegacyKey(String)
public static String toUnicodeLocaleType(String keyword, String value)
When the specified keyword is not recognized, but the specified value
satisfies the syntax of the BCP 47 Unicode locale extension type,
or when the specified keyword allows 'variable' type and the specified
value satisfies the syntax, the lower-case version of the input value
will be returned. For example,
toUnicodeLocaleType("Foo", "Bar")
returns "bar",
toUnicodeLocaleType("variableTop", "00A4")
returns "00a4".
keyword
- the locale keyword (either legacy key such as
"collation" or BCP 47 Unicode locale extension
key such as "co").value
- the locale keyword value (either legacy type
such as "phonebook" or BCP 47 Unicode locale extension
type such as "phonebk").toLegacyType(String, String)
public static String toLegacyKey(String keyword)
keyword
- the input locale keyword (either BCP 47 Unicode locale
extension key or legacy key).toUnicodeLocaleKey(String)
public static String toLegacyType(String keyword, String value)
When the specified keyword is not recognized, but the specified value
satisfies the syntax of legacy key, or when the specified keyword
allows 'variable' type and the specified value satisfies the syntax,
the lower-case version of the input value will be returned.
For example,
toLegacyType("Foo", "Bar")
returns "bar",
toLegacyType("vt", "00A4")
returns "00a4".
keyword
- the locale keyword (either legacy keyword such as
"collation" or BCP 47 Unicode locale extension
key such as "co").value
- the locale keyword value (either BCP 47 Unicode locale
extension type such as "phonebk" or legacy keyword value
such as "phonebook").toUnicodeLocaleType(String, String)
Copyright © 2016 Unicode, Inc. and others.