Apply changes of mobile to wearable 22/59122/1 accepted/tizen/ivi/20160218.022852 accepted/tizen/mobile/20160211.043509 accepted/tizen/tv/20160211.043528 accepted/tizen/wearable/20160211.043551 submit/tizen/20160211.020459 submit/tizen_common/20160218.142243 submit/tizen_ivi/20160217.000000 submit/tizen_ivi/20160217.000001
authorByungWoo Lee <bw1212.lee@samsung.com>
Thu, 11 Feb 2016 02:03:11 +0000 (11:03 +0900)
committerByungWoo Lee <bw1212.lee@samsung.com>
Thu, 11 Feb 2016 02:03:11 +0000 (11:03 +0900)
Change-Id: I47a53b690d70b9f28fe9626ab6f46d0efe77ed7e

src/include/wearable/utils_i18n_types.h
src/include/wearable/utils_i18n_ubrk.h
src/include/wearable/utils_i18n_ucollator.h
src/include/wearable/utils_i18n_udatepg.h
src/include/wearable/utils_i18n_ulocale.h
src/include/wearable/utils_i18n_unumber.h
src/include/wearable/utils_i18n_usearch.h
src/include/wearable/utils_i18n_ustring.h

index cf2dde8848cada212f3de74b35c5b4c5865fc438..a96cbed031939f3f0e3b39ca299ed709bb0205de 100644 (file)
@@ -240,9 +240,9 @@ typedef enum {
              0-9 A-F a-f
          */
     I18N_UCHAR_BIDI_CONTROL,
-       /**< Binary property Bidi_Control. \n
-        Format controls which have specific functions in the Bidi Algorithm.
-        */
+    /**< Binary property Bidi_Control. \n
+     Format controls which have specific functions in the Bidi Algorithm.
+     */
     I18N_UCHAR_BIDI_MIRRORED,
         /**< Binary property Bidi_Mirrored. \n
              Characters that may change display in RTL text. See Bidi Algorithm, UTR 9.
@@ -524,7 +524,9 @@ typedef enum {
              Returns #i18n_uchar_u_word_break_values_e values.
          */
     I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE,
-        /**< Unsupported yet. Please do not use.  */
+        /**< Enumerated property Bidi_Paired_Bracket_Type. \n
+             Returns #i18n_uchar_u_bidi_paired_bracket_type_e values .
+         */
     I18N_UCHAR_INT_LIMIT,
         /**< One more than the last constant for enumerated/integer Unicode properties. */
     I18N_UCHAR_GENERAL_CATEGORY_MASK           = 0x2000,
@@ -565,8 +567,8 @@ typedef enum {
         /**< String property Titlecase_Mapping. */
     I18N_UCHAR_UPPERCASE_MAPPING               = 0x400C,
         /**< String property Uppercase_Mapping. */
-    I18N_UCHAR_BIDI_PAIRED_BRACKET,
-        /**< Unsupported yet. Please do not use. */
+    I18N_UCHAR_BIDI_PAIRED_BRACKET                = 0x400D,
+        /**< String property Bidi_Paired_Bracket. */
     I18N_UCHAR_STRING_LIMIT,
         /**< One more than the last constant for string Unicode properties. */
     I18N_UCHAR_SCRIPT_EXTENSIONS               = 0x7000,
@@ -579,6 +581,22 @@ typedef enum {
         /**< Represents a nonexistent or invalid property or property value. */
 } i18n_uchar_uproperty_e;
 
+/**
+ * @brief Bidi Paired Bracket Type constants.
+ * @since_tizen 3.0
+ * @see I18N_UCHAR_BIDI_PAIRED_BRACKET_TYPE
+ *
+ */
+typedef enum {
+       I18N_UCHAR_U_BPT_NONE,    /**< Not a paired bracket. */
+
+       I18N_UCHAR_U_BPT_OPEN,    /**< Open paired bracket. */
+
+       I18N_UCHAR_U_BPT_CLOSE,   /**< Close paired bracket. */
+
+       I18N_UCHAR_U_BPT_COUNT /**< Count */
+} i18n_uchar_u_bidi_paired_bracket_type_e;
+
 /**
  * @brief Constants for Unicode blocks, see the Unicode Data file Blocks.txt.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
@@ -798,6 +816,38 @@ typedef enum {
     I18N_UCHAR_UBLOCK_TRANSPORT_AND_MAP_SYMBOLS,                                 /**< Transport And Map Symbols */
     I18N_UCHAR_UBLOCK_ALCHEMICAL_SYMBOLS,                                        /**< Alchemical Symbols */
     I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,                        /**< CJK Unified Ideographs Extension D */
+    I18N_UCHAR_UBLOCK_BASSA_VAH = 221,                                                                  /**< Bassa Vah (Since 3.0) */
+    I18N_UCHAR_UBLOCK_CAUCASIAN_ALBANIAN = 222,                                                         /**< Caucasian Albanian (Since 3.0) */
+    I18N_UCHAR_UBLOCK_COPTIC_EPACT_NUMBERS = 223,                                                       /**< Coptic Epact Numbers (Since 3.0) */
+    I18N_UCHAR_UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224,                               /**< Combining Diacritical Marks Extended (Since 3.0) */
+    I18N_UCHAR_UBLOCK_DUPLOYAN = 225,                                                                   /**< Duployan (Since 3.0) */
+    I18N_UCHAR_UBLOCK_ELBASAN = 226,                                                                    /**< Elbasan (Since 3.0) */
+    I18N_UCHAR_UBLOCK_GEOMETRIC_SHAPES_EXTENDED = 227,                                                  /**< Geometric Shapes Extended (Since 3.0) */
+    I18N_UCHAR_UBLOCK_GRANTHA = 228,                                                                    /**< Grantha (Since 3.0) */
+    I18N_UCHAR_UBLOCK_KHOJKI = 229,                                                                     /**< Khojki (Since 3.0) */
+    I18N_UCHAR_UBLOCK_KHUDAWADI = 230,                                                                  /**< Khudawadi (Since 3.0) */
+    I18N_UCHAR_UBLOCK_LATIN_EXTENDED_E = 231,                                                           /**< Latin Extended E (Since 3.0) */
+    I18N_UCHAR_UBLOCK_LINEAR_A = 232,                                                                   /**< Linear A (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MAHAJANI = 233,                                                                   /**< Mahajani (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MANICHAEAN = 234,                                                                 /**< Manichaean (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MENDE_KIKAKUI = 235,                                                              /**< Mende Kikakui (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MODI = 236,                                                                       /**< Modi (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MRO = 237,                                                                        /**< Mro (Since 3.0) */
+    I18N_UCHAR_UBLOCK_MYANMAR_EXTENDED_B = 238,                                                         /**< Myanmar Extended B (Since 3.0) */
+    I18N_UCHAR_UBLOCK_NABATAEAN = 239,                                                                  /**< Nabataean (Since 3.0) */
+    I18N_UCHAR_UBLOCK_OLD_NORTH_ARABIAN = 240,                                                          /**< Old North Arabian (Since 3.0) */
+    I18N_UCHAR_UBLOCK_OLD_PERMIC = 241,                                                                 /**< Old Permic (Since 3.0) */
+    I18N_UCHAR_UBLOCK_ORNAMENTAL_DINGBATS = 242,                                                        /**< Ornamental Dingbats (Since 3.0) */
+    I18N_UCHAR_UBLOCK_PAHAWH_HMONG = 243,                                                               /**< Pahawh Hmong (Since 3.0) */
+    I18N_UCHAR_UBLOCK_PALMYRENE = 244,                                                                  /**< Palmyrene (Since 3.0) */
+    I18N_UCHAR_UBLOCK_PAU_CIN_HAU = 245,                                                                /**< Pau Cin Hau (Since 3.0) */
+    I18N_UCHAR_UBLOCK_PSALTER_PAHLAVI = 246,                                                            /**< Psalter Pahlavi (Since 3.0) */
+    I18N_UCHAR_UBLOCK_SHORTHAND_FORMAT_CONTROLS = 247,                                                  /**< Shorthand Format Controls (Since 3.0) */
+    I18N_UCHAR_UBLOCK_SIDDHAM = 248,                                                                    /**< Siddham (Since 3.0) */
+    I18N_UCHAR_UBLOCK_SINHALA_ARCHAIC_NUMBERS = 249,                                                    /**< Sinhala Archaic Numbers (Since 3.0) */
+    I18N_UCHAR_UBLOCK_SUPPLEMENTAL_ARROWS_C = 250,                                                      /**< Supplemental Arrows C (Since 3.0) */
+    I18N_UCHAR_UBLOCK_TIRHUTA = 251,                                                                    /**< Tirhuta (Since 3.0) */
+    I18N_UCHAR_UBLOCK_WARANG_CITI = 252,                                                                /**< Warang Citi (Since 3.0) */
     I18N_UCHAR_UBLOCK_COUNT,                                                     /**< Count */
     I18N_UCHAR_UBLOCK_INVALID_CODE = -1                                          /**< Invalid Code */
 } i18n_uchar_ublock_code_e;
@@ -826,6 +876,10 @@ typedef enum {
     I18N_UCHAR_U_POP_DIRECTIONAL_FORMAT,                             /**< PDF */
     I18N_UCHAR_U_DIR_NON_SPACING_MARK,                               /**< NSM */
     I18N_UCHAR_U_BOUNDARY_NEUTRAL,                                   /**< BN */
+    I18N_UCHAR_U_FIRST_STRONG_ISOLATE,                               /**< FSI (Since 3.0) */
+    I18N_UCHAR_U_LEFT_TO_RIGHT_ISOLATE,                              /**< FSI (Since 3.0) */
+    I18N_UCHAR_U_RIGHT_TO_LEFT_ISOLATE,                              /**< RLI (Since 3.0) */
+    I18N_UCHAR_U_POP_DIRECTIONAL_ISOLATE,                            /**< PDI (Since 3.0) */
     I18N_UCHAR_U_CHAR_DIRECTION_COUNT                                /**< Count */
 } i18n_uchar_direction_e;
 
@@ -972,6 +1026,34 @@ typedef enum {
     I18N_UCHAR_U_JG_FARSI_YEH,                                                     /**< Farsi Yeh */
     I18N_UCHAR_U_JG_NYA,                                                           /**< Nya */
     I18N_UCHAR_U_JG_ROHINGYA_YEH,                                                  /**< Rohingya Yeh */
+    I18N_UCHAR_U_JG_MANICHAEAN_ALEPH,                                              /**< Manichaean Aleph (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_AYIN,                                               /**< Manichaean Ayin (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_BETH,                                               /**< Manichaean Beth (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_DALETH,                                             /**< Manichaean Daleth (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_DHAMEDH,                                            /**< Manichaean Dhamedh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_FIVE,                                               /**< Manichaean Five (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_GIMEL,                                              /**< Manichaean Gimel (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_HETH,                                               /**< Manichaean Heth (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_HUNDRED,                                            /**< Manichaean Hundred (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_KAPH,                                               /**< Manichaean Kaph (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_LAMEDH,                                             /**< Manichaean Lamedh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_MEM,                                                /**< Manichaean Mem (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_NUN,                                                /**< Manichaean Nun (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_ONE,                                                /**< Manichaean One (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_PE,                                                 /**< Manichaean Pe (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_QOPH,                                               /**< Manichaean Qoph (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_RESH,                                               /**< Manichaean Resh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_SADHE,                                              /**< Manichaean Sadhe (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_SAMEKH,                                             /**< Manichaean Samekh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_TAW,                                                /**< Manichaean Taw (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_TEN,                                                /**< Manichaean Ten (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_TETH,                                               /**< Manichaean Teth (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_THAMEDH,                                            /**< Manichaean Thamedh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_TWENTY,                                             /**< Manichaean Twenty (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_WAW,                                                /**< Manichaean Waw (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_YODH,                                               /**< Manichaean Yodh (Since 3.0) */
+    I18N_UCHAR_U_JG_MANICHAEAN_ZAYIN,                                              /**< Manichaean Zayin (Since 3.0) */
+    I18N_UCHAR_U_JG_STRAIGHT_WAW,                                                  /**< Manichaean Waw (Since 3.0) */
     I18N_UCHAR_U_JG_COUNT                                                          /**< Count */
  } i18n_uchar_u_joining_group_e;
 
@@ -1102,6 +1184,10 @@ typedef enum {
     I18N_UCHAR_U_WB_LF,                 /**< [LF] */
     I18N_UCHAR_U_WB_MIDNUMLET,          /**< [MB] */
     I18N_UCHAR_U_WB_NEWLINE,            /**< [NL] */
+    I18N_UCHAR_U_WB_REGIONAL_INDICATOR, /**< [RI] (Since 3.0) */
+    I18N_UCHAR_U_WB_HEBREW_LETTER,      /**< [HL] (Since 3.0) */
+    I18N_UCHAR_U_WB_SINGLE_QUOTE,       /**< [SQ] (Since 3.0) */
+    I18N_UCHAR_U_WB_DOUBLE_QUOTE,       /**< [DQ] (Since 3.0) */
     I18N_UCHAR_U_WB_COUNT               /**<  */
 } i18n_uchar_u_word_break_values_e;
 
@@ -1253,9 +1339,9 @@ typedef enum {
  * @since_tizen 2.4
  */
 typedef enum {
-       I18N_UNORMALIZATION_NO,         /**< The input string is not in the normalization form. */
-       I18N_UNORMALIZATION_YES,        /**< The input string is in the normalization form. */
-       I18N_UNORMALIZATION_MAYBE       /**< The input string may or may not be in the normalization form. */
+    I18N_UNORMALIZATION_NO,     /**< The input string is not in the normalization form. */
+    I18N_UNORMALIZATION_YES,    /**< The input string is in the normalization form. */
+    I18N_UNORMALIZATION_MAYBE   /**< The input string may or may not be in the normalization form. */
 } i18n_unormalization_check_result_e;
 
 /**
@@ -1626,6 +1712,281 @@ typedef enum {
     I18N_UDISPLAY_CONTEXT_CAPITALIZATION_FOR_STANDALONE            = (I18N_UDISPCTX_TYPE_CAPITALIZATION<<8) + 4,   /**< Capitalization: For standalone */
 } i18n_udisplay_context_e;
 
+/* Skeletons for dates. */
+
+/**
+ * @brief Constant for date skeleton with year.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_YEAR                       "y"
+
+/**
+ * @brief Constant for date skeleton with quarter.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_QUARTER                    "QQQQ"
+
+/**
+ * @brief Constant for date skeleton with abbreviated quarter.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_ABBR_QUARTER               "QQQ"
+
+/**
+ * @brief Constant for date skeleton with year and quarter.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_YEAR_QUARTER               "yQQQQ"
+
+/**
+ * @brief Constant for date skeleton with year and abbreviated quarter.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_YEAR_ABBR_QUARTER          "yQQQ"
+
+/**
+ * @brief Constant for date skeleton with month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_MONTH                      "MMMM"
+
+/**
+ * @brief Constant for date skeleton with abbreviated month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+
+#define I18N_UDATE_ABBR_MONTH                 "MMM"
+
+/**
+ * @brief Constant for date skeleton with numeric month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_NUM_MONTH                  "M"
+
+/**
+ * @brief Constant for date skeleton with year and month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_MONTH                 "yMMMM"
+
+/**
+ * @brief Constant for date skeleton with year and abbreviated month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_ABBR_MONTH            "yMMM"
+
+/**
+ * @brief Constant for date skeleton with year and numeric month.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_NUM_MONTH             "yM"
+
+/**
+ * @brief Constant for date skeleton with day.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_DAY                        "d"
+
+/**
+ * @brief Constant for date skeleton with year, month, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_MONTH_DAY             "yMMMMd"
+
+/**
+ * @brief Constant for date skeleton with year, abbreviated month, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_ABBR_MONTH_DAY        "yMMMd"
+
+/**
+ * @brief Constant for date skeleton with year, numeric month, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_NUM_MONTH_DAY         "yMd"
+
+/**
+ * @brief Constant for date skeleton with weekday.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_WEEKDAY                    "EEEE"
+
+/**
+ * @brief Constant for date skeleton with abbreviated weekday.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_ABBR_WEEKDAY               "E"
+
+/**
+ * @brief Constant for date skeleton with year, month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_MONTH_WEEKDAY_DAY     "yMMMMEEEEd"
+
+/**
+ * @brief Constant for date skeleton with year, abbreviated month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd"
+
+/**
+ * @brief Constant for date skeleton with year, numeric month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
+
+/**
+ * @brief Constant for date skeleton with long month and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_MONTH_DAY                  "MMMMd"
+
+/**
+ * @brief Constant for date skeleton with abbreviated month and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_ABBR_MONTH_DAY             "MMMd"
+
+/**
+ * @brief Constant for date skeleton with numeric month and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_NUM_MONTH_DAY              "Md"
+
+/**
+ * @brief Constant for date skeleton with month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_MONTH_WEEKDAY_DAY          "MMMMEEEEd"
+
+/**
+ * @brief Constant for date skeleton with abbreviated month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_ABBR_MONTH_WEEKDAY_DAY     "MMMEd"
+
+/**
+ * @brief Constant for date skeleton with numeric month, weekday, and day.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_NUM_MONTH_WEEKDAY_DAY      "MEd"
+
+/* Skeletons for times. */
+
+/**
+ * @brief Constant for date skeleton with hour, with the locale's preferred hour format (12 or 24).
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR                       "j"
+
+/**
+ * @brief Constant for date skeleton with hour in 24-hour presentation.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR24                     "H"
+
+/**
+ * @brief Constant for date skeleton with minute.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_MINUTE                     "m"
+
+/**
+ * @brief Constant for date skeleton with hour and minute, with the locale's preferred hour format (12 or 24).
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR_MINUTE                "jm"
+
+/**
+ * @brief Constant for date skeleton with hour and minute in 24-hour presentation.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR24_MINUTE              "Hm"
+
+/**
+ * @brief Constant for date skeleton with second.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_SECOND                     "s"
+
+/**
+ * @brief Constant for date skeleton with hour, minute, and second,
+ * with the locale's preferred hour format (12 or 24).
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR_MINUTE_SECOND         "jms"
+
+/**
+ * @brief Constant for date skeleton with hour, minute, and second in
+ * 24-hour presentation.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_HOUR24_MINUTE_SECOND       "Hms"
+
+/**
+ * @brief Constant for date skeleton with minute and second.
+ * @details Used in combinations date + time, date + time + zone, or time + zone.
+ * @since_tizen 3.0
+ * @see i18n_udatepg_get_best_pattern()
+ */
+#define I18N_UDATE_MINUTE_SECOND              "ms"
+
 /**
  * @}
  * @}
@@ -1741,7 +2102,7 @@ typedef enum {
     I18N_UNUMBER_CURRENCY_ISO,              /**< Currency format with an ISO currency code, e.g., "USD1.00" */
     I18N_UNUMBER_CURRENCY_PLURAL,           /**< Currency format with a pluralized currency name, e.g., "1.00 US dollar" and "3.00 US dollars" */
 
-    I18N_UNUMBER_FORMAT_STYLE_COUNT   = I18N_UNUMBER_CURRENCY_PLURAL + 2,   /**< One more than the highest number format style constant */
+    I18N_UNUMBER_FORMAT_STYLE_COUNT,                                                                       /**< One more than the highest number format style constant */
     I18N_UNUMBER_DEFAULT              = I18N_UNUMBER_DECIMAL,               /**< Default format */
     I18N_UNUMBER_IGNORE               = I18N_UNUMBER_PATTERN_DECIMAL        /**< Alias for #I18N_UNUMBER_PATTERN_DECIMAL */
  } i18n_unumber_format_style_e;
