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_I18N_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
00064 #ifndef U_HIDE_INTERNAL_API
00065
00076 static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00077 UDisplayContext *contexts, int32_t length);
00078 #endif
00079
00080
00087 virtual const Locale& getLocale() const = 0;
00088
00094 virtual UDialectHandling getDialectHandling() const = 0;
00095
00102 virtual UDisplayContext getContext(UDisplayContextType type) const = 0;
00103
00104
00112 virtual UnicodeString& localeDisplayName(const Locale& locale,
00113 UnicodeString& result) const = 0;
00114
00122 virtual UnicodeString& localeDisplayName(const char* localeId,
00123 UnicodeString& result) const = 0;
00124
00125
00133 virtual UnicodeString& languageDisplayName(const char* lang,
00134 UnicodeString& result) const = 0;
00135
00143 virtual UnicodeString& scriptDisplayName(const char* script,
00144 UnicodeString& result) const = 0;
00145
00153 virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
00154 UnicodeString& result) const = 0;
00155
00163 virtual UnicodeString& regionDisplayName(const char* region,
00164 UnicodeString& result) const = 0;
00165
00173 virtual UnicodeString& variantDisplayName(const char* variant,
00174 UnicodeString& result) const = 0;
00175
00183 virtual UnicodeString& keyDisplayName(const char* key,
00184 UnicodeString& result) const = 0;
00185
00194 virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
00195 UnicodeString& result) const = 0;
00196
00197 private:
00198
00199 virtual UClassID getDynamicClassID() const;
00200 };
00201
00202 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
00203 return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
00204 }
00205
00206 U_NAMESPACE_END
00207
00208 #endif
00209
00210 #endif