Coverage Report

Created: 2018-09-25 14:53

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