@@ -1778,7 +2139,7 @@ typedef enum {
     I18N_UNUMBER_SEVEN_DIGIT_SYMBOL                  = 24,      /**< Seven */
     I18N_UNUMBER_EIGHT_DIGIT_SYMBOL                  = 25,      /**< Eight */
     I18N_UNUMBER_NINE_DIGIT_SYMBOL                   = 26,      /**< Nine */
-    I18N_UNUMBER_FORMAT_SYMBOL_COUNT                 = 27       /**< Number of enumerators */
+    I18N_UNUMBER_FORMAT_SYMBOL_COUNT                                                   /**< Number of enumerators */
  } i18n_unumber_format_symbol_e;
 
 /**
@@ -1823,17 +2184,21 @@ typedef enum {
  * @since_tizen 2.3.1
  */
 typedef enum {
-    I18N_UNUMBER_POSITIVE_PREFIX,               /**< Positive prefix */
-    I18N_UNUMBER_POSITIVE_SUFFIX,               /**< Positive suffix */
-    I18N_UNUMBER_NEGATIVE_PREFIX,               /**< Negative prefix */
-    I18N_UNUMBER_NEGATIVE_SUFFIX,               /**< Negative suffix */
-    I18N_UNUMBER_PADDING_CHARACTER,             /**< The character used to pad to the format width */
-    I18N_UNUMBER_CURRENCY_CODE,                 /**< The ISO currency code */
-    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:".
-                                                     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 */
-    I18N_UNUMBER_PUBLIC_RULESETS,               /**< The public rule sets. This is only available with rule-based formatters. This is a read-only attribute.
-                                                     The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).
-                                                     See the CLDR LDML spec for more information about RBNF rulesets: http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting */
+    I18N_UNUMBER_POSITIVE_PREFIX,      /**< Positive prefix */
+    I18N_UNUMBER_POSITIVE_SUFFIX,      /**< Positive suffix */
+    I18N_UNUMBER_NEGATIVE_PREFIX,      /**< Negative prefix */
+    I18N_UNUMBER_NEGATIVE_SUFFIX,      /**< Negative suffix */
+    I18N_UNUMBER_PADDING_CHARACTER,    /**< The character used to pad to the format width */
+    I18N_UNUMBER_CURRENCY_CODE,        /**< The ISO currency code */
+    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:".
+                                         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 */
+    I18N_UNUMBER_PUBLIC_RULESETS,      /**< The public rule sets. This is only available with rule-based formatters. This is a read-only attribute.
+                                         The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).
+                                         See the CLDR LDML spec for more information about RBNF rulesets:
+                                         http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting */
 } i18n_unumber_format_text_attribute_e;
 
 /**
@@ -1868,6 +2233,99 @@ typedef enum {
 #define I18N_ULOCALE_UK                        "en_GB"      /**< Useful constant for en_GB. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
 #define I18N_ULOCALE_US                        "en_US"      /**< Useful constant for en_US. @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif*/
 
