150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/*
250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*******************************************************************************
354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*   Copyright (C) 2010-2012, International Business Machines Corporation and       *
450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   others.  All Rights Reserved.                                             *
550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*******************************************************************************
650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*/
750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#ifndef __ULDNAMES_H__
950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define __ULDNAMES_H__
1050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
1150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
1250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * \file
1354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius * \brief C API: Provides display names of Locale ids and their components.
1450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
1550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/utypes.h"
1750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/localpointer.h"
1850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/uscript.h"
1954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#include "unicode/udisplaycontext.h"
2050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
2250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Enum used in LocaleDisplayNames::createInstance.
2327f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
2450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
2550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef enum {
2650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    /**
2750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     * Use standard names when generating a locale name,
2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     * e.g. en_GB displays as 'English (United Kingdom)'.
2927f654740f2a26ad62a5c155af9199af9e69b889claireho     * @stable ICU 4.4
3050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     */
3150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    ULDN_STANDARD_NAMES = 0,
3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    /**
3350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     * Use dialect names, when generating a locale name,
3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     * e.g. en_GB displays as 'British English'.
3527f654740f2a26ad62a5c155af9199af9e69b889claireho     * @stable ICU 4.4
3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho     */
3750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    ULDN_DIALECT_NAMES
3850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho} UDialectHandling;
3950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
4150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Opaque C service object type for the locale display names API
4227f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
4350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
4450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehostruct ULocaleDisplayNames;
4550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
4650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
4750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * C typedef for struct ULocaleDisplayNames.
4827f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
4950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
5050294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef struct ULocaleDisplayNames ULocaleDisplayNames;
5150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if !UCONFIG_NO_FORMATTING
5350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
5550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns an instance of LocaleDisplayNames that returns names
5650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * formatted for the provided locale, using the provided
5750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * dialectHandling.  The usual value for dialectHandling is
5850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * ULOC_STANDARD_NAMES.
5950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho *
6050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param locale the display locale
6150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param dialectHandling how to select names for locales
6250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return a ULocaleDisplayNames instance
6350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
6427f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
6550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
6627f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE ULocaleDisplayNames * U_EXPORT2
6750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_open(const char * locale,
6850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho          UDialectHandling dialectHandling,
6950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho          UErrorCode *pErrorCode);
7050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
7150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
7250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Closes a ULocaleDisplayNames instance obtained from uldn_open().
7350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the ULocaleDisplayNames instance to be closed
7427f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
7550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
7627f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE void U_EXPORT2
7750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_close(ULocaleDisplayNames *ldn);
7850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
7950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if U_SHOW_CPLUSPLUS_API
8050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
8150294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_NAMESPACE_BEGIN
8250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
8350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
8450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * \class LocalULocaleDisplayNamesPointer
8550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * "Smart pointer" class, closes a ULocaleDisplayNames via uldn_close().
8650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * For most methods see the LocalPointerBase base class.
8750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho *
8850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @see LocalPointerBase
8950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @see LocalPointer
9027f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
9150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
9250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_DEFINE_LOCAL_OPEN_POINTER(LocalULocaleDisplayNamesPointer, ULocaleDisplayNames, uldn_close);
9350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
9450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_NAMESPACE_END
9550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
9650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
9750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
9850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* getters for state */
9950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
10050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
10150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the locale used to determine the display names. This is
10250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * not necessarily the same locale passed to {@link #uldn_open}.
10350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
10450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the display locale
10527f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
10650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
10727f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE const char * U_EXPORT2
10850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_getLocale(const ULocaleDisplayNames *ldn);
10950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
11050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
11150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the dialect handling used in the display names.
11250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
11350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the dialect handling enum
11427f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
11550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
11627f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE UDialectHandling U_EXPORT2
11750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_getDialectHandling(const ULocaleDisplayNames *ldn);
11850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
11950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* names for entire locales */
12050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
12150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
12250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided locale.
12350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
12450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param locale the locale whose display name to return
12550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
12650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
12750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
12850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
12950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
13027f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
13150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
13227f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
13350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_localeDisplayName(const ULocaleDisplayNames *ldn,
13450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       const char *locale,
13550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UChar *result,
13650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       int32_t maxResultSize,
13750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UErrorCode *pErrorCode);
13850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
13950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* names for components of a locale */
14050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
14150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
14250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided language code.
14350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
14450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param lang the language code whose display name to return
14550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
14650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
14750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
14850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
14950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
15027f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
15150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
15227f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
15350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_languageDisplayName(const ULocaleDisplayNames *ldn,
15450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         const char *lang,
15550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         UChar *result,
15650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         int32_t maxResultSize,
15750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         UErrorCode *pErrorCode);
15850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
15950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
16050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided script.
16150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
16250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param script the script whose display name to return
16350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
16450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
16550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
16650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
16750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
16827f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
16950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
17027f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
17150294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_scriptDisplayName(const ULocaleDisplayNames *ldn,
17250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       const char *script,
17350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UChar *result,
17450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       int32_t maxResultSize,
17550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UErrorCode *pErrorCode);
17650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
17750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
17850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided script code.
17950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
18050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param scriptCode the script code whose display name to return
18150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
18250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
18350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
18450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
18550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
18627f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
18750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
18827f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
18950294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_scriptCodeDisplayName(const ULocaleDisplayNames *ldn,
19050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                           UScriptCode scriptCode,
19150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                           UChar *result,
19250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                           int32_t maxResultSize,
19350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                           UErrorCode *pErrorCode);
19450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
19550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
19650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided region code.
19750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
19850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param region the region code whose display name to return
19950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
20050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
20150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
20250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
20350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
20427f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
20550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
20627f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
20750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_regionDisplayName(const ULocaleDisplayNames *ldn,
20850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       const char *region,
20950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UChar *result,
21050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       int32_t maxResultSize,
21150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                       UErrorCode *pErrorCode);
21250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
21350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
21450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided variant
21550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
21650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param variant the variant whose display name to return
21750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
21850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
21950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
22050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
22150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
22227f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
22350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
22427f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
22550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_variantDisplayName(const ULocaleDisplayNames *ldn,
22650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                        const char *variant,
22750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                        UChar *result,
22850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                        int32_t maxResultSize,
22950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                        UErrorCode *pErrorCode);
23050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
23150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
23250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided locale key
23350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
23450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param key the locale key whose display name to return
23550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
23650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
23750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
23850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
23950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
24027f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
24150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
24227f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
24350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_keyDisplayName(const ULocaleDisplayNames *ldn,
24450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    const char *key,
24550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    UChar *result,
24650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    int32_t maxResultSize,
24750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    UErrorCode *pErrorCode);
24850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
24950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
25050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Returns the display name of the provided value (used with the provided key).
25150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param ldn the LocaleDisplayNames instance
25250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param key the locale key
25350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param value the locale key's value
25450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param result receives the display name
25550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param maxResultSize the size of the result buffer
25650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @param pErrorCode the status code
25750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return the actual buffer size needed for the display name.  If it's
25850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * greater than maxResultSize, the returned name will be truncated.
25927f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4
26050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
26127f654740f2a26ad62a5c155af9199af9e69b889clairehoU_STABLE int32_t U_EXPORT2
26250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouldn_keyValueDisplayName(const ULocaleDisplayNames *ldn,
26350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         const char *key,
26450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         const char *value,
26550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         UChar *result,
26650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         int32_t maxResultSize,
26750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                         UErrorCode *pErrorCode);
26850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2698393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius#ifndef U_HIDE_DRAFT_API
27054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/**
27154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* Returns an instance of LocaleDisplayNames that returns names formatted
27254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* for the provided locale, using the provided UDisplayContext settings.
27354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*
27454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param locale The display locale
27554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param contexts List of one or more context settings (e.g. for dialect
27654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*               handling, capitalization, etc.
27754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param length Number of items in the contexts list
27854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates
27954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*               a failure status, the function will do nothing; otherwise this will be
28054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*               updated with any new status from the function.
28154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @return a ULocaleDisplayNames instance
2828393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius* @draft ICU 51
28354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*/
2848393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig CorneliusU_DRAFT ULocaleDisplayNames * U_EXPORT2
28554dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusuldn_openForContext(const char * locale, UDisplayContext *contexts,
28654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius                    int32_t length, UErrorCode *pErrorCode);
28754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius
28854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/**
28954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* Returns the UDisplayContext value for the specified UDisplayContextType.
29054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param ldn the ULocaleDisplayNames instance
29154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param type the UDisplayContextType whose value to return
29254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates
29354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*               a failure status, the function will do nothing; otherwise this will be
29454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*               updated with any new status from the function.
29554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* @return the UDisplayContextValue for the specified type.
2968393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius* @draft ICU 51
29754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*/
2988393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig CorneliusU_DRAFT UDisplayContext U_EXPORT2
29954dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusuldn_getContext(const ULocaleDisplayNames *ldn, UDisplayContextType type,
30054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius                UErrorCode *pErrorCode);
30154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius
3028393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius#endif  /* U_HIDE_DRAFT_API */
30350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
30450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif  /* !UCONFIG_NO_FORMATTING */
30550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif  /* __ULDNAMES_H__ */
306