tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

locdspnm.h (7292B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 ******************************************************************************
      5 * Copyright (C) 2010-2016, International Business Machines Corporation and
      6 * others. All Rights Reserved.
      7 ******************************************************************************
      8 */
      9 
     10 #ifndef LOCDSPNM_H
     11 #define LOCDSPNM_H
     12 
     13 #include "unicode/utypes.h"
     14 
     15 #if U_SHOW_CPLUSPLUS_API
     16 
     17 /**
     18 * \file
     19 * \brief C++ API: Provides display names of Locale and its components.
     20 */
     21 
     22 #if !UCONFIG_NO_FORMATTING
     23 
     24 #include "unicode/locid.h"
     25 #include "unicode/strenum.h"
     26 #include "unicode/uscript.h"
     27 #include "unicode/uldnames.h"
     28 #include "unicode/udisplaycontext.h"
     29 
     30 U_NAMESPACE_BEGIN
     31 
     32 /**
     33 * Returns display names of Locales and components of Locales. For
     34 * more information on language, script, region, variant, key, and
     35 * values, see Locale.
     36 * @stable ICU 4.4
     37 */
     38 class U_COMMON_API LocaleDisplayNames : public UObject {
     39 public:
     40    /**
     41     * Destructor.
     42     * @stable ICU 4.4
     43     */
     44    virtual ~LocaleDisplayNames();
     45 
     46    /**
     47     * Convenience overload of
     48     * {@link #createInstance(const Locale& locale, UDialectHandling dialectHandling)}
     49     * that specifies STANDARD dialect handling.
     50     * @param locale the display locale
     51     * @return a LocaleDisplayNames instance
     52     * @stable ICU 4.4
     53     */
     54    inline static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale);
     55 
     56    /**
     57     * Returns an instance of LocaleDisplayNames that returns names
     58     * formatted for the provided locale, using the provided
     59     * dialectHandling.
     60     *
     61     * @param locale the display locale
     62     * @param dialectHandling how to select names for locales
     63     * @return a LocaleDisplayNames instance
     64     * @stable ICU 4.4
     65     */
     66    static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
     67                            UDialectHandling dialectHandling);
     68 
     69    /**
     70     * Returns an instance of LocaleDisplayNames that returns names formatted
     71     * for the provided locale, using the provided UDisplayContext settings.
     72     *
     73     * @param locale the display locale
     74     * @param contexts List of one or more context settings (e.g. for dialect
     75     *               handling, capitalization, etc.
     76     * @param length Number of items in the contexts list
     77     * @return a LocaleDisplayNames instance
     78     * @stable ICU 51
     79     */
     80    static LocaleDisplayNames* U_EXPORT2 createInstance(const Locale& locale,
     81                            UDisplayContext *contexts, int32_t length);
     82 
     83    // getters for state
     84    /**
     85     * Returns the locale used to determine the display names. This is
     86     * not necessarily the same locale passed to {@link #createInstance}.
     87     * @return the display locale
     88     * @stable ICU 4.4
     89     */
     90    virtual const Locale& getLocale() const = 0;
     91 
     92    /**
     93     * Returns the dialect handling used in the display names.
     94     * @return the dialect handling enum
     95     * @stable ICU 4.4
     96     */
     97    virtual UDialectHandling getDialectHandling() const = 0;
     98 
     99    /**
    100     * Returns the UDisplayContext value for the specified UDisplayContextType.
    101     * @param type the UDisplayContextType whose value to return
    102     * @return the UDisplayContext for the specified type.
    103     * @stable ICU 51
    104     */
    105    virtual UDisplayContext getContext(UDisplayContextType type) const = 0;
    106 
    107    // names for entire locales
    108    /**
    109     * Returns the display name of the provided locale.
    110     * @param locale the locale whose display name to return
    111     * @param result receives the locale's display name
    112     * @return the display name of the provided locale
    113     * @stable ICU 4.4
    114     */
    115    virtual UnicodeString& localeDisplayName(const Locale& locale,
    116                         UnicodeString& result) const = 0;
    117 
    118    /**
    119     * Returns the display name of the provided locale id.
    120     * @param localeId the id of the locale whose display name to return
    121     * @param result receives the locale's display name
    122     * @return the display name of the provided locale
    123     * @stable ICU 4.4
    124     */
    125    virtual UnicodeString& localeDisplayName(const char* localeId,
    126                         UnicodeString& result) const = 0;
    127 
    128    // names for components of a locale id
    129    /**
    130     * Returns the display name of the provided language code.
    131     * @param lang the language code
    132     * @param result receives the language code's display name
    133     * @return the display name of the provided language code
    134     * @stable ICU 4.4
    135     */
    136    virtual UnicodeString& languageDisplayName(const char* lang,
    137                           UnicodeString& result) const = 0;
    138 
    139    /**
    140     * Returns the display name of the provided script code.
    141     * @param script the script code
    142     * @param result receives the script code's display name
    143     * @return the display name of the provided script code
    144     * @stable ICU 4.4
    145     */
    146    virtual UnicodeString& scriptDisplayName(const char* script,
    147                         UnicodeString& result) const = 0;
    148 
    149    /**
    150     * Returns the display name of the provided script code.
    151     * @param scriptCode the script code number
    152     * @param result receives the script code's display name
    153     * @return the display name of the provided script code
    154     * @stable ICU 4.4
    155     */
    156    virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode,
    157                         UnicodeString& result) const = 0;
    158 
    159    /**
    160     * Returns the display name of the provided region code.
    161     * @param region the region code
    162     * @param result receives the region code's display name
    163     * @return the display name of the provided region code
    164     * @stable ICU 4.4
    165     */
    166    virtual UnicodeString& regionDisplayName(const char* region,
    167                         UnicodeString& result) const = 0;
    168 
    169    /**
    170     * Returns the display name of the provided variant.
    171     * @param variant the variant string
    172     * @param result receives the variant's display name
    173     * @return the display name of the provided variant
    174     * @stable ICU 4.4
    175     */
    176    virtual UnicodeString& variantDisplayName(const char* variant,
    177                          UnicodeString& result) const = 0;
    178 
    179    /**
    180     * Returns the display name of the provided locale key.
    181     * @param key the locale key name
    182     * @param result receives the locale key's display name
    183     * @return the display name of the provided locale key
    184     * @stable ICU 4.4
    185     */
    186    virtual UnicodeString& keyDisplayName(const char* key,
    187                      UnicodeString& result) const = 0;
    188 
    189    /**
    190     * Returns the display name of the provided value (used with the provided key).
    191     * @param key the locale key name
    192     * @param value the locale key's value
    193     * @param result receives the value's display name
    194     * @return the display name of the provided value
    195     * @stable ICU 4.4
    196     */
    197    virtual UnicodeString& keyValueDisplayName(const char* key, const char* value,
    198                           UnicodeString& result) const = 0;
    199 };
    200 
    201 inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
    202  return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
    203 }
    204 
    205 U_NAMESPACE_END
    206 
    207 #endif
    208 
    209 #endif /* U_SHOW_CPLUSPLUS_API */
    210 
    211 #endif