+/**
+ * @brief Useful constant for the maximum size of the language part of a locale ID.
+ * (including the terminating NULL).
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ * @see i18n_ulocale_get_language()
+ */
+#define I18N_ULOCALE_LANG_CAPACITY 12
+
+/**
+ * @brief Useful constant for the maximum size of the country part of a locale ID
+ * (including the terminating NULL).
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ * @see i18n_ulocale_get_country()
+ */
+#define I18N_ULOCALE_COUNTRY_CAPACITY 4
+/**
+ * @brief Useful constant for the maximum size of the whole locale ID
+ * (including the terminating NULL and all keywords).
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_FULLNAME_CAPACITY 157
+
+/**
+ * @brief Useful constant for the maximum size of the script part of a locale ID
+ * (including the terminating NULL).
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ * @see i18n_ulocale_get_script()
+ */
+#define I18N_ULOCALE_SCRIPT_CAPACITY 6
+
+/**
+ * @brief Useful constant for the maximum size of keywords in a locale
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORDS_CAPACITY 96
+
+/**
+ * @brief Useful constant for the maximum total size of keywords and their values in a locale
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_AND_VALUES_CAPACITY 100
+
+/**
+ * @brief Invariant character separating keywords from the locale string
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_SEPARATOR '@'
+
+/**
+ * @brief Unicode code point for '@' separating keywords from the locale string.
+ * @since_tizen 3.0
+ * @see #I18N_ULOCALE_KEYWORD_SEPARATOR
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_SEPARATOR_UNICODE 0x40
+
+/**
+ * @brief Invariant character for assigning value to a keyword
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_ASSIGN '='
+
+/**
+ * @brief Unicode code point for '=' for assigning value to a keyword.
+ * @since_tizen 3.0
+ * @see #I18N_ULOCALE_KEYWORD_ASSIGN
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_ASSIGN_UNICODE 0x3D
+
+/**
+ * @brief Invariant character separating keywords
+ * @since_tizen 3.0
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR ';'
+
+/**
+ * @brief Unicode code point for ';' separating keywords
+ * @since_tizen 3.0
+ * @see #I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR
+ * @see i18n_ulocale_get_keyword_value()
+ */
+#define I18N_ULOCALE_KEYWORD_ITEM_SEPARATOR_UNICODE 0x3B
+
 /**
  * @brief Enumeration for the 'out_result' parameter return value
  * @since_tizen 2.3.1
@@ -1924,7 +2382,7 @@ typedef enum {
  *
  * @retval  character   the character represented by the escape sequence at offset
  *
- * @see #i18n_ustring_unescape_at()
+ * @see i18n_ustring_unescape_at()
  */
 typedef i18n_uchar(* i18n_ustring_unescape_char_at_cb)(int32_t offset, void *context);
 
