X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/57a6839dcb3bba09e8228b822b290604668416fe..9f1b115531acc2f3640893f76e8bcf6680033062:/icuSources/common/unicode/locid.h diff --git a/icuSources/common/unicode/locid.h b/icuSources/common/unicode/locid.h index 09ab5617..28412f06 100644 --- a/icuSources/common/unicode/locid.h +++ b/icuSources/common/unicode/locid.h @@ -1,7 +1,9 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * -* Copyright (C) 1996-2013, International Business Machines +* Copyright (C) 1996-2015, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -31,21 +33,23 @@ #include "unicode/utypes.h" #include "unicode/uobject.h" -#include "unicode/unistr.h" #include "unicode/putil.h" #include "unicode/uloc.h" -#include "unicode/strenum.h" /** * \file * \brief C++ API: Locale ID object. */ +#if U_SHOW_CPLUSPLUS_API U_NAMESPACE_BEGIN // Forward Declarations void U_CALLCONV locale_available_init(); /**< @internal */ +class StringEnumeration; +class UnicodeString; + /** * A Locale object represents a specific geographical, political, * or cultural region. An operation that requires a Locale to perform @@ -493,6 +497,21 @@ public: */ uint32_t getLCID(void) const; + /** + * Returns whether this locale's script is written right-to-left. + * If there is no script subtag, then the likely script is used, see uloc_addLikelySubtags(). + * If no likely script is known, then FALSE is returned. + * + * A script is right-to-left according to the CLDR script metadata + * which corresponds to whether the script's letters have Bidi_Class=R or AL. + * + * Returns TRUE for "ar" and "en-Hebr", FALSE for "zh" and "fa-Cyrl". + * + * @return TRUE if the locale's script is written right-to-left + * @stable ICU 54 + */ + UBool isRightToLeft() const; + /** * Fills in "dispLang" with the name of this locale's language in a format suitable for * user display in the default locale. For example, if the locale's language code is @@ -733,7 +752,7 @@ private: char fullNameBuffer[ULOC_FULLNAME_CAPACITY]; // name without keywords char* baseName; - char baseNameBuffer[ULOC_FULLNAME_CAPACITY]; + void initBaseName(UErrorCode& status); UBool fIsBogus; @@ -778,7 +797,6 @@ Locale::getScript() const inline const char * Locale::getVariant() const { - getBaseName(); // lazy init return &baseName[variantBegin]; } @@ -794,5 +812,6 @@ Locale::isBogus(void) const { } U_NAMESPACE_END +#endif // U_SHOW_CPLUSPLUS_API #endif