void LocaleDisplayNamesTest::TestUldnComponents() { UErrorCode status = U_ZERO_ERROR; const int32_t kMaxResultSize = 150; // long enough UChar result[150]; ULocaleDisplayNames *ldn = uldn_open(Locale::getGermany().getName(), ULDN_STANDARD_NAMES, &status); test_assert(U_SUCCESS(status)); if (U_FAILURE(status)) { return; } // "en_Hant_US_PRE_EURO@calendar=gregorian"; { int32_t len = uldn_languageDisplayName(ldn, "en", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Englisch", str); } { int32_t len = uldn_scriptDisplayName(ldn, "Hant", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Traditionell", str); } { int32_t len = uldn_scriptCodeDisplayName(ldn, USCRIPT_TRADITIONAL_HAN, result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Traditionell", str); } { int32_t len = uldn_regionDisplayName(ldn, "US", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Vereinigte Staaten", str); } { int32_t len = uldn_variantDisplayName(ldn, "PRE_EURO", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("PRE_EURO", str); } { int32_t len = uldn_keyDisplayName(ldn, "calendar", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Kalender", str); } { int32_t len = uldn_keyValueDisplayName(ldn, "calendar", "gregorian", result, kMaxResultSize, &status); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Gregorianischer Kalender", str); } uldn_close(ldn); }
void LocaleDisplayNamesTest::TestUldnOpenDialect() { UErrorCode status = U_ZERO_ERROR; const int32_t kMaxResultSize = 150; // long enough UChar result[150]; ULocaleDisplayNames *ldn = uldn_open(Locale::getUS().getName(), ULDN_DIALECT_NAMES, &status); int32_t len = uldn_localeDisplayName(ldn, "en_GB", result, kMaxResultSize, &status); uldn_close(ldn); test_assert(U_SUCCESS(status)); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("British English", str); }
void LocaleDisplayNamesTest::TestUldnOpen() { UErrorCode status = U_ZERO_ERROR; const int32_t kMaxResultSize = 150; // long enough UChar result[150]; ULocaleDisplayNames *ldn = uldn_open(Locale::getGermany().getName(), ULDN_STANDARD_NAMES, &status); int32_t len = uldn_localeDisplayName(ldn, "de_DE", result, kMaxResultSize, &status); uldn_close(ldn); test_assert(U_SUCCESS(status)); UnicodeString str(result, len, kMaxResultSize); test_assert_equal("Deutsch (Deutschland)", str); // make sure that NULL gives us the default locale as usual ldn = uldn_open(NULL, ULDN_STANDARD_NAMES, &status); const char *locale = uldn_getLocale(ldn); if(0 != uprv_strcmp(uloc_getDefault(), locale)) { errln("uldn_getLocale(uldn_open(NULL))=%s != default locale %s\n", locale, uloc_getDefault()); } uldn_close(ldn); test_assert(U_SUCCESS(status)); }
/* Function: GetNativeCalendarName Gets the native calendar name. */ static ResultCode GetNativeCalendarName(const char* locale, CalendarId calendarId, UChar* nativeName, int32_t stringCapacity) { UErrorCode err = U_ZERO_ERROR; ULocaleDisplayNames* pDisplayNames = uldn_open(locale, ULDN_STANDARD_NAMES, &err); uldn_keyValueDisplayName(pDisplayNames, "calendar", GetCalendarName(calendarId), nativeName, stringCapacity, &err); uldn_close(pDisplayNames); return GetResultCode(err); }
void LocaleDisplayNamesTest::TestUldnWithKeywordsAndEverything() { UErrorCode status = U_ZERO_ERROR; const int32_t kMaxResultSize = 150; // long enough UChar result[150]; const char *locname = "en_Hant_US_VALLEY@calendar=gregorian;collation=phonebook"; const char *target = "English (Traditional, United States, VALLEY, " "Gregorian Calendar, Phonebook Sort Order)"; ULocaleDisplayNames *ldn = uldn_open(Locale::getUS().getName(), ULDN_STANDARD_NAMES, &status); int32_t len = uldn_localeDisplayName(ldn, locname, result, kMaxResultSize, &status); uldn_close(ldn); test_assert(U_SUCCESS(status)); UnicodeString str(result, len, kMaxResultSize); test_assert_equal(target, str); }
int main() { UErrorCode status = U_ZERO_ERROR; char theirLocale[ULOC_FULLNAME_CAPACITY]; uloc_forLanguageTag("es-419-u-nu-roman", // IETF BCP 47 theirLocale, ULOC_FULLNAME_CAPACITY, NULL, &status); // theirLocale is now: “es_419@numbers=roman” UChar str[256]; const char *ourLocale = uloc_getDefault(); ULocaleDisplayNames *ldn = uldn_open(ourLocale, ULDN_DIALECT_NAMES, &status); uldn_localeDisplayName(ldn, theirLocale, str, 256, &status); uldn_close(ldn); if(U_FAILURE(status)) { puts(u_errorName(status)); return 1; } u_printf("\n==> %S!\n \n", str); return 0; }
// Use LocalXyzPointer types that are not covered elsewhere in the intltest suite. void LocalPointerTest::TestLocalXyzPointer() { IcuTestErrorCode errorCode(*this, "TestLocalXyzPointer"); static const char *const encoding="ISO-8859-1"; LocalUConverterSelectorPointer sel( ucnvsel_open(&encoding, 1, NULL, UCNV_ROUNDTRIP_SET, errorCode)); if(errorCode.logIfFailureAndReset("ucnvsel_open()")) { return; } if(sel.isNull()) { errln("LocalUConverterSelectorPointer failure"); return; } #if !UCONFIG_NO_FORMATTING LocalUCalendarPointer cal(ucal_open(NULL, 0, "root", UCAL_GREGORIAN, errorCode)); if(errorCode.logDataIfFailureAndReset("ucal_open()")) { return; } if(cal.isNull()) { errln("LocalUCalendarPointer failure"); return; } LocalUDateTimePatternGeneratorPointer patgen(udatpg_open("root", errorCode)); if(errorCode.logDataIfFailureAndReset("udatpg_open()")) { return; } if(patgen.isNull()) { errln("LocalUDateTimePatternGeneratorPointer failure"); return; } LocalULocaleDisplayNamesPointer ldn(uldn_open("de-CH", ULDN_STANDARD_NAMES, errorCode)); if(errorCode.logIfFailureAndReset("uldn_open()")) { return; } if(ldn.isNull()) { errln("LocalULocaleDisplayNamesPointer failure"); return; } UnicodeString hello=UNICODE_STRING_SIMPLE("Hello {0}!"); LocalUMessageFormatPointer msg( umsg_open(hello.getBuffer(), hello.length(), "root", NULL, errorCode)); if(errorCode.logIfFailureAndReset("umsg_open()")) { return; } if(msg.isNull()) { errln("LocalUMessageFormatPointer failure"); return; } #endif /* UCONFIG_NO_FORMATTING */ #if !UCONFIG_NO_NORMALIZATION const UNormalizer2 *nfc=unorm2_getNFCInstance(errorCode); UnicodeSet emptySet; LocalUNormalizer2Pointer fn2(unorm2_openFiltered(nfc, emptySet.toUSet(), errorCode)); if(errorCode.logIfFailureAndReset("unorm2_openFiltered()")) { return; } if(fn2.isNull()) { errln("LocalUNormalizer2Pointer failure"); return; } #endif /* !UCONFIG_NO_NORMALIZATION */ #if !UCONFIG_NO_IDNA LocalUIDNAPointer idna(uidna_openUTS46(0, errorCode)); if(errorCode.logIfFailureAndReset("uidna_openUTS46()")) { return; } if(idna.isNull()) { errln("LocalUIDNAPointer failure"); return; } #endif /* !UCONFIG_NO_IDNA */ #if !UCONFIG_NO_REGULAR_EXPRESSIONS UnicodeString pattern=UNICODE_STRING_SIMPLE("abc|xy+z"); LocalURegularExpressionPointer regex( uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, errorCode)); if(errorCode.logIfFailureAndReset("uregex_open()")) { return; } if(regex.isNull()) { errln("LocalURegularExpressionPointer failure"); return; } #endif /* UCONFIG_NO_REGULAR_EXPRESSIONS */ #if !UCONFIG_NO_TRANSLITERATION UnicodeString id=UNICODE_STRING_SIMPLE("Grek-Latn"); LocalUTransliteratorPointer trans( utrans_openU(id.getBuffer(), id.length(), UTRANS_FORWARD, NULL, 0, NULL, errorCode)); if(errorCode.logIfFailureAndReset("utrans_open()")) { return; } if(trans.isNull()) { errln("LocalUTransliteratorPointer failure"); return; } #endif /* !UCONFIG_NO_TRANSLITERATION */ // destructors }