diff --git a/icu4c/readme.html b/icu4c/readme.html index f7843f4d83c..f7762bb8ef1 100644 --- a/icu4c/readme.html +++ b/icu4c/readme.html @@ -3,7 +3,7 @@ - ReadMe for ICU 59.0.1 + ReadMe for ICU 59.1 - +

Note: This is a draft readme.

@@ -32,7 +32,7 @@ International Components for Unicode
Release Candidate (Milestone Release) - ICU 59.0.1 ReadMe + ICU 59.1 ReadMe @@ -44,7 +44,7 @@

This is a release candidate version of ICU4C. It is not recommended for production use.

-

Last updated: 2017-Jan-15
+

Last updated: 2017-Mar-04
Copyright © 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html
Copyright © 1997-2016 International Business Machines Corporation and others. @@ -230,7 +230,7 @@

Important: Please make sure you understand the Copyright and License Information.

+ "http://source.icu-project.org/repos/icu/trunk/icu4c/LICENSE">Copyright and License Information.

What is new in this release?

@@ -790,7 +790,7 @@ source file tree clean and have build output files written to a different location. This is called an "out-of-source build". Simply invoke the configure script from the target location: -
~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk
+
~/icu$ svn export http://source.icu-project.org/repos/icu/trunk/icu4c
 ~/icu$ mkdir trunk-dev
 ~/icu$ cd trunk-dev
 ~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux
diff --git a/icu4c/source/common/ubidi.cpp b/icu4c/source/common/ubidi.cpp
index 29153499b0d..8e2fc36e5f1 100644
--- a/icu4c/source/common/ubidi.cpp
+++ b/icu4c/source/common/ubidi.cpp
@@ -1348,18 +1348,20 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
 static UBiDiDirection
 checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
     DirProp *dirProps=pBiDi->dirProps;
-    DirProp dirProp;
     UBiDiLevel *levels=pBiDi->levels;
     int32_t isolateCount=0;
 
-    int32_t i, length=pBiDi->length;
+    int32_t length=pBiDi->length;
     Flags flags=0;  /* collect all directionalities in the text */
-    UBiDiLevel level;
     pBiDi->isolateCount=0;
 
