locdspnm.h

Go to the documentation of this file.
00001 /*
00002 ******************************************************************************
00003 * Copyright (C) 2010-2012, International Business Machines Corporation and
00004 * others. All Rights Reserved.
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  /* U_HIDE_INTERNAL_API */
00079 
00080     // getters for state
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     // names for entire locales
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     // names for components of a locale id
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     // No ICU "poor man's RTTI" for this class nor its subclasses.
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

Generated on 25 Nov 2014 for ICU 50.1.2 by  doxygen 1.4.7