xref: /aosp_15_r20/external/icu/libandroidicu/include/unicode/udisplayoptions.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1*0e209d39SAndroid Build Coastguard Worker // © 2022 and later: Unicode, Inc. and others.
2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html
3*0e209d39SAndroid Build Coastguard Worker 
4*0e209d39SAndroid Build Coastguard Worker #ifndef __UDISPLAYOPTIONS_H__
5*0e209d39SAndroid Build Coastguard Worker #define __UDISPLAYOPTIONS_H__
6*0e209d39SAndroid Build Coastguard Worker 
7*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h"
8*0e209d39SAndroid Build Coastguard Worker 
9*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_FORMATTING
10*0e209d39SAndroid Build Coastguard Worker 
11*0e209d39SAndroid Build Coastguard Worker /**
12*0e209d39SAndroid Build Coastguard Worker  * \file
13*0e209d39SAndroid Build Coastguard Worker  * \brief C API: Display options (enum types, values, helper functions)
14*0e209d39SAndroid Build Coastguard Worker  *
15*0e209d39SAndroid Build Coastguard Worker  * These display options are designed to be used in class DisplayOptions
16*0e209d39SAndroid Build Coastguard Worker  * as a more modern version of the UDisplayContext mechanism.
17*0e209d39SAndroid Build Coastguard Worker  */
18*0e209d39SAndroid Build Coastguard Worker 
19*0e209d39SAndroid Build Coastguard Worker #include "unicode/uversion.h"
20*0e209d39SAndroid Build Coastguard Worker 
21*0e209d39SAndroid Build Coastguard Worker /**
22*0e209d39SAndroid Build Coastguard Worker  * Represents all the grammatical cases that are supported by CLDR.
23*0e209d39SAndroid Build Coastguard Worker  *
24*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
25*0e209d39SAndroid Build Coastguard Worker  */
26*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsGrammaticalCase {
27*0e209d39SAndroid Build Coastguard Worker     /**
28*0e209d39SAndroid Build Coastguard Worker      * A possible setting for GrammaticalCase.
29*0e209d39SAndroid Build Coastguard Worker      * The grammatical case context to be used is unknown (this is the default value).
30*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
31*0e209d39SAndroid Build Coastguard Worker      */
32*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_UNDEFINED = 0,
33*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
34*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_ABLATIVE = 1,
35*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
36*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE = 2,
37*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
38*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_COMITATIVE = 3,
39*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
40*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_DATIVE = 4,
41*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
42*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_ERGATIVE = 5,
43*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
44*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_GENITIVE = 6,
45*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
46*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL = 7,
47*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
48*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_LOCATIVE = 8,
49*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
50*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE = 9,
51*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
52*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE = 10,
53*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
54*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_OBLIQUE = 11,
55*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
56*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL = 12,
57*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
58*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE = 13,
59*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
60*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_GRAMMATICAL_CASE_VOCATIVE = 14,
61*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsGrammaticalCase;
62*0e209d39SAndroid Build Coastguard Worker 
63*0e209d39SAndroid Build Coastguard Worker /**
64*0e209d39SAndroid Build Coastguard Worker  * @param grammaticalCase The grammatical case.
65*0e209d39SAndroid Build Coastguard Worker  * @return the lowercase CLDR keyword string for the grammatical case.
66*0e209d39SAndroid Build Coastguard Worker  *
67*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
68*0e209d39SAndroid Build Coastguard Worker  */
69*0e209d39SAndroid Build Coastguard Worker U_CAPI const char * U_EXPORT2
70*0e209d39SAndroid Build Coastguard Worker udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase grammaticalCase);
71*0e209d39SAndroid Build Coastguard Worker 
72*0e209d39SAndroid Build Coastguard Worker /**
73*0e209d39SAndroid Build Coastguard Worker  * @param identifier in lower case such as "dative" or "nominative"
74*0e209d39SAndroid Build Coastguard Worker  * @return the plural category corresponding to the identifier, or `UDISPOPT_GRAMMATICAL_CASE_UNDEFINED`
75*0e209d39SAndroid Build Coastguard Worker  *
76*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
77*0e209d39SAndroid Build Coastguard Worker  */
78*0e209d39SAndroid Build Coastguard Worker U_CAPI UDisplayOptionsGrammaticalCase U_EXPORT2
79*0e209d39SAndroid Build Coastguard Worker udispopt_fromGrammaticalCaseIdentifier(const char *identifier);
80*0e209d39SAndroid Build Coastguard Worker 
81*0e209d39SAndroid Build Coastguard Worker /**
82*0e209d39SAndroid Build Coastguard Worker  * Standard CLDR plural form/category constants.
83*0e209d39SAndroid Build Coastguard Worker  * See https://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules
84*0e209d39SAndroid Build Coastguard Worker  *
85*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
86*0e209d39SAndroid Build Coastguard Worker  */
87*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsPluralCategory {
88*0e209d39SAndroid Build Coastguard Worker 
89*0e209d39SAndroid Build Coastguard Worker     /**
90*0e209d39SAndroid Build Coastguard Worker      * A possible setting for PluralCategory.
91*0e209d39SAndroid Build Coastguard Worker      * The plural category case context to be used is unknown (this is the default value).
92*0e209d39SAndroid Build Coastguard Worker      *
93*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
94*0e209d39SAndroid Build Coastguard Worker      */
95*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_UNDEFINED = 0,
96*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
97*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_ZERO = 1,
98*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
99*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_ONE = 2,
100*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
101*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_TWO = 3,
102*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
103*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_FEW = 4,
104*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
105*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_MANY = 5,
106*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
107*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_PLURAL_CATEGORY_OTHER = 6,
108*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsPluralCategory;
109*0e209d39SAndroid Build Coastguard Worker 
110*0e209d39SAndroid Build Coastguard Worker /**
111*0e209d39SAndroid Build Coastguard Worker  * @param pluralCategory The plural category.
112*0e209d39SAndroid Build Coastguard Worker  * @return the lowercase CLDR identifier string for the plural category.
113*0e209d39SAndroid Build Coastguard Worker  *
114*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
115*0e209d39SAndroid Build Coastguard Worker  */
116*0e209d39SAndroid Build Coastguard Worker U_CAPI const char * U_EXPORT2
117*0e209d39SAndroid Build Coastguard Worker udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory pluralCategory);
118*0e209d39SAndroid Build Coastguard Worker 
119*0e209d39SAndroid Build Coastguard Worker /**
120*0e209d39SAndroid Build Coastguard Worker  * @param identifier for example "few" or "other"
121*0e209d39SAndroid Build Coastguard Worker  * @return the plural category corresponding to the identifier (plural keyword),
122*0e209d39SAndroid Build Coastguard Worker  *         or `UDISPOPT_PLURAL_CATEGORY_UNDEFINED`
123*0e209d39SAndroid Build Coastguard Worker  *
124*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
125*0e209d39SAndroid Build Coastguard Worker  */
126*0e209d39SAndroid Build Coastguard Worker U_CAPI UDisplayOptionsPluralCategory U_EXPORT2
127*0e209d39SAndroid Build Coastguard Worker udispopt_fromPluralCategoryIdentifier(const char *identifier);
128*0e209d39SAndroid Build Coastguard Worker 
129*0e209d39SAndroid Build Coastguard Worker /**
130*0e209d39SAndroid Build Coastguard Worker  * Represents all the grammatical noun classes that are supported by CLDR.
131*0e209d39SAndroid Build Coastguard Worker  *
132*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72.
133*0e209d39SAndroid Build Coastguard Worker  */
134*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsNounClass {
135*0e209d39SAndroid Build Coastguard Worker     /**
136*0e209d39SAndroid Build Coastguard Worker      * A possible setting for NounClass.
137*0e209d39SAndroid Build Coastguard Worker      * The noun class case context to be used is unknown (this is the default value).
138*0e209d39SAndroid Build Coastguard Worker      *
139*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
140*0e209d39SAndroid Build Coastguard Worker      */
141*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_UNDEFINED = 0,
142*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
143*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_OTHER = 1,
144*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
145*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_NEUTER = 2,
146*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
147*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_FEMININE = 3,
148*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
149*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_MASCULINE = 4,
150*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
151*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_ANIMATE = 5,
152*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
153*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_INANIMATE = 6,
154*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
155*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_PERSONAL = 7,
156*0e209d39SAndroid Build Coastguard Worker     /** @stable ICU 72 */
157*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NOUN_CLASS_COMMON = 8,
158*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsNounClass;
159*0e209d39SAndroid Build Coastguard Worker 
160*0e209d39SAndroid Build Coastguard Worker /**
161*0e209d39SAndroid Build Coastguard Worker  * @param nounClass The noun class.
162*0e209d39SAndroid Build Coastguard Worker  * @return the lowercase CLDR keyword string for the noun class.
163*0e209d39SAndroid Build Coastguard Worker  *
164*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
165*0e209d39SAndroid Build Coastguard Worker  */
166*0e209d39SAndroid Build Coastguard Worker U_CAPI const char * U_EXPORT2
167*0e209d39SAndroid Build Coastguard Worker udispopt_getNounClassIdentifier(UDisplayOptionsNounClass nounClass);
168*0e209d39SAndroid Build Coastguard Worker 
169*0e209d39SAndroid Build Coastguard Worker /**
170*0e209d39SAndroid Build Coastguard Worker  * @param identifier in lower case such as "feminine" or "masculine"
171*0e209d39SAndroid Build Coastguard Worker  * @return the plural category corresponding to the identifier, or `UDISPOPT_NOUN_CLASS_UNDEFINED`
172*0e209d39SAndroid Build Coastguard Worker  *
173*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
174*0e209d39SAndroid Build Coastguard Worker  */
175*0e209d39SAndroid Build Coastguard Worker U_CAPI UDisplayOptionsNounClass U_EXPORT2
176*0e209d39SAndroid Build Coastguard Worker udispopt_fromNounClassIdentifier(const char *identifier);
177*0e209d39SAndroid Build Coastguard Worker 
178*0e209d39SAndroid Build Coastguard Worker /**
179*0e209d39SAndroid Build Coastguard Worker  * Represents all the capitalization options.
180*0e209d39SAndroid Build Coastguard Worker  *
181*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
182*0e209d39SAndroid Build Coastguard Worker  */
183*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsCapitalization {
184*0e209d39SAndroid Build Coastguard Worker     /**
185*0e209d39SAndroid Build Coastguard Worker      * A possible setting for Capitalization.
186*0e209d39SAndroid Build Coastguard Worker      * The capitalization context to be used is unknown (this is the default value).
187*0e209d39SAndroid Build Coastguard Worker      *
188*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
189*0e209d39SAndroid Build Coastguard Worker      */
190*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_CAPITALIZATION_UNDEFINED = 0,
191*0e209d39SAndroid Build Coastguard Worker 
192*0e209d39SAndroid Build Coastguard Worker     /**
193*0e209d39SAndroid Build Coastguard Worker      * The capitalization context if a date, date symbol or display name is to be
194*0e209d39SAndroid Build Coastguard Worker      * formatted with capitalization appropriate for the beginning of a sentence.
195*0e209d39SAndroid Build Coastguard Worker      *
196*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
197*0e209d39SAndroid Build Coastguard Worker      */
198*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE = 1,
199*0e209d39SAndroid Build Coastguard Worker 
200*0e209d39SAndroid Build Coastguard Worker     /**
201*0e209d39SAndroid Build Coastguard Worker      * The capitalization context if a date, date symbol or display name is to be
202*0e209d39SAndroid Build Coastguard Worker      * formatted with capitalization appropriate for the middle of a sentence.
203*0e209d39SAndroid Build Coastguard Worker      *
204*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
205*0e209d39SAndroid Build Coastguard Worker      */
206*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE = 2,
207*0e209d39SAndroid Build Coastguard Worker 
208*0e209d39SAndroid Build Coastguard Worker     /**
209*0e209d39SAndroid Build Coastguard Worker      * The capitalization context if a date, date symbol or display name is to be
210*0e209d39SAndroid Build Coastguard Worker      * formatted with capitalization appropriate for stand-alone usage such as an
211*0e209d39SAndroid Build Coastguard Worker      * isolated name on a calendar page.
212*0e209d39SAndroid Build Coastguard Worker      *
213*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
214*0e209d39SAndroid Build Coastguard Worker      */
215*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_CAPITALIZATION_STANDALONE = 3,
216*0e209d39SAndroid Build Coastguard Worker 
217*0e209d39SAndroid Build Coastguard Worker     /**
218*0e209d39SAndroid Build Coastguard Worker      * The capitalization context if a date, date symbol or display name is to be
219*0e209d39SAndroid Build Coastguard Worker      * formatted with capitalization appropriate for a user-interface list or menu item.
220*0e209d39SAndroid Build Coastguard Worker      *
221*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
222*0e209d39SAndroid Build Coastguard Worker      */
223*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU = 4,
224*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsCapitalization;
225*0e209d39SAndroid Build Coastguard Worker 
226*0e209d39SAndroid Build Coastguard Worker /**
227*0e209d39SAndroid Build Coastguard Worker  * Represents all the dialect handlings.
228*0e209d39SAndroid Build Coastguard Worker  *
229*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
230*0e209d39SAndroid Build Coastguard Worker  */
231*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsNameStyle {
232*0e209d39SAndroid Build Coastguard Worker     /**
233*0e209d39SAndroid Build Coastguard Worker      * A possible setting for NameStyle.
234*0e209d39SAndroid Build Coastguard Worker      * The NameStyle context to be used is unknown (this is the default value).
235*0e209d39SAndroid Build Coastguard Worker      *
236*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
237*0e209d39SAndroid Build Coastguard Worker      */
238*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NAME_STYLE_UNDEFINED = 0,
239*0e209d39SAndroid Build Coastguard Worker 
240*0e209d39SAndroid Build Coastguard Worker     /**
241*0e209d39SAndroid Build Coastguard Worker      * Use standard names when generating a locale name,
242*0e209d39SAndroid Build Coastguard Worker      * e.g. en_GB displays as 'English (United Kingdom)'.
243*0e209d39SAndroid Build Coastguard Worker      *
244*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
245*0e209d39SAndroid Build Coastguard Worker      */
246*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NAME_STYLE_STANDARD_NAMES = 1,
247*0e209d39SAndroid Build Coastguard Worker 
248*0e209d39SAndroid Build Coastguard Worker     /**
249*0e209d39SAndroid Build Coastguard Worker      * Use dialect names, when generating a locale name,
250*0e209d39SAndroid Build Coastguard Worker      * e.g. en_GB displays as 'British English'.
251*0e209d39SAndroid Build Coastguard Worker      *
252*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
253*0e209d39SAndroid Build Coastguard Worker      */
254*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_NAME_STYLE_DIALECT_NAMES = 2,
255*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsNameStyle;
256*0e209d39SAndroid Build Coastguard Worker 
257*0e209d39SAndroid Build Coastguard Worker /**
258*0e209d39SAndroid Build Coastguard Worker  * Represents all the display lengths.
259*0e209d39SAndroid Build Coastguard Worker  *
260*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
261*0e209d39SAndroid Build Coastguard Worker  */
262*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsDisplayLength {
263*0e209d39SAndroid Build Coastguard Worker     /**
264*0e209d39SAndroid Build Coastguard Worker      * A possible setting for DisplayLength.
265*0e209d39SAndroid Build Coastguard Worker      * The DisplayLength context to be used is unknown (this is the default value).
266*0e209d39SAndroid Build Coastguard Worker      *
267*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
268*0e209d39SAndroid Build Coastguard Worker      */
269*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_DISPLAY_LENGTH_UNDEFINED = 0,
270*0e209d39SAndroid Build Coastguard Worker 
271*0e209d39SAndroid Build Coastguard Worker     /**
272*0e209d39SAndroid Build Coastguard Worker      * Uses full names when generating a locale name,
273*0e209d39SAndroid Build Coastguard Worker      * e.g. "United States" for US.
274*0e209d39SAndroid Build Coastguard Worker      *
275*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
276*0e209d39SAndroid Build Coastguard Worker      */
277*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_DISPLAY_LENGTH_FULL = 1,
278*0e209d39SAndroid Build Coastguard Worker 
279*0e209d39SAndroid Build Coastguard Worker     /**
280*0e209d39SAndroid Build Coastguard Worker      * Use short names when generating a locale name,
281*0e209d39SAndroid Build Coastguard Worker      * e.g. "U.S." for US.
282*0e209d39SAndroid Build Coastguard Worker      *
283*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
284*0e209d39SAndroid Build Coastguard Worker      */
285*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_DISPLAY_LENGTH_SHORT = 2,
286*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsDisplayLength;
287*0e209d39SAndroid Build Coastguard Worker 
288*0e209d39SAndroid Build Coastguard Worker /**
289*0e209d39SAndroid Build Coastguard Worker  * Represents all the substitute handling.
290*0e209d39SAndroid Build Coastguard Worker  *
291*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 72
292*0e209d39SAndroid Build Coastguard Worker  */
293*0e209d39SAndroid Build Coastguard Worker typedef enum UDisplayOptionsSubstituteHandling {
294*0e209d39SAndroid Build Coastguard Worker 
295*0e209d39SAndroid Build Coastguard Worker     /**
296*0e209d39SAndroid Build Coastguard Worker      * A possible setting for SubstituteHandling.
297*0e209d39SAndroid Build Coastguard Worker      * The SubstituteHandling context to be used is unknown (this is the default value).
298*0e209d39SAndroid Build Coastguard Worker      *
299*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
300*0e209d39SAndroid Build Coastguard Worker      */
301*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED = 0,
302*0e209d39SAndroid Build Coastguard Worker 
303*0e209d39SAndroid Build Coastguard Worker     /**
304*0e209d39SAndroid Build Coastguard Worker      * Returns a fallback value (e.g., the input code) when no data is available.
305*0e209d39SAndroid Build Coastguard Worker      * This is the default behaviour.
306*0e209d39SAndroid Build Coastguard Worker      *
307*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
308*0e209d39SAndroid Build Coastguard Worker      */
309*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE = 1,
310*0e209d39SAndroid Build Coastguard Worker 
311*0e209d39SAndroid Build Coastguard Worker     /**
312*0e209d39SAndroid Build Coastguard Worker      * Returns a null value when no data is available.
313*0e209d39SAndroid Build Coastguard Worker      *
314*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
315*0e209d39SAndroid Build Coastguard Worker      */
316*0e209d39SAndroid Build Coastguard Worker     UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE = 2,
317*0e209d39SAndroid Build Coastguard Worker } UDisplayOptionsSubstituteHandling;
318*0e209d39SAndroid Build Coastguard Worker 
319*0e209d39SAndroid Build Coastguard Worker #endif /* #if !UCONFIG_NO_FORMATTING */
320*0e209d39SAndroid Build Coastguard Worker 
321*0e209d39SAndroid Build Coastguard Worker #endif // __UDISPLAYOPTIONS_H__
322