2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 * Copyright (C) 1999-2012, International Business Machines
17 * Corporation and others. All Rights Reserved.
22 #ifndef __UTILS_I18N_TYPES_H__
23 #define __UTILS_I18N_TYPES_H__
30 * @file utils_i18n_types.h
32 * @brief utils_i18n_types
40 * @addtogroup CAPI_BASE_UTILS_I18N_MODULE
45 * @brief Enumeration for error codes to replace exception handlings.
46 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
49 I18N_ERROR_NONE = TIZEN_ERROR_NONE, /**< No error, no warning */
50 I18N_ERROR_MISSING_RESOURCE = TIZEN_ERROR_UTILITY_ICU | 0x01, /**< The requested resource cannot be found */
51 I18N_ERROR_INVALID_FORMAT = TIZEN_ERROR_UTILITY_ICU | 0x02, /**< Data format is not what is expected */
52 I18N_ERROR_FILE_ACCESS = TIZEN_ERROR_UTILITY_ICU | 0x03, /**< The requested file cannot be found */
53 I18N_ERROR_INTERNAL_PROGRAM = TIZEN_ERROR_UTILITY_ICU | 0x04, /**< Indicates a bug in the library code */
54 I18N_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
55 I18N_ERROR_INDEX_OUTOFBOUNDS = TIZEN_ERROR_UTILITY_ICU | 0x05, /**< Trying to access the index that is out of bounds */
56 I18N_ERROR_INVALID_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x06, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character */
57 I18N_ERROR_BUFFER_OVERFLOW = TIZEN_ERROR_UTILITY_ICU | 0x07, /**< A result would not fit in the supplied buffer */
58 I18N_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Requested operation is not supported in the current context */
59 I18N_ERROR_COLLATOR_VERSION_MISMATCH = TIZEN_ERROR_UTILITY_ICU | 0x08, /**< Collator version is not compatible with the base version */
60 I18N_ERROR_USELESS_COLLATOR = TIZEN_ERROR_UTILITY_ICU | 0x09, /**< Collator is options only and no base is specified */
61 I18N_ERROR_NO_WRITE_PERMISSION = TIZEN_ERROR_UTILITY_ICU | 0x0A, /**< Attempt to modify read-only or constant data */
62 I18N_ERROR_RESOURCE_TYPE_MISMATCH = TIZEN_ERROR_UTILITY_ICU | 0x0B, /**< An operation is requested over a resource that does not support it */
63 I18N_ERROR_TOO_MANY_ALIASES = TIZEN_ERROR_UTILITY_ICU | 0x0C, /**< Too many aliases in the path to the requested resource */
64 I18N_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid function parameter */
65 I18N_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
67 I18N_ERROR_MESSAGE_PARSE = TIZEN_ERROR_UTILITY_ICU | 0x0D, /**< Unable to parse a message (message format). @if MOBILE (Since 2.3.1) @endif*/
68 I18N_ERROR_PARSE = TIZEN_ERROR_UTILITY_ICU | 0x0E, /**< Equivalent to Java ParseException. @if MOBILE (Since 2.3.1) @endif*/
69 I18N_ERROR_TRUNCATED_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x0F, /**< Character conversion: Incomplete input sequence. @if MOBILE (Since 2.3.1) @endif*/
70 I18N_ERROR_ILLEGAL_CHAR_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x10, /**< Character conversion: Illegal input sequence/combination of input units. @if MOBILE (Since 2.3.1) @endif*/
71 I18N_ERROR_INVALID_TABLE_FORMAT = TIZEN_ERROR_UTILITY_ICU | 0x11, /**< Conversion table file found, but corrupted. @if MOBILE (Since 2.3.1) @endif*/
72 I18N_ERROR_INVALID_TABLE_FILE = TIZEN_ERROR_UTILITY_ICU | 0x12, /**< Conversion table file not found. @if MOBILE (Since 2.3.1) @endif*/
73 I18N_ERROR_ILLECAL_ESCAPE_SEQUENCE = TIZEN_ERROR_UTILITY_ICU | 0x13, /**< ISO-2022 illlegal escape sequence. @if MOBILE (Since 2.3.1) @endif*/
74 I18N_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE = TIZEN_ERROR_UTILITY_ICU | 0x14, /**< ISO-2022 unsupported escape sequence. @if MOBILE (Since 2.3.1) @endif*/
75 I18N_ERROR_NO_SPACE_AVAILABLE = TIZEN_ERROR_UTILITY_ICU | 0x15, /**< No space available for in-buffer expansion for Arabic shaping. @if MOBILE (Since 2.3.1) @endif*/
76 I18N_ERROR_CE_NOT_FOUND = TIZEN_ERROR_UTILITY_ICU | 0x16, /**< Currently used only while setting variable top, but can be used generally. @if MOBILE (Since 2.3.1) @endif*/
77 I18N_ERROR_PRIMARY_TOO_LONG = TIZEN_ERROR_UTILITY_ICU | 0x17, /**< User tried to set variable top to a primary that is longer than two bytes. @if MOBILE (Since 2.3.1) @endif*/
78 I18N_ERROR_STATE_TOO_OLD = TIZEN_ERROR_UTILITY_ICU | 0x18, /**< ICU cannot construct a service from this state, as it is no longer supported. @if MOBILE (Since 2.3.1) @endif*/
79 I18N_ERROR_ENUM_OUT_OF_SYNC = TIZEN_ERROR_UTILITY_ICU | 0x19, /**< UEnumeration out of sync with underlying collection. @if MOBILE (Since 2.3.1) @endif*/
80 I18N_ERROR_INVARIANT_CONVERSION = TIZEN_ERROR_UTILITY_ICU | 0x1A, /**< Unable to convert a UChar* string to char* with the invariant converter. @if MOBILE (Since 2.3.1) @endif*/
81 I18N_ERROR_INVALID_STATE = TIZEN_ERROR_UTILITY_ICU | 0x1B, /**< Requested operation can not be completed with ICU in its current state. @if MOBILE (Since 2.3.1) @endif*/
82 I18N_ERROR_MALFORMED_SET = TIZEN_ERROR_UTILITY_ICU | 0x1C, /**< A UnicodeSet pattern is invalid. @if MOBILE (Since 2.3.1) @endif*/
83 I18N_WARNING_STRING_NOT_TERMINATED = TIZEN_ERROR_UTILITY_ICU | 0x1D, /**< String not terminated with NULL. @if MOBILE (Since 2.3.1) @endif*/
84 I18N_ERROR_STD3_ASCII_RULES = TIZEN_ERROR_UTILITY_ICU | 0x1E, /**< Argument does not satisfy STD3 rules. @if MOBILE (Since 2.3.1) @endif*/
85 I18N_ERROR_UNASSIGNED = TIZEN_ERROR_UTILITY_ICU | 0x1F, /**< Unassigned code points are found. @if MOBILE (Since 2.3.1) @endif*/
86 I18N_WARNING_SORT_KEY_TOO_SHORT = TIZEN_ERROR_UTILITY_ICU | 0x20, /**< Number of levels requested in getBound is higher than the number of levels in the sort key. @if MOBILE (Since 2.3.1) @endif*/
87 I18N_ERROR_UNKNOWN = TIZEN_ERROR_UNKNOWN, /**< Unknown error. @if MOBILE (Since 2.3.1) @endif*/
96 * @addtogroup CAPI_BASE_UTILS_I18N_UCHAR_MODULE
100 #define I18N_U_MASK(x) ((uint32_t)1<<(x)) /**< Get a single-bit bit set (a flag) from a bit number 0..31. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
102 #define I18N_U_GC_CN_MASK I18N_U_MASK(I18N_UCHAR_U_GENERAL_OTHER_TYPES) /**<U_GC_XX_MASK constants are bit flags corresponding to Unicode general category values. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
103 #define I18N_U_GC_LU_MASK I18N_U_MASK(I18N_UCHAR_U_UPPERCASE_LETTER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
104 #define I18N_U_GC_LL_MASK I18N_U_MASK(I18N_UCHAR_U_LOWERCASE_LETTER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
105 #define I18N_U_GC_LT_MASK I18N_U_MASK(I18N_UCHAR_U_TITLECASE_LETTER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
106 #define I18N_U_GC_LM_MASK I18N_U_MASK(I18N_UCHAR_U_MODIFIER_LETTER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
107 #define I18N_U_GC_LO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_LETTER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
108 #define I18N_U_GC_MN_MASK I18N_U_MASK(I18N_UCHAR_U_NON_SPACING_MARK) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
109 #define I18N_U_GC_ME_MASK I18N_U_MASK(I18N_UCHAR_U_ENCLOSING_MARK) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
110 #define I18N_U_GC_MC_MASK I18N_U_MASK(I18N_UCHAR_U_COMBINING_SPACING_MARK) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
111 #define I18N_U_GC_ND_MASK I18N_U_MASK(I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
112 #define I18N_U_GC_NL_MASK I18N_U_MASK(I18N_UCHAR_U_LETTER_NUMBER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
113 #define I18N_U_GC_NO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_NUMBER) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
114 #define I18N_U_GC_ZS_MASK I18N_U_MASK(I18N_UCHAR_U_SPACE_SEPARATOR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
115 #define I18N_U_GC_ZL_MASK I18N_U_MASK(I18N_UCHAR_U_LINE_SEPARATOR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
116 #define I18N_U_GC_ZP_MASK I18N_U_MASK(I18N_UCHAR_U_PARAGRAPH_SEPARATOR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
117 #define I18N_U_GC_CC_MASK I18N_U_MASK(I18N_UCHAR_U_CONTROL_CHAR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
118 #define I18N_U_GC_CF_MASK I18N_U_MASK(I18N_UCHAR_U_FORMAT_CHAR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
119 #define I18N_U_GC_CO_MASK I18N_U_MASK(I18N_UCHAR_U_PRIVATE_USE_CHAR) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
120 #define I18N_U_GC_CS_MASK I18N_U_MASK(I18N_UCHAR_U_SURROGATE) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
121 #define I18N_U_GC_PD_MASK I18N_U_MASK(I18N_UCHAR_U_DASH_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
122 #define I18N_U_GC_PS_MASK I18N_U_MASK(I18N_UCHAR_U_START_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
123 #define I18N_U_GC_PE_MASK I18N_U_MASK(I18N_UCHAR_U_END_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
124 #define I18N_U_GC_PC_MASK I18N_U_MASK(I18N_UCHAR_U_CONNECTOR_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
125 #define I18N_U_GC_PO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
126 #define I18N_U_GC_SM_MASK I18N_U_MASK(I18N_UCHAR_U_MATH_SYMBOL) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
127 #define I18N_U_GC_SC_MASK I18N_U_MASK(I18N_UCHAR_U_CURRENCY_SYMBOL) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
128 #define I18N_U_GC_SK_MASK I18N_U_MASK(I18N_UCHAR_U_MODIFIER_SYMBOL) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
129 #define I18N_U_GC_SO_MASK I18N_U_MASK(I18N_UCHAR_U_OTHER_SYMBOL) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
130 #define I18N_U_GC_PI_MASK I18N_U_MASK(I18N_UCHAR_U_INITIAL_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
131 #define I18N_U_GC_PF_MASK I18N_U_MASK(I18N_UCHAR_U_FINAL_PUNCTUATION) /**<Mask constant for a #i18n_uchar_category_e. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
132 #define I18N_U_GC_L_MASK (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK|I18N_U_GC_LM_MASK|I18N_U_GC_LO_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (L Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
133 #define I18N_U_GC_LC_MASK (I18N_U_GC_LU_MASK|I18N_U_GC_LL_MASK|I18N_U_GC_LT_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (LC Cased Letters). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
134 #define I18N_U_GC_M_MASK (I18N_U_GC_MN_MASK|I18N_U_GC_ME_MASK|I18N_U_GC_MC_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (M Marks). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
135 #define I18N_U_GC_N_MASK (I18N_U_GC_ND_MASK|I18N_U_GC_NL_MASK|I18N_U_GC_NO_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (N Numbers). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
136 #define I18N_U_GC_Z_MASK (I18N_U_GC_ZS_MASK|I18N_U_GC_ZL_MASK|I18N_U_GC_ZP_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (Z Separators). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
137 #define I18N_U_GC_C_MASK (I18N_U_GC_CN_MASK|I18N_U_GC_CC_MASK|I18N_U_GC_CF_MASK|I18N_U_GC_CO_MASK|I18N_U_GC_CS_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (C Others). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
138 #define I18N_U_GC_P_MASK (I18N_U_GC_PD_MASK|I18N_U_GC_PS_MASK|I18N_U_GC_PE_MASK|I18N_U_GC_PC_MASK|I18N_U_GC_PO_MASK|I18N_U_GC_PI_MASK|I18N_U_GC_PF_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (P Punctuation). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
139 #define I18N_U_GC_S_MASK (I18N_U_GC_SM_MASK|I18N_U_GC_SC_MASK|I18N_U_GC_SK_MASK|I18N_U_GC_SO_MASK) /**<Mask constant for multiple #i18n_uchar_category_e bits (S Symbols). @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
141 #define I18N_U_NO_NUMERIC_VALUE ((double)-123456789.) /**<Special value that is returned by i18n_uchar_get_numeric_value()(not implemented yet) when no numeric value is defined for a code point. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
143 #define I18N_U_GET_GC_MASK(c) I18N_U_MASK(u_charType(c)) /**<Get a single-bit bit set for the general category of a character. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif */
146 * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
147 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
150 #define I18N_U_FOLD_CASE_DEFAULT 0
153 * @brief Option value for case folding: \n
154 * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
155 * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
156 * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
157 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
159 #define I18N_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
163 * @brief DONE is returned by i18n_usearch_previous() and i18n_usearch_next() after all valid matches have been returned,
164 * and by, i18n_usearch_first() and i18n_usearch_last() if there are no matches at all.
165 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
167 #define I18N_USEARCH_DONE -1
170 #if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
171 # ifdef __STDC_ISO_10646__
172 # if (U_SIZEOF_WCHAR_T==2)
173 # define U_WCHAR_IS_UTF16
174 # elif (U_SIZEOF_WCHAR_T==4)
175 # define U_WCHAR_IS_UTF32
177 # elif defined __UCS2__
178 # if (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400) && (U_SIZEOF_WCHAR_T==2)
179 # define U_WCHAR_IS_UTF16
181 # elif defined(__UCS4__) || (U_PLATFORM == U_PF_OS400 && defined(__UTF32__))
182 # if (U_SIZEOF_WCHAR_T==4)
183 # define U_WCHAR_IS_UTF32
185 # elif U_PLATFORM_IS_DARWIN_BASED || (U_SIZEOF_WCHAR_T==4 && U_PLATFORM_IS_LINUX_BASED)
186 # define U_WCHAR_IS_UTF32
187 # elif U_PLATFORM_HAS_WIN32_API
188 # define U_WCHAR_IS_UTF16
191 #define U_SIZEOF_UCHAR 2
195 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
197 #if defined(UCHAR_TYPE)
198 typedef UCHAR_TYPE i18n_uchar;
199 /* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-C++11 callers
200 typedef char16_t i18n_uchar; */
201 #elif U_SIZEOF_WCHAR_T==2
202 typedef wchar_t i18n_uchar;
203 #elif defined(__CHAR16_TYPE__)
204 typedef __CHAR16_TYPE__ i18n_uchar;
206 typedef uint16_t i18n_uchar;
211 * @brief i18n_uchar32.
212 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
214 typedef int32_t i18n_uchar32;
217 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
219 typedef int8_t i18n_ubool;
222 * @brief Enumeration of constants for Unicode properties.
223 * The properties APIs are intended to reflect Unicode properties as defined in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
224 * For details about the properties see http://www.unicode.org/ucd/ . For names of Unicode properties see the UCD file PropertyAliases.txt.
226 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
229 I18N_UCHAR_ALPHABETIC = 0, /**< */
231 I18N_UCHAR_BINARY_START = I18N_UCHAR_ALPHABETIC, /**< */
232 I18N_UCHAR_ASCII_HEX_DIGIT, /**< */
233 I18N_UCHAR_BIDI_CONTROL, /**< */
234 I18N_UCHAR_BIDI_MIRRORED, /**< */
235 I18N_UCHAR_DASH, /**< */
236 I18N_UCHAR_DEFAULT_IGNORABLE_CODE_POINT, /**< */
237 I18N_UCHAR_DEPRECATED, /**< */
238 I18N_UCHAR_DIACRITIC, /**< */
239 I18N_UCHAR_EXTENDER, /**< */
240 I18N_UCHAR_FULL_COMPOSITION_EXCLUSION, /**< */
241 I18N_UCHAR_GRAPHEME_BASE, /**< */
242 I18N_UCHAR_GRAPHEME_EXTEND, /**< */
243 I18N_UCHAR_GRAPHEME_LINK, /**< */
244 I18N_UCHAR_HEX_DIGIT, /**< */
245 I18N_UCHAR_HYPHEN, /**< */
246 I18N_UCHAR_ID_CONTINUE, /**< */
247 I18N_UCHAR_ID_START, /**< */
248 I18N_UCHAR_IDEOGRAPHIC, /**< */
249 I18N_UCHAR_IDS_BINARY_OPERATOR, /**< */
250 I18N_UCHAR_IDS_TRINARY_OPERATOR, /**< */
251 I18N_UCHAR_JOIN_CONTROL, /**< */
252 I18N_UCHAR_LOGICAL_ORDER_EXCEPTION, /**< */
253 I18N_UCHAR_LOWERCASE, /**< */
254 I18N_UCHAR_MATH, /**< */
255 I18N_UCHAR_NONCHARACTER_CODE_POINT, /**< */
256 I18N_UCHAR_QUOTATION_MARK, /**< */
257 I18N_UCHAR_RADICAL, /**< */
258 I18N_UCHAR_SOFT_DOTTED, /**< */
259 I18N_UCHAR_TERMINAL_PUNCTUATION, /**< */
260 I18N_UCHAR_UNIFIED_IDEOGRAPH, /**< */
261 I18N_UCHAR_UPPERCASE, /**< */
262 I18N_UCHAR_WHITE_SPACE, /**< */
263 I18N_UCHAR_XID_CONTINUE, /**< */
264 I18N_UCHAR_XID_START, /**< */
265 I18N_UCHAR_CASE_SENSITIVE, /**< */
266 I18N_UCHAR_S_TERM, /**< */
267 I18N_UCHAR_VARIATION_SELECTOR, /**< */
268 I18N_UCHAR_NFD_INERT, /**< */
269 I18N_UCHAR_NFKD_INERT, /**< */
270 I18N_UCHAR_NFC_INERT, /**< */
271 I18N_UCHAR_NFKC_INERT, /**< */
272 I18N_UCHAR_SEGMENT_STARTER, /**< */
273 I18N_UCHAR_PATTERN_SYNTAX, /**< */
274 I18N_UCHAR_PATTERN_WHITE_SPACE, /**< */
275 I18N_UCHAR_POSIX_ALNUM, /**< */
276 I18N_UCHAR_POSIX_BLANK, /**< */
277 I18N_UCHAR_POSIX_GRAPH, /**< */
278 I18N_UCHAR_POSIX_PRINT, /**< */
279 I18N_UCHAR_POSIX_XDIGIT, /**< */
280 I18N_UCHAR_CASED, /**< */
281 I18N_UCHAR_CASE_IGNORABLE, /**< */
282 I18N_UCHAR_CHANGES_WHEN_LOWERCASED, /**< */
283 I18N_UCHAR_CHANGES_WHEN_UPPERCASED, /**< */
284 I18N_UCHAR_CHANGES_WHEN_TITLECASED, /**< */
285 I18N_UCHAR_CHANGES_WHEN_CASEFOLDED, /**< */
286 I18N_UCHAR_CHANGES_WHEN_CASEMAPPED, /**< */
287 I18N_UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED, /**< */
288 I18N_UCHAR_BINARY_LIMIT, /**< */
290 I18N_UCHAR_BIDI_CLASS = 0x1000, /**< */
292 I18N_UCHAR_INT_START = I18N_UCHAR_BIDI_CLASS, /**< */
293 I18N_UCHAR_BLOCK, /**< */
294 I18N_UCHAR_CANONICAL_COMBINING_CLASS, /**< */
295 I18N_UCHAR_DECOMPOSITION_TYPE, /**< */
296 I18N_UCHAR_EAST_ASIAN_WIDTH, /**< */
297 I18N_UCHAR_GENERAL_CATEGORY, /**< */
298 I18N_UCHAR_JOINING_GROUP, /**< */
299 I18N_UCHAR_JOINING_TYPE, /**< */
300 I18N_UCHAR_LINE_BREAK, /**< */
301 I18N_UCHAR_NUMERIC_TYPE, /**< */
302 I18N_UCHAR_SCRIPT, /**< */
303 I18N_UCHAR_HANGUL_SYLLABLE_TYPE, /**< */
304 I18N_UCHAR_NFD_QUICK_CHECK, /**< */
305 I18N_UCHAR_NFKD_QUICK_CHECK, /**< */
306 I18N_UCHAR_NFC_QUICK_CHECK, /**< */
307 I18N_UCHAR_NFKC_QUICK_CHECK, /**< */
308 I18N_UCHAR_LEAD_CANONICAL_COMBINING_CLASS, /**< */
309 I18N_UCHAR_TRAIL_CANONICAL_COMBINING_CLASS, /**< */
310 I18N_UCHAR_GRAPHEME_CLUSTER_BREAK, /**< */
311 I18N_UCHAR_SENTENCE_BREAK, /**< */
312 I18N_UCHAR_WORD_BREAK, /**< */
313 I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE, /**< */
314 I18N_UCHAR_INT_LIMIT, /**< */
316 I18N_UCHAR_GENERAL_CATEGORY_MASK = 0x2000, /**< */
318 I18N_UCHAR_MASK_START = I18N_UCHAR_GENERAL_CATEGORY_MASK, /**< */
319 I18N_UCHAR_MASK_LIMIT, /**< */
321 I18N_UCHAR_NUMERIC_VALUE = 0x3000, /**< */
322 I18N_UCHAR_DOUBLE_START = I18N_UCHAR_NUMERIC_VALUE, /**< */
323 I18N_UCHAR_DOUBLE_LIMIT, /**< */
325 I18N_UCHAR_AGE = 0x4000, /**< */
326 I18N_UCHAR_STRING_START = I18N_UCHAR_AGE, /**< */
327 I18N_UCHAR_BIDI_MIRRORING_GLYPH, /**< */
328 I18N_UCHAR_CASE_FOLDING, /**< */
330 I18N_UCHAR_LOWERCASE_MAPPING = 0x4004, /**< */
331 I18N_UCHAR_NAME, /**< */
332 I18N_UCHAR_SIMPLE_CASE_FOLDING, /**< */
333 I18N_UCHAR_SIMPLE_LOWERCASE_MAPPING, /**< */
334 I18N_UCHAR_SIMPLE_TITLECASE_MAPPING, /**< */
335 I18N_UCHAR_SIMPLE_UPPERCASE_MAPPING, /**< */
336 I18N_UCHAR_TITLECASE_MAPPING, /**< */
338 I18N_UCHAR_UPPERCASE_MAPPING = 0x400C, /**< */
339 I18N_UCHAR_BIDI_PAIRED_BRACKET, /**< */
340 I18N_UCHAR_STRING_LIMIT, /**< */
342 I18N_UCHAR_SCRIPT_EXTENSIONS = 0x7000, /**< */
343 I18N_UCHAR_OTHER_PROPERTY_START = I18N_UCHAR_SCRIPT_EXTENSIONS, /**< */
344 I18N_UCHAR_OTHER_PROPERTY_LIMIT, /**< */
345 I18N_UCHAR_INVALID_CODE = -1 /**< */
346 } i18n_uchar_uproperty_e;
349 * @brief Constants for Unicode blocks, see the Unicode Data file Blocks.txt.
350 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
354 I18N_UCHAR_UBLOCK_NO_BLOCK, /**< */
355 I18N_UCHAR_UBLOCK_BASIC_LATIN, /**< */
356 I18N_UCHAR_UBLOCK_LATIN_1_SUPPLEMENT, /**< */
357 I18N_UCHAR_UBLOCK_LATIN_EXTENDED_A, /**< */
358 I18N_UCHAR_UBLOCK_LATIN_EXTENDED_B, /**< */
359 I18N_UCHAR_UBLOCK_IPA_EXTENSIONS, /**< */
360 I18N_UCHAR_UBLOCK_SPACING_MODIFIER_LETTERS, /**< */
361 I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS, /**< */
362 I18N_UCHAR_UBLOCK_GREEK, /**< */
363 I18N_UCHAR_UBLOCK_CYRILLIC, /**< */
364 I18N_UCHAR_UBLOCK_ARMENIAN, /**< */
365 I18N_UCHAR_UBLOCK_HEBREW, /**< */
366 I18N_UCHAR_UBLOCK_ARABIC, /**< */
367 I18N_UCHAR_UBLOCK_SYRIAC, /**< */
368 I18N_UCHAR_UBLOCK_THAANA, /**< */
369 I18N_UCHAR_UBLOCK_DEVANAGARI, /**< */
370 I18N_UCHAR_UBLOCK_BENGALI, /**< */
371 I18N_UCHAR_UBLOCK_GURMUKHI, /**< */
372 I18N_UCHAR_UBLOCK_GUJARATI, /**< */
373 I18N_UCHAR_UBLOCK_ORIYA, /**< */
374 I18N_UCHAR_UBLOCK_TAMIL, /**< */
375 I18N_UCHAR_UBLOCK_TELUGU, /**< */
376 I18N_UCHAR_UBLOCK_KANNADA, /**< */
377 I18N_UCHAR_UBLOCK_MALAYALAM, /**< */
378 I18N_UCHAR_UBLOCK_SINHALA, /**< */
379 I18N_UCHAR_UBLOCK_THAI, /**< */
380 I18N_UCHAR_UBLOCK_LAO, /**< */
381 I18N_UCHAR_UBLOCK_TIBETAN, /**< */
382 I18N_UCHAR_UBLOCK_MYANMAR, /**< */
383 I18N_UCHAR_UBLOCK_GEORGIAN, /**< */
384 I18N_UCHAR_UBLOCK_HANGUL_JAMO, /**< */
385 I18N_UCHAR_UBLOCK_ETHIOPIC, /**< */
386 I18N_UCHAR_UBLOCK_CHEROKEE, /**< */
387 I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS, /**< */
388 I18N_UCHAR_UBLOCK_OGHAM, /**< */
389 I18N_UCHAR_UBLOCK_RUNIC, /**< */
390 I18N_UCHAR_UBLOCK_KHMER, /**< */
391 I18N_UCHAR_UBLOCK_MONGOLIAN, /**< */
392 I18N_UCHAR_UBLOCK_LATIN_EXTENDED_ADDITIONAL, /**< */
393 I18N_UCHAR_UBLOCK_GREEK_EXTENDED, /**< */
394 I18N_UCHAR_UBLOCK_GENERAL_PUNCTUATION, /**< */
395 I18N_UCHAR_UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS, /**< */
396 I18N_UCHAR_UBLOCK_CURRENCY_SYMBOLS, /**< */
397 I18N_UCHAR_UBLOCK_COMBINING_MARKS_FOR_SYMBOLS, /**< */
398 I18N_UCHAR_UBLOCK_LETTERLIKE_SYMBOLS, /**< */
399 I18N_UCHAR_UBLOCK_NUMBER_FORMS, /**< */
400 I18N_UCHAR_UBLOCK_ARROWS, /**< */
401 I18N_UCHAR_UBLOCK_MATHEMATICAL_OPERATORS, /**< */
402 I18N_UCHAR_UBLOCK_MISCELLANEOUS_TECHNICAL, /**< */
403 I18N_UCHAR_UBLOCK_CONTROL_PICTURES, /**< */
404 I18N_UCHAR_UBLOCK_OPTICAL_CHARACTER_RECOGNITION, /**< */
405 I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERICS, /**< */
406 I18N_UCHAR_UBLOCK_BOX_DRAWING, /**< */
407 I18N_UCHAR_UBLOCK_BLOCK_ELEMENTS, /**< */
408 I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES, /**< */
409 I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS, /**< */
410 I18N_UCHAR_UBLOCK_DINGBATS, /**< */
411 I18N_UCHAR_UBLOCK_BRAILLE_PATTERNS, /**< */
412 I18N_UCHAR_UBLOCK_CJK_RADICALS_SUPPLEMENT, /**< */
413 I18N_UCHAR_UBLOCK_KANGXI_RADICALS, /**< */
414 I18N_UCHAR_UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS, /**< */
415 I18N_UCHAR_UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION, /**< */
416 I18N_UCHAR_UBLOCK_HIRAGANA, /**< */
417 I18N_UCHAR_UBLOCK_KATAKANA, /**< */
418 I18N_UCHAR_UBLOCK_BOPOMOFO, /**< */
419 I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO, /**< */
420 I18N_UCHAR_UBLOCK_KANBUN, /**< */
421 I18N_UCHAR_UBLOCK_BOPOMOFO_EXTENDED, /**< */
422 I18N_UCHAR_UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS, /**< */
423 I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY, /**< */
424 I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A, /**< */
425 I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS, /**< */
426 I18N_UCHAR_UBLOCK_YI_SYLLABLES, /**< */
427 I18N_UCHAR_UBLOCK_YI_RADICALS, /**< */
428 I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES, /**< */
429 I18N_UCHAR_UBLOCK_HIGH_SURROGATES, /**< */
430 I18N_UCHAR_UBLOCK_HIGH_PRIVATE_USE_SURROGATES, /**< */
431 I18N_UCHAR_UBLOCK_LOW_SURROGATES, /**< */
432 I18N_UCHAR_UBLOCK_PRIVATE_USE_AREA, /**< */
433 I18N_UCHAR_UBLOCK_PRIVATE_USE, /**< */
434 I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, /**< */
436 I18N_UCHAR_UBLOCK_ALPHABETIC_PRESENTATION_FORMS, /**< */
437 I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_A, /**< */
438 I18N_UCHAR_UBLOCK_COMBINING_HALF_MARKS, /**< */
439 I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_FORMS, /**< */
440 I18N_UCHAR_UBLOCK_SMALL_FORM_VARIANTS, /**< */
441 I18N_UCHAR_UBLOCK_ARABIC_PRESENTATION_FORMS_B, /**< */
442 I18N_UCHAR_UBLOCK_SPECIALS, /**< */
443 I18N_UCHAR_UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, /**< */
444 I18N_UCHAR_UBLOCK_OLD_ITALIC, /**< */
445 I18N_UCHAR_UBLOCK_GOTHIC, /**< */
446 I18N_UCHAR_UBLOCK_DESERET, /**< */
447 I18N_UCHAR_UBLOCK_BYZANTINE_MUSICAL_SYMBOLS, /**< */
448 I18N_UCHAR_UBLOCK_MUSICAL_SYMBOLS, /**< */
449 I18N_UCHAR_UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS, /**< */
450 I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, /**< */
451 I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT, /**< */
452 I18N_UCHAR_UBLOCK_TAGS, /**< */
453 I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENT, /**< */
454 I18N_UCHAR_UBLOCK_CYRILLIC_SUPPLEMENTARY, /**< */
455 I18N_UCHAR_UBLOCK_TAGALOG, /**< */
456 I18N_UCHAR_UBLOCK_HANUNOO, /**< */
457 I18N_UCHAR_UBLOCK_BUHID, /**< */
458 I18N_UCHAR_UBLOCK_TAGBANWA, /**< */
459 I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A, /**< */
460 I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_A, /**< */
461 I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_B, /**< */
462 I18N_UCHAR_UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B, /**< */
463 I18N_UCHAR_UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS, /**< */
464 I18N_UCHAR_UBLOCK_KATAKANA_PHONETIC_EXTENSIONS, /**< */
465 I18N_UCHAR_UBLOCK_VARIATION_SELECTORS, /**< */
466 I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A, /**< */
467 I18N_UCHAR_UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B, /**< */
468 I18N_UCHAR_UBLOCK_LIMBU, /**< */
469 I18N_UCHAR_UBLOCK_TAI_LE, /**< */
470 I18N_UCHAR_UBLOCK_KHMER_SYMBOLS, /**< */
471 I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS, /**< */
472 I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS, /**< */
473 I18N_UCHAR_UBLOCK_YIJING_HEXAGRAM_SYMBOLS, /**< */
474 I18N_UCHAR_UBLOCK_LINEAR_B_SYLLABARY, /**< */
475 I18N_UCHAR_UBLOCK_LINEAR_B_IDEOGRAMS, /**< */
476 I18N_UCHAR_UBLOCK_AEGEAN_NUMBERS, /**< */
477 I18N_UCHAR_UBLOCK_UGARITIC, /**< */
478 I18N_UCHAR_UBLOCK_SHAVIAN, /**< */
479 I18N_UCHAR_UBLOCK_OSMANYA, /**< */
480 I18N_UCHAR_UBLOCK_CYPRIOT_SYLLABARY, /**< */
481 I18N_UCHAR_UBLOCK_TAI_XUAN_JING_SYMBOLS, /**< */
482 I18N_UCHAR_UBLOCK_VARIATION_SELECTORS_SUPPLEMENT, /**< */
483 I18N_UCHAR_UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION, /**< */
484 I18N_UCHAR_UBLOCK_ANCIENT_GREEK_NUMBERS, /**< */
485 I18N_UCHAR_UBLOCK_ARABIC_SUPPLEMENT, /**< */
486 I18N_UCHAR_UBLOCK_BUGINESE, /**< */
487 I18N_UCHAR_UBLOCK_CJK_STROKES, /**< */
488 I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT, /**< */
489 I18N_UCHAR_UBLOCK_COPTIC, /**< */
490 I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED, /**< */
491 I18N_UCHAR_UBLOCK_ETHIOPIC_SUPPLEMENT, /**< */
492 I18N_UCHAR_UBLOCK_GEORGIAN_SUPPLEMENT, /**< */
493 I18N_UCHAR_UBLOCK_GLAGOLITIC, /**< */
494 I18N_UCHAR_UBLOCK_KHAROSHTHI, /**< */
495 I18N_UCHAR_UBLOCK_MODIFIER_TONE_LETTERS, /**< */
496 I18N_UCHAR_UBLOCK_NEW_TAI_LUE, /**< */
497 I18N_UCHAR_UBLOCK_OLD_PERSIAN, /**< */
498 I18N_UCHAR_UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT, /**< */
499 I18N_UCHAR_UBLOCK_SUPPLEMENTAL_PUNCTUATION, /**< */
500 I18N_UCHAR_UBLOCK_SYLOTI_NAGRI, /**< */
501 I18N_UCHAR_UBLOCK_TIFINAGH, /**< */
502 I18N_UCHAR_UBLOCK_VERTICAL_FORMS, /**< */
503 I18N_UCHAR_UBLOCK_NKO, /**< */
504 I18N_UCHAR_UBLOCK_BALINESE, /**< */
505 I18N_UCHAR_UBLOCK_LATIN_EXTENDED_C, /**< */
506 I18N_UCHAR_UBLOCK_LATIN_EXTENDED_D, /**< */
507 I18N_UCHAR_UBLOCK_PHAGS_PA, /**< */
508 I18N_UCHAR_UBLOCK_PHOENICIAN, /**< */
509 I18N_UCHAR_UBLOCK_CUNEIFORM, /**< */
510 I18N_UCHAR_UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION, /**< */
511 I18N_UCHAR_UBLOCK_COUNTING_ROD_NUMERALS, /**< */
512 I18N_UCHAR_UBLOCK_SUNDANESE, /**< */
513 I18N_UCHAR_UBLOCK_LEPCHA, /**< */
514 I18N_UCHAR_UBLOCK_OL_CHIKI, /**< */
515 I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_A, /**< */
516 I18N_UCHAR_UBLOCK_VAI, /**< */
517 I18N_UCHAR_UBLOCK_CYRILLIC_EXTENDED_B, /**< */
518 I18N_UCHAR_UBLOCK_SAURASHTRA, /**< */
519 I18N_UCHAR_UBLOCK_KAYAH_LI, /**< */
520 I18N_UCHAR_UBLOCK_REJANG, /**< */
521 I18N_UCHAR_UBLOCK_CHAM, /**< */
522 I18N_UCHAR_UBLOCK_ANCIENT_SYMBOLS, /**< */
523 I18N_UCHAR_UBLOCK_PHAISTOS_DISC, /**< */
524 I18N_UCHAR_UBLOCK_LYCIAN, /**< */
525 I18N_UCHAR_UBLOCK_CARIAN, /**< */
526 I18N_UCHAR_UBLOCK_LYDIAN, /**< */
527 I18N_UCHAR_UBLOCK_MAHJONG_TILES, /**< */
528 I18N_UCHAR_UBLOCK_DOMINO_TILES, /**< */
529 I18N_UCHAR_UBLOCK_SAMARITAN, /**< */
530 I18N_UCHAR_UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED, /**< */
531 I18N_UCHAR_UBLOCK_TAI_THAM, /**< */
532 I18N_UCHAR_UBLOCK_VEDIC_EXTENSIONS, /**< */
533 I18N_UCHAR_UBLOCK_LISU, /**< */
534 I18N_UCHAR_UBLOCK_BAMUM, /**< */
535 I18N_UCHAR_UBLOCK_COMMON_INDIC_NUMBER_FORMS, /**< */
536 I18N_UCHAR_UBLOCK_DEVANAGARI_EXTENDED, /**< */
537 I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A, /**< */
538 I18N_UCHAR_UBLOCK_JAVANESE, /**< */
539 I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_A, /**< */
540 I18N_UCHAR_UBLOCK_TAI_VIET, /**< */
541 I18N_UCHAR_UBLOCK_MEETEI_MAYEK, /**< */
542 I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B, /**< */
543 I18N_UCHAR_UBLOCK_IMPERIAL_ARAMAIC, /**< */
544 I18N_UCHAR_UBLOCK_OLD_SOUTH_ARABIAN, /**< */
545 I18N_UCHAR_UBLOCK_AVESTAN, /**< */
546 I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PARTHIAN, /**< */
547 I18N_UCHAR_UBLOCK_INSCRIPTIONAL_PAHLAVI, /**< */
548 I18N_UCHAR_UBLOCK_OLD_TURKIC, /**< */
549 I18N_UCHAR_UBLOCK_RUMI_NUMERAL_SYMBOLS, /**< */
550 I18N_UCHAR_UBLOCK_KAITHI, /**< */
551 I18N_UCHAR_UBLOCK_EGYPTIAN_HIEROGLYPHS, /**< */
552 I18N_UCHAR_UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT, /**< */
553 I18N_UCHAR_UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT, /**< */
554 I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C, /**< */
555 I18N_UCHAR_UBLOCK_MANDAIC, /**< */
556 I18N_UCHAR_UBLOCK_BATAK, /**< */
557 I18N_UCHAR_UBLOCK_ETHIOPIC_EXTENDED_A, /**< */
558 I18N_UCHAR_UBLOCK_BRAHMI, /**< */
559 I18N_UCHAR_UBLOCK_BAMUM_SUPPLEMENT, /**< */
560 I18N_UCHAR_UBLOCK_KANA_SUPPLEMENT, /**< */
561 I18N_UCHAR_UBLOCK_PLAYING_CARDS, /**< */
562 I18N_UCHAR_UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS, /**< */
563 I18N_UCHAR_UBLOCK_EMOTICONS, /**< */
564 I18N_UCHAR_UBLOCK_TRANSPORT_AND_MAP_SYMBOLS, /**< */
565 I18N_UCHAR_UBLOCK_ALCHEMICAL_SYMBOLS, /**< */
566 I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D, /**< */
567 I18N_UCHAR_UBLOCK_COUNT, /**< */
568 I18N_UCHAR_UBLOCK_INVALID_CODE = -1 /**< */
569 } i18n_uchar_ublock_code_e;
572 * @brief Enumeration for the language directional property of a character set.
573 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
578 * Note: UCharDirection constants and their API comments are parsed by preparseucd.py.
579 * It matches pairs of lines like
580 * / ** <Unicode 1..3-letter Bidi_Class value> comment... * /
581 * U_<[A-Z_]+> = <integer>,
583 I18N_UCHAR_U_LEFT_TO_RIGHT, /**< L */
584 I18N_UCHAR_U_RIGHT_TO_LEFT, /**< R */
585 I18N_UCHAR_U_EUROPEAN_NUMBER, /**< EN */
586 I18N_UCHAR_U_EUROPEAN_NUMBER_SEPARATOR, /**< ES */
587 I18N_UCHAR_U_EUROPEAN_NUMBER_TERMINATOR, /**< ET */
588 I18N_UCHAR_U_ARABIC_NUMBER, /**< AN */
589 I18N_UCHAR_U_COMMON_NUMBER_SEPARATOR, /**< CS */
590 I18N_UCHAR_U_BLOCK_SEPARATOR, /**< B */
591 I18N_UCHAR_U_SEGMENT_SEPARATOR, /**< S */
592 I18N_UCHAR_U_WHITE_SPACE_NEUTRAL, /**< WS */
593 I18N_UCHAR_U_OTHER_NEUTRAL, /**< ON */
594 I18N_UCHAR_U_LEFT_TO_RIGHT_EMBEDDING, /**< LRE */
595 I18N_UCHAR_U_LEFT_TO_RIGHT_OVERRIDE, /**< LRO */
596 I18N_UCHAR_U_RIGHT_TO_LEFT_ARABIC, /**< AL */
597 I18N_UCHAR_U_RIGHT_TO_LEFT_EMBEDDING, /**< RLE */
598 I18N_UCHAR_U_RIGHT_TO_LEFT_OVERRIDE, /**< RLO */
599 I18N_UCHAR_U_POP_DIRECTIONAL_FORMAT, /**< PDF */
600 I18N_UCHAR_U_DIR_NON_SPACING_MARK, /**< NSM */
601 I18N_UCHAR_U_BOUNDARY_NEUTRAL, /**< BN */
602 I18N_UCHAR_U_CHAR_DIRECTION_COUNT /**< */
603 } i18n_uchar_direction_e;
606 * @brief Enumeration for Decomposition Type constants.
607 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
611 * Note: UDecompositionType constants are parsed by preparseucd.py.
612 * It matches lines like
613 * U_DT_<Unicode Decomposition_Type value name>
615 I18N_UCHAR_U_DT_NONE, /**< [none] */
616 I18N_UCHAR_U_DT_CANONICAL, /**< [can] */
617 I18N_UCHAR_U_DT_COMPAT, /**< [com] */
618 I18N_UCHAR_U_DT_CIRCLE, /**< [enc] */
619 I18N_UCHAR_U_DT_FINAL, /**< [fin] */
620 I18N_UCHAR_U_DT_FONT, /**< [font] */
621 I18N_UCHAR_U_DT_FRACTION, /**< [fra] */
622 I18N_UCHAR_U_DT_INITIAL, /**< [init] */
623 I18N_UCHAR_U_DT_ISOLATED, /**< [iso] */
624 I18N_UCHAR_U_DT_MEDIAL, /**< [med] */
625 I18N_UCHAR_U_DT_NARROW, /**< [nar] */
626 I18N_UCHAR_U_DT_NOBREAK, /**< [nb] */
627 I18N_UCHAR_U_DT_SMALL, /**< [sml] */
628 I18N_UCHAR_U_DT_SQUARE, /**< [sqr] */
629 I18N_UCHAR_U_DT_SUB, /**< [sub] */
630 I18N_UCHAR_U_DT_SUPER, /**< [sup] */
631 I18N_UCHAR_U_DT_VERTICAL, /**< [vert] */
632 I18N_UCHAR_U_DT_WIDE, /**< [wide] */
633 I18N_UCHAR_U_DT_COUNT /**< 18 */
634 } i18n_uchar_u_decomposition_type_e;
637 * @brief Enumeration for East Asian Width constants.
638 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
641 I18N_UCHAR_U_EA_NEUTRAL, /**< [N] */
642 I18N_UCHAR_U_EA_AMBIGUOUS, /**< [A] */
643 I18N_UCHAR_U_EA_HALFWIDTH, /**< [H] */
644 I18N_UCHAR_U_EA_FULLWIDTH, /**< [F] */
645 I18N_UCHAR_U_EA_NARROW, /**< [Na] */
646 I18N_UCHAR_U_EA_WIDE, /**< [W] */
647 I18N_UCHAR_U_EA_COUNT
648 } i18n_uchar_u_east_asian_width_e;
651 * @brief Enumeration for Unicode general category types.
652 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
655 I18N_UCHAR_U_UNASSIGNED, /**< Non-category for unassigned and non-character code points */
656 I18N_UCHAR_U_GENERAL_OTHER_TYPES = 0, /**< Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as #I18N_UCHAR_U_UNASSIGNED!) */
657 I18N_UCHAR_U_UPPERCASE_LETTER, /**< Lu */
658 I18N_UCHAR_U_LOWERCASE_LETTER, /**< Ll */
659 I18N_UCHAR_U_TITLECASE_LETTER, /**< Lt */
660 I18N_UCHAR_U_MODIFIER_LETTER, /**< Lm */
661 I18N_UCHAR_U_OTHER_LETTER, /**< Lo */
662 I18N_UCHAR_U_NON_SPACING_MARK, /**< Mn */
663 I18N_UCHAR_U_ENCLOSING_MARK, /**< Me */
664 I18N_UCHAR_U_COMBINING_SPACING_MARK, /**< Mc */
665 I18N_UCHAR_U_DECIMAL_DIGIT_NUMBER, /**< Nd */
666 I18N_UCHAR_U_LETTER_NUMBER, /**< Nl */
667 I18N_UCHAR_U_OTHER_NUMBER, /**< No */
668 I18N_UCHAR_U_SPACE_SEPARATOR, /**< Zs */
669 I18N_UCHAR_U_LINE_SEPARATOR, /**< Zl */
670 I18N_UCHAR_U_PARAGRAPH_SEPARATOR, /**< Zp */
671 I18N_UCHAR_U_CONTROL_CHAR, /**< Cc */
672 I18N_UCHAR_U_FORMAT_CHAR, /**< Cf */
673 I18N_UCHAR_U_PRIVATE_USE_CHAR, /**< Co */
674 I18N_UCHAR_U_SURROGATE, /**< Cs */
675 I18N_UCHAR_U_DASH_PUNCTUATION, /**< Pd */
676 I18N_UCHAR_U_START_PUNCTUATION, /**< Ps */
677 I18N_UCHAR_U_END_PUNCTUATION, /**< Pe */
678 I18N_UCHAR_U_CONNECTOR_PUNCTUATION, /**< Pc */
679 I18N_UCHAR_U_OTHER_PUNCTUATION, /**< Po */
680 I18N_UCHAR_U_MATH_SYMBOL, /**< Sm */
681 I18N_UCHAR_U_CURRENCY_SYMBOL, /**< Sc */
682 I18N_UCHAR_U_MODIFIER_SYMBOL, /**< Sk */
683 I18N_UCHAR_U_OTHER_SYMBOL, /**< So */
684 I18N_UCHAR_U_INITIAL_PUNCTUATION, /**< Pi */
685 I18N_UCHAR_U_FINAL_PUNCTUATION, /**< Pf */
686 I18N_UCHAR_U_CHAR_CATEGORY_COUNT /**< One higher than the last enum #i18n_uchar_category_e constant */
687 } i18n_uchar_category_e;
690 * @brief Enumeration for Joining Group constants.
691 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
695 * Note: UJoiningGroup constants are parsed by preparseucd.py.
696 * It matches lines like
697 * U_JG_<Unicode Joining_Group value name>
699 I18N_UCHAR_U_JG_NO_JOINING_GROUP, /**< */
700 I18N_UCHAR_U_JG_AIN, /**< */
701 I18N_UCHAR_U_JG_ALAPH, /**< */
702 I18N_UCHAR_U_JG_ALEF, /**< */
703 I18N_UCHAR_U_JG_BEH, /**< */
704 I18N_UCHAR_U_JG_BETH, /**< */
705 I18N_UCHAR_U_JG_DAL, /**< */
706 I18N_UCHAR_U_JG_DALATH_RISH, /**< */
707 I18N_UCHAR_U_JG_E, /**< */
708 I18N_UCHAR_U_JG_FEH, /**< */
709 I18N_UCHAR_U_JG_FINAL_SEMKATH, /**< */
710 I18N_UCHAR_U_JG_GAF, /**< */
711 I18N_UCHAR_U_JG_GAMAL, /**< */
712 I18N_UCHAR_U_JG_HAH, /**< */
713 I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL, /**< */
714 I18N_UCHAR_U_JG_HAMZA_ON_HEH_GOAL = I18N_UCHAR_U_JG_TEH_MARBUTA_GOAL, /**< */
715 I18N_UCHAR_U_JG_HE, /**< */
716 I18N_UCHAR_U_JG_HEH, /**< */
717 I18N_UCHAR_U_JG_HEH_GOAL, /**< */
718 I18N_UCHAR_U_JG_HETH, /**< */
719 I18N_UCHAR_U_JG_KAF, /**< */
720 I18N_UCHAR_U_JG_KAPH, /**< */
721 I18N_UCHAR_U_JG_KNOTTED_HEH, /**< */
722 I18N_UCHAR_U_JG_LAM, /**< */
723 I18N_UCHAR_U_JG_LAMADH, /**< */
724 I18N_UCHAR_U_JG_MEEM, /**< */
725 I18N_UCHAR_U_JG_MIM, /**< */
726 I18N_UCHAR_U_JG_NOON, /**< */
727 I18N_UCHAR_U_JG_NUN, /**< */
728 I18N_UCHAR_U_JG_PE, /**< */
729 I18N_UCHAR_U_JG_QAF, /**< */
730 I18N_UCHAR_U_JG_QAPH, /**< */
731 I18N_UCHAR_U_JG_REH, /**< */
732 I18N_UCHAR_U_JG_REVERSED_PE, /**< */
733 I18N_UCHAR_U_JG_SAD, /**< */
734 I18N_UCHAR_U_JG_SADHE, /**< */
735 I18N_UCHAR_U_JG_SEEN, /**< */
736 I18N_UCHAR_U_JG_SEMKATH, /**< */
737 I18N_UCHAR_U_JG_SHIN, /**< */
738 I18N_UCHAR_U_JG_SWASH_KAF, /**< */
739 I18N_UCHAR_U_JG_SYRIAC_WAW, /**< */
740 I18N_UCHAR_U_JG_TAH, /**< */
741 I18N_UCHAR_U_JG_TAW, /**< */
742 I18N_UCHAR_U_JG_TEH_MARBUTA, /**< */
743 I18N_UCHAR_U_JG_TETH, /**< */
744 I18N_UCHAR_U_JG_WAW, /**< */
745 I18N_UCHAR_U_JG_YEH, /**< */
746 I18N_UCHAR_U_JG_YEH_BARREE, /**< */
747 I18N_UCHAR_U_JG_YEH_WITH_TAIL, /**< */
748 I18N_UCHAR_U_JG_YUDH, /**< */
749 I18N_UCHAR_U_JG_YUDH_HE, /**< */
750 I18N_UCHAR_U_JG_ZAIN, /**< */
751 I18N_UCHAR_U_JG_FE, /**< */
752 I18N_UCHAR_U_JG_KHAPH, /**< */
753 I18N_UCHAR_U_JG_ZHAIN, /**< */
754 I18N_UCHAR_U_JG_BURUSHASKI_YEH_BARREE, /**< */
755 I18N_UCHAR_U_JG_FARSI_YEH, /**< */
756 I18N_UCHAR_U_JG_NYA, /**< */
757 I18N_UCHAR_U_JG_ROHINGYA_YEH,
758 I18N_UCHAR_U_JG_COUNT /**< */
759 } i18n_uchar_u_joining_group_e;
762 * @brief Enumeration for Joining Type constants.
763 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
767 * Note: i18n_uchar_u_joining_type_e constants are parsed by preparseucd.py.
768 * It matches lines like
769 * U_JT_<Unicode Joining_Type value name>
771 I18N_UCHAR_U_JT_NON_JOINING, /**< [U] */
772 I18N_UCHAR_U_JT_JOIN_CAUSING, /**< [C] */
773 I18N_UCHAR_U_JT_DUAL_JOINING, /**< [D] */
774 I18N_UCHAR_U_JT_LEFT_JOINING, /**< [L] */
775 I18N_UCHAR_U_JT_RIGHT_JOINING, /**< [R] */
776 I18N_UCHAR_U_JT_TRANSPARENT, /**< [T] */
777 I18N_UCHAR_U_JT_COUNT /**< 6 */
778 } i18n_uchar_u_joining_type_e;
781 * @brief Enumeration for Line Break constants.
782 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
786 * Note: i18n_uchar_u_line_break_e constants are parsed by preparseucd.py.
787 * It matches lines like
788 * U_LB_<Unicode Line_Break value name>
790 I18N_UCHAR_U_LB_UNKNOWN, /**< [XX] */
791 I18N_UCHAR_U_LB_AMBIGUOUS, /**< [AI] */
792 I18N_UCHAR_U_LB_ALPHABETIC, /**< [AL] */
793 I18N_UCHAR_U_LB_BREAK_BOTH, /**< [B2] */
794 I18N_UCHAR_U_LB_BREAK_AFTER, /**< [BA] */
795 I18N_UCHAR_U_LB_BREAK_BEFORE, /**< [BB] */
796 I18N_UCHAR_U_LB_MANDATORY_BREAK, /**< [BK] */
797 I18N_UCHAR_U_LB_CONTINGENT_BREAK, /**< [CB] */
798 I18N_UCHAR_U_LB_CLOSE_PUNCTUATION, /**< [CL] */
799 I18N_UCHAR_U_LB_COMBINING_MARK, /**< [CM] */
800 I18N_UCHAR_U_LB_CARRIAGE_RETURN, /**< [CR] */
801 I18N_UCHAR_U_LB_EXCLAMATION, /**< [EX] */
802 I18N_UCHAR_U_LB_GLUE, /**< [GL] */
803 I18N_UCHAR_U_LB_HYPHEN, /**< [HY] */
804 I18N_UCHAR_U_LB_IDEOGRAPHIC, /**< [ID] */
805 I18N_UCHAR_U_LB_INSEPARABLE, /**< [IN] */
806 I18N_UCHAR_U_LB_INSEPERABLE = I18N_UCHAR_U_LB_INSEPARABLE,
807 I18N_UCHAR_U_LB_INFIX_NUMERIC, /**< [IS] */
808 I18N_UCHAR_U_LB_LINE_FEED, /**< [LF] */
809 I18N_UCHAR_U_LB_NONSTARTER, /**< [NS] */
810 I18N_UCHAR_U_LB_NUMERIC, /**< [NU] */
811 I18N_UCHAR_U_LB_OPEN_PUNCTUATION, /**< [OP] */
812 I18N_UCHAR_U_LB_POSTFIX_NUMERIC, /**< [PO] */
813 I18N_UCHAR_U_LB_PREFIX_NUMERIC, /**< [PR] */
814 I18N_UCHAR_U_LB_QUOTATION, /**< [QU] */
815 I18N_UCHAR_U_LB_COMPLEX_CONTEXT, /**< [SA] */
816 I18N_UCHAR_U_LB_SURROGATE, /**< [SG] */
817 I18N_UCHAR_U_LB_SPACE, /**< [SP] */
818 I18N_UCHAR_U_LB_BREAK_SYMBOLS, /**< [SY] */
819 I18N_UCHAR_U_LB_ZWSPACE, /**< [ZW] */
820 I18N_UCHAR_U_LB_NEXT_LINE, /**< [NL] */
821 I18N_UCHAR_U_LB_WORD_JOINER, /**< [WJ] */
822 I18N_UCHAR_U_LB_H2, /**< [H2] */
823 I18N_UCHAR_U_LB_H3, /**< [H3] */
824 I18N_UCHAR_U_LB_JL, /**< [JL] */
825 I18N_UCHAR_U_LB_JT, /**< [JT] */
826 I18N_UCHAR_U_LB_JV, /**< [JV] */
827 I18N_UCHAR_U_LB_CLOSE_PARENTHESIS, /**< [CP] */
828 I18N_UCHAR_U_LB_COUNT
829 } i18n_uchar_u_line_break_e;
832 * @brief Enumeration for Numeric Type constants.
833 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
837 * Note: i18n_uchar_u_numeric_type_e constants are parsed by preparseucd.py.
838 * It matches lines like
839 * U_NT_<Unicode Numeric_Type value name>
841 I18N_UCHAR_U_NT_NONE, /**< [None] */
842 I18N_UCHAR_U_NT_DECIMAL, /**< [de] */
843 I18N_UCHAR_U_NT_DIGIT, /**< [di] */
844 I18N_UCHAR_U_NT_NUMERIC, /**< [nu] */
845 I18N_UCHAR_U_NT_COUNT /**< */
846 } i18n_uchar_u_numeric_type_e;
849 * @brief Enumeration for Hangul Syllable Type constants.
850 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
854 * Note: i18n_uchar_u_hangul_syllable_type_e constants are parsed by preparseucd.py.
855 * It matches lines like
856 * U_HST_<Unicode Hangul_Syllable_Type value name>
858 I18N_UCHAR_U_HST_NOT_APPLICABLE, /**< [NA] */
859 I18N_UCHAR_U_HST_LEADING_JAMO, /**< [L] */
860 I18N_UCHAR_U_HST_VOWEL_JAMO, /**< [V] */
861 I18N_UCHAR_U_HST_TRAILING_JAMO, /**< [T] */
862 I18N_UCHAR_U_HST_LV_SYLLABLE, /**< [LV] */
863 I18N_UCHAR_U_HST_LVT_SYLLABLE, /**< [LVT] */
864 I18N_UCHAR_U_HST_COUNT /**< */
865 } i18n_uchar_u_hangul_syllable_type_e;
868 * @brief Enumeration for Sentence Break constants.
869 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
873 * Note: i18n_uchar_u_sentence_break_e constants are parsed by preparseucd.py.
874 * It matches lines like
875 * U_SB_<Unicode Sentence_Break value name>
877 I18N_UCHAR_U_SB_OTHER, /**< [XX] */
878 I18N_UCHAR_U_SB_ATERM, /**< [AT] */
879 I18N_UCHAR_U_SB_CLOSE, /**< [CL] */
880 I18N_UCHAR_U_SB_FORMAT, /**< [FO] */
881 I18N_UCHAR_U_SB_LOWER, /**< [LO] */
882 I18N_UCHAR_U_SB_NUMERIC, /**< [NU] */
883 I18N_UCHAR_U_SB_OLETTER, /**< [LE] */
884 I18N_UCHAR_U_SB_SEP, /**< [SE] */
885 I18N_UCHAR_U_SB_SP, /**< [SP] */
886 I18N_UCHAR_U_SB_STERM, /**< [ST] */
887 I18N_UCHAR_U_SB_UPPER, /**< [UP] */
888 I18N_UCHAR_U_SB_CR, /**< [CR] */
889 I18N_UCHAR_U_SB_EXTEND, /**< [EX] */
890 I18N_UCHAR_U_SB_LF, /**< [LF] */
891 I18N_UCHAR_U_SB_SCONTINUE, /**< [SC] */
892 I18N_UCHAR_U_SB_COUNT /**< */
893 } i18n_uchar_u_sentence_break_e;
896 * @brief Enumeration for Word Break constants.
897 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
901 * Note: i18n_uchar_u_word_break_values_e constants are parsed by preparseucd.py.
902 * It matches lines like
903 * U_WB_<Unicode Word_Break value name>
905 I18N_UCHAR_U_WB_OTHER, /**< [XX] */
906 I18N_UCHAR_U_WB_ALETTER, /**< [LE] */
907 I18N_UCHAR_U_WB_FORMAT, /**< [FO] */
908 I18N_UCHAR_U_WB_KATAKANA, /**< [KA] */
909 I18N_UCHAR_U_WB_MIDLETTER, /**< [ML] */
910 I18N_UCHAR_U_WB_MIDNUM, /**< [MN] */
911 I18N_UCHAR_U_WB_NUMERIC, /**< [NU] */
912 I18N_UCHAR_U_WB_EXTENDNUMLET, /**< [EX] */
913 I18N_UCHAR_U_WB_CR, /**< [CR] */
914 I18N_UCHAR_U_WB_EXTEND, /**< [Extend] */
915 I18N_UCHAR_U_WB_LF, /**< [LF] */
916 I18N_UCHAR_U_WB_MIDNUMLET, /**< [MB] */
917 I18N_UCHAR_U_WB_NEWLINE, /**< [NL] */
918 I18N_UCHAR_U_WB_COUNT /**< */
919 } i18n_uchar_u_word_break_values_e;
922 * @brief Enumeration for Grapheme Cluster Break constants.
923 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
927 * Note: i18n_uchar_u_grapheme_cluster_break_e constants are parsed by preparseucd.py.
928 * It matches lines like
929 * U_GCB_<Unicode Grapheme_Cluster_Break value name>
931 I18N_UCHAR_U_GCB_OTHER, /**< [XX] */
932 I18N_UCHAR_U_GCB_CONTROL, /**< [CN] */
933 I18N_UCHAR_U_GCB_CR, /**< [CR] */
934 I18N_UCHAR_U_GCB_EXTEND, /**< [EX] */
935 I18N_UCHAR_U_GCB_L, /**< [L] */
936 I18N_UCHAR_U_GCB_LF, /**< [LF] */
937 I18N_UCHAR_U_GCB_LV, /**< [LV] */
938 I18N_UCHAR_U_GCB_LVT, /**< [LVT] */
939 I18N_UCHAR_U_GCB_T, /**< [T] */
940 I18N_UCHAR_U_GCB_V, /**< [V] */
941 I18N_UCHAR_U_GCB_SPACING_MARK, /**< [SM] */
942 I18N_UCHAR_U_GCB_PREPEND, /**< [PP] */
943 I18N_UCHAR_UCHAR_U_GCB_COUNT /**< */
944 } i18n_uchar_u_grapheme_cluster_break_e;
952 * @addtogroup CAPI_BASE_UTILS_I18N_UCOLLATOR_MODULE
957 * @brief Structure representing a collator object instance.
958 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
960 typedef void *i18n_ucollator_h;
963 * @brief Enumeration for attributes that collation service understands.
964 * All the attributes can take #I18N_UCOLLATOR_DEFAULT value, as well as the values specific to each one.
965 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
968 I18N_UCOLLATOR_FRENCH_COLLATION, /**< Attribute for direction of secondary weights - used in Canadian French. Acceptable values are #I18N_UCOLLATOR_ON, which results in secondary weights being considered backwards, and #I18N_UCOLLATOR_OFF which treats secondary weights in the order they appear */
969 I18N_UCOLLATOR_ALTERNATE_HANDLING, /**< Attribute for handling variable elements. Acceptable values are #I18N_UCOLLATOR_NON_IGNORABLE (default) which treats all the codepoints with non-ignorable primary weights in the same way, and #I18N_UCOLLATOR_SHIFTED which causes codepoints with primary weights that are equal or below the variable top value to be ignored at the primary level and moved to the quaternary level */
970 I18N_UCOLLATOR_CASE_FIRST, /**< Controls the ordering of upper and lower case letters. Acceptable values are #I18N_UCOLLATOR_OFF (default), which orders upper and lower case letters in accordance to their tertiary weights, #I18N_UCOLLATOR_UPPER_FIRST which forces upper case letters to sort before lower case letters, and #I18N_UCOLLATOR_LOWER_FIRST which does the opposite */
971 I18N_UCOLLATOR_CASE_LEVEL, /**< Controls whether an extra case level (positioned before the third level) is generated or not. Acceptable values are #I18N_UCOLLATOR_OFF (default), when case level is not generated, and #I18N_UCOLLATOR_ON which causes the case level to be generated. Contents of the case level are affected by the value of the #I18N_UCOLLATOR_CASE_FIRST attribute. A simple way to ignore accent differences in a string is to set the strength to #I18N_UCOLLATOR_PRIMARY and enable case level */
972 I18N_UCOLLATOR_NORMALIZATION_MODE, /**< Controls whether the normalization check and necessary normalizations are performed. When set to #I18N_UCOLLATOR_OFF (default) no normalization check is performed. The correctness of the result is guaranteed only if the input data is in so-called FCD form (see users manual for more info). When set to #I18N_UCOLLATOR_ON, an incremental check is performed to see whether the input data is in the FCD form. If the data is not in the FCD form, incremental NFD normalization is performed */
973 I18N_UCOLLATOR_DECOMPOSITION_MODE = I18N_UCOLLATOR_NORMALIZATION_MODE, /**< An alias for the #I18N_UCOLLATOR_NORMALIZATION_MODE attribute */
974 I18N_UCOLLATOR_STRENGTH, /**< The strength attribute. Can be either #I18N_UCOLLATOR_PRIMARY, #I18N_UCOLLATOR_SECONDARY, #I18N_UCOLLATOR_TERTIARY, #I18N_UCOLLATOR_QUATERNARY, or #I18N_UCOLLATOR_IDENTICAL. The usual strength for most locales (except Japanese) is tertiary. Quaternary strength is useful when combined with shifted setting for the alternate handling attribute and for JIS X 4061 collation, when it is used to distinguish between Katakana and Hiragana. Otherwise, quaternary level is affected only by the number of non-ignorable code points in the string. Identical strength is rarely useful, as it amounts to codepoints of the NFD form of the string */
975 I18N_UCOLLATOR_NUMERIC_COLLATION = I18N_UCOLLATOR_STRENGTH + 2, /**< When turned on, this attribute makes substrings of digits that are sort according to their numeric values. This is a way to get '100' to sort AFTER '2'. Note that the longest digit substring that can be treated as a single unit is 254 digits (not counting leading zeros). If a digit substring is longer than that, the digits beyond the limit will be treated as a separate digit substring. A "digit" in this sense is a code point with General_Category=Nd, which does not include circled numbers, roman numerals, and so on. Only a contiguous digit substring is considered, that is, non-negative integers without separators. There is no support for plus/minus signs, decimals, exponents, and so on */
976 I18N_UCOLLATOR_ATTRIBUTE_COUNT /**< The number of i18n_ucollator_attribute_e constants */
977 } i18n_ucollator_attribute_e;
980 * @brief Enumeration containing attribute values for controlling collation behavior.
981 * Here are all the allowable values. Not every attribute can take every value.
982 * The only universal value is #I18N_UCOLLATOR_DEFAULT, which resets the attribute value to the predefined value for that locale.
983 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
986 I18N_UCOLLATOR_DEFAULT = -1, /**< Accepted by most attributes */
987 I18N_UCOLLATOR_PRIMARY = 0, /**< Primary collation strength */
988 I18N_UCOLLATOR_SECONDARY = 1, /**< Secondary collation strength */
989 I18N_UCOLLATOR_TERTIARY = 2, /**< Tertiary collation strength */
990 I18N_UCOLLATOR_DEFAULT_STRENGTH = I18N_UCOLLATOR_TERTIARY, /**< Default collation strength */
991 I18N_UCOLLATOR_CE_STRENGTH_LIMIT,
992 I18N_UCOLLATOR_QUATERNARY = 3, /**< Quaternary collation strength */
993 I18N_UCOLLATOR_IDENTICAL = 15, /**< Identical collation strength */
994 I18N_UCOLLATOR_STRENGTH_LIMIT,
996 I18N_UCOLLATOR_OFF = 16, /**< Turn the feature off - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
997 I18N_UCOLLATOR_ON = 17, /**< Turn the feature on - works for #I18N_UCOLLATOR_FRENCH_COLLATION, #I18N_UCOLLATOR_CASE_LEVEL & #I18N_UCOLLATOR_DECOMPOSITION_MODE */
999 I18N_UCOLLATOR_SHIFTED = 20, /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be shifted. */
1000 I18N_UCOLLATOR_NON_IGNORABLE = 21, /**< Valid for #I18N_UCOLLATOR_ALTERNATE_HANDLING. Alternate handling will be non ignorable. */
1001 I18N_UCOLLATOR_LOWER_FIRST = 24, /**< Valid for #I18N_UCOLLATOR_CASE_FIRST - lower case sorts before upper case. */
1002 I18N_UCOLLATOR_UPPER_FIRST = 25, /**< Upper case sorts before lower case. */
1003 I18N_UCOLLATOR_ATTRIBUTE_VALUE_COUNT
1004 } i18n_ucollator_attribute_value_e;
1007 * @brief Enumeration in which the base letter represents a primary difference. Set comparison level to #I18N_UCOLLATOR_PRIMARY to ignore secondary and tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of primary difference, "abc" < "abd"
1008 * Diacritical differences on the same base letter represent a secondary difference. Set comparison level to #I18N_UCOLLATOR_SECONDARY to ignore tertiary differences. Use this to set the strength of an #i18n_ucollator_h. Example of secondary difference, "ä" >> "a".
1009 * Uppercase and lowercase versions of the same character represent a tertiary difference. Set comparison level to #I18N_UCOLLATOR_TERTIARY to include all comparison differences. Use this to set the strength of an #i18n_ucollator_h. Example of tertiary difference, "abc" <<< "ABC".
1010 * Two characters are considered "identical" when they have the same unicode spellings. #I18N_UCOLLATOR_IDENTICAL. For example, "ä" == "ä".
1011 * #i18n_ucollator_strength_e is also used to determine the strength of sort keys generated from #i18n_ucollator_h. These values can now be found in the #i18n_ucollator_attribute_value_e enum.
1012 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1014 typedef i18n_ucollator_attribute_value_e i18n_ucollator_strength_e;
1017 * @brief Enumeration for source and target string comparison result.
1018 * #I18N_UCOLLATOR_LESS is returned if the source string is compared to be less than the target string in the {@link i18n_ucollator_str_collator() } method.
1019 * #I18N_UCOLLATOR_EQUAL is returned if the source string is compared to be equal to the target string in the {@link i18n_ucollator_str_collator() } method.
1020 * #I18N_UCOLLATOR_GREATER is returned if the source string is compared to be greater than the target string in the {@link #i18n_ucollator_str_collator() } method.
1021 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1024 I18N_UCOLLATOR_EQUAL = 0, /**< string a == string b */
1025 I18N_UCOLLATOR_GREATER = 1, /**< string a > string b */
1026 I18N_UCOLLATOR_LESS = -1 /**< string a < string b */
1027 } i18n_ucollator_result_e;
1035 * @addtogroup CAPI_BASE_UTILS_I18N_UNORMALIZATION_MODULE
1041 * @brief i18n_unormalizer_h.
1042 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1046 typedef const void* i18n_unormalizer_h;
1049 * @brief Enumeration of constants for normalization modes.
1050 * For details about standard Unicode normalization forms and about the algorithms which are also used with custom mapping tables see http://www.unicode.org/unicode/reports/tr15/
1051 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1054 I18N_UNORMALIZATION_COMPOSE, /**< Decomposition followed by composition. Same as standard NFC when using an "nfc" instance. Same as standard NFKC when using an "nfkc" instance.
1055 For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
1056 I18N_UNORMALIZATION_DECOMPOSE, /**< Map and reorder canonically. Same as standard NFD when using an "nfc" instance. Same as standard NFKD when using an "nfkc" instance.
1057 For details about standard Unicode normalization forms see http://www.unicode.org/unicode/reports/tr15/ */
1058 I18N_UNORMALIZATION_FCD, /**< "Fast C or D" form. If a string is in this form, then further decomposition without reordering would yield the same form as DECOMPOSE.
1059 Text in "Fast C or D" form can be processed efficiently with data tables that are "canonically closed",
1060 that is, that provide equivalent data for equivalent text, without having to be fully normalized.
1061 Not a standard Unicode normalization form. Not a unique form: Different FCD strings can be canonically equivalent.
1062 For details see http://www.unicode.org/notes/tn5/#FCD */
1063 I18N_UNORMALIZATION_COMPOSE_CONTIGUOUS /**< Compose only contiguously. Also known as "FCC" or "Fast C Contiguous". The result will often but not always be in NFC.
1064 The result will conform to FCD which is useful for processing. Not a standard Unicode normalization form.
1065 For details see http://www.unicode.org/notes/tn5/#FCC */
1066 } i18n_unormalization_mode_e;
1074 * @addtogroup CAPI_BASE_UTILS_I18N_USEARCH_MODULE
1079 * @brief i18n_usearch_h.
1080 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1082 typedef void* i18n_usearch_h;
1090 * @addtogroup CAPI_BASE_UTILS_I18N_UCALENDAR_MODULE
1095 * @brief i18n_ucalendar_h.
1096 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1098 typedef void* i18n_ucalendar_h;
1101 * @brief The time zone ID reserved for unknown time zone.
1102 * @since_tizen 2.3.1
1104 #define I18N_UCALENDAR_UNKNOWN_ZONE_ID "Etc/Unknown"
1107 * @brief Enumeration for possible fields in an #i18n_ucalendar_h.
1108 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1111 I18N_UCALENDAR_ERA, /**< Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar */
1112 I18N_UCALENDAR_YEAR, /**< Field number indicating the year */
1113 I18N_UCALENDAR_MONTH, /**< Field number indicating the month. This is a calendar-specific value. \n The first month of the year is JANUARY;
1114 the last depends on the number of months in a year */
1115 I18N_UCALENDAR_WEEK_OF_YEAR, /**< Field number indicating the week number within the current year. \n
1116 The first week of the year, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
1117 Subclasses define the value of #I18N_UCALENDAR_WEEK_OF_YEAR for days before the first week of the year */
1118 I18N_UCALENDAR_WEEK_OF_MONTH, /**< Field number indicating the week number within the current month. \n
1119 The first week of the month, as defined by the #I18N_UCALENDAR_FIRST_DAY_OF_WEEK and #I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK attributes, has value 1.
1120 Subclasses define the value of WEEK_OF_MONTH for days before the first week of the month */
1121 I18N_UCALENDAR_DATE, /**< Field number indicating the day of the month. \n This is a synonym for DAY_OF_MONTH. The first day of the month has value 1 */
1122 I18N_UCALENDAR_DAY_OF_YEAR, /**< Field number indicating the day number within the current year. \n The first day of the year has value 1. */
1123 I18N_UCALENDAR_DAY_OF_WEEK, /**< Field number indicating the day of the week. \n
1124 This field takes values "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", and "Saturday" */
1125 I18N_UCALENDAR_DAY_OF_WEEK_IN_MONTH, /**< Field number indicating the ordinal number of the day of the week within the current month. \n
1126 Together with the "day of week" field, this uniquely specifies a day within a month.
1127 "day of month" 1 through 7 always correspond to "day of week in month" 1; 8 through 15 correspond to "day of week in month" 2, and so on.
1128 "day of week in month" 0 indicates the week before "day of week in month" 1.
1129 Negative values count back from the end of the month, so the last Sunday of a month is specified as "day of week" = "Sunday",
1130 "day of week in month" = -1. Because negative values count backward they will usually be aligned differently within the month than positive values.
1131 For example, if a month has 31 days, "day of week in month" -1 will overlap "day of week in month" 5 and the end of 4 */
1132 I18N_UCALENDAR_AM_PM, /**< Field number indicating whether the "hour" is before or after noon. \n E.g., at 10:04:15.250 PM the AM_PM is PM */
1133 I18N_UCALENDAR_HOUR, /**< Field number indicating the hour of the morning or afternoon. \n "hour" is used for the 12-hour clock. E.g., at 10:04:15.250 PM the "Hour" is 10 */
1134 I18N_UCALENDAR_HOUR_OF_DAY, /**< Field number indicating the hour of the day. \n "Hour of day" is used for the 24-hour clock. E.g., at 10:04:15.250 PM the "Hour of day" is 22 */
1135 I18N_UCALENDAR_MINUTE, /**< Field number indicating the minute within the hour. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MINUTE is 4 */
1136 I18N_UCALENDAR_SECOND, /**< Field number indicating the second within the minute. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_SECOND is 15 */
1137 I18N_UCALENDAR_MILLISECOND, /**< Field number indicating the millisecond within the second. \n E.g., at 10:04:15.250 PM the #I18N_UCALENDAR_MILLISECOND is 250 */
1138 I18N_UCALENDAR_ZONE_OFFSET, /**< Field number indicating the raw offset from GMT in milliseconds */
1139 I18N_UCALENDAR_DST_OFFSET, /**< Field number indicating the daylight savings offset in milliseconds */
1140 I18N_UCALENDAR_YEAR_WOY, /**< Field number indicating the extended year corresponding to the #I18N_UCALENDAR_WEEK_OF_YEAR field. \n
1141 This may be one greater or less than the value of #I18N_UCALENDAR_EXTENDED_YEAR */
1142 I18N_UCALENDAR_DOW_LOCAL, /**< Field number indicating the localized day of the week. \n
1143 This will be a value from 1 to 7 inclusive, with 1 being the localized first day of the week */
1144 I18N_UCALENDAR_EXTENDED_YEAR, /**< Year of this calendar system, encompassing all supra-year fields. \n
1145 For example, in Gregorian/Julian calendars, positive Extended Year values indicate years AD, 1 BC = 0 extended, 2 BC = -1 extended, and so on */
1146 I18N_UCALENDAR_JULIAN_DAY, /**< Field number indicating the modified Julian day number. \n
1147 This is different from the conventional Julian day number in two regards.
1148 First, it demarcates days at local zone midnight, rather than noon GMT. Second, it is a local number; that is, it depends on the local time zone.
1149 It can be thought of as a single number that encompasses all the date-related fields */
1150 I18N_UCALENDAR_MILLISECONDS_IN_DAY, /**< Ranges from 0 to 23:59:59.999 (regardless of DST). \n
1151 This field behaves exactly like a composite of all time-related fields, not including the zone fields.
1152 As such, it also reflects discontinuities in those fields on DST transition days. On a day of DST onset, it will jump forward.
1153 On a day of DST cessation, it will jump backward.
1154 This reflects the fact that it must be combined with the DST offset field to obtain a unique local time value */
1155 I18N_UCALENDAR_IS_LEAP_MONTH, /**< Whether or not the current month is a leap month (0 or 1) */
1156 I18N_UCALENDAR_FIELD_COUNT, /**< Number of enumerators */
1157 I18N_UCALENDAR_DAY_OF_MONTH = I18N_UCALENDAR_DATE /**< Field number indicating the day of the month. \n This is a synonym for #I18N_UCALENDAR_DATE. The first day of the month has value 1 */
1158 } i18n_ucalendar_date_fields_e;
1161 * @brief Enumeration for possible months in an #i18n_ucalendar_h.
1162 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1165 I18N_UCALENDAR_TRADITIONAL, /**< Despite the name, #I18N_UCALENDAR_TRADITIONAL designates the locale's default calendar, which may be the Gregorian calendar or some other calendar */
1166 I18N_UCALENDAR_DEFAULT = I18N_UCALENDAR_TRADITIONAL, /**< A better name for #I18N_UCALENDAR_TRADITIONAL */
1167 I18N_UCALENDAR_GREGORIAN /**< Unambiguously designates the Gregorian calendar for the locale */
1168 } i18n_ucalendar_type_e;
1171 * @brief Enumeration for possible months in an #i18n_ucalendar_h.
1172 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1175 I18N_UCALENDAR_JANUARY, /**< January */
1176 I18N_UCALENDAR_FEBRUARY, /**< February */
1177 I18N_UCALENDAR_MARCH, /**< March */
1178 I18N_UCALENDAR_APRIL, /**< April */
1179 I18N_UCALENDAR_MAY, /**< May */
1180 I18N_UCALENDAR_JUNE, /**< June */
1181 I18N_UCALENDAR_JULY, /**< July */
1182 I18N_UCALENDAR_AUGUST, /**< August */
1183 I18N_UCALENDAR_SEPTEMBER, /**< September */
1184 I18N_UCALENDAR_OCTOBER, /**< October */
1185 I18N_UCALENDAR_NOVEMBER, /**< November */
1186 I18N_UCALENDAR_DECEMBER /**< December */
1187 } i18n_ucalendar_months_e;
1190 * @brief Enumeration for possible formats of an #i18n_ucalendar_h's display name.
1191 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1194 I18N_UCALENDAR_STANDARD, /**< Standard display name */
1195 I18N_UCALENDAR_SHORT_STANDARD, /**< Short standard display name */
1196 I18N_UCALENDAR_DST, /**< Daylight savings display name */
1197 I18N_UCALENDAR_SHORT_DST /**< Short daylight savings display name */
1198 } i18n_ucalendar_displayname_type_e;
1201 * @brief Enumeration for types of #i18n_ucalendar_h attributes.
1202 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1205 I18N_UCALENDAR_LENIENT, /**< Lenient parsing */
1206 I18N_UCALENDAR_FIRST_DAY_OF_WEEK, /**< First day of the week */
1207 I18N_UCALENDAR_MINIMAL_DAYS_IN_FIRST_WEEK /**< Minimum number of days in the first week */
1208 } i18n_ucalendar_attribute_e;
1211 * @brief System time zone type constants.
1212 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1215 I18N_UCALENDAR_ZONE_TYPE_ANY, /**< Any system zones. */
1216 I18N_UCALENDAR_ZONE_TYPE_CANONICAL, /**< Canonical system zones. */
1217 I18N_UCALENDAR_ZONE_TYPE_CANONICAL_LOCATION /**< Canonical system zones associated with actual locations. */
1218 } i18n_system_timezone_type_e;
1221 * @brief Possible limit values for an #i18n_ucalendar_h.
1222 * @since_tizen 2.3.1
1225 I18N_UCALENDAR_MINIMUM, /**< Minimum value */
1226 I18N_UCALENDAR_MAXIMUM, /**< Maximum value */
1227 I18N_UCALENDAR_GREATEST_MINIMUM, /**< Greatest minimum value */
1228 I18N_UCALENDAR_LEAST_MAXIMUM, /**< Least maximum value */
1229 I18N_UCALENDAR_ACTUAL_MINIMUM, /**< Actual minimum value */
1230 I18N_UCALENDAR_ACTUAL_MAXIMUM /**< Actual maximum value */
1231 } i18n_ucalendar_limit_type_e;
1234 * @brief Weekday types, as returned by i18n_ucalendar_get_day_of_week_type().
1235 * @since_tizen 2.3.1
1238 I18N_UCALENDAR_WEEKDAY, /**< Designates a full weekday (no part of the day is included in the weekend). */
1239 I18N_UCALENDAR_WEEKEND, /**< Designates a full weekend day (the entire day is included in the weekend). */
1240 I18N_UCALENDAR_WEEKEND_ONSET, /**< Designates a day that starts as a weekday and transitions to the weekend.
1241 Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
1242 I18N_UCALENDAR_WEEKEND_CEASE, /**< Designates a day that starts as the weekend and transitions to a weekday.
1243 Call i18n_ucalendar_get_weekend_transition() to get the time of transition. */
1244 } i18n_ucalendar_weekday_type_e;
1247 * @brief Useful constants for days of week.
1248 * @details Note: Calendar day-of-week is 1-based. Clients who create locale resources for the field of first-day-of-week should be aware of this.
1249 * For instance, in US locale, first-day-of-week is set to 1, i.e., #I18N_UCALENDAR_SUNDAY. Possible days of the week in an #i18n_ucalendar_h.
1250 * @since_tizen 2.3.1
1253 I18N_UCALENDAR_SUNDAY = 1, /**< Sunday */
1254 I18N_UCALENDAR_MONDAY, /**< Monday */
1255 I18N_UCALENDAR_TUESDAY, /**< Tuesday */
1256 I18N_UCALENDAR_WEDNESDAY, /**< Wednesday */
1257 I18N_UCALENDAR_THURSDAY, /**< Thursday */
1258 I18N_UCALENDAR_FRIDAY, /**< Friday */
1259 I18N_UCALENDAR_SATURDAY /**< Saturday */
1260 } i18n_ucalendar_days_of_week_e;
1263 * @brief Time zone transition types for i18n_ucalendar_get_timezone_transition_date().
1264 * @since_tizen 2.3.1
1266 * @see i18n_ucalendar_get_timezone_transition_date()
1269 I18N_UCALENDAR_TZ_TRANSITION_NEXT, /**< Get the next transition after the current date, i.e. excludes the current date */
1270 I18N_UCALENDAR_TZ_TRANSITION_NEXT_INCLUSIVE, /**< Get the next transition on or after the current date, i.e. may include the current date */
1271 I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS, /**< Get the previous transition before the current date, i.e. excludes the current date */
1272 I18N_UCALENDAR_TZ_TRANSITION_PREVIOUS_INCLUSIVE, /**< Get the previous transition on or before the current date, i.e. may include the current date */
1273 } i18n_utimezone_transition_type_e;
1281 * @addtogroup CAPI_BASE_UTILS_I18N_UDATE_MODULE
1286 * @brief Date and Time data type. \n This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
1290 * @brief Date and Time data type.
1291 * @details This is a primitive data type that holds the date and time as the number of milliseconds since 1970-jan-01, 00:00 UTC. UTC leap seconds are ignored.
1292 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1294 typedef double i18n_udate;
1297 * @brief A date formatter.
1298 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1300 typedef void *i18n_udate_format_h;
1303 * @brief A struct representing a range of text containing a specific field.
1304 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1307 int32_t field; /**< The field. */
1308 int32_t beginIndex; /**< The start of the text range containing field.*/
1309 int32_t endIndex; /**< The limit of the text range containing field.*/
1310 } i18n_ufield_position_s;
1313 * @brief Handle to struct representing a range of text containing a specific field.
1314 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1316 typedef i18n_ufield_position_s* i18n_ufield_position_h;
1319 * @brief Enumeration for the possible date/time format styles.
1320 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1323 I18N_UDATE_FULL, /**< Full style */
1324 I18N_UDATE_LONG, /**< Long style */
1325 I18N_UDATE_MEDIUM, /**< Medium style */
1326 I18N_UDATE_SHORT, /**< Short style */
1327 I18N_UDATE_DEFAULT = I18N_UDATE_MEDIUM, /**< Default style */
1328 I18N_UDATE_RELATIVE = (1 << 7), /**< Bitfield for relative date */
1329 I18N_UDATE_FULL_RELATIVE = I18N_UDATE_FULL | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_FULL | #I18N_UDATE_RELATIVE */
1330 I18N_UDATE_LONG_RELATIVE = I18N_UDATE_LONG | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_LONG | #I18N_UDATE_RELATIVE */
1331 I18N_UDATE_MEDIUM_RELATIVE = I18N_UDATE_MEDIUM | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_MEDIUM | #I18N_UDATE_RELATIVE */
1332 I18N_UDATE_SHORT_RELATIVE = I18N_UDATE_SHORT | I18N_UDATE_RELATIVE, /**< #I18N_UDATE_SHORT | #I18N_UDATE_RELATIVE */
1333 I18N_UDATE_NONE = -1, /**< No style */
1334 I18N_UDATE_PATTERN = -2 /**< Use the pattern given in the parameter to i18n_udate_create(). */
1335 } i18n_udate_format_style_e;
1338 * @brief Enumeration for format fields.
1339 * @since_tizen 2.3.1
1342 I18N_UDATE_FORMAT_ERA_FIELD, /**< Era field */
1343 I18N_UDATE_FORMAT_YEAR_FIELD, /**< Year field */
1344 I18N_UDATE_FORMAT_MONTH_FIELD, /**< Month field */
1345 I18N_UDATE_FORMAT_DATE_FIELD, /**< Date field */
1346 I18N_UDATE_FORMAT_HOUR_OF_DAY1_FIELD, /**< Hour of day1 field */
1347 I18N_UDATE_FORMAT_HOUR_OF_DAY0_FIELD, /**< Hour of day0 field */
1348 I18N_UDATE_FORMAT_MINUTE_FIELD, /**< Minute field */
1349 I18N_UDATE_FORMAT_SECOND_FIELD, /**< Second field */
1350 I18N_UDATE_FORMAT_FRACTIONAL_SECOND_FIELD, /**< Fractional second field */
1351 I18N_UDATE_FORMAT_DAY_OF_WEEK_FIELD, /**< Day of week field */
1352 I18N_UDATE_FORMAT_DAY_OF_YEAR_FIELD, /**< Day of year field */
1353 I18N_UDATE_FORMAT_DAY_OF_WEEK_IN_MONTH_FIELD, /**< Day of week in month field */
1354 I18N_UDATE_FORMAT_WEEK_OF_YEAR_FIELD, /**< Week of year field */
1355 I18N_UDATE_FORMAT_WEEK_OF_MONTH_FIELD, /**< Week of month field */
1356 I18N_UDATE_FORMAT_AM_PM_FIELD, /**< a.m. / p.m. field */
1357 I18N_UDATE_FORMAT_HOUR1_FIELD, /**< Hour1 field */
1358 I18N_UDATE_FORMAT_HOUR0_FIELD, /**< Hour0 field */
1359 I18N_UDATE_FORMAT_TIMEZONE_FIELD, /**< Timezone field */
1360 I18N_UDATE_FORMAT_YEAR_WOY_FIELD, /**< Year woy field */
1361 I18N_UDATE_FORMAT_DOW_LOCAL_FIELD, /**< Dow local field */
1362 I18N_UDATE_FORMAT_EXTENDED_YEAR_FIELD, /**< Extended year field */
1363 I18N_UDATE_FORMAT_JULIAN_DAY_FIELD, /**< Julian day field */
1364 I18N_UDATE_FORMAT_MILLISECONDS_IN_DAY_FIELD, /**< Milliseconds in day field */
1365 I18N_UDATE_FORMAT_TIMEZONE_RFC_FIELD, /**< Timezone RFC field */
1366 I18N_UDATE_FORMAT_TIMEZONE_GENERIC_FIELD, /**< Timezone generic field */
1367 I18N_UDATE_FORMAT_STANDALONE_DAY_FIELD, /**< Standalone day field */
1368 I18N_UDATE_FORMAT_STANDALONE_MONTH_FIELD, /**< Standalone month field */
1369 I18N_UDATE_FORMAT_QUARTER_FIELD, /**< Quarter field */
1370 I18N_UDATE_FORMAT_STANDALONE_QUARTER_FIELD, /**< Standalone quarter field */
1371 I18N_UDATE_FORMAT_TIMEZONE_SPECIAL_FIELD, /**< Timezone special field */
1372 I18N_UDATE_FORMAT_YEAR_NAME_FIELD, /**< Year name field */
1373 I18N_UDATE_FORMAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD, /**< Timezone localized gmt offset field */
1374 I18N_UDATE_FORMAT_TIMEZONE_ISO_FIELD, /**< Timezone ISO field */
1375 I18N_UDATE_FORMAT_TIMEZONE_ISO_LOCAL_FIELD, /**< Timezone ISO local field */
1376 I18N_UDATE_FORMAT_FIELD_COUNT /**< Field count */
1377 } i18n_udate_format_field_e;
1380 * @brief Enumeration for symbol types.
1381 * @since_tizen 2.3.1
1384 I18N_UDATE_FORMAT_SYMBOL_TYPE_ERAS, /**< Eras */
1385 I18N_UDATE_FORMAT_SYMBOL_TYPE_MONTHS, /**< Months */
1386 I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_MONTHS, /**< Short months */
1387 I18N_UDATE_FORMAT_SYMBOL_TYPE_WEEKDAYS, /**< Weekdays */
1388 I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_WEEKDAYS, /**< Short weekdays */
1389 I18N_UDATE_FORMAT_SYMBOL_TYPE_AM_PMS, /**< AM PMs */
1390 I18N_UDATE_FORMAT_SYMBOL_TYPE_LOCALIZED_CHARS, /**< Localized chars */
1391 I18N_UDATE_FORMAT_SYMBOL_TYPE_ERA_NAMES, /**< Era names */
1392 I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_MONTHS, /**< Narrow months */
1393 I18N_UDATE_FORMAT_SYMBOL_TYPE_NARROW_WEEKDAYS, /**< Narrow weekdays */
1394 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_MONTHS, /**< Standalone months */
1395 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_MONTHS, /**< Standalone short months */
1396 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_MONTHS, /**< Standalone narrow months */
1397 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_WEEKDAYS, /**< Standalone weekdays */
1398 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_WEEKDAYS, /**< Standalone short weekdays */
1399 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_NARROW_WEEKDAYS, /**< Standalone narrow weekdays */
1400 I18N_UDATE_FORMAT_SYMBOL_TYPE_QUARTERS, /**< Quarters */
1401 I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORT_QUARTERS, /**< Short quarters */
1402 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_QUARTERS, /**< Standalone quarters */
1403 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORT_QUARTERS, /**< Standalone short quarters */
1404 I18N_UDATE_FORMAT_SYMBOL_TYPE_SHORTER_WEEKDAYS, /**< Shorter weekdays */
1405 I18N_UDATE_FORMAT_SYMBOL_TYPE_STANDALONE_SHORTER_WEEKDAYS, /**< Standalone shorter weekdays */
1406 } i18n_udate_format_symbol_type_e;
1409 * @brief Display context types, for getting values of a particular setting.
1410 * @details Note, the specific numeric values are internal and may change.
1411 * @since_tizen 2.3.1
1415 I18N_UDISPCTX_TYPE_DIALECT_HANDLING, /**<Type to retrieve the dialect handling setting, e.g. UDISPCTX_STANDARD_NAMES or UDISPCTX_DIALECT_NAMES. */
1416 I18N_UDISPCTX_TYPE_CAPITALIZATION, /**<Type to retrieve the capitalization context setting, e.g. UDISPCTX_CAPITALIZATION_NONE, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, etc. */
1417 #ifndef U_HIDE_DRAFT_API
1418 I18N_UDISPCTX_TYPE_DISPLAY_LENGTH /**<Type to retrieve the display length setting, e.g. UDISPCTX_LENGTH_FULL, UDISPCTX_LENGTH_SHORT. */
1419 #endif /* U_HIDE_DRAFT_API */
1420 } i18n_udisplay_context_type_e;
1423 * @brief Enumeration for display context.
1424 * @since_tizen 2.3.1
1427 I18N_UDISPLAY_CONTEXT_STANDARD_NAMES = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 0, /**< Standard names */
1428 I18N_UDISPLAY_CONTEXT_DIALECT_NAMES = (I18N_UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 1, /**< Dialect names */
1429 I18N_UDISPLAY_CONTEXT_CAPITALIZATION_NONE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 0, /**< Capitalization: None */
1430 I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 1, /**< Capitalization: For middle of sentence */
1431 I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 2, /**< Capitalization: For beginning of sentence */
1432 I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_UI_LIST_OR_MENU = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 3, /**< Capitalization: For UI list or menu */
1433 I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 4, /**< Capitalization: For standalone */
1434 } i18n_udisplay_context_e;
1442 * @addtogroup CAPI_BASE_UTILS_I18N_UDATEPG_MODULE
1447 * @brief Handle for a date/time pattern generator object.
1448 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1450 typedef void* i18n_udatepg_h;
1453 * @brief Enumeration for field number constants for i18n_udatepg_get_append_item_format() and similar functions.
1454 * @details These constants are separate from #i18n_udate_format_field_e despite semantic overlap because some fields are merged for the date/time pattern generator.
1455 * @since_tizen 2.3.1
1458 I18N_UDATEPG_ERA_FIELD, /**< Era field */
1459 I18N_UDATEPG_YEAR_FIELD, /**< Year field */
1460 I18N_UDATEPG_QUARTER_FIELD, /**< Quarter field */
1461 I18N_UDATEPG_MONTH_FIELD, /**< Month field */
1462 I18N_UDATEPG_WEEK_OF_YEAR_FIELD, /**< Week of year field */
1463 I18N_UDATEPG_WEEK_OF_MONTH_FIELD, /**< Week of month field */
1464 I18N_UDATEPG_WEEKDAY_FIELD, /**< Weekday field */
1465 I18N_UDATEPG_DAY_OF_YEAR_FIELD, /**< Day of year field */
1466 I18N_UDATEPG_DAY_OF_WEEK_IN_MONTH_FIELD, /**< Day of week in month field */
1467 I18N_UDATEPG_DAY_FIELD, /**< Day field */
1468 I18N_UDATEPG_DAYPERIOD_FIELD, /**< Day period field */
1469 I18N_UDATEPG_HOUR_FIELD, /**< Hour field */
1470 I18N_UDATEPG_MINUTE_FIELD, /**< Minute field */
1471 I18N_UDATEPG_SECOND_FIELD, /**< Second field */
1472 I18N_UDATEPG_FRACTIONAL_SECOND_FIELD, /**< Fractional second field */
1473 I18N_UDATEPG_ZONE_FIELD, /**< Zone field */
1474 I18N_UDATEPG_FIELD_COUNT /**< Field count */
1475 } i18n_udatepg_date_time_pattern_field_e;
1478 * @brief Enumeration for masks to control forcing the length of specified fields in the returned pattern to match those in the skeleton (when this would not happen otherwise).\n
1479 * @details These may be combined to force the length of multiple fields.
1480 * Used with i18n_udatepg_get_best_pattern_with_options(), i18n_udatepg_replace_field_types_with_options().
1481 * @since_tizen 2.3.1
1484 I18N_UDATEPG_MATCH_NO_OPTIONS = 0, /**< No options */
1485 I18N_UDATEPG_MATCH_HOUR_FIELD_LENGTH = 1 << I18N_UDATEPG_HOUR_FIELD, /**< Hour field length */
1486 I18N_UDATEPG_MATCH_ALL_FIELDS_LENGTH = (1 << I18N_UDATEPG_FIELD_COUNT) - 1, /**< All fields length */
1487 } i18n_udatepg_date_time_pattern_match_options_e;
1490 * @brief Enumeration for status return values from i18n_udatepg_add_pattern().
1491 * @since_tizen 2.3.1
1494 I18N_UDATEPG_NO_CONFLICT, /**< No conflict */
1495 I18N_UDATEPG_BASE_CONFLICT, /**< Base conflict */
1496 I18N_UDATEPG_CONFLICT, /**< Conflict */
1497 I18N_UDATEPG_CONFLICT_COUNT, /**< Number of status return values */
1498 } i18n_udatepg_date_time_pattern_conflict_e;
1506 * @addtogroup CAPI_BASE_UTILS_I18N_UNUMBER_MODULE
1511 * @brief A number formatter.
1512 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1514 typedef void* i18n_unumber_format_h;
1517 * @brief Definition of context length.
1518 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1520 #define I18N_U_PARSE_CONTEXT_LEN 16
1523 * @brief Struct used to returned detailed information about parsing errors.
1524 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1527 int32_t line; /**< The line on which the error occured. */
1528 int32_t offset; /**< The character offset to the error */
1529 i18n_uchar preContext[I18N_U_PARSE_CONTEXT_LEN]; /**< Textual context before the error */
1530 i18n_uchar postContext[I18N_U_PARSE_CONTEXT_LEN]; /**< The error itself and/or textual context after the error */
1531 } i18n_uparse_error_s;
1534 * @brief Enumeration for the possible number format styles.
1535 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1538 I18N_UNUMBER_PATTERN_DECIMAL = 0, /**< Decimal format defined by a pattern string */
1539 I18N_UNUMBER_DECIMAL = 1, /**< Decimal format ("normal" style) */
1540 I18N_UNUMBER_CURRENCY, /**< Currency format with a currency symbol, e.g., "$1.00" */
1541 I18N_UNUMBER_PERCENT, /**< Percent format */
1542 I18N_UNUMBER_SCIENTIFIC, /**< Scientific format */
1543 I18N_UNUMBER_SPELLOUT, /**< Spellout rule-based format */
1544 I18N_UNUMBER_ORDINAL, /**< Ordinal rule-based format */
1545 I18N_UNUMBER_DURATION, /**< Duration rule-based format */
1546 I18N_UNUMBER_NUMBERING_SYSTEM, /**< Numbering system rule-based format */
1547 I18N_UNUMBER_PATTERN_RULEBASED, /**< Rule-based format defined by a pattern string */
1548 I18N_UNUMBER_CURRENCY_ISO, /**< Currency format with an ISO currency code, e.g., "USD1.00" */
1549 I18N_UNUMBER_CURRENCY_PLURAL, /**< Currency format with a pluralized currency name, e.g., "1.00 US dollar" and "3.00 US dollars" */
1551 I18N_UNUMBER_FORMAT_STYLE_COUNT = I18N_UNUMBER_CURRENCY_PLURAL + 2, /**< One more than the highest number format style constant */
1552 I18N_UNUMBER_DEFAULT = I18N_UNUMBER_DECIMAL, /**< Default format */
1553 I18N_UNUMBER_IGNORE = I18N_UNUMBER_PATTERN_DECIMAL /**< Alias for #I18N_UNUMBER_PATTERN_DECIMAL */
1554 } i18n_unumber_format_style_e;
1557 * @brief Enumeration of constants for specifying a number format symbol.
1558 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1561 I18N_UNUMBER_DECIMAL_SEPARATOR_SYMBOL = 0, /**< The decimal separator */
1562 I18N_UNUMBER_GROUPING_SEPARATOR_SYMBOL = 1, /**< The grouping separator */
1563 I18N_UNUMBER_PATTERN_SEPARATOR_SYMBOL = 2, /**< The pattern separator */
1564 I18N_UNUMBER_PERCENT_SYMBOL = 3, /**< The percent sign */
1565 I18N_UNUMBER_ZERO_DIGIT_SYMBOL = 4, /**< Zero */
1566 I18N_UNUMBER_DIGIT_SYMBOL = 5, /**< Character representing a digit in the pattern.*/
1567 I18N_UNUMBER_MINUS_SIGN_SYMBOL = 6, /**< The minus sign */
1568 I18N_UNUMBER_PLUS_SIGN_SYMBOL = 7, /**< The plus sign */
1569 I18N_UNUMBER_CURRENCY_SYMBOL = 8, /**< The currency symbol */
1570 I18N_UNUMBER_INTL_CURRENCY_SYMBOL = 9, /**< The international currency symbol */
1571 I18N_UNUMBER_MONETARY_SEPARATOR_SYMBOL = 10, /**< The monetary separator */
1572 I18N_UNUMBER_EXPONENTIAL_SYMBOL = 11, /**< The exponential symbol */
1573 I18N_UNUMBER_PERMILL_SYMBOL = 12, /**< Per mill symbol */
1574 I18N_UNUMBER_PAD_ESCAPE_SYMBOL = 13, /**< Escape padding character */
1575 I18N_UNUMBER_INFINITY_SYMBOL = 14, /**< Infinity symbol */
1576 I18N_UNUMBER_NAN_SYMBOL = 15, /**< NAN symbol */
1577 I18N_UNUMBER_SIGNIFICANT_DIGIT_SYMBOL = 16, /**< Significant digit symbol */
1578 I18N_UNUMBER_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17, /**< The monetary grouping separator */
1579 I18N_UNUMBER_ONE_DIGIT_SYMBOL = 18, /**< One */
1580 I18N_UNUMBER_TWO_DIGIT_SYMBOL = 19, /**< Two */
1581 I18N_UNUMBER_THREE_DIGIT_SYMBOL = 20, /**< Three */
1582 I18N_UNUMBER_FOUR_DIGIT_SYMBOL = 21, /**< Four */
1583 I18N_UNUMBER_FIVE_DIGIT_SYMBOL = 22, /**< Five */
1584 I18N_UNUMBER_SIX_DIGIT_SYMBOL = 23, /**< Six */
1585 I18N_UNUMBER_SEVEN_DIGIT_SYMBOL = 24, /**< Seven */
1586 I18N_UNUMBER_EIGHT_DIGIT_SYMBOL = 25, /**< Eight */
1587 I18N_UNUMBER_NINE_DIGIT_SYMBOL = 26, /**< Nine */
1588 I18N_UNUMBER_FORMAT_SYMBOL_COUNT = 27 /**< Number of enumerators */
1589 } i18n_unumber_format_symbol_e;
1592 * @brief Enumeration for the possible unumber_format numeric attributes.
1593 * @since_tizen 2.3.1
1596 I18N_UNUMBER_PARSE_INT_ONLY, /**< Parse integers only */
1597 I18N_UNUMBER_GROUPING_USED, /**< Use grouping separator */
1598 I18N_UNUMBER_DECIMAL_ALWAYS_SHOWN, /**< Always show decimal point */
1599 I18N_UNUMBER_MAX_INTEGER_DIGITS, /**< Maximum integer digits */
1600 I18N_UNUMBER_MIN_INTEGER_DIGITS, /**< Minimum integer digits */
1601 I18N_UNUMBER_INTEGER_DIGITS, /**< Integer digits */
1602 I18N_UNUMBER_MAX_FRACTION_DIGITS, /**< Maximum fraction digits */
1603 I18N_UNUMBER_MIN_FRACTION_DIGITS, /**< Minimum fraction digits */
1604 I18N_UNUMBER_FRACTION_DIGITS, /**< Fraction digits */
1605 I18N_UNUMBER_MULTIPLIER, /**< Multiplier */
1606 I18N_UNUMBER_GROUPING_SIZE, /**< Grouping size */
1607 I18N_UNUMBER_ROUNDING_MODE, /**< Rounding Mode */
1608 I18N_UNUMBER_ROUNDING_INCREMENT, /**< Rounding increment */
1609 I18N_UNUMBER_FORMAT_WIDTH, /**< The width to which the output of format() is padded */
1610 I18N_UNUMBER_PADDING_POSITION, /**< The position at which padding will take place */
1611 I18N_UNUMBER_SECONDARY_GROUPING_SIZE, /**< Secondary grouping size */
1612 I18N_UNUMBER_SIGNIFICANT_DIGITS_USED, /**< Use significant digits */
1613 I18N_UNUMBER_MIN_SIGNIFICANT_DIGITS, /**< Minimum significant digits */
1614 I18N_UNUMBER_MAX_SIGNIFICANT_DIGITS, /**< Maximum significant digits */
1615 I18N_UNUMBER_LENIENT_PARSE, /**< Lenient parse mode used by rule-based formats */
1616 I18N_UNUM_SCALE = I18N_UNUMBER_LENIENT_PARSE + 2, /**< Scale, which adjusts the position of the decimal point when formatting.
1617 Amounts will be multiplied by 10 ^ (scale) before they are formatted. The default value for the scale is 0 ( no adjustment ).
1618 Example: setting the scale to 3, 123 formats as "123,000"
1619 Example: setting the scale to -4, 123 formats as "0.0123" */
1620 I18N_UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS = 0x1000, /**< If 1, specifies that if setting the "max integer digits" attribute would truncate a value, set an error status rather than silently truncating.
1621 For example, formatting the value 1234 with 4 max int digits would succeed, but formatting 12345 would fail.
1622 There is no effect on parsing. Default: 0 (not set) */
1623 I18N_UNUM_PARSE_NO_EXPONENT, /**< If this attribute is set to 1, specifies that, if the pattern doesn't contain an exponent,
1624 the exponent will not be parsed. If the pattern does contain an exponent, this attribute has no effect.
1625 Has no effect on formatting. Default: 0 (unset) */
1626 } i18n_unumber_format_attribute_e;
1629 * @brief The possible #i18n_unumber_format_h text attributes.
1630 * @since_tizen 2.3.1
1633 I18N_UNUMBER_POSITIVE_PREFIX, /**< Positive prefix */
1634 I18N_UNUMBER_POSITIVE_SUFFIX, /**< Positive suffix */
1635 I18N_UNUMBER_NEGATIVE_PREFIX, /**< Negative prefix */
1636 I18N_UNUMBER_NEGATIVE_SUFFIX, /**< Negative suffix */
1637 I18N_UNUMBER_PADDING_CHARACTER, /**< The character used to pad to the format width */
1638 I18N_UNUMBER_CURRENCY_CODE, /**< The ISO currency code */
1639 I18N_UNUMBER_DEFAULT_RULESET, /**< The default rule set, such as "%spellout-numbering-year:", "%spellout-cardinal:", "%spellout-ordinal-masculine-plural:", "%spellout-ordinal-feminine:", or "%spellout-ordinal-neuter:".
1640 The available public rulesets can be listed using i18n_unumber_get_text_attribute() with #I18N_UNUMBER_PUBLIC_RULESETS. This is only available with rule-based formatters */
1641 I18N_UNUMBER_PUBLIC_RULESETS, /**< The public rule sets. This is only available with rule-based formatters. This is a read-only attribute.
1642 The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).
1643 See the CLDR LDML spec for more information about RBNF rulesets: http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting */
1644 } i18n_unumber_format_text_attribute_e;
1652 * @addtogroup CAPI_BASE_UTILS_I18N_ULOCALE_MODULE
1656 #define I18N_ULOCALE_CHINESE "zh" /**< Useful constant for zh. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1657 #define I18N_ULOCALE_ENGLISH "en" /**< Useful constant for en. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1658 #define I18N_ULOCALE_FRENCH "fr" /**< Useful constant for fr. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1659 #define I18N_ULOCALE_GERMAN "de" /**< Useful constant for de. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1660 #define I18N_ULOCALE_ITALIAN "it" /**< Useful constant for it. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1661 #define I18N_ULOCALE_JAPANESE "ja" /**< Useful constant for ja. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1662 #define I18N_ULOCALE_KOREAN "ko" /**< Useful constant for ko. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1663 #define I18N_ULOCALE_SIMPLIFIED_CHINESE "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1664 #define I18N_ULOCALE_TRADITIONAL_CHINESE "zh_TW" /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1665 #define I18N_ULOCALE_CANADA "en_CA" /**< Useful constant for en_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1666 #define I18N_ULOCALE_CANADA_FRENCH "fr_CA" /**< Useful constant for fr_CA. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1667 #define I18N_ULOCALE_CHINA "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1668 #define I18N_ULOCALE_PRC "zh_CN" /**< Useful constant for zh_CN. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1669 #define I18N_ULOCALE_FRANCE "fr_FR" /**< Useful constant for fr_FR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1670 #define I18N_ULOCALE_GERMANY "de_DE" /**< Useful constant for de_DE. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1671 #define I18N_ULOCALE_ITALY "it_IT" /**< Useful constant for it_IT. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1672 #define I18N_ULOCALE_JAPAN "ja_JP" /**< Useful constant for ja_JP. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1673 #define I18N_ULOCALE_KOREA "ko_KR" /**< Useful constant for ko_KR. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1674 #define I18N_ULOCALE_TAIWAN "zh_TW" /**< Useful constant for zh_TW. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1675 #define I18N_ULOCALE_UK "en_GB" /**< Useful constant for en_GB. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1676 #define I18N_ULOCALE_US "en_US" /**< Useful constant for en_US. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
1679 * @brief Enumeration for the 'out_result' parameter return value
1680 * @since_tizen 2.3.1
1682 * @see i18n_ulocale_accept_language_from_http()
1683 * @see i18n_ulocale_accept_language()
1686 I18N_ULOCALE_ACCEPT_FAILED = 0, /**< No exact match was found */
1687 I18N_ULOCALE_ACCEPT_VALID = 1, /**< An exact match was found */
1688 I18N_ULOCALE_ACCEPT_FALLBACK = 2, /**< A fallback was found, for example,
1689 accept list contained 'ja_JP' which matched available locale 'ja' */
1690 } i18n_ulocale_accept_result_e;
1693 * @brief Enumeration for data locale types.
1694 * @since_tizen 2.3.1
1697 I18N_ULOCALE_DATA_LOCALE_TYPE_ACTUAL_LOCALE, /**< Actual locale */
1698 I18N_ULOCALE_DATA_LOCALE_TYPE_VALID_LOCALE, /**< Valid locale */
1699 I18N_ULOCALE_DATA_LOCALE_TYPE_LIMIT = 3, /**< Locale type limit */
1700 } i18n_ulocale_data_locale_type_e;
1703 * @brief Enumeration for the return value for the character and line orientation functions.
1704 * @since_tizen 2.3.1
1707 I18N_ULOCALE_LAYOUT_LTR = 0, /**< Left-to-right */
1708 I18N_ULOCALE_LAYOUT_RTL = 1, /**< Right-to-left */
1709 I18N_ULOCALE_LAYOUT_TTB = 2, /**< Top-to-bottom */
1710 I18N_ULOCALE_LAYOUT_BTT = 3, /**< Bottom-to-top */
1711 I18N_ULOCALE_LAYOUT_UNKNOWN /**< Unknown */
1712 } i18n_ulocale_layout_type_e;
1720 * @addtogroup CAPI_BASE_UTILS_I18N_USTRING_MODULE
1725 * @brief Callback function for i18n_ustring_unescape_at() that returns a character of the source text given an offset and a context pointer.\n
1726 * The context pointer will be whatever is passed into i18n_ustring_unescape_at().
1727 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1729 * @param[in] offset pointer to the offset that will be passed to i18n_ustring_unescape_at().
1730 * @param[in] context an opaque pointer passed directly into i18n_ustring_unescape_at()
1732 * @retval character the character represented by the escape sequence at offset
1734 * @see #i18n_ustring_unescape_at()
1736 typedef i18n_uchar(* i18n_ustring_unescape_char_at_cb)(int32_t offset, void *context);
1739 * @brief Option value for case folding: use default mappings defined in CaseFolding.txt.
1740 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1742 #define I18N_USTRING_U_FOLD_CASE_DEFAULT 0
1746 * @brief Option bit i18n_ustring_case_compare_with_length(), i18n_ustring_case_compare(), etc: Compare strings in code point order instead of code unit order.
1747 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1749 #define I18N_USTRING_U_COMPARE_CODE_POINT_ORDER 0x8000
1752 * @brief Option value for case folding: \n
1753 * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).\n
1754 * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.\n
1755 * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.
1756 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1758 #define I18N_USTRING_U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
1766 * @addtogroup CAPI_BASE_UTILS_I18N_TIMEZONE_MODULE
1771 * @brief handle for object that represents a time zone offset, and also figures out daylight savings..
1772 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1774 typedef void* i18n_timezone_h;
1777 * @brief Callback function for i18n_timezone_foreach_timezone_id(), i18n_timezone_foreach_timezone_id_with_offset(), and i18n_timezone_foreach_timezone_id_by_country()
1778 * that returns an enumeration over all recognized time zone IDs.
1779 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1781 * @param[in] timezone_id time zone ID
1782 * @param[in] user_data the user data passed to the callback function
1784 * @return @c true to continue with the next iteration of the loop, otherwise @c false to break out of the loop.
1786 * @see i18n_ustring_unescape_at()
1788 typedef bool (*i18n_timezone_id_cb)(const char *timezone_id, void* user_data);
1791 * @brief Enumeration for use with i18n_timezone_get_display_name(), i18n_timezone_get_display_name_with_locale(), and i18n_timezone_get_display_name_with_type().
1792 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1795 I18N_TIMEZONE_DISPLAY_TYPE_SHORT = 1, /**< Selector for short display name */
1796 I18N_TIMEZONE_DISPLAY_TYPE_LONG, /**< Selector for long display name */
1797 I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GENERIC, /**< Selector for short generic display name */
1798 I18N_TIMEZONE_DISPLAY_TYPE_LONG_GENERIC, /**< Selector for long generic display name */
1799 I18N_TIMEZONE_DISPLAY_TYPE_SHORT_GMT, /**< Selector for short display name derived */
1800 I18N_TIMEZONE_DISPLAY_TYPE_LONG_GMT, /**< Selector for long display name derived from time zone offset */
1801 I18N_TIMEZONE_DISPLAY_TYPE_SHORT_COMMONLY_USED, /**< Selector for short display name derived from the time zone's fallback name */
1802 I18N_TIMEZONE_DISPLAY_TYPE_GENERIC_LOCATION /**< Selector for long display name derived from the time zone's fallback name */
1803 }i18n_timezone_display_type_e;
1811 * @addtogroup CAPI_BASE_UTILS_I18N_UBRK_MODULE
1816 * @brief i18n_ubreak_iterator_s.
1817 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1819 typedef void* i18n_ubreak_iterator_s;
1822 * @brief i18n_ubreak_iterator_h.
1823 * @since_tizen 2.3.1
1825 typedef void* i18n_ubreak_iterator_h;
1828 * @brief A recommended size (in bytes) for the memory buffer to be passed to i18n_ubrk_safe_clone().
1829 * @since_tizen 2.3.1
1831 #define I18N_U_BRK_SAFECLONE_BUFFERSIZE 528
1834 * @brief Value indicating all text boundaries have been returned.
1835 * @since_tizen 2.3.1
1837 #define I18N_UBRK_DONE ((int32_t) -1)
1840 * @brief The possible types of text boundaries.
1841 * @since_tizen 2.3.1
1845 I18N_UBRK_CHARACTER = 0, /**< Character breaks */
1846 I18N_UBRK_WORD = 1, /**< Word breaks */
1847 I18N_UBRK_LINE = 2, /**< Line breaks */
1848 I18N_UBRK_SENTENCE = 3, /**< Sentence breaks */
1849 } i18n_ubreak_iterator_type_e;
1857 * @addtogroup CAPI_BASE_UTILS_I18N_USET_MODULE
1862 * @brief An #i18n_uset_h handle.
1863 * @details Use the @c i18n_uset_* API to manipulate. Create with @c i18n_uset_create*, and destroy with i18n_uset_destroy().
1864 * @since_tizen 2.3.1
1866 typedef void *i18n_uset_h;
1869 * @brief Capacity of #i18n_userialized_set_s::static_array.
1870 * Enough for any single-code point set.
1871 * @since_tizen 2.3.1
1873 * @see #i18n_userialized_set_s
1875 #define I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY 8
1878 * @brief A serialized form of a Unicode set.
1879 * @since_tizen 2.3.1
1882 const uint16_t *array; /**< The serialized Unicode Set. */
1883 int32_t bmp_length; /**< The length of the array that contains BMP characters. */
1884 int32_t length; /**< The total length of the array. */
1885 uint16_t static_array[I18N_USET_SERIALIZED_STATIC_ARRAY_CAPACITY]; /**< A small buffer for the array to reduce memory allocations. */
1886 } i18n_userialized_set_s;
1890 * @brief Enumeration for span conditions.
1891 * @since_tizen 2.3.1
1893 * @see i18n_uset_span()
1894 * @see i18n_uset_span_back()
1895 * @see i18n_uset_span_utf8()
1896 * @see i18n_uset_span_back_utf8()
1899 I18N_USET_SPAN_NOT_CONTAINED = 0, /**< Continue a span() while there is no set element at the current position.
1900 Stops before the first set element (character or string).
1901 (For code points only, this is like while contains(current)==false).
1903 When span() returns, the substring between where it started and the position
1904 it returned consists only of characters that are not in the set,
1905 and none of its strings overlap with the span. */
1906 I18N_USET_SPAN_CONTAINED = 1, /**< Continue a span() while there is a set element at the current position.
1907 (For characters only, this is like while contains(current)==true).
1909 When span() returns, the substring between where it started and the position
1910 it returned consists only of set elements (characters or strings) that are in the set.
1912 If a set contains strings, then the span will be the longest substring
1913 matching any of the possible concatenations of set elements (characters or strings).
1914 (There must be a single, non-overlapping concatenation of characters or strings.)
1915 This is equivalent to a POSIX regular expression for (OR of each set element). */
1916 I18N_USET_SPAN_SIMPLE = 2, /**< Continue a span() while there is a set element at the current position.
1917 (For characters only, this is like while contains(current)==true).
1919 When span() returns, the substring between where it started and the position
1920 it returned consists only of set elements (characters or strings) that are in the set.
1922 If a set only contains single characters, then this is the same
1923 as #I18N_USET_SPAN_CONTAINED.
1925 If a set contains strings, then the span will be the longest substring
1926 with a match at each position with the longest single set element (character or string). */
1927 I18N_USET_SPAN_CONDITION_COUNT /**< One more than the last span condition. */
1928 } i18n_uset_span_condition_e;
1932 * @brief Enumeration for bitmask values to be passed to i18n_uset_pattern_options_create() or i18n_uset_apply_pattern() taking an option parameter.
1933 * @since_tizen 2.3.1
1936 I18N_USET_IGNORE_SPACE = 1, /**< Ignore white space within patterns unless quoted or escaped. */
1937 I18N_USET_CASE_INSENSITIVE = 2, /**< Enable case insensitive matching.
1938 E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
1939 "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
1940 This performs a full closure over case mappings, e.g. U+017F for s.
1942 The resulting set is a superset of the input for the code points but not for the strings.
1943 It performs a case mapping closure of the code points and adds full case folding strings for the code points,
1944 and reduces strings of the original set to their full case folding equivalents.
1946 This is designed for case-insensitive matches, for example in regular expressions.
1947 The full code point case closure allows checking of an input character directly against the closure set.
1948 Strings are matched by comparing the case-folded form from the closure
1949 set with an incremental case folding of the string in question.
1951 The closure set will also contain single code points if the original
1952 set contained case-equivalent strings (like U+00DF for "ss" or "Ss" etc.).
1953 This is not necessary (that is, redundant) for the above matching method
1954 but results in the same closure sets regardless of whether the original
1955 set contained the code point or a string. */
1957 I18N_USET_ADD_CASE_MAPPINGS = 4 /**< Enable case insensitive matching.
1958 E.g., "[ab]" with this flag will match 'a', 'A', 'b', and 'B'.
1959 "[^ab]" with this flag will match all except 'a', 'A', 'b', and 'B'.
1960 This adds the lower-, title-, and uppercase mappings as well as the case folding of each existing element in the set. */
1969 * @addtogroup CAPI_BASE_UTILS_I18N_UENUMERATION_MODULE
1974 * @brief Structure representing an enumeration.
1975 * @details For usage in C programs.
1976 * @since_tizen 2.3.1
1978 typedef void* i18n_uenumeration_h;
1989 #endif /* __UTILS_I18N_TYPES_H__*/