-/*
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
********************************************************************************
-* Copyright (C) 1997-2008, International Business Machines
+* Copyright (C) 1997-2016, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
* Changed to match C++ conventions
********************************************************************************
*/
-
+
#ifndef DTFMTSYM_H
#define DTFMTSYM_H
-
+
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
#include "unicode/calendar.h"
+#include "unicode/strenum.h"
#include "unicode/uobject.h"
#include "unicode/locid.h"
+#include "unicode/udat.h"
#include "unicode/ures.h"
/**
- * \file
+ * \file
* \brief C++ API: Symbols for formatting dates.
*/
+#if U_SHOW_CPLUSPLUS_API
U_NAMESPACE_BEGIN
/* forward declaration */
class SimpleDateFormat;
class Hashtable;
-class ZoneStringFormat;
-class SafeZoneStringFormatPtr;
/**
* DateFormatSymbols is a public class for encapsulating localizable date-time
* locale at least contains any resources that are to be particularized for the
* calendar type.
*/
-class U_I18N_API DateFormatSymbols : public UObject {
+class U_I18N_API DateFormatSymbols U_FINAL : public UObject {
public:
/**
* Construct a DateFormatSymbols object by loading format data from
DateFormatSymbols(const Locale& locale,
UErrorCode& status);
+#ifndef U_HIDE_INTERNAL_API
/**
* Construct a DateFormatSymbols object by loading format data from
* resources for the default locale, in the default calendar (Gregorian).
* data for the default locale, it will return a last-resort object
* based on hard-coded strings.
*
- * @param type Type of calendar (as returned by Calendar::getType).
+ * @param type Type of calendar (as returned by Calendar::getType).
* Will be used to access the correct set of strings.
* (NULL or empty string defaults to "gregorian".)
* @param status Status code. Failure
* resources for the given locale, in the default calendar (Gregorian).
*
* @param locale Locale to load format data from.
- * @param type Type of calendar (as returned by Calendar::getType).
+ * @param type Type of calendar (as returned by Calendar::getType).
* Will be used to access the correct set of strings.
* (NULL or empty string defaults to "gregorian".)
* @param status Status code. Failure
DateFormatSymbols(const Locale& locale,
const char *type,
UErrorCode& status);
+#endif /* U_HIDE_INTERNAL_API */
/**
* Copy constructor.
void setEraNames(const UnicodeString* eraNames, int32_t count);
/**
- * Gets narrow era strings. For example: A" and "D".
+ * Gets narrow era strings. For example: "A" and "B".
*
* @param count Filled in with length of the array.
* @return the narrow era strings.
- * @draft ICU 4.2
+ * @stable ICU 4.2
*/
const UnicodeString* getNarrowEras(int32_t& count) const;
* Sets narrow era strings. For example: "A" and "B".
* @param narrowEras Array of narrow era strings (DateFormatSymbols retains ownership.)
* @param count Filled in with length of the array.
- * @draft ICU 4.2
+ * @stable ICU 4.2
*/
void setNarrowEras(const UnicodeString* narrowEras, int32_t count);
* @stable ICU 3.6
*/
enum DtContextType {
- FORMAT,
- STANDALONE,
- DT_CONTEXT_COUNT
+ FORMAT,
+ STANDALONE,
+#ifndef U_HIDE_DEPRECATED_API
+ /**
+ * One more than the highest normal DtContextType value.
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
+ */
+ DT_CONTEXT_COUNT
+#endif // U_HIDE_DEPRECATED_API
};
/**
* @stable ICU 3.6
*/
enum DtWidthType {
- ABBREVIATED,
- WIDE,
- NARROW,
- DT_WIDTH_COUNT
+ ABBREVIATED,
+ WIDE,
+ NARROW,
+ /**
+ * Short width is currently only supported for weekday names.
+ * @stable ICU 51
+ */
+ SHORT,
+#ifndef U_HIDE_DEPRECATED_API
+ /**
+ * One more than the highest normal DtWidthType value.
+ * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
+ */
+ DT_WIDTH_COUNT = 4
+#endif // U_HIDE_DEPRECATED_API
};
/**
void setMonths(const UnicodeString* months, int32_t count, DtContextType context, DtWidthType width);
/**
- * Gets weekday strings. For example: "Sunday", "Monday", etc.
+ * Gets wide weekday strings. For example: "Sunday", "Monday", etc.
* @param count Filled in with length of the array.
* @return the weekday strings. (DateFormatSymbols retains ownership.)
* @stable ICU 2.0
/**
- * Sets weekday strings. For example: "Sunday", "Monday", etc.
+ * Sets wide weekday strings. For example: "Sunday", "Monday", etc.
* @param weekdays the new weekday strings. (not adopted; caller retains ownership)
* @param count Filled in with length of the array.
* @stable ICU 2.0
void setWeekdays(const UnicodeString* weekdays, int32_t count);
/**
- * Gets short weekday strings. For example: "Sun", "Mon", etc.
+ * Gets abbreviated weekday strings. For example: "Sun", "Mon", etc. (Note: The method name is
+ * misleading; it does not get the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.)
* @param count Filled in with length of the array.
- * @return the short weekday strings. (DateFormatSymbols retains ownership.)
+ * @return the abbreviated weekday strings. (DateFormatSymbols retains ownership.)
* @stable ICU 2.0
*/
const UnicodeString* getShortWeekdays(int32_t& count) const;
/**
- * Sets short weekday strings. For example: "Sun", "Mon", etc.
- * @param shortWeekdays the new short weekday strings. (not adopted; caller retains ownership)
- * @param count Filled in with length of the array.
+ * Sets abbreviated weekday strings. For example: "Sun", "Mon", etc. (Note: The method name is
+ * misleading; it does not set the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.)
+ * @param abbrevWeekdays the new abbreviated weekday strings. (not adopted; caller retains ownership)
+ * @param count Filled in with length of the array.
* @stable ICU 2.0
*/
- void setShortWeekdays(const UnicodeString* shortWeekdays, int32_t count);
+ void setShortWeekdays(const UnicodeString* abbrevWeekdays, int32_t count);
/**
* Gets weekday strings by width and context. For example: "Sunday", "Monday", etc.
* @param count Filled in with length of the array.
* @param context The formatting context, either FORMAT or STANDALONE
- * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW
+ * @param width The width of returned strings, either WIDE, ABBREVIATED, SHORT, or NARROW
* @return the month strings. (DateFormatSymbols retains ownership.)
* @stable ICU 3.4
*/
* @param weekdays The new weekday strings. (not adopted; caller retains ownership)
* @param count Filled in with length of the array.
* @param context The formatting context, either FORMAT or STANDALONE
- * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW
+ * @param width The width of returned strings, either WIDE, ABBREVIATED, SHORT, or NARROW
* @stable ICU 3.6
*/
void setWeekdays(const UnicodeString* weekdays, int32_t count, DtContextType context, DtWidthType width);
*/
void setAmPmStrings(const UnicodeString* ampms, int32_t count);
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * This default time separator is used for formatting when the locale
+ * doesn't specify any time separator, and always recognized when parsing.
+ * @internal
+ */
+ static const char16_t DEFAULT_TIME_SEPARATOR = 0x003a; // ':'
+
+ /**
+ * This alternate time separator is always recognized when parsing.
+ * @internal
+ */
+ static const char16_t ALTERNATE_TIME_SEPARATOR = 0x002e; // '.'
+
+ /**
+ * Gets the time separator string. For example: ":".
+ * @param result Output param which will receive the time separator string.
+ * @return A reference to 'result'.
+ * @internal
+ */
+ UnicodeString& getTimeSeparatorString(UnicodeString& result) const;
+
+ /**
+ * Sets the time separator string. For example: ":".
+ * @param newTimeSeparator the new time separator string.
+ * @internal
+ */
+ void setTimeSeparatorString(const UnicodeString& newTimeSeparator);
+#endif /* U_HIDE_INTERNAL_API */
+
+ /**
+ * Gets cyclic year name strings if the calendar has them, by width and context.
+ * For example: "jia-zi", "yi-chou", etc.
+ * @param count Filled in with length of the array.
+ * @param context The usage context: FORMAT, STANDALONE.
+ * @param width The requested name width: WIDE, ABBREVIATED, NARROW.
+ * @return The year name strings (DateFormatSymbols retains ownership),
+ * or null if they are not available for this calendar.
+ * @stable ICU 54
+ */
+ const UnicodeString* getYearNames(int32_t& count,
+ DtContextType context, DtWidthType width) const;
+
+ /**
+ * Sets cyclic year name strings by width and context. For example: "jia-zi", "yi-chou", etc.
+ *
+ * @param yearNames The new cyclic year name strings (not adopted; caller retains ownership).
+ * @param count The length of the array.
+ * @param context The usage context: FORMAT, STANDALONE (currently only FORMAT is supported).
+ * @param width The name width: WIDE, ABBREVIATED, NARROW (currently only ABBREVIATED is supported).
+ * @stable ICU 54
+ */
+ void setYearNames(const UnicodeString* yearNames, int32_t count,
+ DtContextType context, DtWidthType width);
+
+ /**
+ * Gets calendar zodiac name strings if the calendar has them, by width and context.
+ * For example: "Rat", "Ox", "Tiger", etc.
+ * @param count Filled in with length of the array.
+ * @param context The usage context: FORMAT, STANDALONE.
+ * @param width The requested name width: WIDE, ABBREVIATED, NARROW.
+ * @return The zodiac name strings (DateFormatSymbols retains ownership),
+ * or null if they are not available for this calendar.
+ * @stable ICU 54
+ */
+ const UnicodeString* getZodiacNames(int32_t& count,
+ DtContextType context, DtWidthType width) const;
+
+ /**
+ * Sets calendar zodiac name strings by width and context. For example: "Rat", "Ox", "Tiger", etc.
+ *
+ * @param zodiacNames The new zodiac name strings (not adopted; caller retains ownership).
+ * @param count The length of the array.
+ * @param context The usage context: FORMAT, STANDALONE (currently only FORMAT is supported).
+ * @param width The name width: WIDE, ABBREVIATED, NARROW (currently only ABBREVIATED is supported).
+ * @stable ICU 54
+ */
+ void setZodiacNames(const UnicodeString* zodiacNames, int32_t count,
+ DtContextType context, DtWidthType width);
+
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * Somewhat temporary constants for leap month pattern types, adequate for supporting
+ * just leap month patterns as needed for Chinese lunar calendar.
+ * Eventually we will add full support for different month pattern types (needed for
+ * other calendars such as Hindu) at which point this approach will be replaced by a
+ * more complete approach.
+ * @internal
+ */
+ enum EMonthPatternType
+ {
+ kLeapMonthPatternFormatWide,
+ kLeapMonthPatternFormatAbbrev,
+ kLeapMonthPatternFormatNarrow,
+ kLeapMonthPatternStandaloneWide,
+ kLeapMonthPatternStandaloneAbbrev,
+ kLeapMonthPatternStandaloneNarrow,
+ kLeapMonthPatternNumeric,
+ kMonthPatternsCount
+ };
+
+ /**
+ * Somewhat temporary function for getting complete set of leap month patterns for all
+ * contexts & widths, indexed by EMonthPatternType values. Returns NULL if calendar
+ * does not have leap month patterns. Note, there is currently no setter for this.
+ * Eventually we will add full support for different month pattern types (needed for
+ * other calendars such as Hindu) at which point this approach will be replaced by a
+ * more complete approach.
+ * @param count Filled in with length of the array (may be 0).
+ * @return The leap month patterns (DateFormatSymbols retains ownership).
+ * May be NULL if there are no leap month patterns for this calendar.
+ * @internal
+ */
+ const UnicodeString* getLeapMonthPatterns(int32_t& count) const;
+
+#endif /* U_HIDE_INTERNAL_API */
+
+#ifndef U_HIDE_DEPRECATED_API
/**
* Gets timezone strings. These strings are stored in a 2-dimensional array.
* @param rowCount Output param to receive number of rows.
* @deprecated ICU 3.6
*/
const UnicodeString** getZoneStrings(int32_t& rowCount, int32_t& columnCount) const;
+#endif /* U_HIDE_DEPRECATED_API */
/**
* Sets timezone strings. These strings are stored in a 2-dimensional array.
+ * <p><b>Note:</b> SimpleDateFormat no longer use the zone strings stored in
+ * a DateFormatSymbols. Therefore, the time zone strings set by this mthod
+ * have no effects in an instance of SimpleDateFormat for formatting time
+ * zones.
* @param strings The timezone strings as a 2-d array to be copied. (not adopted; caller retains ownership)
* @param rowCount The number of rows (count of first index).
* @param columnCount The number of columns (count of second index).
* @return the non-localized date-time pattern characters
* @stable ICU 2.0
*/
- static const UChar * U_EXPORT2 getPatternUChars(void);
+ static const char16_t * U_EXPORT2 getPatternUChars(void);
/**
* Gets localized date-time pattern characters. For example: 'u', 't', etc.
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
+ /* The following type and kCapContextUsageTypeCount cannot be #ifndef U_HIDE_INTERNAL_API,
+ they are needed for .h file declarations. */
+ /**
+ * Constants for capitalization context usage types.
+ * @internal
+ */
+ enum ECapitalizationContextUsageType
+ {
+#ifndef U_HIDE_INTERNAL_API
+ kCapContextUsageOther = 0,
+ kCapContextUsageMonthFormat, /* except narrow */
+ kCapContextUsageMonthStandalone, /* except narrow */
+ kCapContextUsageMonthNarrow,
+ kCapContextUsageDayFormat, /* except narrow */
+ kCapContextUsageDayStandalone, /* except narrow */
+ kCapContextUsageDayNarrow,
+ kCapContextUsageEraWide,
+ kCapContextUsageEraAbbrev,
+ kCapContextUsageEraNarrow,
+ kCapContextUsageZoneLong,
+ kCapContextUsageZoneShort,
+ kCapContextUsageMetazoneLong,
+ kCapContextUsageMetazoneShort,
+#endif /* U_HIDE_INTERNAL_API */
+ kCapContextUsageTypeCount = 14
+ };
+
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
*
int32_t fStandaloneNarrowMonthsCount;
/**
- * Weekday strings. For example: "Sunday", "Monday", etc.
+ * CLDR-style format wide weekday strings. For example: "Sunday", "Monday", etc.
*/
UnicodeString* fWeekdays;
int32_t fWeekdaysCount;
/**
- * Short weekday strings. For example: "Sun", "Mon", etc.
+ * CLDR-style format abbreviated (not short) weekday strings. For example: "Sun", "Mon", etc.
*/
UnicodeString* fShortWeekdays;
int32_t fShortWeekdaysCount;
/**
- * Narrow weekday strings. For example: "Sun", "Mon", etc.
+ * CLDR-style format short weekday strings. For example: "Su", "Mo", etc.
+ */
+ UnicodeString* fShorterWeekdays;
+ int32_t fShorterWeekdaysCount;
+
+ /**
+ * CLDR-style format narrow weekday strings. For example: "S", "M", etc.
*/
UnicodeString* fNarrowWeekdays;
int32_t fNarrowWeekdaysCount;
/**
- * Standalone Weekday strings. For example: "Sunday", "Monday", etc.
+ * CLDR-style standalone wide weekday strings. For example: "Sunday", "Monday", etc.
*/
UnicodeString* fStandaloneWeekdays;
int32_t fStandaloneWeekdaysCount;
/**
- * Standalone Short weekday strings. For example: "Sun", "Mon", etc.
+ * CLDR-style standalone abbreviated (not short) weekday strings. For example: "Sun", "Mon", etc.
*/
UnicodeString* fStandaloneShortWeekdays;
int32_t fStandaloneShortWeekdaysCount;
+ /**
+ * CLDR-style standalone short weekday strings. For example: "Su", "Mo", etc.
+ */
+ UnicodeString* fStandaloneShorterWeekdays;
+ int32_t fStandaloneShorterWeekdaysCount;
+
/**
* Standalone Narrow weekday strings. For example: "Sun", "Mon", etc.
*/
UnicodeString* fAmPms;
int32_t fAmPmsCount;
+ /**
+ * Narrow Ampm strings. For example: "a" and "p".
+ */
+ UnicodeString* fNarrowAmPms;
+ int32_t fNarrowAmPmsCount;
+
+ /**
+ * Time separator string. For example: ":".
+ */
+ UnicodeString fTimeSeparator;
+
/**
* Quarter strings. For example: "1st quarter", "2nd quarter", etc.
*/
int32_t fStandaloneShortQuartersCount;
/**
- * The format data of all the timezones in this locale.
+ * All leap month patterns, for example "{0}bis".
+ */
+ UnicodeString *fLeapMonthPatterns;
+ int32_t fLeapMonthPatternsCount;
+
+ /**
+ * Cyclic year names, for example: "jia-zi", "yi-chou", ... "gui-hai";
+ * currently we only have data for format/abbreviated.
+ * For the others, just get from format/abbreviated, ignore set.
+ */
+ UnicodeString *fShortYearNames;
+ int32_t fShortYearNamesCount;
+
+ /**
+ * Cyclic zodiac names, for example "Rat", "Ox", "Tiger", etc.;
+ * currently we only have data for format/abbreviated.
+ * For the others, just get from format/abbreviated, ignore set.
+ */
+ UnicodeString *fShortZodiacNames;
+ int32_t fShortZodiacNamesCount;
+
+ /**
+ * Localized names of time zones in this locale. This is a
+ * two-dimensional array of strings of size n by m,
+ * where m is at least 5 and up to 7. Each of the n rows is an
+ * entry containing the localized names for a single TimeZone.
+ *
+ * Each such row contains (with i ranging from 0..n-1):
+ *
+ * zoneStrings[i][0] - time zone ID
+ * example: America/Los_Angeles
+ * zoneStrings[i][1] - long name of zone in standard time
+ * example: Pacific Standard Time
+ * zoneStrings[i][2] - short name of zone in standard time
+ * example: PST
+ * zoneStrings[i][3] - long name of zone in daylight savings time
+ * example: Pacific Daylight Time
+ * zoneStrings[i][4] - short name of zone in daylight savings time
+ * example: PDT
+ * zoneStrings[i][5] - location name of zone
+ * example: United States (Los Angeles)
+ * zoneStrings[i][6] - long generic name of zone
+ * example: Pacific Time
+ * zoneStrings[i][7] - short generic of zone
+ * example: PT
+ *
+ * The zone ID is not localized; it corresponds to the ID
+ * value associated with a system time zone object. All other entries
+ * are localized names. If a zone does not implement daylight savings
+ * time, the daylight savings time names are ignored.
+ *
+ * Note:CLDR 1.5 introduced metazone and its historical mappings.
+ * This simple two-dimensional array is no longer sufficient to represent
+ * localized names and its historic changes. Since ICU 3.8.1, localized
+ * zone names extracted from ICU locale data is stored in a ZoneStringFormat
+ * instance. But we still need to support the old way of customizing
+ * localized zone names, so we keep this field for the purpose.
*/
UnicodeString **fZoneStrings; // Zone string array set by setZoneStrings
UnicodeString **fLocaleZoneStrings; // Zone string array created by the locale
int32_t fZoneStringsRowCount;
int32_t fZoneStringsColCount;
- const ZoneStringFormat *fZoneStringFormat;
- ZoneStringFormat *fZSFLocal; // Local ZoneStringFormat instance
- SafeZoneStringFormatPtr *fZSFCachePtr; // Cached ZoneStringFormat
Locale fZSFLocale; // Locale used for getting ZoneStringFormat
/**
- * Pattern string used for localized time zone GMT format. For example, "GMT{0}"
+ * Localized date-time pattern characters. For example: use 'u' as 'y'.
*/
- UnicodeString fGmtFormat;
+ UnicodeString fLocalPatternChars;
/**
- * Pattern strings used for formatting zone offset in a localized time zone GMT string.
+ * Capitalization transforms. For each usage type, the first array element indicates
+ * whether to titlecase for uiListOrMenu context, the second indicates whether to
+ * titlecase for stand-alone context.
*/
- UnicodeString *fGmtHourFormats;
- int32_t fGmtHourFormatsCount;
+ UBool fCapitalization[kCapContextUsageTypeCount][2];
- enum GMTHourType {
- GMT_NEGATIVE_HMS = 0,
- GMT_NEGATIVE_HM,
- GMT_POSITIVE_HMS,
- GMT_POSITIVE_HM,
- GMT_HOUR_COUNT
- };
+ /**
+ * Abbreviated (== short) day period strings.
+ */
+ UnicodeString *fAbbreviatedDayPeriods;
+ int32_t fAbbreviatedDayPeriodsCount;
/**
- * Localized date-time pattern characters. For example: use 'u' as 'y'.
+ * Wide day period strings.
*/
- UnicodeString fLocalPatternChars;
+ UnicodeString *fWideDayPeriods;
+ int32_t fWideDayPeriodsCount;
+
+ /**
+ * Narrow day period strings.
+ */
+ UnicodeString *fNarrowDayPeriods;
+ int32_t fNarrowDayPeriodsCount;
+
+ /**
+ * Stand-alone abbreviated (== short) day period strings.
+ */
+ UnicodeString *fStandaloneAbbreviatedDayPeriods;
+ int32_t fStandaloneAbbreviatedDayPeriodsCount;
+
+ /**
+ * Stand-alone wide day period strings.
+ */
+ UnicodeString *fStandaloneWideDayPeriods;
+ int32_t fStandaloneWideDayPeriodsCount;
+
+ /**
+ * Stand-alone narrow day period strings.
+ */
+ UnicodeString *fStandaloneNarrowDayPeriods;
+ int32_t fStandaloneNarrowDayPeriodsCount;
private:
/** valid/actual locale information
* failure code upon return.
* @param useLastResortData determine if use last resort data
*/
- void initializeData(const Locale&, const char *type, UErrorCode& status, UBool useLastResortData = FALSE);
+ void initializeData(const Locale& locale, const char *type, UErrorCode& status, UBool useLastResortData = FALSE);
/**
* Copy or alias an array in another object, as appropriate.
*/
void copyData(const DateFormatSymbols& other);
+ /**
+ * Create zone strings array by locale if not yet available
+ */
+ void initZoneStringsArray(void);
/**
- * Returns a ZoneStringFormat, used only by SimpleDateFormat for now.
+ * Delete just the zone strings.
*/
- const ZoneStringFormat* getZoneStringFormat(void) const;
+ void disposeZoneStrings(void);
/**
- * Create a ZoneStringFormat by locale if not yet availble
+ * Returns the date format field index of the pattern character c,
+ * or UDAT_FIELD_COUNT if c is not a pattern character.
*/
- void initZoneStringFormat(void);
+ static UDateFormatField U_EXPORT2 getPatternCharIndex(char16_t c);
/**
- * Create zone strings array by locale if not yet available
+ * Returns TRUE if f (with its pattern character repeated count times) is a numeric field.
*/
- void initZoneStringsArray(void);
+ static UBool U_EXPORT2 isNumericField(UDateFormatField f, int32_t count);
/**
- * Delete just the zone strings.
+ * Returns TRUE if c (repeated count times) is the pattern character for a numeric field.
*/
- void disposeZoneStrings(void);
+ static UBool U_EXPORT2 isNumericPatternChar(char16_t c, int32_t count);
+public:
+#ifndef U_HIDE_INTERNAL_API
+ /**
+ * Gets a DateFormatSymbols by locale.
+ * Unlike the constructors which always use gregorian calendar, this
+ * method uses the calendar in the locale. If the locale contains no
+ * explicit calendar, this method uses the default calendar for that
+ * locale.
+ * @param locale the locale.
+ * @param status error returned here.
+ * @return the new DateFormatSymbols which the caller owns.
+ * @internal For ICU use only.
+ */
+ static DateFormatSymbols * U_EXPORT2 createForLocale(
+ const Locale &locale, UErrorCode &status);
+
+ /**
+ * Apple addition
+ * Get whether to capitalize based on usage.
+ * @param usage the usage.
+ * @param context 0 for menu, 1 for standalone
+ * @return TRUE to capitalize, FALSE otherwise
+ * @internal For ICU use only.
+ */
+ UBool capitalizeForUsage(ECapitalizationContextUsageType usage, int32_t context) const;
+#endif /* U_HIDE_INTERNAL_API */
};
+inline UBool
+DateFormatSymbols::capitalizeForUsage(DateFormatSymbols::ECapitalizationContextUsageType usage, int32_t context) const
+{
+ return fCapitalization[usage][context];
+}
+
U_NAMESPACE_END
+#endif // U_SHOW_CPLUSPLUS_API
#endif /* #if !UCONFIG_NO_FORMATTING */