ICU 73.2  73.2
locdspnm.h
Go to the documentation of this file.
00001 // © 2016 and later: Unicode, Inc. and others.
00002 // License & terms of use: http://www.unicode.org/copyright.html
00003 /*
00004 ******************************************************************************
00005 * Copyright (C) 2010-2016, International Business Machines Corporation and
00006 * others. All Rights Reserved.
00007 ******************************************************************************
00008 */
00009 
00010 #ifndef LOCDSPNM_H
00011 #define LOCDSPNM_H
00012 
00013 #include "unicode/utypes.h"
00014 
00015 #if U_SHOW_CPLUSPLUS_API
00016 
00022 #if !UCONFIG_NO_FORMATTING
00023 
00024 #include "unicode/locid.h"
00025 #include "unicode/strenum.h"
00026 #include "unicode/uscript.h"
00027 #include "unicode/uldnames.h"
00028 #include "unicode/udisplaycontext.h"
00029 
00030 U_NAMESPACE_BEGIN
00031 
00038 class U_COMMON_API LocaleDisplayNames : public UObject {
00039 public:
00044     virtual ~LocaleDisplayNames();
00045 
00054     inline static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale);
00055 
00066     static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00067                             UDialectHandling dialectHandling);
00068 
00080     static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
00081                             UDisplayContext *contexts, int32_t length);
00082 
00083     // getters for state
00090     virtual const Locale& getLocale() const = 0;
00091 
00097     virtual UDialectHandling getDialectHandling() const = 0;
00098 
00105     virtual UDisplayContext getContext(UDisplayContextType type) const = 0;
00106 
00107     // names for entire locales
00115     virtual UnicodeString& localeDisplayName(const Locale& locale,
00116                          UnicodeString& result) const = 0;
00117 
00125     virtual UnicodeString& localeDisplayName(const char* localeId,
00126                          UnicodeString& result) const = 0;
00127 
00128     // names for components of a locale id
00136     virtual UnicodeString& languageDisplayName(const char* lang,
00137                            UnicodeString& result) const = 0;
00138 
00146     virtual UnicodeString& scriptDisplayName(const char* script,
00147                          UnicodeString& result) const = 0;
00148 
00156     virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
00157                          UnicodeString& result) const = 0;
00158 
00166     virtual UnicodeString& regionDisplayName(const char* region,
00167                          UnicodeString& result) const = 0;
00168 
00176     virtual UnicodeString& variantDisplayName(const char* variant,
00177                           UnicodeString& result) const = 0;
00178 
00186     virtual UnicodeString& keyDisplayName(const char* key,
00187                       UnicodeString& result) const = 0;
00188 
00197     virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
00198                            UnicodeString& result) const = 0;
00199 };
00200 
00201 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
00202   return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
00203 }
00204 
00205 U_NAMESPACE_END
00206 
00207 #endif
00208 
00209 #endif /* U_SHOW_CPLUSPLUS_API */
00210 
00211 #endif