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