tor-browser

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

uldnames.h (10733B)


      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 __ULDNAMES_H__
     11 #define __ULDNAMES_H__
     12 
     13 /**
     14 * \file
     15 * \brief C API: Provides display names of Locale ids and their components.
     16 */
     17 
     18 #include "unicode/utypes.h"
     19 #include "unicode/uscript.h"
     20 #include "unicode/udisplaycontext.h"
     21 
     22 #if U_SHOW_CPLUSPLUS_API
     23 #include "unicode/localpointer.h"
     24 #endif   // U_SHOW_CPLUSPLUS_API
     25 
     26 /**
     27 * Enum used in LocaleDisplayNames::createInstance.
     28 * @stable ICU 4.4
     29 */
     30 typedef enum {
     31    /**
     32     * Use standard names when generating a locale name,
     33     * e.g. en_GB displays as 'English (United Kingdom)'.
     34     * @stable ICU 4.4
     35     */
     36    ULDN_STANDARD_NAMES = 0,
     37    /**
     38     * Use dialect names, when generating a locale name,
     39     * e.g. en_GB displays as 'British English'.
     40     * @stable ICU 4.4
     41     */
     42    ULDN_DIALECT_NAMES
     43 } UDialectHandling;
     44 
     45 /**
     46 * Opaque C service object type for the locale display names API
     47 * @stable ICU 4.4
     48 */
     49 struct ULocaleDisplayNames;
     50 
     51 /** 
     52 * C typedef for struct ULocaleDisplayNames. 
     53 * @stable ICU 4.4 
     54 */
     55 typedef struct ULocaleDisplayNames ULocaleDisplayNames;  
     56 
     57 #if !UCONFIG_NO_FORMATTING
     58 
     59 /**
     60 * Returns an instance of LocaleDisplayNames that returns names
     61 * formatted for the provided locale, using the provided
     62 * dialectHandling.  The usual value for dialectHandling is
     63 * ULOC_STANDARD_NAMES.
     64 *
     65 * @param locale the display locale 
     66 * @param dialectHandling how to select names for locales 
     67 * @return a ULocaleDisplayNames instance 
     68 * @param pErrorCode the status code
     69 * @stable ICU 4.4
     70 */
     71 U_CAPI ULocaleDisplayNames * U_EXPORT2
     72 uldn_open(const char * locale,
     73          UDialectHandling dialectHandling,
     74          UErrorCode *pErrorCode);
     75 
     76 /**
     77 * Closes a ULocaleDisplayNames instance obtained from uldn_open().
     78 * @param ldn the ULocaleDisplayNames instance to be closed
     79 * @stable ICU 4.4
     80 */
     81 U_CAPI void U_EXPORT2
     82 uldn_close(ULocaleDisplayNames *ldn);
     83 
     84 #if U_SHOW_CPLUSPLUS_API
     85 
     86 U_NAMESPACE_BEGIN
     87 
     88 /**
     89 * \class LocalULocaleDisplayNamesPointer
     90 * "Smart pointer" class, closes a ULocaleDisplayNames via uldn_close().
     91 * For most methods see the LocalPointerBase base class.
     92 *
     93 * @see LocalPointerBase
     94 * @see LocalPointer
     95 * @stable ICU 4.4
     96 */
     97 U_DEFINE_LOCAL_OPEN_POINTER(LocalULocaleDisplayNamesPointer, ULocaleDisplayNames, uldn_close);
     98 
     99 U_NAMESPACE_END
    100 
    101 #endif
    102 
    103 /* getters for state */
    104 
    105 /**
    106 * Returns the locale used to determine the display names. This is
    107 * not necessarily the same locale passed to {@link #uldn_open}.
    108 * @param ldn the LocaleDisplayNames instance
    109 * @return the display locale 
    110 * @stable ICU 4.4
    111 */
    112 U_CAPI const char * U_EXPORT2
    113 uldn_getLocale(const ULocaleDisplayNames *ldn);
    114 
    115 /**
    116 * Returns the dialect handling used in the display names.
    117 * @param ldn the LocaleDisplayNames instance
    118 * @return the dialect handling enum
    119 * @stable ICU 4.4
    120 */
    121 U_CAPI UDialectHandling U_EXPORT2
    122 uldn_getDialectHandling(const ULocaleDisplayNames *ldn);
    123 
    124 /* names for entire locales */
    125 
    126 /**
    127 * Returns the display name of the provided locale.
    128 * @param ldn the LocaleDisplayNames instance
    129 * @param locale the locale whose display name to return
    130 * @param result receives the display name
    131 * @param maxResultSize the size of the result buffer
    132 * @param pErrorCode the status code
    133 * @return the actual buffer size needed for the display name.  If it's
    134 * greater than maxResultSize, the returned name will be truncated.
    135 * @stable ICU 4.4
    136 */
    137 U_CAPI int32_t U_EXPORT2
    138 uldn_localeDisplayName(const ULocaleDisplayNames *ldn,
    139                       const char *locale,
    140                       UChar *result,
    141                       int32_t maxResultSize,
    142                       UErrorCode *pErrorCode);
    143 
    144 /* names for components of a locale */
    145 
    146 /**
    147 * Returns the display name of the provided language code.
    148 * @param ldn the LocaleDisplayNames instance
    149 * @param lang the language code whose display name to return
    150 * @param result receives the display name
    151 * @param maxResultSize the size of the result buffer
    152 * @param pErrorCode the status code
    153 * @return the actual buffer size needed for the display name.  If it's
    154 * greater than maxResultSize, the returned name will be truncated.
    155 * @stable ICU 4.4
    156 */
    157 U_CAPI int32_t U_EXPORT2
    158 uldn_languageDisplayName(const ULocaleDisplayNames *ldn,
    159                         const char *lang,
    160                         UChar *result,
    161                         int32_t maxResultSize,
    162                         UErrorCode *pErrorCode);
    163 
    164 /**
    165 * Returns the display name of the provided script.
    166 * @param ldn the LocaleDisplayNames instance
    167 * @param script the script whose display name to return
    168 * @param result receives the display name
    169 * @param maxResultSize the size of the result buffer
    170 * @param pErrorCode the status code
    171 * @return the actual buffer size needed for the display name.  If it's
    172 * greater than maxResultSize, the returned name will be truncated.
    173 * @stable ICU 4.4
    174 */
    175 U_CAPI int32_t U_EXPORT2
    176 uldn_scriptDisplayName(const ULocaleDisplayNames *ldn,
    177                       const char *script,
    178                       UChar *result,
    179                       int32_t maxResultSize,
    180                       UErrorCode *pErrorCode);
    181 
    182 /**
    183 * Returns the display name of the provided script code.
    184 * @param ldn the LocaleDisplayNames instance
    185 * @param scriptCode the script code whose display name to return
    186 * @param result receives the display name
    187 * @param maxResultSize the size of the result buffer
    188 * @param pErrorCode the status code
    189 * @return the actual buffer size needed for the display name.  If it's
    190 * greater than maxResultSize, the returned name will be truncated.
    191 * @stable ICU 4.4
    192 */
    193 U_CAPI int32_t U_EXPORT2
    194 uldn_scriptCodeDisplayName(const ULocaleDisplayNames *ldn,
    195                           UScriptCode scriptCode,
    196                           UChar *result,
    197                           int32_t maxResultSize,
    198                           UErrorCode *pErrorCode);
    199 
    200 /**
    201 * Returns the display name of the provided region code.
    202 * @param ldn the LocaleDisplayNames instance
    203 * @param region the region code whose display name to return
    204 * @param result receives the display name
    205 * @param maxResultSize the size of the result buffer
    206 * @param pErrorCode the status code
    207 * @return the actual buffer size needed for the display name.  If it's
    208 * greater than maxResultSize, the returned name will be truncated.
    209 * @stable ICU 4.4
    210 */
    211 U_CAPI int32_t U_EXPORT2
    212 uldn_regionDisplayName(const ULocaleDisplayNames *ldn,
    213                       const char *region,
    214                       UChar *result,
    215                       int32_t maxResultSize,
    216                       UErrorCode *pErrorCode);
    217 
    218 /**
    219 * Returns the display name of the provided variant
    220 * @param ldn the LocaleDisplayNames instance
    221 * @param variant the variant whose display name to return
    222 * @param result receives the display name
    223 * @param maxResultSize the size of the result buffer
    224 * @param pErrorCode the status code
    225 * @return the actual buffer size needed for the display name.  If it's
    226 * greater than maxResultSize, the returned name will be truncated.
    227 * @stable ICU 4.4
    228 */
    229 U_CAPI int32_t U_EXPORT2
    230 uldn_variantDisplayName(const ULocaleDisplayNames *ldn,
    231                        const char *variant,
    232                        UChar *result,
    233                        int32_t maxResultSize,
    234                        UErrorCode *pErrorCode);
    235 
    236 /**
    237 * Returns the display name of the provided locale key
    238 * @param ldn the LocaleDisplayNames instance
    239 * @param key the locale key whose display name to return
    240 * @param result receives the display name
    241 * @param maxResultSize the size of the result buffer
    242 * @param pErrorCode the status code
    243 * @return the actual buffer size needed for the display name.  If it's
    244 * greater than maxResultSize, the returned name will be truncated.
    245 * @stable ICU 4.4
    246 */
    247 U_CAPI int32_t U_EXPORT2
    248 uldn_keyDisplayName(const ULocaleDisplayNames *ldn,
    249                    const char *key,
    250                    UChar *result,
    251                    int32_t maxResultSize,
    252                    UErrorCode *pErrorCode);
    253 
    254 /**
    255 * Returns the display name of the provided value (used with the provided key).
    256 * @param ldn the LocaleDisplayNames instance
    257 * @param key the locale key
    258 * @param value the locale key's value
    259 * @param result receives the display name
    260 * @param maxResultSize the size of the result buffer
    261 * @param pErrorCode the status code
    262 * @return the actual buffer size needed for the display name.  If it's
    263 * greater than maxResultSize, the returned name will be truncated.
    264 * @stable ICU 4.4
    265 */
    266 U_CAPI int32_t U_EXPORT2
    267 uldn_keyValueDisplayName(const ULocaleDisplayNames *ldn,
    268                         const char *key,
    269                         const char *value,
    270                         UChar *result,
    271                         int32_t maxResultSize,
    272                         UErrorCode *pErrorCode);
    273 
    274 /**
    275 * Returns an instance of LocaleDisplayNames that returns names formatted
    276 * for the provided locale, using the provided UDisplayContext settings.
    277 *
    278 * @param locale The display locale 
    279 * @param contexts List of one or more context settings (e.g. for dialect
    280 *               handling, capitalization, etc.
    281 * @param length Number of items in the contexts list
    282 * @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates
    283 *               a failure status, the function will do nothing; otherwise this will be
    284 *               updated with any new status from the function. 
    285 * @return a ULocaleDisplayNames instance 
    286 * @stable ICU 51
    287 */
    288 U_CAPI ULocaleDisplayNames * U_EXPORT2
    289 uldn_openForContext(const char * locale, UDisplayContext *contexts,
    290                    int32_t length, UErrorCode *pErrorCode);
    291 
    292 /**
    293 * Returns the UDisplayContext value for the specified UDisplayContextType.
    294 * @param ldn the ULocaleDisplayNames instance
    295 * @param type the UDisplayContextType whose value to return
    296 * @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates
    297 *               a failure status, the function will do nothing; otherwise this will be
    298 *               updated with any new status from the function. 
    299 * @return the UDisplayContextValue for the specified type.
    300 * @stable ICU 51
    301 */
    302 U_CAPI UDisplayContext U_EXPORT2
    303 uldn_getContext(const ULocaleDisplayNames *ldn, UDisplayContextType type,
    304                UErrorCode *pErrorCode);
    305 
    306 #endif  /* !UCONFIG_NO_FORMATTING */
    307 #endif  /* __ULDNAMES_H__ */