@@ -2018,6 +2476,7 @@ typedef void* i18n_ubreak_iterator_s;
 typedef void* i18n_ubreak_iterator_h;
 
 /**
+ * @deprecated Deprecated since Tizen 3.0
  * @brief A recommended size (in bytes) for the memory buffer to be passed to i18n_ubrk_safe_clone().
  * @since_tizen 2.3.1
  */
@@ -2349,11 +2808,11 @@ typedef enum {
    I18N_USCRIPT_ANATOLIAN_HIEROGLYPHS         = 156,/**< Hluw */
    I18N_USCRIPT_KHOJKI                        = 157,/**< Khoj */
    I18N_USCRIPT_TIRHUTA                       = 158,/**< Tirh */
-I18N_USCRIPT_CODE_LIMIT                                         = 159 /**< Count of i18n_uscript_code_e enumerators*/
+   I18N_USCRIPT_CODE_LIMIT                    = 159 /**< Count of i18n_uscript_code_e enumerators*/
 } i18n_uscript_code_e;
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __UTILS_I18N_TYPES_H__*/
+#endif    /* __UTILS_I18N_TYPES_H__*/
index 23cf7aaf2ac988548cbeb74cb87a5c97aca8f247..c8a6fa0ad9d30800e644a4ff043b3050fc80add6 100755 (executable)
@@ -177,13 +177,12 @@ int32_t i18n_ubrk_next (i18n_ubreak_iterator_h break_iter);
 int32_t i18n_ubrk_previous (i18n_ubreak_iterator_h break_iter);
 
 /**
- * @brief Sets the iterator position to the index of the first character in the text being scanned.
- * @details This is not always the same as index @c 0 of the text.
- * @remarks The specific error code can be obtained using the get_last_result() method.
+ * @brief Sets the iterator position to zero, the start of the text being scanned.
+ * * @remarks The specific error code can be obtained using the get_last_result() method.
  *          Error codes are described in Exceptions section.
  * @since_tizen 2.3.1
  * @param[in] break_iter The break iterator to use. Must not be @c NULL.
- * @return The character index of the first character in the text being scanned.
+ * @return The new iterator position (zero).
  * @exception #I18N_ERROR_NONE Successful
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
  * @see i18n_ubrk_last()
index cd129da932ad17b24afac242d963444f59c456bf..4a406742717339a582e51a3dfaeca7b599cba468 100755 (executable)
@@ -125,7 +125,14 @@ extern "C" {
 
 /**
  * @brief Creates a i18n_ucollator_h for comparing strings.
- * @details The i18n_ucollator_h is used in all the calls to the Collation service.\n
+ * @details For some languages, multiple collation types are available;
+ * for example, "de@collation=phonebook".
+ * Collation attributes can be specified via locale keywords as well,
+ * in the old locale extension syntax ("el@colCaseFirst=upper")
+ * or in language tag syntax ("el-u-kf-upper").
+ * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
+ *
+ * The i18n_ucollator_h is used in all the calls to the Collation service.\n
  * After finished, collator must be disposed off by calling {@link #i18n_ucollator_destroy()}.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks Must release @a collator using i18n_ucollator_destroy().
index 174690bee11283b3b906610edae02850cb07e4ee..d46317d74c4bbf0f6e15b95321530ca9753a7b65 100755 (executable)
@@ -37,7 +37,8 @@
  * @details The Udatepg module provides flexible generation of date format patterns,
  * like "yy-MM-dd". The user can build up the generator by adding successive patterns.
  * Once that is done, a query can be made using a "skeleton", which is a pattern that
- * just includes the desired fields and lengths. The generator will return the
+ * just includes the desired fields and lengths(Since Tizen 3.0 constants for skeletons are available -
+ * see #I18N_UDATE_YEAR and many, many others). The generator will return the
  * "best fit" pattern corresponding to that skeleton.\n
  * The main method people will use is i18n_udatepg_get_best_pattern(), since normally
  * #i18n_udatepg_h is pre-built with data from a particular locale.
index 51d6e8950817cb39b0fceef2e6e0c65fa153b0e1..a18015220d9985c63e7007b5ac7ab1aba2a5b91f 100644 (file)
@@ -442,7 +442,8 @@ int32_t i18n_ulocale_get_display_variant ( const char *locale, const char *displ
  *    int32_t keyword_count = 0;
  *    i18n_uchar display_keyword[256];
  *    int32_t display_keyword_len = 0;
- *    i18n_uenumeration_h keyword_enum = i18n_ulocale_keywords_create("de_DE@collation=PHONEBOOK;calendar=TRADITIONAL");
+ *    i18n_uenumeration_h keyword_enum;
+ *    i18n_ulocale_keywords_create("en_US@collation=PHONEBOOK;calendar=TRADITIONAL", &keyword_enum);
  *
  *    for(keyword_count = i18n_uenumeration_count(keyword_enum); keyword_count > 0; keyword_count--){
  *          status = get_last_result();
@@ -484,7 +485,8 @@ int32_t i18n_ulocale_get_display_keyword ( const char *keyword, const char *disp
 
 /**
  * @brief Gets the value of the keyword suitable for display for the specified locale.
- * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for PHONEBOOK, in the display locale, when "collation" is specified as the keyword.
+ * @details E.g : for the locale string de_DE\@collation=PHONEBOOK, this API gets the display string for PHONEBOOK,
+ * in the display locale, when "collation" is specified as the keyword.
  * @remarks The specific error code can be obtained using the get_last_result() method.
  *          Error codes are described in Exceptions section and #i18n_error_code_e description.
  * @since_tizen 2.3.1
@@ -567,7 +569,7 @@ const char * const *i18n_ulocale_get_iso_countries ( void );
 int32_t i18n_ulocale_get_parent ( const char *locale_id, char *parent, int32_t parent_capacity );
 
 /**
- * @brief Gets the full name for the specified locale.
+ * @brief Gets the full name for the specified locale, like i18n_ulocale_get_name(), but without keywords.
  * @details Note : This has the effect of 'canonicalizing' the string to a certain extent.
  *          Upper and lower case are set as needed,
  *          and if the components were in 'POSIX' format they are changed to I18N format.
@@ -628,13 +630,61 @@ int32_t i18n_ulocale_get_keyword_value ( const char *locale_id, const char *keyw
 
 /**
  * @brief Sets or removes the value of the specified keyword.
- * @details For removing all keywords, use i18n_ulocale_get_base_name().
+ * @details For removing all keywords(retrieving only locale base name associated with the keywords),
+ * use i18n_ulocale_get_base_name().
  *
  *          NOTE : Unlike almost every other I18N function which takes a
  *          buffer, this function will NOT truncate the output text. If a
  *          #I18N_ERROR_BUFFER_OVERFLOW is received, it means that the original
  *          buffer is untouched. This is done to prevent incorrect or possibly
  *          even malformed locales from being generated and used.
+ *
+ * Below code prints following logs in SDK:
+ *
+ * Locale and keywords: en_US@abc=12;def=34
+ * keyword1: abc
+ * keyword2: def
+ * Locale: en_US
+ * Keyword1 value: 12
+ *
+ * @code
+ *    int32_t buff_size = 50;
+ *    int32_t sub_buff_size = 45;
+ *    char *buff = malloc(sizeof(char)*buff_size);
+ *    char *sub_buff = malloc(sizeof(char)*sub_buff_size);
+ *    char *locale = "en_US";
+ *
+ *    snprintf(buff, buff_size, "%s%s",locale, sub_buff);
+ *
+ *    i18n_ulocale_set_keyword_value("abc", "cba", buff, buff_size);
+ *    i18n_ulocale_set_keyword_value("def", "34", buff, buff_size);
+ *
+ *    i18n_uenumeration_h keyword_enum;
+ *    i18n_ulocale_keywords_create(buff, &keyword_enum);
+ *
+ *    int32_t res_len = 0;
+ *    const char *keyw = i18n_uenumeration_next(keyword_enum, &res_len);
+ *    const char *keyw2 = i18n_uenumeration_next(keyword_enum, &res_len);
+ *
+ *    char *only_locale = malloc(sizeof(char)*10);
+ *    i18n_ulocale_get_base_name(buff, only_locale, 10);
+ *
+ *    int32_t buff_size_get = 50;
+ *    char *buff_out = malloc(sizeof(char)*buff_size_get);
+ *    i18n_ulocale_get_keyword_value(buff, "abc", buff_out, buff_size_get);
+ *
+ *    dlog_print(DLOG_DEBUG, "test", "Locale and keywords: %s", buff);
+ *    dlog_print(DLOG_DEBUG, "test", "keyword1: %s", keyw);
+ *    dlog_print(DLOG_DEBUG, "test", "keyword2: %s", keyw2);
+ *    dlog_print(DLOG_DEBUG, "test", "Locale: %s", only_locale);
+ *    dlog_print(DLOG_DEBUG, "test", "Keyword1 value: %s", buff_out);
+ *
+ *    i18n_uenumeration_destroy(keyword_enum)
+ *    free(buff);
+ *    free(sub_buff);
+ *    free(only_locale);
+ *    free(buff_out);
+ * @endcode
  * @remarks The specific error code can be obtained using the get_last_result() method.
  *          Error codes are described in Exceptions section and #i18n_error_code_e description.
  * @since_tizen 2.3.1
index c25d66532a986da300f2ccf27998f1ba18db2e71..f1e7cf37df395e6fa814cd911fb77e66cce3a42c 100644 (file)
@@ -74,8 +74,8 @@ extern "C" {
 
 /**
  * @brief Creates and returns a new unumber_format_h for formatting and parsing numbers.
- * @details A unumber_format_style_e may be used to format numbers by calling {@link i18n_unumber_create()}.
- * The caller must call {@link #i18n_unumber_destroy() } when done to release resources used by this object.
+ * @details A unumber_format_style_e may be used to format numbers by calling i18n_unumber_create().
+ * The caller must call i18n_unumber_destroy() when done to release resources used by this object.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  * @remarks Must release @a num_format using i18n_unumber_destroy().
  *
@@ -84,6 +84,8 @@ extern "C" {
  * #I18N_UNUMBER_CURRENCY,
  * #I18N_UNUMBER_PERCENT,
  * #I18N_UNUMBER_SCIENTIFIC,
+ * #I18N_UNUMBER_CURRENCY_ISO,
+ * #I18N_UNUMBER_CURRENCY_PLURAL,
  * #I18N_UNUMBER_SPELLOUT,
  * #I18N_UNUMBER_ORDINAL,
  * #I18N_UNUMBER_DURATION,
index eb76f89f714cfb75540ccecf00b1c9c3a5b7959d..8b1e1b9f44fa99fb3f20bd0ef8f3e445fa6b7604 100755 (executable)
@@ -106,7 +106,7 @@ int i18n_usearch_create_new ( const i18n_uchar *pattern, int32_t pattern_len, co
 
 /**
  * @brief Destroys and cleans up the i18n_usearch_h.
- * @details If a collator is created in i18n_usearch_create_new(), it will be destroyed here.
+ * @details If a collator is created in i18n_usearch_create(), it will be destroyed here.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  *
  * @param[in] search_iter The i18n_usearch_h to clean up
index 247969d9d253c1455e8a1d7a111505f903f1ecbd..4e67aa02e0542efed5a47dd0a3eade8088ca2769 100755 (executable)
@@ -976,6 +976,7 @@ int32_t i18n_ustring_to_lower ( i18n_uchar *dest, int32_t dest_capacity, const i
  * only some of the result were written to the destination buffer.
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
+ * @see i18n_ustring_to_title()
  */
 int32_t i18n_ustring_to_title_new ( i18n_uchar *dest, int32_t dest_capacity, const i18n_uchar *src, int32_t src_len, i18n_ubreak_iterator_h title_iter, const char *locale);
 
