From: Peter Edberg Date: Thu, 27 Jun 2013 07:41:56 +0000 (+0000) Subject: ICU-10195 Fix CLDR_FIELD_NAME[] array so getting localized name for UDATPG_DAY_FIELD... X-Git-Tag: milestone-59-0-1~2808 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b862a59d5e1b22fbcde08fd7c0990357fc342a97;p=icu ICU-10195 Fix CLDR_FIELD_NAME[] array so getting localized name for UDATPG_DAY_FIELD works X-SVN-Rev: 33859 --- diff --git a/icu4c/source/i18n/dtptngen.cpp b/icu4c/source/i18n/dtptngen.cpp index ec205d60e8c..ddb553272d1 100644 --- a/icu4c/source/i18n/dtptngen.cpp +++ b/icu4c/source/i18n/dtptngen.cpp @@ -205,7 +205,7 @@ static const char* const CLDR_FIELD_APPEND[] = { }; static const char* const CLDR_FIELD_NAME[] = { - "era", "year", "quarter", "month", "week", "*", "weekday", "day", "*", "*", "dayperiod", + "era", "year", "quarter", "month", "week", "*", "weekday", "*", "*", "day", "dayperiod", "hour", "minute", "second", "*", "zone" }; diff --git a/icu4c/source/test/cintltst/udatpg_test.c b/icu4c/source/test/cintltst/udatpg_test.c index 6bdcb1435ac..1ca28623e05 100644 --- a/icu4c/source/test/cintltst/udatpg_test.c +++ b/icu4c/source/test/cintltst/udatpg_test.c @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 2007-2012, International Business Machines +* Copyright (C) 2007-2013, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -111,9 +111,24 @@ static void TestOpenClose() { udatpg_close(dtpg2); } +typedef struct { + UDateTimePatternField field; + UChar name[12]; +} AppendItemNameData; + +static const AppendItemNameData appendItemNameData[] = { /* for Finnish */ + { UDATPG_YEAR_FIELD, {0x0076,0x0075,0x006F,0x0073,0x0069,0} }, /* "vuosi" */ + { UDATPG_MONTH_FIELD, {0x006B,0x0075,0x0075,0x006B,0x0061,0x0075,0x0073,0x0069,0} }, /* "kuukausi" */ + { UDATPG_WEEKDAY_FIELD, {0x0076,0x0069,0x0069,0x006B,0x006F,0x006E,0x0070,0x00E4,0x0069,0x0076,0x00E4,0} }, /* "viikonpäivä" */ + { UDATPG_DAY_FIELD, {0x0070,0x00E4,0x0069,0x0076,0x00E4,0} }, /* "päivä" */ + { UDATPG_HOUR_FIELD, {0x0074,0x0075,0x006E,0x0074,0x0069,0} }, /* "tunti" */ + { UDATPG_FIELD_COUNT, {0} } /* terminator */ +}; + static void TestUsage() { UErrorCode errorCode=U_ZERO_ERROR; UDateTimePatternGenerator *dtpg; + const AppendItemNameData * appItemNameDataPtr; UChar bestPattern[20]; UChar result[20]; int32_t length; @@ -193,6 +208,14 @@ static void TestUsage() { return; } + for (appItemNameDataPtr = appendItemNameData; appItemNameDataPtr->field < UDATPG_FIELD_COUNT; appItemNameDataPtr++) { + int32_t nameLength; + const UChar * namePtr = udatpg_getAppendItemName(dtpg, appItemNameDataPtr->field, &nameLength); + if ( namePtr == NULL || u_strncmp(appItemNameDataPtr->name, namePtr, nameLength) != 0 ) { + log_err("udatpg_getAppendItemName returns invalid name for field %d\n", (int)appItemNameDataPtr->field); + } + } + /* set append name to hr */ udatpg_setAppendItemName( dtpg, UDATPG_HOUR_FIELD, appendItemName, 7 ); r = udatpg_getAppendItemName(dtpg, UDATPG_HOUR_FIELD, &length);