00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LOCDSPNM_H
00009 #define LOCDSPNM_H
00010
00011 #include "unicode/utypes.h"
00012
00018 #if !UCONFIG_NO_FORMATTING
00019
00020 #include "unicode/locid.h"
00021 #include "unicode/uscript.h"
00022 #include "unicode/uldnames.h"
00023 #include "unicode/udisplaycontext.h"
00024
00025 U_NAMESPACE_BEGIN
00026
00033 class U_COMMON_API LocaleDisplayNames : public UObject {
00034 public:
00039 virtual ~LocaleDisplayNames();
00040
00049 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale);
00050
00061 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00062 UDialectHandling dialectHandling);
00063
00075 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00076 UDisplayContext *contexts, int32_t length);
00077
00078
00085 virtual const Locale& getLocale() const = 0;
00086
00092 virtual UDialectHandling getDialectHandling() const = 0;
00093
00100 virtual UDisplayContext getContext(UDisplayContextType type) const = 0;
00101
00102
00110 virtual UnicodeString& localeDisplayName(const Locale& locale,
00111 UnicodeString& result) const = 0;
00112
00120 virtual UnicodeString& localeDisplayName(const char* localeId,
00121 UnicodeString& result) const = 0;
00122
00123
00131 virtual UnicodeString& languageDisplayName(const char* lang,
00132 UnicodeString& result) const = 0;
00133
00141 virtual UnicodeString& scriptDisplayName(const char* script,
00142 UnicodeString& result) const = 0;
00143
00151 virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
00152 UnicodeString& result) const = 0;
00153
00161 virtual UnicodeString& regionDisplayName(const char* region,
00162 UnicodeString& result) const = 0;
00163
00171 virtual UnicodeString& variantDisplayName(const char* variant,
00172 UnicodeString& result) const = 0;
00173
00181 virtual UnicodeString& keyDisplayName(const char* key,
00182 UnicodeString& result) const = 0;
00183
00192 virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
00193 UnicodeString& result) const = 0;
00194 };
00195
00196 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
00197 return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
00198 }
00199
00200 U_NAMESPACE_END
00201
00202 #endif
00203
00204 #endif