OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ****************************************************************************** |
| 3 * Copyright (C) 2010, International Business Machines Corporation and * |
| 4 * others. All Rights Reserved. * |
| 5 ****************************************************************************** |
| 6 */ |
| 7 |
| 8 #ifndef LOCDSPNM_H |
| 9 #define LOCDSPNM_H |
| 10 |
| 11 #include "unicode/utypes.h" |
| 12 |
| 13 /** |
| 14 * \file |
| 15 * \brief C++ API: Provides display names of Locale and its components. |
| 16 */ |
| 17 |
| 18 #if !UCONFIG_NO_FORMATTING |
| 19 |
| 20 #include "unicode/locid.h" |
| 21 #include "unicode/uscript.h" |
| 22 #include "unicode/uldnames.h" |
| 23 |
| 24 U_NAMESPACE_BEGIN |
| 25 |
| 26 /** |
| 27 * Returns display names of Locales and components of Locales. For |
| 28 * more information on language, script, region, variant, key, and |
| 29 * values, see Locale. |
| 30 * @stable ICU 4.4 |
| 31 */ |
| 32 class U_I18N_API LocaleDisplayNames : public UObject { |
| 33 public: |
| 34 /** |
| 35 * Destructor. |
| 36 * @stable ICU 4.4 |
| 37 */ |
| 38 virtual ~LocaleDisplayNames(); |
| 39 |
| 40 /** |
| 41 * Convenience overload of |
| 42 * {@link #createInstance(const Locale& locale, UDialectHandling dialectHand
ling)} |
| 43 * that specifies STANDARD dialect handling. |
| 44 * @param locale the display locale |
| 45 * @return a LocaleDisplayNames instance |
| 46 * @stable ICU 4.4 |
| 47 */ |
| 48 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale); |
| 49 |
| 50 /** |
| 51 * Returns an instance of LocaleDisplayNames that returns names |
| 52 * formatted for the provided locale, using the provided |
| 53 * dialectHandling. |
| 54 * |
| 55 * @param locale the display locale |
| 56 * @param dialectHandling how to select names for locales |
| 57 * @return a LocaleDisplayNames instance |
| 58 * @stable ICU 4.4 |
| 59 */ |
| 60 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale, |
| 61 UDialectHandling dialect
Handling); |
| 62 |
| 63 // getters for state |
| 64 /** |
| 65 * Returns the locale used to determine the display names. This is |
| 66 * not necessarily the same locale passed to {@link #getInstance}. |
| 67 * @return the display locale |
| 68 * @stable ICU 4.4 |
| 69 */ |
| 70 virtual const Locale& getLocale() const = 0; |
| 71 |
| 72 /** |
| 73 * Returns the dialect handling used in the display names. |
| 74 * @return the dialect handling enum |
| 75 * @stable ICU 4.4 |
| 76 */ |
| 77 virtual UDialectHandling getDialectHandling() const = 0; |
| 78 |
| 79 // names for entire locales |
| 80 /** |
| 81 * Returns the display name of the provided locale. |
| 82 * @param locale the locale whose display name to return |
| 83 * @param result receives the locale's display name |
| 84 * @return the display name of the provided locale |
| 85 * @stable ICU 4.4 |
| 86 */ |
| 87 virtual UnicodeString& localeDisplayName(const Locale& locale, |
| 88 UnicodeString& result) const = 0; |
| 89 |
| 90 /** |
| 91 * Returns the display name of the provided locale id. |
| 92 * @param localeId the id of the locale whose display name to return |
| 93 * @param result receives the locale's display name |
| 94 * @return the display name of the provided locale |
| 95 * @stable ICU 4.4 |
| 96 */ |
| 97 virtual UnicodeString& localeDisplayName(const char* localeId, |
| 98 UnicodeString& result) const = 0; |
| 99 |
| 100 // names for components of a locale id |
| 101 /** |
| 102 * Returns the display name of the provided language code. |
| 103 * @param lang the language code |
| 104 * @param result receives the language code's display name |
| 105 * @return the display name of the provided language code |
| 106 * @stable ICU 4.4 |
| 107 */ |
| 108 virtual UnicodeString& languageDisplayName(const char* lang, |
| 109 UnicodeString& result) const = 0; |
| 110 |
| 111 /** |
| 112 * Returns the display name of the provided script code. |
| 113 * @param script the script code |
| 114 * @param result receives the script code's display name |
| 115 * @return the display name of the provided script code |
| 116 * @stable ICU 4.4 |
| 117 */ |
| 118 virtual UnicodeString& scriptDisplayName(const char* script, |
| 119 UnicodeString& result) const = 0; |
| 120 |
| 121 /** |
| 122 * Returns the display name of the provided script code. |
| 123 * @param scriptCode the script code number |
| 124 * @param result receives the script code's display name |
| 125 * @return the display name of the provided script code |
| 126 * @stable ICU 4.4 |
| 127 */ |
| 128 virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode, |
| 129 UnicodeString& result) const = 0; |
| 130 |
| 131 /** |
| 132 * Returns the display name of the provided region code. |
| 133 * @param region the region code |
| 134 * @param result receives the region code's display name |
| 135 * @return the display name of the provided region code |
| 136 * @stable ICU 4.4 |
| 137 */ |
| 138 virtual UnicodeString& regionDisplayName(const char* region, |
| 139 UnicodeString& result) const = 0; |
| 140 |
| 141 /** |
| 142 * Returns the display name of the provided variant. |
| 143 * @param variant the variant string |
| 144 * @param result receives the variant's display name |
| 145 * @return the display name of the provided variant |
| 146 * @stable ICU 4.4 |
| 147 */ |
| 148 virtual UnicodeString& variantDisplayName(const char* variant, |
| 149 UnicodeString& result) const = 0; |
| 150 |
| 151 /** |
| 152 * Returns the display name of the provided locale key. |
| 153 * @param key the locale key name |
| 154 * @param result receives the locale key's display name |
| 155 * @return the display name of the provided locale key |
| 156 * @stable ICU 4.4 |
| 157 */ |
| 158 virtual UnicodeString& keyDisplayName(const char* key, |
| 159 UnicodeString& result) const = 0; |
| 160 |
| 161 /** |
| 162 * Returns the display name of the provided value (used with the provided ke
y). |
| 163 * @param key the locale key name |
| 164 * @param value the locale key's value |
| 165 * @param result receives the value's display name |
| 166 * @return the display name of the provided value |
| 167 * @stable ICU 4.4 |
| 168 */ |
| 169 virtual UnicodeString& keyValueDisplayName(const char* key, const char* valu
e, |
| 170 UnicodeString& result) const = 0; |
| 171 |
| 172 private: |
| 173 // No ICU "poor man's RTTI" for this class nor its subclasses. |
| 174 virtual UClassID getDynamicClassID() const; |
| 175 }; |
| 176 |
| 177 inline LocaleDisplayNames::~LocaleDisplayNames() { |
| 178 } |
| 179 |
| 180 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& loca
le) { |
| 181 return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES); |
| 182 } |
| 183 |
| 184 U_NAMESPACE_END |
| 185 |
| 186 #endif |
| 187 |
| 188 #endif |
OLD | NEW |