00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef LOCDSPNM_H
00011 #define LOCDSPNM_H
00012
00013 #include "unicode/utypes.h"
00014
00020 #if !UCONFIG_NO_FORMATTING
00021
00022 #include "unicode/locid.h"
00023 #include "unicode/strenum.h"
00024 #include "unicode/uscript.h"
00025 #include "unicode/uldnames.h"
00026 #include "unicode/udisplaycontext.h"
00027
00028 U_NAMESPACE_BEGIN
00029
00036 class U_COMMON_API LocaleDisplayNames : public UObject {
00037 public:
00042 virtual ~LocaleDisplayNames();
00043
00052 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale);
00053
00064 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00065 UDialectHandling dialectHandling);
00066
00078 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00079 UDisplayContext *contexts, int32_t length);
00080
00081
00088 virtual const Locale& getLocale() const = 0;
00089
00095 virtual UDialectHandling getDialectHandling() const = 0;
00096
00103 virtual UDisplayContext getContext(UDisplayContextType type) const = 0;
00104
00105
00113 virtual UnicodeString& localeDisplayName(const Locale& locale,
00114 UnicodeString& result) const = 0;
00115
00123 virtual UnicodeString& localeDisplayName(const char* localeId,
00124 UnicodeString& result) const = 0;
00125
00126
00134 virtual UnicodeString& languageDisplayName(const char* lang,
00135 UnicodeString& result) const = 0;
00136
00144 virtual UnicodeString& scriptDisplayName(const char* script,
00145 UnicodeString& result) const = 0;
00146
00154 virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
00155 UnicodeString& result) const = 0;
00156
00164 virtual UnicodeString& regionDisplayName(const char* region,
00165 UnicodeString& result) const = 0;
00166
00174 virtual UnicodeString& variantDisplayName(const char* variant,
00175 UnicodeString& result) const = 0;
00176
00184 virtual UnicodeString& keyDisplayName(const char* key,
00185 UnicodeString& result) const = 0;
00186
00195 virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
00196 UnicodeString& result) const = 0;
00197 };
00198
00199 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
00200 return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
00201 }
00202
00203 U_NAMESPACE_END
00204
00205 #endif
00206
00207 #endif