Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
locdspnm.h212 linesDownload Raw Back to unicode
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
30U_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 */
38class U_COMMON_API LocaleDisplayNames : public UObject {
39public:
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
201inline LocaleDisplayNames* LocaleDisplayNames::createInstance(const Locale& locale) {
202  return LocaleDisplayNames::createInstance(locale, ULDN_STANDARD_NAMES);
203}
204
205U_NAMESPACE_END
206
207#endif
208
209#endif /* U_SHOW_CPLUSPLUS_API */
210
211#endif
212 
codekingpro/portable-devtools · Team Ai