-    for(i=0; iparas[0].limit;
+    int32_t currentParaLevel = pBiDi->paraLevel;
+
+    for(int32_t i=0; ipBiDi->isolateCount)
@@ -1369,21 +1371,41 @@ checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
             isolateCount--;
         else if(dirProp==B)
             isolateCount=0;
-        if(level&UBIDI_LEVEL_OVERRIDE) {
+
+        // optimized version of  int32_t currentParaLevel = GET_PARALEVEL(pBiDi, i);
+        if (pBiDi->defaultParaLevel != 0 &&
+                i == currentParaLimit && (currentParaIndex + 1) < pBiDi->paraCount) {
+            currentParaLevel = pBiDi->paras[++currentParaIndex].level;
+            currentParaLimit = pBiDi->paras[currentParaIndex].limit;
+        }
+
+        UBiDiLevel overrideFlag = level & UBIDI_LEVEL_OVERRIDE;
+        level &= ~UBIDI_LEVEL_OVERRIDE;
+        if (level < currentParaLevel || UBIDI_MAX_EXPLICIT_LEVEL < level) {
+            if (level == 0) {
+                if (dirProp == B) {
+                    // Paragraph separators are ok with explicit level 0.
+                    // Prevents reordering of paragraphs.
+                } else {
+                    // Treat explicit level 0 as a wildcard for the paragraph level.
+                    // Avoid making the caller guess what the paragraph level would be.
+                    level = (UBiDiLevel)currentParaLevel;
+                    levels[i] = level | overrideFlag;
+                }
+            } else {
+                // 1 <= level < currentParaLevel or UBIDI_MAX_EXPLICIT_LEVEL < level
+                /* level out of bounds */
+                *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+                return UBIDI_LTR;
+            }
+        }
+        if (overrideFlag != 0) {
             /* keep the override flag in levels[i] but adjust the flags */
-            level&=~UBIDI_LEVEL_OVERRIDE;     /* make the range check below simpler */
             flags|=DIRPROP_FLAG_O(level);
         } else {
             /* set the flags */
             flags|=DIRPROP_FLAG_E(level)|DIRPROP_FLAG(dirProp);
         }
-        if((levelparaLevel);
diff --git a/icu4c/source/common/unicode/ubidi.h b/icu4c/source/common/unicode/ubidi.h
index 3f29ecdc47e..3b255f928b6 100644
--- a/icu4c/source/common/unicode/ubidi.h
+++ b/icu4c/source/common/unicode/ubidi.h
@@ -1196,11 +1196,12 @@ ubidi_setContext(UBiDi *pBiDi,
  *        A level overrides the directional property of its corresponding
  *        (same index) character if the level has the
  *        #UBIDI_LEVEL_OVERRIDE bit set.

- * Except for that bit, it must be + * Aside from that bit, it must be * paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL, - * with one exception: a level of zero may be specified for a paragraph - * separator even if paraLevel>0 when multiple paragraphs - * are submitted in the same call to ubidi_setPara().

+ * except that level 0 is always allowed. + * Level 0 for a paragraph separator prevents reordering of paragraphs. + * Level 0 for other characters is treated as a wildcard + * and is lifted up to the resolved level of the surrounding paragraph.

* Caution: A copy of this pointer, not of the levels, * will be stored in the UBiDi object; * the embeddingLevels array must not be diff --git a/icu4c/source/common/unicode/uvernum.h b/icu4c/source/common/unicode/uvernum.h index 31d0167d1d7..4479ea9ff1c 100644 --- a/icu4c/source/common/unicode/uvernum.h +++ b/icu4c/source/common/unicode/uvernum.h @@ -64,13 +64,13 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_MINOR_NUM 0 +#define U_ICU_VERSION_MINOR_NUM 1 /** The current ICU patchlevel version as an integer. * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION_PATCHLEVEL_NUM 1 +#define U_ICU_VERSION_PATCHLEVEL_NUM 0 /** The current ICU build level version as an integer. * This value is for use by ICU clients. It defaults to 0. @@ -119,7 +119,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "59.0.1" +#define U_ICU_VERSION "59.1" /** The current ICU library major/minor version as a string without dots, for library name suffixes. * This value will change in the subsequent releases of ICU @@ -131,7 +131,7 @@ /** Data version in ICU4C. * @internal ICU 4.4 Internal Use Only **/ -#define U_ICU_DATA_VERSION "59.0.1" +#define U_ICU_DATA_VERSION "59.1" #endif /* U_HIDE_INTERNAL_API */ /*=========================================================================== diff --git a/icu4c/source/configure b/icu4c/source/configure index 20a0158cfd5..77a6b431c81 100755 --- a/icu4c/source/configure +++ b/icu4c/source/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ICU 59.0.1 +# Generated by GNU Autoconf 2.69 for ICU 59.1 # # Report bugs to . # @@ -582,8 +582,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ICU' PACKAGE_TARNAME='International Components for Unicode' -PACKAGE_VERSION='59.0.1' -PACKAGE_STRING='ICU 59.0.1' +PACKAGE_VERSION='59.1' +PACKAGE_STRING='ICU 59.1' PACKAGE_BUGREPORT='http://icu-project.org/bugs' PACKAGE_URL='http://icu-project.org' @@ -1357,7 +1357,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ICU 59.0.1 to adapt to many kinds of systems. +\`configure' configures ICU 59.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1423,7 +1423,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ICU 59.0.1:";; + short | recursive ) echo "Configuration of ICU 59.1:";; esac cat <<\_ACEOF @@ -1559,7 +1559,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ICU configure 59.0.1 +ICU configure 59.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2251,7 +2251,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ICU $as_me 59.0.1, which was +It was created by ICU $as_me 59.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -8345,7 +8345,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ICU $as_me 59.0.1, which was +This file was extended by ICU $as_me 59.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8399,7 +8399,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ICU config.status 59.0.1 +ICU config.status 59.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/icu4c/source/data/brkitr/root.txt b/icu4c/source/data/brkitr/root.txt index 86d2fe0ccd5..82d9879bf91 100644 --- a/icu4c/source/data/brkitr/root.txt +++ b/icu4c/source/data/brkitr/root.txt @@ -1,7 +1,7 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html#License root{ - Version{"2.1.30.48"} + Version{"2.1.32.92"} boundaries{ grapheme:process(dependency){"char.brk"} line:process(dependency){"line.brk"} diff --git a/icu4c/source/data/curr/ar.txt b/icu4c/source/data/curr/ar.txt index 3526e9e665e..2eb7d273581 100644 --- a/icu4c/source/data/curr/ar.txt +++ b/icu4c/source/data/curr/ar.txt @@ -2405,5 +2405,5 @@ ar{ two{"{0} {1}"} zero{"{0} {1}"} } - Version{"2.1.32.59"} + Version{"2.1.32.86"} } diff --git a/icu4c/source/data/curr/es_BZ.txt b/icu4c/source/data/curr/es_BZ.txt new file mode 100644 index 00000000000..f3475ce92b8 --- /dev/null +++ b/icu4c/source/data/curr/es_BZ.txt @@ -0,0 +1,12 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Currencies{ + BZD{ + "$", + "dólar beliceño", + } + } + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/curr/resfiles.mk b/icu4c/source/data/curr/resfiles.mk index ebab478825f..a05ca8dede1 100644 --- a/icu4c/source/data/curr/resfiles.mk +++ b/icu4c/source/data/curr/resfiles.mk @@ -78,56 +78,56 @@ CURR_SOURCE = af.txt af_NA.txt agq.txt ak.txt\ en_TO.txt en_TT.txt en_TV.txt en_TZ.txt en_UG.txt\ en_VC.txt en_VG.txt en_VU.txt en_WS.txt en_ZA.txt\ en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\ - es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\ - es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GQ.txt\ - es_GT.txt es_HN.txt es_MX.txt es_NI.txt es_PA.txt\ - es_PE.txt es_PH.txt es_PR.txt es_PY.txt es_SV.txt\ - es_US.txt es_UY.txt es_VE.txt et.txt eu.txt\ - ewo.txt fa.txt fa_AF.txt ff.txt ff_GN.txt\ - ff_MR.txt fi.txt fil.txt fo.txt fo_DK.txt\ - fr.txt fr_BI.txt fr_CA.txt fr_CD.txt fr_DJ.txt\ - fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt fr_LU.txt\ - fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt fr_SC.txt\ - fr_SY.txt fr_TN.txt fr_VU.txt fur.txt fy.txt\ - ga.txt gd.txt gl.txt gsw.txt gu.txt\ - guz.txt gv.txt ha.txt ha_GH.txt haw.txt\ - he.txt hi.txt hr.txt hr_BA.txt hsb.txt\ - hu.txt hy.txt id.txt ig.txt ii.txt\ - is.txt it.txt ja.txt jgo.txt jmc.txt\ - ka.txt kab.txt kam.txt kde.txt kea.txt\ - khq.txt ki.txt kk.txt kkj.txt kl.txt\ - kln.txt km.txt kn.txt ko.txt kok.txt\ - ks.txt ksb.txt ksf.txt ksh.txt kw.txt\ - ky.txt lag.txt lb.txt lg.txt lkt.txt\ - ln.txt ln_AO.txt lo.txt lrc.txt lt.txt\ - lu.txt luo.txt luy.txt lv.txt mas.txt\ - mas_TZ.txt mer.txt mfe.txt mg.txt mgh.txt\ - mgo.txt mk.txt ml.txt mn.txt mr.txt\ - ms.txt ms_BN.txt ms_SG.txt mt.txt mua.txt\ - my.txt mzn.txt naq.txt nb.txt nd.txt\ - nds.txt ne.txt nl.txt nl_AW.txt nl_BQ.txt\ - nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt nn.txt\ - nnh.txt nus.txt nyn.txt om.txt om_KE.txt\ - or.txt os.txt os_RU.txt pa.txt pa_Arab.txt\ - pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\ - pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\ - pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\ - qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\ - ro.txt ro_MD.txt rof.txt ru.txt ru_BY.txt\ - ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt rwk.txt\ - sah.txt saq.txt sbp.txt se.txt se_SE.txt\ - seh.txt ses.txt sg.txt shi.txt shi_Latn.txt\ - shi_Tfng.txt si.txt sk.txt sl.txt smn.txt\ - sn.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\ - sq.txt sq_MK.txt sr.txt sr_Cyrl.txt sr_Latn.txt\ - sv.txt sw.txt sw_CD.txt sw_UG.txt ta.txt\ - ta_LK.txt ta_MY.txt ta_SG.txt te.txt teo.txt\ - teo_KE.txt th.txt ti.txt ti_ER.txt to.txt\ - tr.txt twq.txt tzm.txt ug.txt uk.txt\ - ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\ - uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\ - vun.txt wae.txt xog.txt yav.txt yi.txt\ - yo.txt yo_BJ.txt yue.txt zgh.txt zh.txt\ - zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt\ - zh_Hant_HK.txt zh_Hant_MO.txt zu.txt + es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\ + es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EC.txt\ + es_GQ.txt es_GT.txt es_HN.txt es_MX.txt es_NI.txt\ + es_PA.txt es_PE.txt es_PH.txt es_PR.txt es_PY.txt\ + es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\ + eu.txt ewo.txt fa.txt fa_AF.txt ff.txt\ + ff_GN.txt ff_MR.txt fi.txt fil.txt fo.txt\ + fo_DK.txt fr.txt fr_BI.txt fr_CA.txt fr_CD.txt\ + fr_DJ.txt fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt\ + fr_LU.txt fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt\ + fr_SC.txt fr_SY.txt fr_TN.txt fr_VU.txt fur.txt\ + fy.txt ga.txt gd.txt gl.txt gsw.txt\ + gu.txt guz.txt gv.txt ha.txt ha_GH.txt\ + haw.txt he.txt hi.txt hr.txt hr_BA.txt\ + hsb.txt hu.txt hy.txt id.txt ig.txt\ + ii.txt is.txt it.txt ja.txt jgo.txt\ + jmc.txt ka.txt kab.txt kam.txt kde.txt\ + kea.txt khq.txt ki.txt kk.txt kkj.txt\ + kl.txt kln.txt km.txt kn.txt ko.txt\ + kok.txt ks.txt ksb.txt ksf.txt ksh.txt\ + kw.txt ky.txt lag.txt lb.txt lg.txt\ + lkt.txt ln.txt ln_AO.txt lo.txt lrc.txt\ + lt.txt lu.txt luo.txt luy.txt lv.txt\ + mas.txt mas_TZ.txt mer.txt mfe.txt mg.txt\ + mgh.txt mgo.txt mk.txt ml.txt mn.txt\ + mr.txt ms.txt ms_BN.txt ms_SG.txt mt.txt\ + mua.txt my.txt mzn.txt naq.txt nb.txt\ + nd.txt nds.txt ne.txt nl.txt nl_AW.txt\ + nl_BQ.txt nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt\ + nn.txt nnh.txt nus.txt nyn.txt om.txt\ + om_KE.txt or.txt os.txt os_RU.txt pa.txt\ + pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\ + pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\ + pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\ + pt_TL.txt qu.txt qu_BO.txt qu_EC.txt rm.txt\ + rn.txt ro.txt ro_MD.txt rof.txt ru.txt\ + ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt\ + rwk.txt sah.txt saq.txt sbp.txt se.txt\ + se_SE.txt seh.txt ses.txt sg.txt shi.txt\ + shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\ + smn.txt sn.txt so.txt so_DJ.txt so_ET.txt\ + so_KE.txt sq.txt sq_MK.txt sr.txt sr_Cyrl.txt\ + sr_Latn.txt sv.txt sw.txt sw_CD.txt sw_UG.txt\ + ta.txt ta_LK.txt ta_MY.txt ta_SG.txt te.txt\ + teo.txt teo_KE.txt th.txt ti.txt ti_ER.txt\ + to.txt tr.txt twq.txt tzm.txt ug.txt\ + uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\ + uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\ + vi.txt vun.txt wae.txt xog.txt yav.txt\ + yi.txt yo.txt yo_BJ.txt yue.txt zgh.txt\ + zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\ + zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt diff --git a/icu4c/source/data/icu-config.xml b/icu4c/source/data/icu-config.xml index e2c3ad77b18..48a2420eea4 100644 --- a/icu4c/source/data/icu-config.xml +++ b/icu4c/source/data/icu-config.xml @@ -253,6 +253,7 @@ + @@ -397,6 +398,7 @@ + diff --git a/icu4c/source/data/lang/ar.txt b/icu4c/source/data/lang/ar.txt index 0ad9c7a8b10..5d31d4f4bc9 100644 --- a/icu4c/source/data/lang/ar.txt +++ b/icu4c/source/data/lang/ar.txt @@ -849,7 +849,7 @@ ar{ VALENCIA{"بلنسية"} WADEGILE{"المندرين باللاتينية - ويد–جيلز"} } - Version{"2.1.32.59"} + Version{"2.1.32.86"} characterLabelPattern{ all{"{0} - الكل"} category-list{"{0}: {1}"} diff --git a/icu4c/source/data/lang/es_BZ.txt b/icu4c/source/data/lang/es_BZ.txt new file mode 100644 index 00000000000..7734598e064 --- /dev/null +++ b/icu4c/source/data/lang/es_BZ.txt @@ -0,0 +1,6 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/lang/resfiles.mk b/icu4c/source/data/lang/resfiles.mk index d7f2a7c5f95..4a088f3450f 100644 --- a/icu4c/source/data/lang/resfiles.mk +++ b/icu4c/source/data/lang/resfiles.mk @@ -76,47 +76,47 @@ LANG_SOURCE = af.txt agq.txt ak.txt am.txt\ en_TT.txt en_TV.txt en_TZ.txt en_UG.txt en_VC.txt\ en_VG.txt en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt\ en_ZW.txt eo.txt es.txt es_419.txt es_AR.txt\ - es_BO.txt es_BR.txt es_CL.txt es_CO.txt es_CR.txt\ - es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\ - es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\ - es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\ - et.txt eu.txt ewo.txt fa.txt fa_AF.txt\ - ff.txt fi.txt fil.txt fo.txt fr.txt\ - fr_BE.txt fr_CA.txt fr_CH.txt fur.txt fy.txt\ - ga.txt gd.txt gl.txt gsw.txt gu.txt\ - guz.txt gv.txt ha.txt haw.txt he.txt\ - hi.txt hr.txt hsb.txt hu.txt hy.txt\ - id.txt ig.txt ii.txt is.txt it.txt\ - ja.txt jgo.txt jmc.txt ka.txt kab.txt\ - kam.txt kde.txt kea.txt khq.txt ki.txt\ - kk.txt kkj.txt kl.txt kln.txt km.txt\ - kn.txt ko.txt kok.txt ks.txt ksb.txt\ - ksf.txt ksh.txt kw.txt ky.txt lag.txt\ - lb.txt lg.txt lkt.txt ln.txt lo.txt\ - lrc.txt lt.txt lu.txt luo.txt luy.txt\ - lv.txt mas.txt mer.txt mfe.txt mg.txt\ - mgh.txt mgo.txt mk.txt ml.txt mn.txt\ - mr.txt ms.txt mt.txt mua.txt my.txt\ - mzn.txt naq.txt nb.txt nd.txt nds.txt\ - ne.txt nl.txt nmg.txt nn.txt nnh.txt\ - nus.txt nyn.txt om.txt or.txt os.txt\ - pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\ - pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\ - pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\ - pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\ - ro.txt ro_MD.txt rof.txt ru.txt rw.txt\ - rwk.txt sah.txt saq.txt sbp.txt se.txt\ - se_FI.txt seh.txt ses.txt sg.txt shi.txt\ - shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\ - smn.txt sn.txt so.txt sq.txt sr.txt\ - sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt sr_Latn.txt\ - sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt sv_FI.txt\ - sw.txt sw_CD.txt sw_KE.txt ta.txt te.txt\ - teo.txt th.txt ti.txt to.txt tr.txt\ - twq.txt tzm.txt ug.txt uk.txt ur.txt\ - ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\ - vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\ - wae.txt xog.txt yav.txt yi.txt yo.txt\ - yo_BJ.txt yue.txt zgh.txt zh.txt zh_Hans.txt\ - zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt + es_BO.txt es_BR.txt es_BZ.txt es_CL.txt es_CO.txt\ + es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GT.txt\ + es_HN.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\ + es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\ + es_VE.txt et.txt eu.txt ewo.txt fa.txt\ + fa_AF.txt ff.txt fi.txt fil.txt fo.txt\ + fr.txt fr_BE.txt fr_CA.txt fr_CH.txt fur.txt\ + fy.txt ga.txt gd.txt gl.txt gsw.txt\ + gu.txt guz.txt gv.txt ha.txt haw.txt\ + he.txt hi.txt hr.txt hsb.txt hu.txt\ + hy.txt id.txt ig.txt ii.txt is.txt\ + it.txt ja.txt jgo.txt jmc.txt ka.txt\ + kab.txt kam.txt kde.txt kea.txt khq.txt\ + ki.txt kk.txt kkj.txt kl.txt kln.txt\ + km.txt kn.txt ko.txt kok.txt ks.txt\ + ksb.txt ksf.txt ksh.txt kw.txt ky.txt\ + lag.txt lb.txt lg.txt lkt.txt ln.txt\ + lo.txt lrc.txt lt.txt lu.txt luo.txt\ + luy.txt lv.txt mas.txt mer.txt mfe.txt\ + mg.txt mgh.txt mgo.txt mk.txt ml.txt\ + mn.txt mr.txt ms.txt mt.txt mua.txt\ + my.txt mzn.txt naq.txt nb.txt nd.txt\ + nds.txt ne.txt nl.txt nmg.txt nn.txt\ + nnh.txt nus.txt nyn.txt om.txt or.txt\ + os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\ + ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\ + pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\ + pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\ + rn.txt ro.txt ro_MD.txt rof.txt ru.txt\ + rw.txt rwk.txt sah.txt saq.txt sbp.txt\ + se.txt se_FI.txt seh.txt ses.txt sg.txt\ + shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\ + sl.txt smn.txt sn.txt so.txt sq.txt\ + sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt\ + sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt\ + sv_FI.txt sw.txt sw_CD.txt sw_KE.txt ta.txt\ + te.txt teo.txt th.txt ti.txt to.txt\ + tr.txt twq.txt tzm.txt ug.txt uk.txt\ + ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\ + uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\ + vun.txt wae.txt xog.txt yav.txt yi.txt\ + yo.txt yo_BJ.txt yue.txt zgh.txt zh.txt\ + zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt diff --git a/icu4c/source/data/locales/ar.txt b/icu4c/source/data/locales/ar.txt index b0c39698e78..39bbe175791 100644 --- a/icu4c/source/data/locales/ar.txt +++ b/icu4c/source/data/locales/ar.txt @@ -252,6 +252,104 @@ ar{ zero{"¤ 000 ترليو"} } } + decimalFormat{ + 1000{ + few{"0 آلاف"} + many{"0 ألف"} + one{"0 ألف"} + other{"0 ألف"} + two{"0 ألف"} + zero{"0 ألف"} + } + 10000{ + few{"00 ألف"} + many{"00 ألف"} + one{"00 ألف"} + other{"00 ألف"} + two{"00 ألف"} + zero{"00 ألف"} + } + 100000{ + few{"000 ألف"} + many{"000 ألف"} + one{"000 ألف"} + other{"000 ألف"} + two{"000 ألف"} + zero{"000 ألف"} + } + 1000000{ + few{"0 مليو"} + many{"0 مليو"} + one{"0 مليو"} + other{"0 مليو"} + two{"0 مليو"} + zero{"0 مليو"} + } + 10000000{ + few{"00 مليو"} + many{"00 مليو"} + one{"00 مليو"} + other{"00 مليو"} + two{"00 مليو"} + zero{"00 مليو"} + } + 100000000{ + few{"000 مليو"} + many{"000 مليو"} + one{"000 مليو"} + other{"000 مليو"} + two{"000 مليو"} + zero{"000 مليو"} + } + 1000000000{ + few{"0 مليا"} + many{"0 مليا"} + one{"0 مليا"} + other{"0 مليا"} + two{"0 مليا"} + zero{"0 مليا"} + } + 10000000000{ + few{"00 مليا"} + many{"00 مليا"} + one{"00 مليا"} + other{"00 مليا"} + two{"00 مليا"} + zero{"00 مليا"} + } + 100000000000{ + few{"000 مليا"} + many{"000 مليا"} + one{"000 مليا"} + other{"000 مليا"} + two{"000 مليا"} + zero{"000 مليا"} + } + 1000000000000{ + few{"0 ترليو"} + many{"0 ترليو"} + one{"0 ترليو"} + other{"0 ترليو"} + two{"0 ترليو"} + zero{"0 ترليو"} + } + 10000000000000{ + few{"00 ترليو"} + many{"00 ترليو"} + one{"00 ترليو"} + other{"00 ترليو"} + two{"00 ترليو"} + zero{"00 ترليو"} + } + 100000000000000{ + few{"000 ترليو"} + many{"000 ترليو"} + one{"000 ترليو"} + other{"000 ترليو"} + two{"000 ترليو"} + zero{"000 ترليو"} + } + } } symbols{ decimal{"."} @@ -284,7 +382,7 @@ ar{ minimumGroupingDigits{"1"} native{"arab"} } - Version{"2.1.32.59"} + Version{"2.1.32.86"} calendar{ buddhist{ eras{ diff --git a/icu4c/source/data/locales/es_BZ.txt b/icu4c/source/data/locales/es_BZ.txt new file mode 100644 index 00000000000..7734598e064 --- /dev/null +++ b/icu4c/source/data/locales/es_BZ.txt @@ -0,0 +1,6 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/locales/it_VA.txt b/icu4c/source/data/locales/it_VA.txt new file mode 100644 index 00000000000..b075886a761 --- /dev/null +++ b/icu4c/source/data/locales/it_VA.txt @@ -0,0 +1,5 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +it_VA{ + Version{"2.1.32.51"} +} diff --git a/icu4c/source/data/locales/resfiles.mk b/icu4c/source/data/locales/resfiles.mk index 964065ec021..b0ea2ce0249 100644 --- a/icu4c/source/data/locales/resfiles.mk +++ b/icu4c/source/data/locales/resfiles.mk @@ -89,99 +89,100 @@ GENRB_SOURCE = af.txt af_NA.txt af_ZA.txt agq.txt\ en_UG.txt en_UM.txt en_US.txt en_US_POSIX.txt en_VC.txt\ en_VG.txt en_VI.txt en_VU.txt en_WS.txt en_ZA.txt\ en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\ - es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\ - es_CR.txt es_CU.txt es_DO.txt es_EA.txt es_EC.txt\ - es_ES.txt es_GQ.txt es_GT.txt es_HN.txt es_IC.txt\ - es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PH.txt\ - es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\ - es_VE.txt et.txt et_EE.txt eu.txt eu_ES.txt\ - ewo.txt ewo_CM.txt fa.txt fa_AF.txt fa_IR.txt\ - ff.txt ff_CM.txt ff_GN.txt ff_MR.txt ff_SN.txt\ - fi.txt fi_FI.txt fil.txt fil_PH.txt fo.txt\ - fo_DK.txt fo_FO.txt fr.txt fr_BE.txt fr_BF.txt\ - fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt\ - fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt\ - fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt\ - fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt\ - fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt\ - fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt\ - fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt\ - fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt\ - fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt fur.txt\ - fur_IT.txt fy.txt fy_NL.txt ga.txt ga_IE.txt\ - gd.txt gd_GB.txt gl.txt gl_ES.txt gsw.txt\ - gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt\ - guz.txt guz_KE.txt gv.txt gv_IM.txt ha.txt\ - ha_GH.txt ha_NE.txt ha_NG.txt haw.txt haw_US.txt\ - he.txt he_IL.txt hi.txt hi_IN.txt hr.txt\ - hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt hu.txt\ - hu_HU.txt hy.txt hy_AM.txt id.txt id_ID.txt\ - ig.txt ig_NG.txt ii.txt ii_CN.txt is.txt\ - is_IS.txt it.txt it_CH.txt it_IT.txt it_SM.txt\ - ja.txt ja_JP.txt jgo.txt jgo_CM.txt jmc.txt\ - jmc_TZ.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\ - kam.txt kam_KE.txt kde.txt kde_TZ.txt kea.txt\ - kea_CV.txt khq.txt khq_ML.txt ki.txt ki_KE.txt\ - kk.txt kk_KZ.txt kkj.txt kkj_CM.txt kl.txt\ - kl_GL.txt kln.txt kln_KE.txt km.txt km_KH.txt\ - kn.txt kn_IN.txt ko.txt ko_KP.txt ko_KR.txt\ - kok.txt kok_IN.txt ks.txt ks_IN.txt ksb.txt\ - ksb_TZ.txt ksf.txt ksf_CM.txt ksh.txt ksh_DE.txt\ - kw.txt kw_GB.txt ky.txt ky_KG.txt lag.txt\ - lag_TZ.txt lb.txt lb_LU.txt lg.txt lg_UG.txt\ - lkt.txt lkt_US.txt ln.txt ln_AO.txt ln_CD.txt\ - ln_CF.txt ln_CG.txt lo.txt lo_LA.txt lrc.txt\ - lrc_IQ.txt lrc_IR.txt lt.txt lt_LT.txt lu.txt\ - lu_CD.txt luo.txt luo_KE.txt luy.txt luy_KE.txt\ - lv.txt lv_LV.txt mas.txt mas_KE.txt mas_TZ.txt\ - mer.txt mer_KE.txt mfe.txt mfe_MU.txt mg.txt\ - mg_MG.txt mgh.txt mgh_MZ.txt mgo.txt mgo_CM.txt\ - mk.txt mk_MK.txt ml.txt ml_IN.txt mn.txt\ - mn_MN.txt mr.txt mr_IN.txt ms.txt ms_BN.txt\ - ms_MY.txt ms_SG.txt mt.txt mt_MT.txt mua.txt\ - mua_CM.txt my.txt my_MM.txt mzn.txt mzn_IR.txt\ - naq.txt naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt\ - nd.txt nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt\ - ne.txt ne_IN.txt ne_NP.txt nl.txt nl_AW.txt\ - nl_BE.txt nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt\ - nl_SX.txt nmg.txt nmg_CM.txt nn.txt nn_NO.txt\ - nnh.txt nnh_CM.txt nus.txt nus_SS.txt nyn.txt\ - nyn_UG.txt om.txt om_ET.txt om_KE.txt or.txt\ - or_IN.txt os.txt os_GE.txt os_RU.txt pa.txt\ - pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt\ - pl_PL.txt ps.txt ps_AF.txt pt.txt pt_AO.txt\ - pt_BR.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\ - pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\ - pt_TL.txt qu.txt qu_BO.txt qu_EC.txt qu_PE.txt\ - rm.txt rm_CH.txt rn.txt rn_BI.txt ro.txt\ - ro_MD.txt ro_RO.txt rof.txt rof_TZ.txt ru.txt\ - ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt\ - ru_UA.txt rw.txt rw_RW.txt rwk.txt rwk_TZ.txt\ - sah.txt sah_RU.txt saq.txt saq_KE.txt sbp.txt\ - sbp_TZ.txt se.txt se_FI.txt se_NO.txt se_SE.txt\ - seh.txt seh_MZ.txt ses.txt ses_ML.txt sg.txt\ - sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt shi_Tfng.txt\ - shi_Tfng_MA.txt si.txt si_LK.txt sk.txt sk_SK.txt\ - sl.txt sl_SI.txt smn.txt smn_FI.txt sn.txt\ - sn_ZW.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\ - so_SO.txt sq.txt sq_AL.txt sq_MK.txt sq_XK.txt\ - sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt\ - sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_RS.txt\ - sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt sv_SE.txt\ - sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt sw_UG.txt\ - ta.txt ta_IN.txt ta_LK.txt ta_MY.txt ta_SG.txt\ - te.txt te_IN.txt teo.txt teo_KE.txt teo_UG.txt\ - th.txt th_TH.txt ti.txt ti_ER.txt ti_ET.txt\ - to.txt to_TO.txt tr.txt tr_CY.txt tr_TR.txt\ - twq.txt twq_NE.txt tzm.txt tzm_MA.txt ug.txt\ - ug_CN.txt uk.txt uk_UA.txt ur.txt ur_IN.txt\ - ur_PK.txt uz.txt uz_Arab.txt uz_Arab_AF.txt uz_Cyrl.txt\ - uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt vai.txt vai_Latn.txt\ - vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt vi.txt vi_VN.txt\ - vun.txt vun_TZ.txt wae.txt wae_CH.txt xog.txt\ - xog_UG.txt yav.txt yav_CM.txt yi.txt yi_001.txt\ - yo.txt yo_BJ.txt yo_NG.txt yue.txt yue_HK.txt\ - zgh.txt zgh_MA.txt zh.txt zh_Hans.txt zh_Hans_CN.txt\ - zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt\ - zh_Hant_MO.txt zh_Hant_TW.txt zu.txt zu_ZA.txt + es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\ + es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EA.txt\ + es_EC.txt es_ES.txt es_GQ.txt es_GT.txt es_HN.txt\ + es_IC.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\ + es_PH.txt es_PR.txt es_PY.txt es_SV.txt es_US.txt\ + es_UY.txt es_VE.txt et.txt et_EE.txt eu.txt\ + eu_ES.txt ewo.txt ewo_CM.txt fa.txt fa_AF.txt\ + fa_IR.txt ff.txt ff_CM.txt ff_GN.txt ff_MR.txt\ + ff_SN.txt fi.txt fi_FI.txt fil.txt fil_PH.txt\ + fo.txt fo_DK.txt fo_FO.txt fr.txt fr_BE.txt\ + fr_BF.txt fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt\ + fr_CD.txt fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt\ + fr_CM.txt fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt\ + fr_GF.txt fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt\ + fr_KM.txt fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt\ + fr_MG.txt fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt\ + fr_NC.txt fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt\ + fr_RW.txt fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt\ + fr_TG.txt fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt\ + fur.txt fur_IT.txt fy.txt fy_NL.txt ga.txt\ + ga_IE.txt gd.txt gd_GB.txt gl.txt gl_ES.txt\ + gsw.txt gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt\ + gu_IN.txt guz.txt guz_KE.txt gv.txt gv_IM.txt\ + ha.txt ha_GH.txt ha_NE.txt ha_NG.txt haw.txt\ + haw_US.txt he.txt he_IL.txt hi.txt hi_IN.txt\ + hr.txt hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt\ + hu.txt hu_HU.txt hy.txt hy_AM.txt id.txt\ + id_ID.txt ig.txt ig_NG.txt ii.txt ii_CN.txt\ + is.txt is_IS.txt it.txt it_CH.txt it_IT.txt\ + it_SM.txt it_VA.txt ja.txt ja_JP.txt jgo.txt\ + jgo_CM.txt jmc.txt jmc_TZ.txt ka.txt ka_GE.txt\ + kab.txt kab_DZ.txt kam.txt kam_KE.txt kde.txt\ + kde_TZ.txt kea.txt kea_CV.txt khq.txt khq_ML.txt\ + ki.txt ki_KE.txt kk.txt kk_KZ.txt kkj.txt\ + kkj_CM.txt kl.txt kl_GL.txt kln.txt kln_KE.txt\ + km.txt km_KH.txt kn.txt kn_IN.txt ko.txt\ + ko_KP.txt ko_KR.txt kok.txt kok_IN.txt ks.txt\ + ks_IN.txt ksb.txt ksb_TZ.txt ksf.txt ksf_CM.txt\ + ksh.txt ksh_DE.txt kw.txt kw_GB.txt ky.txt\ + ky_KG.txt lag.txt lag_TZ.txt lb.txt lb_LU.txt\ + lg.txt lg_UG.txt lkt.txt lkt_US.txt ln.txt\ + ln_AO.txt ln_CD.txt ln_CF.txt ln_CG.txt lo.txt\ + lo_LA.txt lrc.txt lrc_IQ.txt lrc_IR.txt lt.txt\ + lt_LT.txt lu.txt lu_CD.txt luo.txt luo_KE.txt\ + luy.txt luy_KE.txt lv.txt lv_LV.txt mas.txt\ + mas_KE.txt mas_TZ.txt mer.txt mer_KE.txt mfe.txt\ + mfe_MU.txt mg.txt mg_MG.txt mgh.txt mgh_MZ.txt\ + mgo.txt mgo_CM.txt mk.txt mk_MK.txt ml.txt\ + ml_IN.txt mn.txt mn_MN.txt mr.txt mr_IN.txt\ + ms.txt ms_BN.txt ms_MY.txt ms_SG.txt mt.txt\ + mt_MT.txt mua.txt mua_CM.txt my.txt my_MM.txt\ + mzn.txt mzn_IR.txt naq.txt naq_NA.txt nb.txt\ + nb_NO.txt nb_SJ.txt nd.txt nd_ZW.txt nds.txt\ + nds_DE.txt nds_NL.txt ne.txt ne_IN.txt ne_NP.txt\ + nl.txt nl_AW.txt nl_BE.txt nl_BQ.txt nl_CW.txt\ + nl_NL.txt nl_SR.txt nl_SX.txt nmg.txt nmg_CM.txt\ + nn.txt nn_NO.txt nnh.txt nnh_CM.txt nus.txt\ + nus_SS.txt nyn.txt nyn_UG.txt om.txt om_ET.txt\ + om_KE.txt or.txt or_IN.txt os.txt os_GE.txt\ + os_RU.txt pa.txt pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt\ + pa_Guru_IN.txt pl.txt pl_PL.txt ps.txt ps_AF.txt\ + pt.txt pt_AO.txt pt_BR.txt pt_CH.txt pt_CV.txt\ + pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\ + pt_PT.txt pt_ST.txt pt_TL.txt qu.txt qu_BO.txt\ + qu_EC.txt qu_PE.txt rm.txt rm_CH.txt rn.txt\ + rn_BI.txt ro.txt ro_MD.txt ro_RO.txt rof.txt\ + rof_TZ.txt ru.txt ru_BY.txt ru_KG.txt ru_KZ.txt\ + ru_MD.txt ru_RU.txt ru_UA.txt rw.txt rw_RW.txt\ + rwk.txt rwk_TZ.txt sah.txt sah_RU.txt saq.txt\ + saq_KE.txt sbp.txt sbp_TZ.txt se.txt se_FI.txt\ + se_NO.txt se_SE.txt seh.txt seh_MZ.txt ses.txt\ + ses_ML.txt sg.txt sg_CF.txt shi.txt shi_Latn.txt\ + shi_Latn_MA.txt shi_Tfng.txt shi_Tfng_MA.txt si.txt si_LK.txt\ + sk.txt sk_SK.txt sl.txt sl_SI.txt smn.txt\ + smn_FI.txt sn.txt sn_ZW.txt so.txt so_DJ.txt\ + so_ET.txt so_KE.txt so_SO.txt sq.txt sq_AL.txt\ + sq_MK.txt sq_XK.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt\ + sr_Cyrl_ME.txt sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt\ + sr_Latn_ME.txt sr_Latn_RS.txt sr_Latn_XK.txt sv.txt sv_AX.txt\ + sv_FI.txt sv_SE.txt sw.txt sw_CD.txt sw_KE.txt\ + sw_TZ.txt sw_UG.txt ta.txt ta_IN.txt ta_LK.txt\ + ta_MY.txt ta_SG.txt te.txt te_IN.txt teo.txt\ + teo_KE.txt teo_UG.txt th.txt th_TH.txt ti.txt\ + ti_ER.txt ti_ET.txt to.txt to_TO.txt tr.txt\ + tr_CY.txt tr_TR.txt twq.txt twq_NE.txt tzm.txt\ + tzm_MA.txt ug.txt ug_CN.txt uk.txt uk_UA.txt\ + ur.txt ur_IN.txt ur_PK.txt uz.txt uz_Arab.txt\ + uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt\ + vai.txt vai_Latn.txt vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt\ + vi.txt vi_VN.txt vun.txt vun_TZ.txt wae.txt\ + wae_CH.txt xog.txt xog_UG.txt yav.txt yav_CM.txt\ + yi.txt yi_001.txt yo.txt yo_BJ.txt yo_NG.txt\ + yue.txt yue_HK.txt zgh.txt zgh_MA.txt zh.txt\ + zh_Hans.txt zh_Hans_CN.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\ + zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zh_Hant_TW.txt zu.txt\ + zu_ZA.txt diff --git a/icu4c/source/data/misc/icuver.txt b/icu4c/source/data/misc/icuver.txt index 114bfaa3137..1938d4f3063 100644 --- a/icu4c/source/data/misc/icuver.txt +++ b/icu4c/source/data/misc/icuver.txt @@ -8,6 +8,6 @@ // *************************************************************************** icuver:table(nofallback){ - DataVersion { "58.1.0.0" } - ICUVersion { "58.1.0.0" } + DataVersion { "59.1.0.0" } + ICUVersion { "59.1.0.0" } } diff --git a/icu4c/source/data/misc/metadata.txt b/icu4c/source/data/misc/metadata.txt index ae4ecc6d2dc..8868f42f0c2 100644 --- a/icu4c/source/data/misc/metadata.txt +++ b/icu4c/source/data/misc/metadata.txt @@ -1279,6 +1279,14 @@ metadata:table(nofallback){ reason{"overlong"} replacement{"yo"} } + yue_CN{ + reason{"legacy"} + replacement{"yue_Hans_CN"} + } + yue_HK{ + reason{"legacy"} + replacement{"yue_Hant_HK"} + } zai{ reason{"macrolanguage"} replacement{"zap"} diff --git a/icu4c/source/data/region/ar.txt b/icu4c/source/data/region/ar.txt index 0e8b2b5b23f..aa2313afd43 100644 --- a/icu4c/source/data/region/ar.txt +++ b/icu4c/source/data/region/ar.txt @@ -309,5 +309,5 @@ ar{ MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"} TL{"تيمور الشرقية"} } - Version{"2.1.32.59"} + Version{"2.1.32.86"} } diff --git a/icu4c/source/data/region/es_BZ.txt b/icu4c/source/data/region/es_BZ.txt new file mode 100644 index 00000000000..7734598e064 --- /dev/null +++ b/icu4c/source/data/region/es_BZ.txt @@ -0,0 +1,6 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/region/resfiles.mk b/icu4c/source/data/region/resfiles.mk index 6a38276c209..082bc48aef8 100644 --- a/icu4c/source/data/region/resfiles.mk +++ b/icu4c/source/data/region/resfiles.mk @@ -76,47 +76,47 @@ REGION_SOURCE = af.txt agq.txt ak.txt am.txt\ en_TV.txt en_TZ.txt en_UG.txt en_VC.txt en_VG.txt\ en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt en_ZW.txt\ eo.txt es.txt es_419.txt es_AR.txt es_BO.txt\ - es_BR.txt es_CL.txt es_CO.txt es_CR.txt es_CU.txt\ - es_DO.txt es_EC.txt es_GT.txt es_HN.txt es_MX.txt\ - es_NI.txt es_PA.txt es_PE.txt es_PR.txt es_PY.txt\ - es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\ - eu.txt ewo.txt fa.txt fa_AF.txt ff.txt\ - fi.txt fil.txt fo.txt fr.txt fr_BE.txt\ - fr_CA.txt fur.txt fy.txt ga.txt gd.txt\ - gl.txt gsw.txt gu.txt guz.txt gv.txt\ - ha.txt haw.txt he.txt hi.txt hr.txt\ - hsb.txt hu.txt hy.txt id.txt ig.txt\ - ii.txt is.txt it.txt ja.txt jgo.txt\ - jmc.txt ka.txt kab.txt kam.txt kde.txt\ - kea.txt khq.txt ki.txt kk.txt kkj.txt\ - kl.txt kln.txt km.txt kn.txt ko.txt\ - ko_KP.txt kok.txt ks.txt ksb.txt ksf.txt\ - ksh.txt kw.txt ky.txt lag.txt lb.txt\ - lg.txt lkt.txt ln.txt lo.txt lrc.txt\ - lt.txt lu.txt luo.txt luy.txt lv.txt\ - mas.txt mer.txt mfe.txt mg.txt mgh.txt\ - mgo.txt mk.txt ml.txt mn.txt mr.txt\ - ms.txt mt.txt mua.txt my.txt mzn.txt\ - naq.txt nb.txt nd.txt nds.txt ne.txt\ - nl.txt nmg.txt nn.txt nnh.txt nus.txt\ - nyn.txt om.txt or.txt os.txt pa.txt\ - pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\ - pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\ - pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\ - pt_TL.txt qu.txt rm.txt rn.txt ro.txt\ - ro_MD.txt rof.txt ru.txt ru_UA.txt rw.txt\ - rwk.txt sah.txt saq.txt sbp.txt se.txt\ - se_FI.txt seh.txt ses.txt sg.txt shi.txt\ - shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\ - smn.txt sn.txt so.txt sq.txt sr.txt\ - sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt sr_Latn.txt\ - sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt sw.txt\ - sw_CD.txt sw_KE.txt ta.txt te.txt teo.txt\ - th.txt ti.txt to.txt tr.txt twq.txt\ - tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\ - uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\ - vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\ - xog.txt yav.txt yi.txt yo.txt yo_BJ.txt\ - yue.txt zgh.txt zh.txt zh_Hans.txt zh_Hant.txt\ - zh_Hant_HK.txt zh_Hant_MO.txt zu.txt + es_BR.txt es_BZ.txt es_CL.txt es_CO.txt es_CR.txt\ + es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\ + es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\ + es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\ + et.txt eu.txt ewo.txt fa.txt fa_AF.txt\ + ff.txt fi.txt fil.txt fo.txt fr.txt\ + fr_BE.txt fr_CA.txt fur.txt fy.txt ga.txt\ + gd.txt gl.txt gsw.txt gu.txt guz.txt\ + gv.txt ha.txt haw.txt he.txt hi.txt\ + hr.txt hsb.txt hu.txt hy.txt id.txt\ + ig.txt ii.txt is.txt it.txt ja.txt\ + jgo.txt jmc.txt ka.txt kab.txt kam.txt\ + kde.txt kea.txt khq.txt ki.txt kk.txt\ + kkj.txt kl.txt kln.txt km.txt kn.txt\ + ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\ + ksf.txt ksh.txt kw.txt ky.txt lag.txt\ + lb.txt lg.txt lkt.txt ln.txt lo.txt\ + lrc.txt lt.txt lu.txt luo.txt luy.txt\ + lv.txt mas.txt mer.txt mfe.txt mg.txt\ + mgh.txt mgo.txt mk.txt ml.txt mn.txt\ + mr.txt ms.txt mt.txt mua.txt my.txt\ + mzn.txt naq.txt nb.txt nd.txt nds.txt\ + ne.txt nl.txt nmg.txt nn.txt nnh.txt\ + nus.txt nyn.txt om.txt or.txt os.txt\ + pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\ + pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\ + pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\ + pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\ + ro.txt ro_MD.txt rof.txt ru.txt ru_UA.txt\ + rw.txt rwk.txt sah.txt saq.txt sbp.txt\ + se.txt se_FI.txt seh.txt ses.txt sg.txt\ + shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\ + sl.txt smn.txt sn.txt so.txt sq.txt\ + sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_XK.txt\ + sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt sv.txt\ + sw.txt sw_CD.txt sw_KE.txt ta.txt te.txt\ + teo.txt th.txt ti.txt to.txt tr.txt\ + twq.txt tzm.txt ug.txt uk.txt ur.txt\ + ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\ + vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\ + wae.txt xog.txt yav.txt yi.txt yo.txt\ + yo_BJ.txt yue.txt zgh.txt zh.txt zh_Hans.txt\ + zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt diff --git a/icu4c/source/data/unit/ar.txt b/icu4c/source/data/unit/ar.txt index 0797f473a70..577f9f8304a 100644 --- a/icu4c/source/data/unit/ar.txt +++ b/icu4c/source/data/unit/ar.txt @@ -1,7 +1,7 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html#License ar{ - Version{"2.1.32.59"} + Version{"2.1.32.86"} durationUnits{ hm{"h:mm"} hms{"h:mm:ss"} diff --git a/icu4c/source/data/unit/es_BZ.txt b/icu4c/source/data/unit/es_BZ.txt new file mode 100644 index 00000000000..7734598e064 --- /dev/null +++ b/icu4c/source/data/unit/es_BZ.txt @@ -0,0 +1,6 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/unit/resfiles.mk b/icu4c/source/data/unit/resfiles.mk index e582ab52af5..7ff973986af 100644 --- a/icu4c/source/data/unit/resfiles.mk +++ b/icu4c/source/data/unit/resfiles.mk @@ -76,45 +76,45 @@ UNIT_SOURCE = af.txt agq.txt ak.txt am.txt\ en_TV.txt en_TZ.txt en_UG.txt en_VC.txt en_VG.txt\ en_VU.txt en_WS.txt en_ZA.txt en_ZM.txt en_ZW.txt\ eo.txt es.txt es_419.txt es_AR.txt es_BO.txt\ - es_BR.txt es_CL.txt es_CO.txt es_CR.txt es_CU.txt\ - es_DO.txt es_EC.txt es_GT.txt es_HN.txt es_MX.txt\ - es_NI.txt es_PA.txt es_PE.txt es_PR.txt es_PY.txt\ - es_SV.txt es_US.txt es_UY.txt es_VE.txt et.txt\ - eu.txt ewo.txt fa.txt ff.txt fi.txt\ - fil.txt fo.txt fr.txt fr_CA.txt fr_HT.txt\ - fur.txt fy.txt ga.txt gd.txt gl.txt\ - gsw.txt gu.txt guz.txt gv.txt ha.txt\ - haw.txt he.txt hi.txt hr.txt hsb.txt\ - hu.txt hy.txt id.txt ig.txt ii.txt\ - is.txt it.txt ja.txt jgo.txt jmc.txt\ - ka.txt kab.txt kam.txt kde.txt kea.txt\ - khq.txt ki.txt kk.txt kkj.txt kl.txt\ - kln.txt km.txt kn.txt ko.txt kok.txt\ - ks.txt ksb.txt ksf.txt ksh.txt kw.txt\ - ky.txt lag.txt lb.txt lg.txt lkt.txt\ - ln.txt lo.txt lrc.txt lt.txt lu.txt\ - luo.txt luy.txt lv.txt mas.txt mer.txt\ - mfe.txt mg.txt mgh.txt mgo.txt mk.txt\ - ml.txt mn.txt mr.txt ms.txt mt.txt\ - mua.txt my.txt mzn.txt naq.txt nb.txt\ - nd.txt nds.txt ne.txt nl.txt nmg.txt\ - nn.txt nnh.txt nus.txt nyn.txt om.txt\ - or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\ - pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\ - pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\ - pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\ - rm.txt rn.txt ro.txt ro_MD.txt rof.txt\ - ru.txt rw.txt rwk.txt sah.txt saq.txt\ - sbp.txt se.txt seh.txt ses.txt sg.txt\ - shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\ - sl.txt smn.txt sn.txt so.txt sq.txt\ - sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sv_FI.txt\ - sw.txt ta.txt te.txt teo.txt th.txt\ - ti.txt to.txt tr.txt twq.txt tzm.txt\ - ug.txt uk.txt ur.txt ur_IN.txt uz.txt\ - uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\ - vai_Vaii.txt vi.txt vun.txt wae.txt xog.txt\ - yav.txt yi.txt yo.txt yue.txt zgh.txt\ - zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt\ - zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt + es_BR.txt es_BZ.txt es_CL.txt es_CO.txt es_CR.txt\ + es_CU.txt es_DO.txt es_EC.txt es_GT.txt es_HN.txt\ + es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PR.txt\ + es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\ + et.txt eu.txt ewo.txt fa.txt ff.txt\ + fi.txt fil.txt fo.txt fr.txt fr_CA.txt\ + fr_HT.txt fur.txt fy.txt ga.txt gd.txt\ + gl.txt gsw.txt gu.txt guz.txt gv.txt\ + ha.txt haw.txt he.txt hi.txt hr.txt\ + hsb.txt hu.txt hy.txt id.txt ig.txt\ + ii.txt is.txt it.txt ja.txt jgo.txt\ + jmc.txt ka.txt kab.txt kam.txt kde.txt\ + kea.txt khq.txt ki.txt kk.txt kkj.txt\ + kl.txt kln.txt km.txt kn.txt ko.txt\ + kok.txt ks.txt ksb.txt ksf.txt ksh.txt\ + kw.txt ky.txt lag.txt lb.txt lg.txt\ + lkt.txt ln.txt lo.txt lrc.txt lt.txt\ + lu.txt luo.txt luy.txt lv.txt mas.txt\ + mer.txt mfe.txt mg.txt mgh.txt mgo.txt\ + mk.txt ml.txt mn.txt mr.txt ms.txt\ + mt.txt mua.txt my.txt mzn.txt naq.txt\ + nb.txt nd.txt nds.txt ne.txt nl.txt\ + nmg.txt nn.txt nnh.txt nus.txt nyn.txt\ + om.txt or.txt os.txt pa.txt pa_Arab.txt\ + pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\ + pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\ + pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\ + qu.txt rm.txt rn.txt ro.txt ro_MD.txt\ + rof.txt ru.txt rw.txt rwk.txt sah.txt\ + saq.txt sbp.txt se.txt seh.txt ses.txt\ + sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\ + sk.txt sl.txt smn.txt sn.txt so.txt\ + sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt\ + sv_FI.txt sw.txt ta.txt te.txt teo.txt\ + th.txt ti.txt to.txt tr.txt twq.txt\ + tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\ + uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\ + vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\ + xog.txt yav.txt yi.txt yo.txt yue.txt\ + zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt\ + zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt diff --git a/icu4c/source/data/zone/ar.txt b/icu4c/source/data/zone/ar.txt index f28764fa02c..418d0cfeefa 100644 --- a/icu4c/source/data/zone/ar.txt +++ b/icu4c/source/data/zone/ar.txt @@ -1,7 +1,7 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html#License ar{ - Version{"2.1.32.59"} + Version{"2.1.32.86"} zoneStrings{ "Africa:Abidjan"{ ec{"أبيدجان"} diff --git a/icu4c/source/data/zone/es_BZ.txt b/icu4c/source/data/zone/es_BZ.txt new file mode 100644 index 00000000000..7734598e064 --- /dev/null +++ b/icu4c/source/data/zone/es_BZ.txt @@ -0,0 +1,6 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +es_BZ{ + %%Parent{"es_419"} + Version{"2.1.32.37"} +} diff --git a/icu4c/source/data/zone/resfiles.mk b/icu4c/source/data/zone/resfiles.mk index b927e3e279f..c38a013c486 100644 --- a/icu4c/source/data/zone/resfiles.mk +++ b/icu4c/source/data/zone/resfiles.mk @@ -76,46 +76,46 @@ ZONE_SOURCE = af.txt agq.txt ak.txt am.txt\ en_TO.txt en_TT.txt en_TV.txt en_TZ.txt en_UG.txt\ en_VC.txt en_VG.txt en_VU.txt en_WS.txt en_ZA.txt\ en_ZM.txt en_ZW.txt eo.txt es.txt es_419.txt\ - es_AR.txt es_BO.txt es_BR.txt es_CL.txt es_CO.txt\ - es_CR.txt es_CU.txt es_DO.txt es_EC.txt es_GT.txt\ - es_HN.txt es_MX.txt es_NI.txt es_PA.txt es_PE.txt\ - es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\ - es_VE.txt et.txt eu.txt ewo.txt fa.txt\ - ff.txt fi.txt fil.txt fo.txt fr.txt\ - fr_CA.txt fr_GF.txt fur.txt fy.txt ga.txt\ - gd.txt gl.txt gsw.txt gu.txt guz.txt\ - gv.txt ha.txt haw.txt he.txt hi.txt\ - hr.txt hsb.txt hu.txt hy.txt id.txt\ - ig.txt ii.txt is.txt it.txt ja.txt\ - jgo.txt jmc.txt ka.txt kab.txt kam.txt\ - kde.txt kea.txt khq.txt ki.txt kk.txt\ - kkj.txt kl.txt kln.txt km.txt kn.txt\ - ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\ - ksf.txt ksh.txt kw.txt ky.txt lag.txt\ - lb.txt lg.txt lkt.txt ln.txt lo.txt\ - lrc.txt lt.txt lu.txt luo.txt luy.txt\ - lv.txt mas.txt mer.txt mfe.txt mg.txt\ - mgh.txt mgo.txt mk.txt ml.txt mn.txt\ - mr.txt ms.txt mt.txt mua.txt my.txt\ - mzn.txt naq.txt nb.txt nd.txt nds.txt\ - ne.txt ne_IN.txt nl.txt nl_SR.txt nmg.txt\ - nn.txt nnh.txt nus.txt nyn.txt om.txt\ - or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\ - pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\ - pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\ - pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\ - qu_BO.txt qu_EC.txt rm.txt rn.txt ro.txt\ - rof.txt ru.txt rw.txt rwk.txt sah.txt\ - saq.txt sbp.txt se.txt seh.txt ses.txt\ - sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\ - sk.txt sl.txt smn.txt sn.txt so.txt\ - sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt\ - sw.txt ta.txt ta_MY.txt ta_SG.txt te.txt\ - teo.txt th.txt ti.txt to.txt tr.txt\ - twq.txt tzm.txt ug.txt uk.txt ur.txt\ - ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\ - vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\ - wae.txt xog.txt yav.txt yi.txt yo.txt\ - yue.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_SG.txt\ - zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt + es_AR.txt es_BO.txt es_BR.txt es_BZ.txt es_CL.txt\ + es_CO.txt es_CR.txt es_CU.txt es_DO.txt es_EC.txt\ + es_GT.txt es_HN.txt es_MX.txt es_NI.txt es_PA.txt\ + es_PE.txt es_PR.txt es_PY.txt es_SV.txt es_US.txt\ + es_UY.txt es_VE.txt et.txt eu.txt ewo.txt\ + fa.txt ff.txt fi.txt fil.txt fo.txt\ + fr.txt fr_CA.txt fr_GF.txt fur.txt fy.txt\ + ga.txt gd.txt gl.txt gsw.txt gu.txt\ + guz.txt gv.txt ha.txt haw.txt he.txt\ + hi.txt hr.txt hsb.txt hu.txt hy.txt\ + id.txt ig.txt ii.txt is.txt it.txt\ + ja.txt jgo.txt jmc.txt ka.txt kab.txt\ + kam.txt kde.txt kea.txt khq.txt ki.txt\ + kk.txt kkj.txt kl.txt kln.txt km.txt\ + kn.txt ko.txt ko_KP.txt kok.txt ks.txt\ + ksb.txt ksf.txt ksh.txt kw.txt ky.txt\ + lag.txt lb.txt lg.txt lkt.txt ln.txt\ + lo.txt lrc.txt lt.txt lu.txt luo.txt\ + luy.txt lv.txt mas.txt mer.txt mfe.txt\ + mg.txt mgh.txt mgo.txt mk.txt ml.txt\ + mn.txt mr.txt ms.txt mt.txt mua.txt\ + my.txt mzn.txt naq.txt nb.txt nd.txt\ + nds.txt ne.txt ne_IN.txt nl.txt nl_SR.txt\ + nmg.txt nn.txt nnh.txt nus.txt nyn.txt\ + om.txt or.txt os.txt pa.txt pa_Arab.txt\ + pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\ + pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\ + pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\ + qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\ + ro.txt rof.txt ru.txt rw.txt rwk.txt\ + sah.txt saq.txt sbp.txt se.txt seh.txt\ + ses.txt sg.txt shi.txt shi_Latn.txt shi_Tfng.txt\ + si.txt sk.txt sl.txt smn.txt sn.txt\ + so.txt sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt\ + sv.txt sw.txt ta.txt ta_MY.txt ta_SG.txt\ + te.txt teo.txt th.txt ti.txt to.txt\ + tr.txt twq.txt tzm.txt ug.txt uk.txt\ + ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\ + uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\ + vun.txt wae.txt xog.txt yav.txt yi.txt\ + yo.txt yue.txt zgh.txt zh.txt zh_Hans.txt\ + zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt diff --git a/icu4c/source/test/cintltst/cbiditst.c b/icu4c/source/test/cintltst/cbiditst.c index e2a7d4e753a..a902da7a493 100644 --- a/icu4c/source/test/cintltst/cbiditst.c +++ b/icu4c/source/test/cintltst/cbiditst.c @@ -90,6 +90,7 @@ static void testContext(void); static void doTailTest(void); static void testBracketOverflow(void); +static void TestExplicitLevel0(); /* new BIDI API */ static void testReorderingMode(void); @@ -138,6 +139,7 @@ addComplexTest(TestNode** root) { addTest(root, testGetBaseDirection, "complex/bidi/testGetBaseDirection"); addTest(root, testContext, "complex/bidi/testContext"); addTest(root, testBracketOverflow, "complex/bidi/TestBracketOverflow"); + addTest(root, &TestExplicitLevel0, "complex/bidi/TestExplicitLevel0"); addTest(root, doArabicShapingTest, "complex/arabic-shaping/ArabicShapingTest"); addTest(root, doLamAlefSpecialVLTRArabicShapingTest, "complex/arabic-shaping/lamalef"); @@ -4922,3 +4924,24 @@ testBracketOverflow(void) { ubidi_close(bidi); } +static void TestExplicitLevel0() { + // The following used to fail with an error, see ICU ticket #12922. + static const UChar text[2] = { 0x202d, 0x05d0 }; + static UBiDiLevel embeddings[2] = { 0, 0 }; + UErrorCode errorCode = U_ZERO_ERROR; + UBiDi *bidi = ubidi_open(); + ubidi_setPara(bidi, text, 2, UBIDI_DEFAULT_LTR , embeddings, &errorCode); + if (U_FAILURE(errorCode)) { + log_err("ubidi_setPara() - %s", u_errorName(errorCode)); + } else { + UBiDiLevel level0 = ubidi_getLevelAt(bidi, 0); + UBiDiLevel level1 = ubidi_getLevelAt(bidi, 1); + if (level0 != 1 || level1 != 1) { + log_err("resolved levels != 1: { %d, %d }\n", level0, level1); + } + if (embeddings[0] != 1 || embeddings[1] != 1) { + log_err("modified embeddings[] levels != 1: { %d, %d }\n", embeddings[0], embeddings[1]); + } + } + ubidi_close(bidi); +} diff --git a/icu4j/build.properties b/icu4j/build.properties index 16787e25d09..8ad625bce31 100644 --- a/icu4j/build.properties +++ b/icu4j/build.properties @@ -6,6 +6,6 @@ #******************************************************************************* api.report.version = 59 api.report.prev.version = 58 -release.file.ver = 59m1 -api.doc.version = 59 Milestone 1 +release.file.ver = 59rc +api.doc.version = 59 Release Candidate diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/Bidi.java b/icu4j/main/classes/core/src/com/ibm/icu/text/Bidi.java index 62a276dc723..623f0aa6d2e 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/Bidi.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/Bidi.java @@ -2674,28 +2674,29 @@ public class Bidi { return dirct; } - /* + /** * Use a pre-specified embedding levels array: * - * Adjust the directional properties for overrides (->LEVEL_OVERRIDE), + *

Adjust the directional properties for overrides (->LEVEL_OVERRIDE), * ignore all explicit codes (X9), * and check all the preset levels. * - * Recalculate the flags to have them reflect the real properties + *

Recalculate the flags to have them reflect the real properties * after taking the explicit embeddings into account. */ private byte checkExplicitLevels() { - byte dirProp; - int i; int isolateCount = 0; this.flags = 0; /* collect all directionalities in the text */ - byte level; this.isolateCount = 0; - for (i = 0; i < length; ++i) { - level = levels[i]; - dirProp = dirProps[i]; + int currentParaIndex = 0; + int currentParaLimit = paras_limit[0]; + byte currentParaLevel = paraLevel; + + for (int i = 0; i < length; ++i) { + byte level = levels[i]; + byte dirProp = dirProps[i]; if (dirProp == LRI || dirProp == RLI) { isolateCount++; if (isolateCount > this.isolateCount) @@ -2705,21 +2706,40 @@ public class Bidi { isolateCount--; else if (dirProp == B) isolateCount = 0; - if ((level & LEVEL_OVERRIDE) != 0) { + + // optimized version of byte currentParaLevel = GetParaLevelAt(i); + if (defaultParaLevel != 0 && + i == currentParaLimit && (currentParaIndex + 1) < paraCount) { + currentParaLevel = paras_level[++currentParaIndex]; + currentParaLimit = paras_limit[currentParaIndex]; + } + + int overrideFlag = level & LEVEL_OVERRIDE; + level &= ~LEVEL_OVERRIDE; + if (level < currentParaLevel || MAX_EXPLICIT_LEVEL < level) { + if (level == 0) { + if (dirProp == B) { + // Paragraph separators are ok with explicit level 0. + // Prevents reordering of paragraphs. + } else { + // Treat explicit level 0 as a wildcard for the paragraph level. + // Avoid making the caller guess what the paragraph level would be. + level = currentParaLevel; + levels[i] = (byte)(level | overrideFlag); + } + } else { + // 1 <= level < currentParaLevel or MAX_EXPLICIT_LEVEL < level + throw new IllegalArgumentException("level " + level + + " out of bounds at " + i); + } + } + if (overrideFlag != 0) { /* keep the override flag in levels[i] but adjust the flags */ - level &= ~LEVEL_OVERRIDE; /* make the range check below simpler */ flags |= DirPropFlagO(level); } else { /* set the flags */ flags |= DirPropFlagE(level) | DirPropFlag(dirProp); } - if ((level < GetParaLevelAt(i) && - !((0 == level) && (dirProp == B))) || - (MAX_EXPLICIT_LEVEL < level)) { - /* level out of bounds */ - throw new IllegalArgumentException("level " + level + - " out of bounds at " + i); - } } if ((flags & MASK_EMBEDDING) != 0) flags |= DirPropFlagLR(paraLevel); @@ -3950,11 +3970,12 @@ public class Bidi { * A level overrides the directional property of its corresponding * (same index) character if the level has the * LEVEL_OVERRIDE bit set.

- * Except for that bit, it must be + * Aside from that bit, it must be * paraLevel<=embeddingLevels[]<=MAX_EXPLICIT_LEVEL, - * with one exception: a level of zero may be specified for a - * paragraph separator even if paraLevel>0 when multiple - * paragraphs are submitted in the same call to setPara().

+ * except that level 0 is always allowed. + * Level 0 for a paragraph separator prevents reordering of paragraphs. + * Level 0 for other characters is treated as a wildcard + * and is lifted up to the resolved level of the surrounding paragraph.

* Caution: A reference to this array, not a copy * of the levels, will be stored in the Bidi object; * the embeddingLevels @@ -5294,13 +5315,19 @@ public class Bidi { /** * Create Bidi from the given text, embedding, and direction information. - * The embeddings array may be null. If present, the values represent - * embedding level information. Negative values from -1 to -61 indicate - * overrides at the absolute value of the level. Positive values from 1 to - * 61 indicate embeddings. Where values are zero, the base embedding level - * as determined by the base direction is assumed.

* - * Note: this constructor calls setPara() internally. + *

The embeddings array may be null. If present, the values represent + * embedding level information. + * Negative values from -1 to -{@link #MAX_EXPLICIT_LEVEL} + * indicate overrides at the absolute value of the level. + * Positive values from 1 to {@link #MAX_EXPLICIT_LEVEL} indicate embeddings. + * Where values are zero, the base embedding level + * as determined by the base direction is assumed, + * except for paragraph separators which remain at 0 to prevent reordering of paragraphs.

+ * + *

Note: This constructor calls setPara() internally, + * after converting the java.text.Bidi-style embeddings with negative overrides + * into ICU-style embeddings with bit fields for {@link #LEVEL_OVERRIDE} and the level. * * @param text an array containing the paragraph of text to process. * @param textStart the index into the text array of the start of the @@ -5354,22 +5381,23 @@ public class Bidi { if (embeddings == null) { paraEmbeddings = null; } else { + // Convert from java.text.Bidi embeddings to ICU setPara() levels: + // Copy to the start of a new array and convert java.text negative overrides + // to ICU bit-field-and-mask overrides. + // A copy of the embeddings is always required because + // setPara() may modify its embeddings. paraEmbeddings = new byte[paragraphLength]; byte lev; for (int i = 0; i < paragraphLength; i++) { lev = embeddings[i + embStart]; if (lev < 0) { lev = (byte)((- lev) | LEVEL_OVERRIDE); - } else if (lev == 0) { - lev = paraLvl; - if (paraLvl > MAX_EXPLICIT_LEVEL) { - lev &= 1; - } } + // setPara() lifts level 0 up to the resolved paragraph level. paraEmbeddings[i] = lev; } } - if (textStart == 0 && embStart == 0 && paragraphLength == text.length) { + if (textStart == 0 && paragraphLength == text.length) { setPara(text, paraLvl, paraEmbeddings); } else { char[] paraText = new char[paragraphLength]; diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java b/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java index f5ab3fe70cb..bda36cf0238 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/util/VersionInfo.java @@ -560,8 +560,8 @@ public final class VersionInfo implements Comparable UNICODE_8_0 = getInstance(8, 0, 0, 0); UNICODE_9_0 = getInstance(9, 0, 0, 0); - ICU_VERSION = getInstance(59, 0, 1, 0); - ICU_DATA_VERSION = getInstance(59, 0, 1, 0); + ICU_VERSION = getInstance(59, 1, 0, 0); + ICU_DATA_VERSION = getInstance(59, 1, 0, 0); UNICODE_VERSION = UNICODE_9_0; UCOL_RUNTIME_VERSION = getInstance(9); diff --git a/icu4j/main/shared/build/common.properties b/icu4j/main/shared/build/common.properties index c33f98a94b3..ac6df91ad70 100644 --- a/icu4j/main/shared/build/common.properties +++ b/icu4j/main/shared/build/common.properties @@ -7,7 +7,7 @@ # Version numbers, etc. icu4j.spec.version = 59 -icu4j.impl.version = 59.0.1 +icu4j.impl.version = 59.1 icu4j.data.version = 59 current.year = 2017 default.exec.env = JavaSE-1.6 diff --git a/icu4j/main/shared/data/icudata.jar b/icu4j/main/shared/data/icudata.jar index d0a25acf75c..caa786027c7 100755 --- a/icu4j/main/shared/data/icudata.jar +++ b/icu4j/main/shared/data/icudata.jar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c8dbe867365547805caf125f25a2551375b58e09653f9e625d7a015b35aa6aa -size 12154917 +oid sha256:b7b2a9e282f3f3296f80ef40391df4d5a6f161bdebe6270b73e7bcc68db124ac +size 12155212 diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestBidi.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestBidi.java index 9fe50a65a35..af155ed8d25 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestBidi.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/bidi/TestBidi.java @@ -526,7 +526,7 @@ public class TestBidi extends BidiFmwk { bidi.setReorderingMode(Bidi.REORDER_RUNS_ONLY); bidi.setPara("a \u05d0 b \u05d1 c \u05d2 d ", Bidi.LTR, null); assertEquals("\nWrong number of runs #4", 14, bidi.countRuns()); - + /* test testGetBaseDirection to verify fast string direction detection function */ /* mixed start with L */ String mixedEnglishFirst = "\u0061\u0627\u0032\u06f3\u0061\u0034"; @@ -566,7 +566,7 @@ public class TestBidi extends BidiFmwk { assertEquals("\nWrong direction through fast detection #12", Bidi.NEUTRAL, Bidi.getBaseDirection(allArabicDigits)); /* null string */ String nullString = null; - assertEquals("\nWrong direction through fast detection #13", Bidi.NEUTRAL, Bidi.getBaseDirection(nullString)); + assertEquals("\nWrong direction through fast detection #13", Bidi.NEUTRAL, Bidi.getBaseDirection(nullString)); /* first L (English) others are R (Hebrew etc.) */ String startEnglishOthersHebrew = "\u0071\u0590\u05D5\u05EA\u05F1"; assertEquals("\nWrong direction through fast detection #14", Bidi.LTR, Bidi.getBaseDirection(startEnglishOthersHebrew)); @@ -574,4 +574,20 @@ public class TestBidi extends BidiFmwk { String lastHebrewOthersEnglishDigit = "\u0031\u0032\u0033\u05F1"; assertEquals("\nWrong direction through fast detection #15", Bidi.RTL, Bidi.getBaseDirection(lastHebrewOthersEnglishDigit)); } + + @Test + public void testExplicitLevel0() { + // The following used to fail with an error, see ICU ticket #12922. + String text = "\u202d\u05d0"; + byte[] embeddings = new byte[2]; // all 0 + int flags = Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT; // 0x7e + Bidi bidi = new Bidi(text.toCharArray(), 0, embeddings, 0, text.length(), flags); + assertEquals("resolved level at 0", 1, bidi.getLevelAt(0)); + assertEquals("resolved level at 1", 1, bidi.getLevelAt(1)); + + flags = java.text.Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT; // -2 + java.text.Bidi jb = new java.text.Bidi(text.toCharArray(), 0, embeddings, 0, text.length(), flags); + assertEquals("java.text resolved level at 0", 1, jb.getLevelAt(0)); + assertEquals("java.text resolved level at 1", 1, jb.getLevelAt(1)); + } } diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java index 364955f3d5a..4c82e878d4a 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/CompactDecimalFormatTest.java @@ -484,9 +484,6 @@ public class CompactDecimalFormatTest extends TestFmwk { @Test public void TestNordic() { - if (logKnownIssue("cldrbug:9465","CDF(12,000) for no_NO shouldn't be 12 (12K or similar)")) { - return; - } String result = CompactDecimalFormat.getInstance( new ULocale("no_NO"), CompactDecimalFormat.CompactStyle.SHORT ).format(12000); assertNotEquals("CDF(12,000) for no_NO shouldn't be 12 (12K or similar)", "12", result); @@ -544,9 +541,7 @@ public class CompactDecimalFormatTest extends TestFmwk { cdf = CompactDecimalFormat.getInstance(new ULocale("ar"), CompactDecimalFormat.CompactStyle.SHORT); cdf.setMaximumSignificantDigits(3); result = cdf.format(1234); - if (!logKnownIssue("cldrbug:9492", "CLDR 31-d01 incorrectly deleted ar compactDecimals short form")) { - assertEquals("CDF should correctly format 1234 with 3 significant digits in 'ar'", "١٫٢٣ ألف", result); - } + assertEquals("CDF should correctly format 1234 with 3 significant digits in 'ar'", "١٫٢٣ ألف", result); // Check currency formatting as well cdf = CompactDecimalFormat.getInstance(new ULocale("ar"), CompactDecimalFormat.CompactStyle.SHORT); diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java index 2f7f4a153ef..8f47d5f94c2 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java @@ -10,7 +10,7 @@ package com.ibm.icu.dev.test.util; public class DebugUtilitiesData extends Object { - public static final String ICU4C_VERSION="59.0.1"; + public static final String ICU4C_VERSION="59.1"; public static final int UDebugEnumType = 0; public static final int UCalendarDateFields = 1; public static final int UCalendarMonths = 2;