ICU 4.8.1.1  4.8.1.1
locdspnm.h
Go to the documentation of this file.
00001 /*
00002 ******************************************************************************
00003 * Copyright (C) 2010-2011, 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 
00024 U_NAMESPACE_BEGIN
00025 
00032 class U_I18N_API LocaleDisplayNames : public UObject {
00033 public:
00038     virtual ~LocaleDisplayNames();
00039 
00048     static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale);
00049 
00060     static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00061                                                         UDialectHandling dialectHandling);
00062 
00063     // getters for state
00070     virtual const Locale& getLocale() const = 0;
00071 
00077     virtual UDialectHandling getDialectHandling() const = 0;
00078 
00079     // names for entire locales
00087     virtual UnicodeString& localeDisplayName(const Locale& locale,
00088                                              UnicodeString& result) const = 0;
00089 
00097     virtual UnicodeString& localeDisplayName(const char* localeId,
00098                                              UnicodeString& result) const = 0;
00099 
00100     // names for components of a locale id
00108     virtual UnicodeString& languageDisplayName(const char* lang,
00109                                                UnicodeString& result) const = 0;
00110 
00118     virtual UnicodeString& scriptDisplayName(const char* script,
00119                                              UnicodeString& result) const = 0;
00120 
00128     virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
00129                                              UnicodeString& result) const = 0;
00130 
00138     virtual UnicodeString& regionDisplayName(const char* region,
00139                                              UnicodeString& result) const = 0;
00140 
00148     virtual UnicodeString& variantDisplayName(const char* variant,
00149                                               UnicodeString& result) const = 0;
00150 
00158     virtual UnicodeString& keyDisplayName(const char* key,
00159                                           UnicodeString& result) const = 0;
00160 
00169     virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
00170                                                UnicodeString& result) const = 0;
00171 
00172 private:
00173     // No ICU "poor man's RTTI" for this class nor its subclasses.
00174     virtual UClassID getDynamicClassID() const;
00175 };
00176 
00177 inline LocaleDisplayNames::~LocaleDisplayNames() {
00178 }
00179 
00180 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
00181   return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
00182 }
00183 
00184 U_NAMESPACE_END
00185 
00186 #endif
00187 
00188 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines