| // © 2016 and later: Unicode, Inc. and others. | |
| // License & terms of use: http://www.unicode.org/copyright.html | |
| /* | |
| ****************************************************************************** | |
| * Copyright (C) 2010-2016, International Business Machines Corporation and | |
| * others. All Rights Reserved. | |
| ****************************************************************************** | |
| */ | |
| /** | |
| * \file | |
| * \brief C++ API: Provides display names of Locale and its components. | |
| */ | |
| U_NAMESPACE_BEGIN | |
| /** | |
| * Returns display names of Locales and components of Locales. For | |
| * more information on language, script, region, variant, key, and | |
| * values, see Locale. | |
| * @stable ICU 4.4 | |
| */ | |
| class U_COMMON_API LocaleDisplayNames : public UObject { | |
| public: | |
| /** | |
| * Destructor. | |
| * @stable ICU 4.4 | |
| */ | |
| virtual ~LocaleDisplayNames(); | |
| /** | |
| * Convenience overload of | |
| * {@link #createInstance(const Locale& locale, UDialectHandling dialectHandling)} | |
| * that specifies STANDARD dialect handling. | |
| * @param locale the display locale | |
| * @return a LocaleDisplayNames instance | |
| * @stable ICU 4.4 | |
| */ | |
| inline static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale); | |
| /** | |
| * Returns an instance of LocaleDisplayNames that returns names | |
| * formatted for the provided locale, using the provided | |
| * dialectHandling. | |
| * | |
| * @param locale the display locale | |
| * @param dialectHandling how to select names for locales | |
| * @return a LocaleDisplayNames instance | |
| * @stable ICU 4.4 | |
| */ | |
| static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale, | |
| UDialectHandling dialectHandling); | |
| /** | |
| * Returns an instance of LocaleDisplayNames that returns names formatted | |
| * for the provided locale, using the provided UDisplayContext settings. | |
| * | |
| * @param locale the display locale | |
| * @param contexts List of one or more context settings (e.g. for dialect | |
| * handling, capitalization, etc. | |
| * @param length Number of items in the contexts list | |
| * @return a LocaleDisplayNames instance | |
| * @stable ICU 51 | |
| */ | |
| static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale, | |
| UDisplayContext *contexts, int32_t length); | |
| // getters for state | |
| /** | |
| * Returns the locale used to determine the display names. This is | |
| * not necessarily the same locale passed to {@link #createInstance}. | |
| * @return the display locale | |
| * @stable ICU 4.4 | |
| */ | |
| virtual const Locale& getLocale() const = 0; | |
| /** | |
| * Returns the dialect handling used in the display names. | |
| * @return the dialect handling enum | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UDialectHandling getDialectHandling() const = 0; | |
| /** | |
| * Returns the UDisplayContext value for the specified UDisplayContextType. | |
| * @param type the UDisplayContextType whose value to return | |
| * @return the UDisplayContext for the specified type. | |
| * @stable ICU 51 | |
| */ | |
| virtual UDisplayContext getContext(UDisplayContextType type) const = 0; | |
| // names for entire locales | |
| /** | |
| * Returns the display name of the provided locale. | |
| * @param locale the locale whose display name to return | |
| * @param result receives the locale's display name | |
| * @return the display name of the provided locale | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& localeDisplayName(const Locale& locale, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided locale id. | |
| * @param localeId the id of the locale whose display name to return | |
| * @param result receives the locale's display name | |
| * @return the display name of the provided locale | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& localeDisplayName(const char* localeId, | |
| UnicodeString& result) const = 0; | |
| // names for components of a locale id | |
| /** | |
| * Returns the display name of the provided language code. | |
| * @param lang the language code | |
| * @param result receives the language code's display name | |
| * @return the display name of the provided language code | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& languageDisplayName(const char* lang, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided script code. | |
| * @param script the script code | |
| * @param result receives the script code's display name | |
| * @return the display name of the provided script code | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& scriptDisplayName(const char* script, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided script code. | |
| * @param scriptCode the script code number | |
| * @param result receives the script code's display name | |
| * @return the display name of the provided script code | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided region code. | |
| * @param region the region code | |
| * @param result receives the region code's display name | |
| * @return the display name of the provided region code | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& regionDisplayName(const char* region, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided variant. | |
| * @param variant the variant string | |
| * @param result receives the variant's display name | |
| * @return the display name of the provided variant | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& variantDisplayName(const char* variant, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided locale key. | |
| * @param key the locale key name | |
| * @param result receives the locale key's display name | |
| * @return the display name of the provided locale key | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& keyDisplayName(const char* key, | |
| UnicodeString& result) const = 0; | |
| /** | |
| * Returns the display name of the provided value (used with the provided key). | |
| * @param key the locale key name | |
| * @param value the locale key's value | |
| * @param result receives the value's display name | |
| * @return the display name of the provided value | |
| * @stable ICU 4.4 | |
| */ | |
| virtual UnicodeString& keyValueDisplayName(const char* key, const char* value, | |
| UnicodeString& result) const = 0; | |
| }; | |
| inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) { | |
| return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES); | |
| } | |
| U_NAMESPACE_END | |