@@ -1101,7 +1102,6 @@ i18n_uchar* i18n_ustring_from_UTF8 ( i18n_uchar *dest, int32_t dest_capacity, in
 
 /**
  * @brief Convert a UTF-16 string to UTF-8.
- * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
  * Same as #i18n_ustring_to_UTF8() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  *
@@ -1121,10 +1121,8 @@ i18n_uchar* i18n_ustring_from_UTF8 ( i18n_uchar *dest, int32_t dest_capacity, in
  * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
  * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
  * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
- * @param[out] error_code Pointer to a standard ICU error code. Its input value must
- * pass the U_SUCCESS() test, or else the function returns
- * immediately. Check for U_FAILURE() on output or use with
- * function chaining. (See User Guide for details.)
+ * @param[out] error_codeMust be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
  * @return The pointer to destination buffer.
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
@@ -1135,7 +1133,6 @@ char* i18n_ustring_to_UTF8_with_sub ( char *dest, int32_t dest_capacity, int32_t
 
 /**
  * @brief Convert a UTF-8 string to UTF-16.
- * @details Same as #i18n_ustring_from_UTF8() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  *
  * @param[out] dest A buffer for the result string.\n
@@ -1154,10 +1151,8 @@ char* i18n_ustring_to_UTF8_with_sub ( char *dest, int32_t dest_capacity, int32_t
  * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
  * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
  * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
- * @param[out] error_code Pointer to a standard ICU error code. Its input value must
- * pass the U_SUCCESS() test, or else the function returns
- * immediately. Check for U_FAILURE() on output or use with
- * function chaining. (See User Guide for details.)
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
  * @return The pointer to destination buffer.
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
@@ -1195,10 +1190,8 @@ i18n_uchar* i18n_ustring_from_UTF8_with_sub ( i18n_uchar *dest, int32_t dest_cap
  * @param[in] src The original source string
  * @param[in] src_len The length of the original string.\n
  * If @c -1, then @a src must be zero-terminated.
- * @param[out] error_code Pointer to a standard ICU error code. Its input value must
- * pass the U_SUCCESS() test, or else the function returns
- * immediately. Check for U_FAILURE() on output or use with
- * function chaining. (See User Guide for details.)
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
  * @return The pointer to destination buffer.
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
@@ -1250,7 +1243,6 @@ i18n_uchar32* i18n_ustring_to_UTF32 ( i18n_uchar32 *dest, int32_t dest_capacity,
  * @param[in] src The original source string
  * @param[in] src_len The length of the original string.\n
  * If @c -1, then @a src must be zero-terminated.
- *
  * @param[out] error_code Must be a valid pointer to an error code value,
  * which must not indicate a failure before the function call.
  * @return The pointer to destination buffer.
@@ -1281,10 +1273,8 @@ i18n_uchar* i18n_ustring_from_UTF32 ( i18n_uchar *dest, int32_t dest_capacity, i
  * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
  * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
  * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
- * @param[out] error_code Pointer to a standard ICU error code. Its input value must
- * pass the U_SUCCESS() test, or else the function returns
- * immediately. Check for U_FAILURE() on output or use with
- * function chaining. (See User Guide for details.)
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
  * @return The pointer to destination buffer.
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter
@@ -1296,7 +1286,6 @@ i18n_uchar32* i18n_ustring_to_UTF32_with_sub ( i18n_uchar32 *dest, int32_t dest_
 
 /**
  * @brief Convert a UTF-32 string to UTF-16.
- * @details If the input string is not well-formed, then the #I18N_ERROR_INVALID_CHAR_FOUND error code is set.
  * Same as #i18n_ustring_from_UTF32() except for the additional sub_char which is output for illegal input sequences, instead of stopping with the #I18N_ERROR_INVALID_CHAR_FOUND error code.
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
  *
@@ -1315,11 +1304,9 @@ i18n_uchar32* i18n_ustring_to_UTF32_with_sub ( i18n_uchar32 *dest, int32_t dest_
  * A substitution character can be any valid Unicode code point (up to U+10FFFF) except for surrogate code points (U+D800..U+DFFF).
  * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
  * @param[out] num_substitutions Output parameter receiving the number of substitutions if sub_char>=0. Set to 0 if no substitutions occur or sub_char<0. num_substitutions can be NULL.
- * @param[out] error_code Pointer to a standard ICU error code. Its input value must
- * pass the U_SUCCESS() test, or else the function returns
- * immediately. Check for U_FAILURE() on output or use with
- * function chaining. (See User Guide for details.)
- * @return[out] The pointer to destination buffer.
+ * @param[out] error_code Must be a valid pointer to an error code value,
+ * which must not indicate a failure before the function call.
+ * @return The pointer to destination buffer.
  *
  * @exception #I18N_ERROR_NONE Success
  * @exception #I18N_ERROR_INVALID_PARAMETER Invalid function parameter