diff --git a/make/data/cldr/LICENSE b/make/data/cldr/LICENSE
index 99bd0beafbb..9065fe54d8b 100644
--- a/make/data/cldr/LICENSE
+++ b/make/data/cldr/LICENSE
@@ -1,8 +1,8 @@
-UNICODE LICENSE V3
+UNICODE LICENSE V3
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2024 Unicode, Inc.
+Copyright © 2019-2025 Unicode, Inc.
NOTICE TO USER: Carefully read the following legal agreement. BY
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
diff --git a/make/data/cldr/common/bcp47/collation.xml b/make/data/cldr/common/bcp47/collation.xml
index bb51229ede1..d8c29685cad 100644
--- a/make/data/cldr/common/bcp47/collation.xml
+++ b/make/data/cldr/common/bcp47/collation.xml
@@ -10,14 +10,14 @@ For terms of use, see http://www.unicode.org/copyright.html
-
+
-
+
diff --git a/make/data/cldr/common/dtd/ldml.dtd b/make/data/cldr/common/dtd/ldml.dtd
index efe1565f53d..4ef94ba67ca 100644
--- a/make/data/cldr/common/dtd/ldml.dtd
+++ b/make/data/cldr/common/dtd/ldml.dtd
@@ -1,5 +1,5 @@
-
+
@@ -61,7 +61,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -95,7 +95,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
diff --git a/make/data/cldr/common/dtd/ldml.xsd b/make/data/cldr/common/dtd/ldml.xsd
index ee03c2275cc..973251f2f69 100644
--- a/make/data/cldr/common/dtd/ldml.xsd
+++ b/make/data/cldr/common/dtd/ldml.xsd
@@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
-->
-
+
diff --git a/make/data/cldr/common/dtd/ldmlBCP47.xsd b/make/data/cldr/common/dtd/ldmlBCP47.xsd
index d55d3f40728..3abe9785334 100644
--- a/make/data/cldr/common/dtd/ldmlBCP47.xsd
+++ b/make/data/cldr/common/dtd/ldmlBCP47.xsd
@@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
-->
-
+
-
+
@@ -65,12 +65,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
+
@@ -113,7 +114,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -156,6 +157,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic
+
+
+
+
+
+
+
+
+
+
+
@@ -284,7 +296,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -297,7 +309,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -702,7 +714,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -711,7 +723,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -720,9 +732,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
-
+
@@ -738,7 +750,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -914,7 +926,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
@@ -962,9 +974,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
-
+
@@ -996,7 +1008,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
-
+
diff --git a/make/data/cldr/common/dtd/ldmlSupplemental.xsd b/make/data/cldr/common/dtd/ldmlSupplemental.xsd
index 6716f017f62..b7c64ddb38d 100644
--- a/make/data/cldr/common/dtd/ldmlSupplemental.xsd
+++ b/make/data/cldr/common/dtd/ldmlSupplemental.xsd
@@ -5,7 +5,7 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
-->
@@ -372,6 +374,24 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/make/data/cldr/common/main/aa.xml b/make/data/cldr/common/main/aa.xml
index bb823863fa4..3ff6fb6dd06 100644
--- a/make/data/cldr/common/main/aa.xml
+++ b/make/data/cldr/common/main/aa.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+ [ⲁ ⲃ ⲅ ⲇ ⲉ ⲋ ⲍ ⲏ ⲑ ⲓ ⲕ ⲗ ⲙ ⲛ ⲝ ⲟ ⲡ ⲣ ⲥ ⲧ ⲩ ⲫ ⲭ ⲯ ⲱ ϣ ϥ ϧ ϩ ϫ ϭ ϯ]
+ [⳥ ⳦ ⳧ ⳨ ⳩ ⳪ ⳤ]
+ [– ⸗ , ; \: . ⳹ ⳾ ⳼ ⳿ ( )]
+
+
diff --git a/make/data/cldr/common/main/cop_EG.xml b/make/data/cldr/common/main/cop_EG.xml
new file mode 100644
index 00000000000..e96913cb575
--- /dev/null
+++ b/make/data/cldr/common/main/cop_EG.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/make/data/cldr/common/main/cs.xml b/make/data/cldr/common/main/cs.xml
index 2b2ece15549..47b0c97a132 100644
--- a/make/data/cldr/common/main/cs.xml
+++ b/make/data/cldr/common/main/cs.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
diff --git a/make/data/cldr/common/main/en_DE.xml b/make/data/cldr/common/main/en_DE.xml
index e0a78572fb7..6294b401369 100644
--- a/make/data/cldr/common/main/en_DE.xml
+++ b/make/data/cldr/common/main/en_DE.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+ .
+
+
+
diff --git a/make/data/cldr/common/main/en_FI.xml b/make/data/cldr/common/main/en_FI.xml
index c5bd77f0004..de95149f382 100644
--- a/make/data/cldr/common/main/en_FI.xml
+++ b/make/data/cldr/common/main/en_FI.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
diff --git a/make/data/cldr/common/main/en_GB.xml b/make/data/cldr/common/main/en_GB.xml
index 8469b5eccbd..2954f553cf4 100644
--- a/make/data/cldr/common/main/en_GB.xml
+++ b/make/data/cldr/common/main/en_GB.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+ HH:mm:ss zzzz
+ HHmmsszzzz
+
+
+
+
+ HH:mm:ss z
+ HHmmssz
+
+
+
+
+ HH:mm:ss
+ HHmmss
+
+
+
+
+ HH:mm
+ HHmm
+
+
+
+
+
+
+
diff --git a/make/data/cldr/common/main/en_GU.xml b/make/data/cldr/common/main/en_GU.xml
index 2da80b51ca7..d4d325ef67c 100644
--- a/make/data/cldr/common/main/en_GU.xml
+++ b/make/data/cldr/common/main/en_GU.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
diff --git a/make/data/cldr/common/main/en_ID.xml b/make/data/cldr/common/main/en_ID.xml
index d8967d4d32e..48f8dff2932 100644
--- a/make/data/cldr/common/main/en_ID.xml
+++ b/make/data/cldr/common/main/en_ID.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+ .
+
+
+
diff --git a/make/data/cldr/common/main/en_JE.xml b/make/data/cldr/common/main/en_JE.xml
index bb034325375..90189dfc452 100644
--- a/make/data/cldr/common/main/en_JE.xml
+++ b/make/data/cldr/common/main/en_JE.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+ [ \- ‑ , % ‰ + 0 1 2 3 4 5 6 7 8 9]
+
+
+
+ ,
+
+
+
+
+
+ #,##0 %
+
+
+
+
+
+ kr
+
+
+
+
diff --git a/make/data/cldr/common/main/en_NR.xml b/make/data/cldr/common/main/en_NR.xml
index 461a309c8e6..63b142124c3 100644
--- a/make/data/cldr/common/main/en_NR.xml
+++ b/make/data/cldr/common/main/en_NR.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+ .
+
+
+
+
+ #,##0.00 ¤;(#,##0.00 ¤)
+
+
+
+
+
diff --git a/make/data/cldr/common/main/en_PN.xml b/make/data/cldr/common/main/en_PN.xml
index 41dfaf5a2bc..ce49f3fb1a1 100644
--- a/make/data/cldr/common/main/en_PN.xml
+++ b/make/data/cldr/common/main/en_PN.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
+
+ #,##0.00 ¤;(#,##0.00 ¤)
+
+
+
+
+
diff --git a/make/data/cldr/common/main/en_PW.xml b/make/data/cldr/common/main/en_PW.xml
index 9dc9d40e06c..8252ebc2c7e 100644
--- a/make/data/cldr/common/main/en_PW.xml
+++ b/make/data/cldr/common/main/en_PW.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+ .
+
+
+
+
+ #,##0.00 ¤;(#,##0.00 ¤)
+
+
+
+
+
diff --git a/make/data/cldr/common/main/en_RW.xml b/make/data/cldr/common/main/en_RW.xml
index 16cec039043..2ebe3630383 100644
--- a/make/data/cldr/common/main/en_RW.xml
+++ b/make/data/cldr/common/main/en_RW.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+ ,
+
+ e
+
+
+
+
+ #,##0.00 ¤;(#,##0.00 ¤)
+
+
+
+
+
diff --git a/make/data/cldr/common/main/en_SL.xml b/make/data/cldr/common/main/en_SL.xml
index f4a944bcf93..96b3da01929 100644
--- a/make/data/cldr/common/main/en_SL.xml
+++ b/make/data/cldr/common/main/en_SL.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+ Kreyòl Ayisyen
+
+
+
+ [a {an} b {ch} d eè {en} f g h i j k l m n {ng} oò {on} {ou} {oun} p r s t {ui} v w y z]
+ [x]
+ [\- ‑ , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ / \& # % ′ ″]
+
+
+
+
+ %
+ -
+
+
+
diff --git a/make/data/cldr/common/main/ht_HT.xml b/make/data/cldr/common/main/ht_HT.xml
new file mode 100644
index 00000000000..c4f5bb4d5ac
--- /dev/null
+++ b/make/data/cldr/common/main/ht_HT.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/make/data/cldr/common/main/hu.xml b/make/data/cldr/common/main/hu.xml
index d386b4c4eae..2cfb4d16073 100644
--- a/make/data/cldr/common/main/hu.xml
+++ b/make/data/cldr/common/main/hu.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
diff --git a/make/data/cldr/common/main/za.xml b/make/data/cldr/common/main/za.xml
index d6b56c0fedd..0a0cba9b2e8 100644
--- a/make/data/cldr/common/main/za.xml
+++ b/make/data/cldr/common/main/za.xml
@@ -1,6 +1,6 @@
-
-
+
@@ -107,7 +108,7 @@ For terms of use, see http://www.unicode.org/copyright.html
-
+
@@ -171,6 +172,7 @@ For terms of use, see http://www.unicode.org/copyright.html
+
@@ -228,6 +230,38 @@ For terms of use, see http://www.unicode.org/copyright.html
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
+
+
diff --git a/make/data/cldr/common/supplemental/dayPeriods.xml b/make/data/cldr/common/supplemental/dayPeriods.xml
index d898ad0a4a3..a19e6779d87 100644
--- a/make/data/cldr/common/supplemental/dayPeriods.xml
+++ b/make/data/cldr/common/supplemental/dayPeriods.xml
@@ -7,6 +7,7 @@
-->
+
@@ -15,10 +16,10 @@
-
+
-
+
@@ -693,10 +694,10 @@
-
+
-
+
diff --git a/make/data/cldr/common/supplemental/languageInfo.xml b/make/data/cldr/common/supplemental/languageInfo.xml
index 69206ac3569..3c106149481 100644
--- a/make/data/cldr/common/supplemental/languageInfo.xml
+++ b/make/data/cldr/common/supplemental/languageInfo.xml
@@ -36,7 +36,7 @@ For terms of use, see http://www.unicode.org/copyright.html
and in the absence of better information. -->
-
+
diff --git a/make/data/cldr/common/supplemental/likelySubtags.xml b/make/data/cldr/common/supplemental/likelySubtags.xml
index e983ecb3852..8b87d7e23d7 100644
--- a/make/data/cldr/common/supplemental/likelySubtags.xml
+++ b/make/data/cldr/common/supplemental/likelySubtags.xml
@@ -1,7 +1,7 @@
-
+
@@ -128,6 +128,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -182,6 +183,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -240,13 +242,13 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
-
-
+
@@ -261,6 +263,8 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
@@ -321,7 +325,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -366,6 +370,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -403,6 +408,8 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
@@ -427,6 +434,8 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
@@ -434,13 +443,14 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
-
@@ -498,6 +508,8 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
@@ -525,6 +537,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -538,6 +551,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -567,7 +581,12 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
+
+
+
+
@@ -630,7 +649,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -657,7 +676,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -712,6 +730,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
@@ -831,7 +850,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -864,10 +883,11 @@ not be patched by hand, as any changes made in that fashion may be lost.
+
-
-
+
+
@@ -882,7 +902,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -954,7 +974,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -993,16 +1013,15 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
-
+
-
+
@@ -1029,13 +1048,13 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -1049,7 +1068,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -1076,7 +1094,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -1189,7 +1207,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -1197,7 +1215,8 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
+
@@ -1206,7 +1225,7 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
+
@@ -2325,7 +2344,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -2799,7 +2817,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -3099,7 +3116,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -3970,7 +3986,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -4232,7 +4247,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -4243,7 +4257,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -4422,14 +4435,12 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
-
@@ -5322,7 +5333,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -5461,7 +5471,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -5766,7 +5775,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
@@ -6653,7 +6661,6 @@ not be patched by hand, as any changes made in that fashion may be lost.
-
diff --git a/make/data/cldr/common/supplemental/supplementalData.xml b/make/data/cldr/common/supplemental/supplementalData.xml
index 65b2d6819ea..1c9a5a0c62e 100644
--- a/make/data/cldr/common/supplemental/supplementalData.xml
+++ b/make/data/cldr/common/supplemental/supplementalData.xml
@@ -1,7 +1,7 @@
@@ -1145,12 +1145,12 @@ The printed version of ISO-4217:2001
-
-
-
+
+
+
@@ -1291,7 +1291,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1302,7 +1302,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1311,11 +1311,14 @@ XXX Code for transations where no currency is involved
-
+
+
+
+
@@ -1326,7 +1329,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1339,11 +1342,11 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -1386,7 +1389,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1396,6 +1399,7 @@ XXX Code for transations where no currency is involved
+
@@ -1420,7 +1424,8 @@ XXX Code for transations where no currency is involved
-
+
+
@@ -1443,7 +1448,8 @@ XXX Code for transations where no currency is involved
-
+
+
@@ -1454,7 +1460,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1471,15 +1477,15 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -1487,10 +1493,11 @@ XXX Code for transations where no currency is involved
-
+
+
-
+
@@ -1522,7 +1529,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1530,21 +1537,22 @@ XXX Code for transations where no currency is involved
+
-
+
-
-
-
+
+
+
-
+
@@ -1572,11 +1580,11 @@ XXX Code for transations where no currency is involved
-
-
+
+
-
-
+
+
@@ -1609,7 +1617,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1618,17 +1626,18 @@ XXX Code for transations where no currency is involved
-
+
+
-
+
-
+
-
+
@@ -1644,10 +1653,10 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -1659,7 +1668,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1691,13 +1700,13 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -1709,6 +1718,7 @@ XXX Code for transations where no currency is involved
+
@@ -1718,12 +1728,13 @@ XXX Code for transations where no currency is involved
+
-
+
@@ -1735,6 +1746,8 @@ XXX Code for transations where no currency is involved
+
+
@@ -1745,6 +1758,7 @@ XXX Code for transations where no currency is involved
+
@@ -1770,7 +1784,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1782,6 +1796,7 @@ XXX Code for transations where no currency is involved
+
@@ -1809,7 +1824,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1825,10 +1840,11 @@ XXX Code for transations where no currency is involved
-
+
-
-
+
+
+
@@ -1841,10 +1857,11 @@ XXX Code for transations where no currency is involved
+
-
+
@@ -1852,7 +1869,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1877,20 +1894,21 @@ XXX Code for transations where no currency is involved
-
+
-
+
-
-
+
+
+
@@ -1920,6 +1938,7 @@ XXX Code for transations where no currency is involved
+
@@ -1939,7 +1958,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1954,7 +1973,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -1975,11 +1994,11 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -2011,13 +2030,14 @@ XXX Code for transations where no currency is involved
+
-
-
+
+
@@ -2041,6 +2061,7 @@ XXX Code for transations where no currency is involved
+
@@ -2051,9 +2072,9 @@ XXX Code for transations where no currency is involved
-
-
-
+
+
+
@@ -2067,23 +2088,26 @@ XXX Code for transations where no currency is involved
-
+
-
-
+
+
+
-
+
+
+
-
-
+
+
@@ -2141,7 +2165,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2171,12 +2195,13 @@ XXX Code for transations where no currency is involved
-
+
-
+
+
-
+
@@ -2192,13 +2217,15 @@ XXX Code for transations where no currency is involved
+
-
+
+
@@ -2240,7 +2267,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2263,7 +2290,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2274,22 +2301,25 @@ XXX Code for transations where no currency is involved
-
+
-
+
+
-
-
+
+
+
-
+
+
@@ -2309,8 +2339,8 @@ XXX Code for transations where no currency is involved
-
-
+
+
@@ -2324,25 +2354,25 @@ XXX Code for transations where no currency is involved
-
+
-
+
-
+
-
+
-
+
@@ -2353,8 +2383,8 @@ XXX Code for transations where no currency is involved
-
-
+
+
@@ -2380,23 +2410,23 @@ XXX Code for transations where no currency is involved
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -2406,7 +2436,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2414,11 +2444,11 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -2426,7 +2456,25 @@ XXX Code for transations where no currency is involved
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2496,7 +2544,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2559,7 +2607,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2581,13 +2629,13 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -2634,7 +2682,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2650,74 +2698,75 @@ XXX Code for transations where no currency is involved
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -2725,20 +2774,20 @@ XXX Code for transations where no currency is involved
-
+
-
+
-
-
-
-
-
+
+
+
+
+
@@ -2746,7 +2795,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2826,7 +2875,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2853,9 +2902,10 @@ XXX Code for transations where no currency is involved
-
+
+
@@ -2895,10 +2945,10 @@ XXX Code for transations where no currency is involved
+
-
@@ -2919,7 +2969,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -2943,6 +2993,7 @@ XXX Code for transations where no currency is involved
+
@@ -3013,7 +3064,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3032,12 +3083,12 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -3072,9 +3123,10 @@ XXX Code for transations where no currency is involved
+
-
+
@@ -3107,32 +3159,34 @@ XXX Code for transations where no currency is involved
+
-
+
-
+
+
-
+
-
+
-
+
@@ -3140,9 +3194,11 @@ XXX Code for transations where no currency is involved
+
+
-
+
@@ -3154,6 +3210,7 @@ XXX Code for transations where no currency is involved
+
@@ -3182,13 +3239,13 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -3228,11 +3285,13 @@ XXX Code for transations where no currency is involved
+
+
-
+
@@ -3377,7 +3436,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3452,9 +3511,9 @@ XXX Code for transations where no currency is involved
-
+
@@ -3489,9 +3548,9 @@ XXX Code for transations where no currency is involved
+
-
@@ -3530,7 +3589,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3548,18 +3607,18 @@ XXX Code for transations where no currency is involved
+
-
-
+
-
+
@@ -3574,11 +3633,11 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -3592,7 +3651,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3624,20 +3683,23 @@ XXX Code for transations where no currency is involved
-
+
+
-
+
+
+
-
+
-
+
@@ -3649,14 +3711,14 @@ XXX Code for transations where no currency is involved
-
+
-
+
+
-
+
-
@@ -3678,7 +3740,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3719,12 +3781,12 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -3763,7 +3825,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3837,7 +3899,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3908,7 +3970,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -3944,14 +4006,14 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -3999,10 +4061,11 @@ XXX Code for transations where no currency is involved
+
-
+
@@ -4013,7 +4076,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4026,10 +4089,11 @@ XXX Code for transations where no currency is involved
-
+
+
@@ -4098,7 +4162,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4131,9 +4195,13 @@ XXX Code for transations where no currency is involved
+
+
+
+
@@ -4145,7 +4213,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4162,14 +4230,14 @@ XXX Code for transations where no currency is involved
-
+
-
+
@@ -4197,8 +4265,9 @@ XXX Code for transations where no currency is involved
-
-
+
+
+
@@ -4214,7 +4283,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4226,7 +4295,6 @@ XXX Code for transations where no currency is involved
-
@@ -4235,11 +4303,13 @@ XXX Code for transations where no currency is involved
+
+
@@ -4257,6 +4327,8 @@ XXX Code for transations where no currency is involved
+
+
@@ -4376,11 +4448,11 @@ XXX Code for transations where no currency is involved
-
+
+
-
@@ -4399,7 +4471,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4419,10 +4491,17 @@ XXX Code for transations where no currency is involved
-
+
+
-
-
+
+
+
+
+
+
+
+
@@ -4890,7 +4969,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -4908,7 +4987,7 @@ XXX Code for transations where no currency is involved
-
+
@@ -5448,8 +5527,8 @@ XXX Code for transations where no currency is involved
-
-
+
+
@@ -5475,11 +5554,11 @@ XXX Code for transations where no currency is involved
Dutch official
At most 6% are not fluent in English
- French official, the figure is derived from literacy * population
+ Precise data not available, added so Balinese script defaults to Balinese
While Cyrillic is customary, the vast majority of the population can read both.For languages not customarily written, the writing populiation is artificially set to 5% in the absence of better information.
The figure includes 'Vlaams' population from Ethnologue
It is estimated that Walloon is used actively by 10-20% of the total population of Wallonia or between 300,000 and 600,000 people. For languages not customarily written, the writing population is artificially set to 5% in the absence of better information.
- http://en.wikipedia.org/wiki/Demographics_of_Switzerland Literacy rate for gsw is 5% of reported speaker population; literacy is mostly in standard German. For languages not customarily written, the writing population is artificially set to 5% in the absence of better information.
+ Precise data not available
Arabic official, the figure is derived from literacy * lang pop
Spanish is the official language, only about 60-70% of the population speaks it at all ;
English official, 81% literacy; the figure is derived from literacy * lang pop
@@ -5492,18 +5571,18 @@ XXX Code for transations where no currency is involved
100k+ native, plus 1.5 mil 2nd lang speakers. For languages not customarily written, the writing population is artificially set to 5% in the absence of better information.
For languages not customarily written, the writing population is artificially set to 5% in the absence of better information.
English official; the figure is derived from literacy * lang pop
- French official; the figure is derived from literacy * lang pop
+ Canada 2021 Census language "Knowledge of Language"; official status from Wikipedia Languages_of_Canada
[missing]
- Crude estimate based on import partner data. http://www.answers.com/topic/mauritania
+ Actually literacy in Nko writing unknown but historically they used the Latin script
English official, the figure is derived from literacy * lang pop
- French official; the figure is derived from literacy * lang pop
+ Actually literacy in Nko writing unknown
Some 99% of users are literate in French or German. For languages not customarily written, the writing population is artificially set to 5% in the absence of better information.
2nd lang literacy 15-25%
Nearly all speakers are literate in a 2nd language. For languages not customarily written, the writing population is artificially set to 5%
Many minor langs; Portuguese official
In this and other sources, such as Ethnologue, there is no estimate for number of users. http://en.wikipedia.org/wiki/Filipino_language http://www.ethnologue.com/show_language.asp?code=fil
Most of the population uses Creole; see also http://www.country-studies.com/haiti/creole,-literacy,-and-education.html http://en.wikipedia.org/wiki/French_language#Haiti
- 400k 2nd language speakers
+ [missing]
Official language, 37-77% literacy
Official language, used in some schools.
http://www.censusindia.net/cendat/datatable26.html
@@ -5513,8 +5592,7 @@ XXX Code for transations where no currency is involved
English official; Kiribati widespread
[missing]
German official
- No figures found for use of French. Used literacy 29.5% times population to get the writing pop; French is the only official language.
- French official; the figure is derived from literacy * lang pop
+ 2020 Russian Census
Used CIA literacy figure times population, added 'Vlaams' population
[missing]
70,000 in 1991, 100,000 who understand it, but do not speak it ; ethnic pop 530,000 in 2002
@@ -5535,7 +5613,7 @@ XXX Code for transations where no currency is involved
English official on some islands, total 9.4%
http://astro.uchicago.edu/cara/vtour/mcmurdo/ http://www.usap.gov/videoclipsandmaps/mcmwebcam.cfm Winter population is listed.
1.2mil 1st lang + 240k 2nd lang users, low literacy
- [missing]
+ Has rotating Norwegian population at Norvegia Station
http://www.mavicanet.com/directory/eng/2436.html
Uninhabited, barren, sub-Antarctic islands
[missing]
@@ -5557,8 +5635,7 @@ XXX Code for transations where no currency is involved
English (official, primary language of commerce, administration, and higher education)
Ethnologue lists 1 million 2nd lang users of English; no other good figures found.
also: http://en.wikipedia.org/wiki/Bosnian_language
- French is a minority official language. Crude estimate of usage based on import partner data.
- Macao reported 5% native Portuguese speakers.
+ 2021 Census, counting people who are fluent in the language
5% writing pop estimated in absence of other data
[missing]
Crude estimate based on import partner data.
@@ -5577,7 +5654,7 @@ XXX Code for transations where no currency is involved
[missing]
Deva is the official script for sd in India; set to 55%. Arab, Guru, Khoj also used.
The lingua franca of 80% of the population
- [missing]
+ 2016 Census
and https://en.wikipedia.org/wiki/Mru_language
- More than 95% of Pakistanis can speak or understand Urdu as their second or third language
[missing]
@@ -5597,20 +5674,17 @@ XXX Code for transations where no currency is involved
Latin script official, used 98.8% of pop * 90% for the usage figure
- five eastern provinces of the DRC are Swahili speaking. Nearly half the 66 million Congolese speak it.
[missing]
- estimate 20% of Algerians can use French
[missing]
[missing]
- Most educated Kenyans are able to communicate fluently in Swahili, since it is a compulsory subject in school
[missing]
[missing]
- - Education is in French; using literacy rate * pop for French-using population
English is the first language learned by half the children by the time they reach preschool age; using 92.6% of pop for the English figure
- - using pop * literacy rate
+ Organisation internationale de la Francophonie Meta-study. Data from 2012 and 2016 Eurostat studies on first and second language usage across Europe
- 90 percent of approximately 39 million Tanzanians speak Swahili
- Baganda generally don't speak Swahili, but it is in common use among the 25 million people elsewhere in the country, and is currently being implemented in schools nationwide (use 75% of Cpop for this figure)
[missing]
[missing]
- [missing]
http://www.ofis-bzh.org/fr/langue_bretonne/chiffres_cles/index.php France blocks other languages in state schools; 1.4% attended Breton schools and 3% is estimated as family transmission rate
15.8% of population
The 2008 estimate is ~2000 speakers due to revival efforts
@@ -5634,16 +5708,13 @@ XXX Code for transations where no currency is involved
Spoken by 70% of population, assumed to use Arabic script in Pakistan
Reported to be (regional) official in Chuvashia, central Russia: taught at schools. However: http://cv.wikipedia.org/ Chuvash Wikipedia on-line.
[missing]
- [missing]
'A lingua franca and a first language for 10% of the population but understood by 95%' http://en.wikipedia.org/wiki/Krio_language
Dutch is spoken as a mother tongue by about 60% of the Surinamese, while most others speak it as a second or third language.
main language of trade and comm. in Isan region, except ... media where it gives way to Thai; now largely an unwritten language. 10% writing pop estimated in absence of other data
- primarily written using an Arabic-derived alphabet
and https://islandstudies.com/files/2016/11/Guernsey-Herm-Sark.pdf - extrapolated GDP from per capita x population
understood by 10 million, perhaps. Figure is questionable writing pop artificially set to 5% see also: http://en.wikipedia.org/wiki/Low_German (understood by 10 million people, and native to about 3 million people all around northern Germany)
- [missing]
See the 2006 language survey data for 2nd langs = Shimaore
- See the 2006 language survey data for 2nd langs
Common lingua franca, widely used. High literacy.
but subtracting 270,000 per https://en.wikipedia.org/wiki/Swiss_Italian
[missing]
@@ -5651,14 +5722,14 @@ XXX Code for transations where no currency is involved
[missing]
98.8% speak Spanish. Also, https://www.cia.gov/library/publications/the-world-factbook/geos/sp.html
[missing]
- No indigenous inhabitants. http://en.wikipedia.org/wiki/Heard_Island_and_McDonald_Islands
+ Colony of France but uninhabited
No indigenous inhabitants. http://en.wikipedia.org/wiki/British_Indian_Ocean_Territory
Many also use Swahili
Latin is not shown as being used, rather Arabic
Used in schools up to University.
Also called Sakha.
No indigenous inhabitants. http://en.wikipedia.org/wiki/French_Southern_Territories
- [missing]
+ 2022 Census language spoken at home
Shows 50% literacy
Most also use Swahili with 50% literacy. Only 5% monolingual.
Most also use Swahili
@@ -5692,6 +5763,7 @@ XXX Code for transations where no currency is involved
This is base pop for """"""""""""""""""""""""""""""""fub"""""""""""""""""""""""""""""""" lang code; ff shows as a macrolanguage
[missing]
(could be higher if 2nd lang included; no data yet)
+ [missing]
[missing]
[missing]
pop 7k. Figure is questionable writing pop artificially set to 5% see also http://en.wikipedia.org/wiki/Lower_Sorbian
@@ -5724,7 +5796,6 @@ XXX Code for transations where no currency is involved
population figure from CLDR-17483 ticket
No Data Available at present.
co-official in South Tyrol
- Aosta Valley
in Trieste and Gorizia
[missing]
Information on the Latin/Cyrillic script percentages for Montenegro not currently found.
@@ -5745,7 +5816,7 @@ XXX Code for transations where no currency is involved
Mainly unwritten
Vai script is the main script for this language.
Latin listed as being used (Scriptsource) but no pop figures available.
- and https://en.wikipedia.org/wiki/Macau
+ 2011 Census -- the language is not distinguished in the 2021 census
but no literacy data
Including 1st and 2nd lang speakers
[missing]
@@ -5757,7 +5828,7 @@ XXX Code for transations where no currency is involved
near zero literacy; pop ~80000 (2009) see David Lawrence, Tanzania and its People, page 121, Google books
(baseline)
No population figure yet on use of Latin in Vatican. Estimate 100% of Vatican residents can use Latin.
- [missing]
+ 2010 Census: Widely Spoken Language of Communication
No figures available for this language. Estimating at 5%.
[missing]
[missing]
@@ -5801,9 +5872,45 @@ XXX Code for transations where no currency is involved
[missing]
[missing]
Mainly in Guangdong Prov, ~70-80 million. Script unspecified so both listed
- Canada 2016 census language data; official status from Wikipedia Languages_of_Canada
Analyzed from 2011 UK census and other sources
- In total 86.2% of Canadians have working knowledge of English while 29.8% have a working knowledge of French.
2014 Maldives: 98% literacy in Divehi, 75% in English
+ [missing]
+ [missing]
+ Greek population in Russia -- most ancestrally used Pontic Greek -- modern usage almost certainly has dropped off but we don't have clear statistics on current usage.
+ [missing]
+ Lower estimate of Coptic population, actual language literacy unknown
+ [missing]
+ Organisation internationale de la Francophonie Meta-study. Data from 2013 Census
+ Organisation internationale de la Francophonie Meta-study. Data from IVQ survey in 2009
+ 2021 Census Knowledge of Language
+ Organisation internationale de la Francophonie Meta-study. Data from 2014 study
+ Organisation internationale de la Francophonie Meta-study. Data from 1994 study
+ Organisation internationale de la Francophonie Meta-study. Data from 2009 and 2012 studies
+ Regelmässig verwendete Sprachen - Percent of people that regularly use the language
+ Regelmässig verwendete Sprachen - Percent of people that regularly use the language; literacy is mostly in standard German. For languages not customarily written, the writing population is artificially set to 5% in the absence of better information."
+ Organisation internationale de la Francophonie Meta-study. Data from 2014 census
+ Organisation internationale de la Francophonie Meta-study. Data from 2010 questionnaire
+ Organisation internationale de la Francophonie Meta-study. Data from 2008 Census
+ Organisation internationale de la Francophonie Meta-study. Data from 2017 survey from Gabon authorities
+ Organisation internationale de la Francophonie Meta-study. Data from 2011 IVQ survey
+ Organisation internationale de la Francophonie Meta-study. Data from 2005 Study
+ Organisation internationale de la Francophonie Meta-study. Data from 2012 Census
+ Organisation internationale de la Francophonie Meta-study. Data from 2014 questionnaire
+ Organisation internationale de la Francophonie Meta-study. Data from 2003 census
+ Organisation internationale de la Francophonie Meta-study. Data from 2012, mixed methods
+ Organisation internationale de la Francophonie Meta-study. Data from 2014 Census
+ Organisation internationale de la Francophonie Meta-study. Data from 2017 questionnaire
+ Organisation internationale de la Francophonie Meta-study. Data from 2018 census
+ Organisation internationale de la Francophonie Meta-study. Data from 2009 census
+ Organisation internationale de la Francophonie Meta-study. Data from IVQ survey in 2014
+ Organisation internationale de la Francophonie Meta-study. Data from 2009 Census
+ Organisation internationale de la Francophonie Meta-study. Data from 2012 census
+ Organisation internationale de la Francophonie Meta-study. Data from 2017 Census
+ Organisation internationale de la Francophonie Meta-study. Data from 2018 Census
+ Organisation internationale de la Francophonie Meta-study. Data from IVQ survey in 2007
+ Organisation internationale de la Francophonie Meta-study. Data from 2013 census. Literacy is based on the language of instruction
+ Organisation internationale de la Francophonie Meta-study. Data from 2014
+ Organisation internationale de la Francophonie Meta-study. Data from 2010 census
+ Organisation internationale de la Francophonie Meta-study. Data from 2007 Census
diff --git a/make/data/cldr/common/supplemental/supplementalMetadata.xml b/make/data/cldr/common/supplemental/supplementalMetadata.xml
index a4011a09aa4..d8e5052adef 100644
--- a/make/data/cldr/common/supplemental/supplementalMetadata.xml
+++ b/make/data/cldr/common/supplemental/supplementalMetadata.xml
@@ -179,7 +179,7 @@ For terms of use, see http://www.unicode.org/copyright.html
-
+
@@ -306,6 +306,9 @@ For terms of use, see http://www.unicode.org/copyright.html
+
+
+
@@ -1880,14 +1883,14 @@ For terms of use, see http://www.unicode.org/copyright.html
bgc_IN bgn_PK bho_IN blo_BJ blt_VN bm_ML bm_Nkoo_ML bn_BD bo_CN br_FR brx_IN
bs_Cyrl_BA bs_Latn bs_Latn_BA bss_CM byn_ER
ca_ES cad_US cch_NG ccp_BD ce_RU ceb_PH cgg_UG cho_US chr_US cic_US ckb_IQ
- co_FR cs_CZ csw_CA cu_RU cv_RU cy_GB
+ co_FR cop_EG cs_CZ csw_CA cu_RU cv_RU cy_GB
da_DK dav_KE de_DE dje_NE doi_IN dsb_DE dua_CM dv_MV dyo_SN dz_BT
ebu_KE ee_GH el_GR en_Dsrt_US en_Shaw_GB en_US eo_001 es_ES et_EE eu_ES ewo_CM
fa_IR ff_Adlm_GN ff_Latn ff_Latn_SN fi_FI fil_PH fo_FO fr_FR frr_DE fur_IT
fy_NL
ga_IE gaa_GH gd_GB gez_ET gl_ES gn_PY gsw_CH gu_IN guz_KE gv_IM
ha_Arab_NG ha_NG haw_US he_IL hi_IN hi_Latn_IN hnj_Hmnp hnj_Hmnp_US hr_HR
- hsb_DE hu_HU hy_AM
+ hsb_DE ht_HT hu_HU hy_AM
ia_001 id_ID ie_EE ife_TG ig_NG ii_CN io_001 is_IS it_IT iu_CA iu_Latn_CA
ja_JP jbo_001 jgo_CM jmc_TZ jv_ID
ka_GE kaa_Cyrl kaa_Cyrl_UZ kaa_Latn_UZ kab_DZ kaj_NG kam_KE kcg_NG kde_TZ kea_CV ken_CM kgp_BR
diff --git a/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java b/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java
index 6e130872bd4..cf629a7d57c 100644
--- a/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java
+++ b/src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -181,6 +181,8 @@ import java.util.Locale;
* | CLDR version |
*
*
+ * | JDK 25 |
+ * CLDR 47 |
* | JDK 24 |
* CLDR 46 |
* | JDK 23 |
diff --git a/src/java.base/share/legal/cldr.md b/src/java.base/share/legal/cldr.md
index 81a4038107d..f020d8f51ae 100644
--- a/src/java.base/share/legal/cldr.md
+++ b/src/java.base/share/legal/cldr.md
@@ -1,4 +1,4 @@
-## Unicode Common Local Data Repository (CLDR) v46
+## Unicode Common Local Data Repository (CLDR) v47
### CLDR License
@@ -9,7 +9,7 @@ UNICODE LICENSE V3
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2024 Unicode, Inc.
+Copyright © 1991-2025 Unicode, Inc.
NOTICE TO USER: Carefully read the following legal agreement. BY
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
@@ -53,7 +53,7 @@ Unicode® Copyright and Terms of Use
For the general privacy policy governing access to this site, see the Unicode Privacy Policy.
Unicode Copyright
-Copyright © 1991-2024 Unicode, Inc. All rights reserved.
+Copyright © 1991-2025 Unicode, Inc. All rights reserved.
Definitions
Unicode Data Files ("DATA FILES") include all data files under the directories:
https://www.unicode.org/Public/
diff --git a/src/jdk.localedata/share/legal/cldr.md b/src/jdk.localedata/share/legal/cldr.md
index 81a4038107d..f020d8f51ae 100644
--- a/src/jdk.localedata/share/legal/cldr.md
+++ b/src/jdk.localedata/share/legal/cldr.md
@@ -1,4 +1,4 @@
-## Unicode Common Local Data Repository (CLDR) v46
+## Unicode Common Local Data Repository (CLDR) v47
### CLDR License
@@ -9,7 +9,7 @@ UNICODE LICENSE V3
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2024 Unicode, Inc.
+Copyright © 1991-2025 Unicode, Inc.
NOTICE TO USER: Carefully read the following legal agreement. BY
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
@@ -53,7 +53,7 @@ Unicode® Copyright and Terms of Use
For the general privacy policy governing access to this site, see the Unicode Privacy Policy.
Unicode Copyright
-Copyright © 1991-2024 Unicode, Inc. All rights reserved.
+Copyright © 1991-2025 Unicode, Inc. All rights reserved.
Definitions
Unicode Data Files ("DATA FILES") include all data files under the directories:
https://www.unicode.org/Public/
diff --git a/test/jdk/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java b/test/jdk/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java
index 75fed1524d2..6d62dfe1265 100644
--- a/test/jdk/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java
+++ b/test/jdk/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -554,7 +554,7 @@ public class TestDateTimeFormatterBuilder {
Object[][] data_dayPeriodFormat() {
return new Object[][] {
{0, 0, TextStyle.FULL, Locale.US, "midnight"},
- {0, 1, TextStyle.FULL, Locale.US, "at night"},
+ {0, 1, TextStyle.FULL, Locale.US, "in the morning"},
{6, 0, TextStyle.FULL, Locale.US, "in the morning"},
{12, 0, TextStyle.FULL, Locale.US, "noon"},
{12, 1, TextStyle.FULL, Locale.US, "in the afternoon"},
@@ -571,7 +571,7 @@ public class TestDateTimeFormatterBuilder {
{23, 0, TextStyle.FULL, Locale.JAPAN, "\u591c\u4e2d"},
{0, 0, TextStyle.NARROW, Locale.US, "mi"},
- {0, 1, TextStyle.NARROW, Locale.US, "at night"},
+ {0, 1, TextStyle.NARROW, Locale.US, "in the morning"},
{6, 0, TextStyle.NARROW, Locale.US, "in the morning"},
{12, 0, TextStyle.NARROW, Locale.US, "n"},
{12, 1, TextStyle.NARROW, Locale.US, "in the afternoon"},
@@ -600,13 +600,13 @@ public class TestDateTimeFormatterBuilder {
Object[][] data_dayPeriodParse() {
return new Object[][] {
{TextStyle.FULL, Locale.US, 0, 0, "midnight"},
- {TextStyle.FULL, Locale.US, 1, 30, "at night"},
{TextStyle.FULL, Locale.US, 6, 0, "AM"},
- {TextStyle.FULL, Locale.US, 9, 0, "in the morning"},
+ {TextStyle.FULL, Locale.US, 6, 0, "in the morning"},
{TextStyle.FULL, Locale.US, 12, 0, "noon"},
{TextStyle.FULL, Locale.US, 15, 0, "in the afternoon"},
{TextStyle.FULL, Locale.US, 18, 0, "PM"},
{TextStyle.FULL, Locale.US, 19, 30, "in the evening"},
+ {TextStyle.FULL, Locale.US, 22, 30, "at night"},
{TextStyle.FULL, Locale.JAPAN, 0, 0, "\u771f\u591c\u4e2d"},
{TextStyle.FULL, Locale.JAPAN, 1, 30, "\u591c\u4e2d"},
@@ -619,13 +619,13 @@ public class TestDateTimeFormatterBuilder {
{TextStyle.FULL, Locale.JAPAN, 21, 0, "\u591c"},
{TextStyle.NARROW, Locale.US, 0, 0, "mi"},
- {TextStyle.NARROW, Locale.US, 1, 30, "at night"},
{TextStyle.NARROW, Locale.US, 6, 0, "a"},
- {TextStyle.NARROW, Locale.US, 9, 0, "in the morning"},
+ {TextStyle.NARROW, Locale.US, 6, 0, "in the morning"},
{TextStyle.NARROW, Locale.US, 12, 0, "n"},
{TextStyle.NARROW, Locale.US, 15, 0, "in the afternoon"},
{TextStyle.NARROW, Locale.US, 18, 0, "p"},
{TextStyle.NARROW, Locale.US, 19, 30, "in the evening"},
+ {TextStyle.NARROW, Locale.US, 22, 30, "at night"},
{TextStyle.NARROW, Locale.JAPAN, 0, 0, "\u771f\u591c\u4e2d"},
{TextStyle.NARROW, Locale.JAPAN, 1, 30, "\u591c\u4e2d"},
@@ -651,12 +651,12 @@ public class TestDateTimeFormatterBuilder {
Object[][] data_dayPeriodParsePattern() {
return new Object[][] {
{"H B", "23 at night", 23},
- {"H B", "3 at night", 3},
+ {"H B", "3 in the morning", 3},
{"K B", "11 at night", 23},
- {"K B", "3 at night", 3},
+ {"K B", "3 in the morning", 3},
{"K B", "11 in the morning", 11},
{"h B", "11 at night", 23},
- {"h B", "3 at night", 3},
+ {"h B", "3 in the morning", 3},
{"h B", "11 in the morning", 11},
{"a", "AM", 6},
{"a", "PM", 18},
@@ -692,14 +692,14 @@ public class TestDateTimeFormatterBuilder {
Object[][] data_dayPeriodParseInvalid() {
return new Object[][] {
{TextStyle.FULL, ResolverStyle.SMART, Locale.US, "00:01 midnight", "00:00"},
- {TextStyle.FULL, ResolverStyle.SMART, Locale.US, "06:01 at night", "21:00-06:00"},
- {TextStyle.FULL, ResolverStyle.SMART, Locale.US, "05:59 in the morning", "06:00-12:00"},
+ {TextStyle.FULL, ResolverStyle.SMART, Locale.US, "00:01 at night", "21:00-24:00"},
+ {TextStyle.FULL, ResolverStyle.SMART, Locale.US, "12:01 in the morning", "00:00-12:00"},
{TextStyle.FULL, ResolverStyle.SMART, Locale.US, "11:59 noon", "12:00"},
{TextStyle.FULL, ResolverStyle.SMART, Locale.US, "18:00 in the afternoon", "12:00-18:00"},
{TextStyle.FULL, ResolverStyle.SMART, Locale.US, "17:59 in the evening", "18:00-21:00"},
{TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "00:01 mi", "00:00"},
- {TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "06:01 at night", "21:00-06:00"},
- {TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "05:59 in the morning", "06:00-12:00"},
+ {TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "00:01 at night", "21:00-24:00"},
+ {TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "12:01 in the morning", "00:00-12:00"},
{TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "11:59 n", "12:00"},
{TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "18:00 in the afternoon", "12:00-18:00"},
{TextStyle.NARROW, ResolverStyle.SMART, Locale.US, "17:59 in the evening", "18:00-21:00"},
@@ -720,14 +720,14 @@ public class TestDateTimeFormatterBuilder {
{TextStyle.NARROW, ResolverStyle.SMART, Locale.JAPAN, "23:00 \u591c", "19:00-23:00"},
{TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "00:01 midnight", "00:00"},
- {TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "06:01 at night", "21:00-06:00"},
- {TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "05:59 in the morning", "06:00-12:00"},
+ {TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "00:01 at night", "21:00-24:00"},
+ {TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "12:01 in the morning", "00:00-12:00"},
{TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "11:59 noon", "12:00"},
{TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "18:00 in the afternoon", "12:00-18:00"},
{TextStyle.FULL, ResolverStyle.LENIENT, Locale.US, "17:59 in the evening", "18:00-21:00"},
{TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "00:01 mi", "00:00"},
- {TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "06:01 at night", "21:00-06:00"},
- {TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "05:59 in the morning", "06:00-12:00"},
+ {TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "00:01 at night", "21:00-24:00"},
+ {TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "12:01 in the morning", "00:00-12:00"},
{TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "11:59 n", "12:00"},
{TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "18:00 in the afternoon", "12:00-18:00"},
{TextStyle.NARROW, ResolverStyle.LENIENT, Locale.US, "17:59 in the evening", "18:00-21:00"},
diff --git a/test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java b/test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java
index d7b414dc761..550dc5b31c2 100644
--- a/test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java
+++ b/test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
/*
* @test
* @bug 8176841 8202537 8244245 8265315 8284840 8296248 8306116 8333582
+ * 8346948
* @summary Tests java.time classes deals with Unicode extensions
* correctly.
* @modules jdk.localedata
@@ -345,7 +346,7 @@ public class TestUnicodeExtension {
Object[][] shortTZID() {
return new Object[][] {
// LDML's short ID, Expected Zone,
- // Based on timezone.xml from CLDR v46
+ // Based on timezone.xml from CLDR v47
{"adalv", "Europe/Andorra"},
{"aedxb", "Asia/Dubai"},
{"afkbl", "Asia/Kabul"},
diff --git a/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java b/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java
index 224c0c05771..20861f151e0 100644
--- a/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java
+++ b/test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,7 +51,7 @@ import org.testng.annotations.Test;
/*
* @test
- * @bug 8081022 8151876 8166875 8177819 8189784 8206980 8277049 8278434
+ * @bug 8081022 8151876 8166875 8177819 8189784 8206980 8277049 8278434 8346948
* 8174269
* @key randomness
*/
@@ -162,7 +162,7 @@ public class TestZoneTextPrinterParser extends AbstractTestPrinterParser {
// {"CET", "Central European Time", preferred, Locale.ENGLISH, TextStyle.FULL}, no three-letter ID in CLDR
{"Asia/Shanghai", "China Standard Time", none, Locale.ENGLISH, TextStyle.FULL},
{"Asia/Macau", "China Standard Time", preferred, Locale.ENGLISH, TextStyle.FULL},
- {"Asia/Taipei", "Taipei Standard Time", preferred, Locale.ENGLISH, TextStyle.FULL},
+ {"Asia/Taipei", "Taiwan Standard Time", preferred, Locale.ENGLISH, TextStyle.FULL},
{"America/Chicago", "CST", none, Locale.ENGLISH, TextStyle.SHORT},
{"Asia/Taipei", "CST", preferred, Locale.ENGLISH, TextStyle.SHORT},
{"Australia/South", "ACST", preferred_s, Locale.ENGLISH, TextStyle.SHORT},
diff --git a/test/jdk/sun/util/resources/cldr/Bug8145136.java b/test/jdk/sun/util/resources/cldr/Bug8145136.java
deleted file mode 100644
index 8b5ec11cc4c..00000000000
--- a/test/jdk/sun/util/resources/cldr/Bug8145136.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
- /*
- * @test
- * @bug 8145136 8202537 8221432 8251317 8258794 8265315 8306116
- * @modules jdk.localedata
- * @summary Tests LikelySubtags is correctly reflected in JDK.
- * @run main/othervm -Djava.locale.providers=CLDR Bug8145136
- */
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-import java.util.stream.Collectors;
-
-public class Bug8145136 {
-
- public static void main(String[] args) {
- /* This golden data is names of all *.xml files which contain locale
- * specific data in CLDR 44. With LikelySubtags,
- * these locales should be present in output of getAvailableLocales()
- * method.
- */
- List likelySubtagsLocales = List.of(
- "", "af", "af-NA", "af-ZA", "agq", "agq-CM", "ak", "ak-GH", "am", "am-ET", "ar", "ar-001", "ar-AE",
- "ar-BH", "ar-DJ", "ar-DZ", "ar-EG", "ar-EH", "ar-ER", "ar-IL", "ar-IQ", "ar-JO", "ar-KM", "ar-KW",
- "ar-LB", "ar-LY", "ar-MA", "ar-MR", "ar-OM", "ar-PS", "ar-QA", "ar-SA", "ar-SD", "ar-SO", "ar-SS",
- "ar-SY", "ar-TD", "ar-TN", "ar-YE", "as", "as-IN", "asa", "asa-TZ", "ast", "ast-ES", "az", "az-Cyrl",
- "az-Cyrl-AZ", "az-Latn", "az-Latn-AZ", "bas", "bas-CM", "be", "be-BY", "be-TARASK", "bem", "bem-ZM",
- "bez", "bez-TZ", "bg", "bg-BG", "bm", "bm-ML", "bn", "bn-BD", "bn-IN", "bo", "bo-CN", "bo-IN", "br",
- "br-FR", "brx", "brx-IN", "bs", "bs-Cyrl", "bs-Cyrl-BA", "bs-Latn", "bs-Latn-BA", "ca", "ca-AD",
- "ca-ES", "ca-ES-VALENCIA", "ca-FR", "ca-IT", "ccp", "ccp-BD", "ccp-IN", "ce", "ce-RU", "ceb", "ceb-PH",
- "cgg", "cgg-UG", "chr", "chr-US", "ckb", "ckb-IQ", "ckb-IR", "cs", "cs-CZ", "cy", "cy-GB", "da",
- "da-DK", "da-GL", "dav", "dav-KE", "de", "de-AT", "de-BE", "de-CH", "de-DE", "de-IT", "de-LI", "de-LU",
- "dje", "dje-NE", "doi", "doi-IN", "dsb", "dsb-DE", "dua", "dua-CM", "dyo", "dyo-SN", "dz", "dz-BT",
- "ebu", "ebu-KE", "ee", "ee-GH", "ee-TG", "el", "el-CY", "el-GR", "en", "en-001", "en-150", "en-AE",
- "en-AG", "en-AI", "en-AS", "en-AT", "en-AU", "en-BB", "en-BE", "en-BI", "en-BM", "en-BS", "en-BW",
- "en-BZ", "en-CA", "en-CC", "en-CH", "en-CK", "en-CM", "en-CX", "en-CY", "en-DE", "en-DG", "en-DK",
- "en-DM", "en-ER", "en-FI", "en-FJ", "en-FK", "en-FM", "en-GB", "en-GD", "en-GG", "en-GH", "en-GI",
- "en-GM", "en-GU", "en-GY", "en-HK", "en-IE", "en-IL", "en-IM", "en-IN", "en-IO", "en-JE", "en-JM",
- "en-KE", "en-KI", "en-KN", "en-KY", "en-LC", "en-LR", "en-LS", "en-MG", "en-MH", "en-MO", "en-MP",
- "en-MS", "en-MT", "en-MU", "en-MV", "en-MW", "en-MY", "en-NA", "en-NF", "en-NG", "en-NL", "en-NR",
- "en-NU", "en-NZ", "en-PG", "en-PH", "en-PK", "en-PN", "en-PR", "en-PW", "en-RW", "en-SB", "en-SC",
- "en-SD", "en-SE", "en-SG", "en-SH", "en-SI", "en-SL", "en-SS", "en-SX", "en-SZ", "en-TC", "en-TK",
- "en-TO", "en-TT", "en-TV", "en-TZ", "en-UG", "en-UM", "en-US", "en-US-POSIX", "en-VC", "en-VG", "en-VI",
- "en-VU", "en-WS", "en-ZA", "en-ZM", "en-ZW", "eo", "eo-001", "es", "es-419", "es-AR", "es-BO", "es-BR",
- "es-BZ", "es-CL", "es-CO", "es-CR", "es-CU", "es-DO", "es-EA", "es-EC", "es-ES", "es-GQ", "es-GT",
- "es-HN", "es-IC", "es-MX", "es-NI", "es-PA", "es-PE", "es-PH", "es-PR", "es-PY", "es-SV", "es-US",
- "es-UY", "es-VE", "et", "et-EE", "eu", "eu-ES", "ewo", "ewo-CM", "fa", "fa-AF", "fa-IR", "ff",
- "ff-Adlm", "ff-Adlm-BF", "ff-Adlm-CM", "ff-Adlm-GH", "ff-Adlm-GM", "ff-Adlm-GN", "ff-Adlm-GW",
- "ff-Adlm-LR", "ff-Adlm-MR", "ff-Adlm-NE", "ff-Adlm-NG", "ff-Adlm-SL", "ff-Adlm-SN", "ff-Latn",
- "ff-Latn-BF", "ff-Latn-CM", "ff-Latn-GH", "ff-Latn-GM", "ff-Latn-GN", "ff-Latn-GW", "ff-Latn-LR",
- "ff-Latn-MR", "ff-Latn-NE", "ff-Latn-NG", "ff-Latn-SL", "ff-Latn-SN", "fi", "fi-FI", "fil", "fil-PH",
- "fo", "fo-DK", "fo-FO", "fr", "fr-BE", "fr-BF", "fr-BI", "fr-BJ", "fr-BL", "fr-CA", "fr-CD", "fr-CF",
- "fr-CG", "fr-CH", "fr-CI", "fr-CM", "fr-DJ", "fr-DZ", "fr-FR", "fr-GA", "fr-GF", "fr-GN", "fr-GP",
- "fr-GQ", "fr-HT", "fr-KM", "fr-LU", "fr-MA", "fr-MC", "fr-MF", "fr-MG", "fr-ML", "fr-MQ", "fr-MR",
- "fr-MU", "fr-NC", "fr-NE", "fr-PF", "fr-PM", "fr-RE", "fr-RW", "fr-SC", "fr-SN", "fr-SY", "fr-TD",
- "fr-TG", "fr-TN", "fr-VU", "fr-WF", "fr-YT", "fur", "fur-IT", "fy", "fy-NL", "ga", "ga-GB", "ga-IE",
- "gd", "gd-GB", "gl", "gl-ES", "gsw", "gsw-CH", "gsw-FR", "gsw-LI", "gu", "gu-IN", "guz", "guz-KE",
- "gv", "gv-IM", "ha", "ha-GH", "ha-NE", "ha-NG", "haw", "haw-US", "he", "he-IL", "hi", "hi-IN",
- "hi-Latn", "hi-Latn-IN", "hr", "hr-BA", "hr-HR", "hsb", "hsb-DE", "hu", "hu-HU", "hy", "hy-AM", "ia",
- "ia-001", "id", "id-ID", "ig", "ig-NG", "ii", "ii-CN", "is", "is-IS", "it", "it-CH", "it-IT", "it-SM",
- "it-VA", "ja", "ja-JP", "jgo", "jgo-CM", "jmc", "jmc-TZ", "jv", "jv-ID", "ka", "ka-GE", "kab", "kab-DZ",
- "kam", "kam-KE", "kde", "kde-TZ", "kea", "kea-CV", "kgp", "kgp-BR", "khq", "khq-ML", "ki", "ki-KE",
- "kk", "kk-KZ", "kkj", "kkj-CM", "kl", "kl-GL", "kln", "kln-KE", "km", "km-KH", "kn", "kn-IN", "ko",
- "ko-KP", "ko-KR", "kok", "kok-IN", "ks", "ks-Arab", "ks-Arab-IN", "ks-Deva", "ks-Deva-IN", "ksb",
- "ksb-TZ", "ksf", "ksf-CM", "ksh", "ksh-DE", "ku", "ku-TR", "kw", "kw-GB", "ky", "ky-KG", "lag",
- "lag-TZ", "lb", "lb-LU", "lg", "lg-UG", "lkt", "lkt-US", "ln", "ln-AO", "ln-CD", "ln-CF", "ln-CG", "lo",
- "lo-LA", "lrc", "lrc-IQ", "lrc-IR", "lt", "lt-LT", "lu", "lu-CD", "luo", "luo-KE", "luy", "luy-KE",
- "lv", "lv-LV", "mai", "mai-IN", "mas", "mas-KE", "mas-TZ", "mer", "mer-KE", "mfe", "mfe-MU", "mg",
- "mg-MG", "mgh", "mgh-MZ", "mgo", "mgo-CM", "mi", "mi-NZ", "mk", "mk-MK", "ml", "ml-IN", "mn", "mn-MN",
- "mni", "mni-Beng", "mni-Beng-IN", "mr", "mr-IN", "ms", "ms-BN", "ms-ID", "ms-MY", "ms-SG", "mt",
- "mt-MT", "mua", "mua-CM", "my", "my-MM", "mzn", "mzn-IR", "naq", "naq-NA", "nb", "nb-NO", "nb-SJ", "nd",
- "nd-ZW", "nds", "nds-DE", "nds-NL", "ne", "ne-IN", "ne-NP", "nl", "nl-AW", "nl-BE", "nl-BQ", "nl-CW",
- "nl-NL", "nl-SR", "nl-SX", "nmg", "nmg-CM", "nn", "nn-NO", "nnh", "nnh-CM", "no", "nus", "nus-SS",
- "nyn", "nyn-UG", "om", "om-ET", "om-KE", "or", "or-IN", "os", "os-GE", "os-RU", "pa", "pa-Arab",
- "pa-Arab-PK", "pa-Guru", "pa-Guru-IN", "pcm", "pcm-NG", "pl", "pl-PL", "ps", "ps-AF", "ps-PK", "pt",
- "pt-AO", "pt-BR", "pt-CH", "pt-CV", "pt-GQ", "pt-GW", "pt-LU", "pt-MO", "pt-MZ", "pt-PT", "pt-ST",
- "pt-TL", "qu", "qu-BO", "qu-EC", "qu-PE", "rm", "rm-CH", "rn", "rn-BI", "ro", "ro-MD", "ro-RO", "rof",
- "rof-TZ", "ru", "ru-BY", "ru-KG", "ru-KZ", "ru-MD", "ru-RU", "ru-UA", "rw", "rw-RW", "rwk", "rwk-TZ",
- "sa", "sa-IN", "sah", "sah-RU", "saq", "saq-KE", "sat", "sat-Olck", "sat-Olck-IN", "sbp", "sbp-TZ",
- "sc", "sc-IT", "sd", "sd-Arab", "sd-Arab-PK", "sd-Deva", "sd-Deva-IN", "se", "se-FI", "se-NO", "se-SE",
- "seh", "seh-MZ", "ses", "ses-ML", "sg", "sg-CF", "shi", "shi-Latn", "shi-Latn-MA", "shi-Tfng",
- "shi-Tfng-MA", "si", "si-LK", "sk", "sk-SK", "sl", "sl-SI", "smn", "smn-FI", "sn", "sn-ZW", "so",
- "so-DJ", "so-ET", "so-KE", "so-SO", "sq", "sq-AL", "sq-MK", "sq-XK", "sr", "sr-Cyrl", "sr-Cyrl-BA",
- "sr-Cyrl-ME", "sr-Cyrl-RS", "sr-Cyrl-XK", "sr-Latn", "sr-Latn-BA", "sr-Latn-ME", "sr-Latn-RS",
- "sr-Latn-XK", "su", "su-Latn", "su-Latn-ID", "sv", "sv-AX", "sv-FI", "sv-SE", "sw", "sw-CD", "sw-KE",
- "sw-TZ", "sw-UG", "ta", "ta-IN", "ta-LK", "ta-MY", "ta-SG", "te", "te-IN", "teo", "teo-KE", "teo-UG",
- "tg", "tg-TJ", "th", "th-TH", "ti", "ti-ER", "ti-ET", "tk", "tk-TM", "to", "to-TO", "tr", "tr-CY",
- "tr-TR", "tt", "tt-RU", "twq", "twq-NE", "tzm", "tzm-MA", "ug", "ug-CN", "uk", "uk-UA", "ur", "ur-IN",
- "ur-PK", "uz", "uz-Arab", "uz-Arab-AF", "uz-Cyrl", "uz-Cyrl-UZ", "uz-Latn", "uz-Latn-UZ", "vai",
- "vai-Latn", "vai-Latn-LR", "vai-Vaii", "vai-Vaii-LR", "vi", "vi-VN", "vun", "vun-TZ", "wae", "wae-CH",
- "wo", "wo-SN", "xh", "xh-ZA", "xog", "xog-UG", "yav", "yav-CM", "yi", "yi-UA", "yo", "yo-BJ", "yo-NG",
- "yrl", "yrl-BR", "yrl-CO", "yrl-VE", "yue", "yue-Hans", "yue-Hans-CN", "yue-Hant", "yue-Hant-HK", "zgh",
- "zgh-MA", "zh", "zh-Hans", "zh-Hans-CN", "zh-Hans-HK", "zh-Hans-MO", "zh-Hans-SG", "zh-Hant",
- "zh-Hant-HK", "zh-Hant-MO", "zh-Hant-TW", "zu", "zu-ZA");
-
- List availableLocales = Arrays.asList(Locale.getAvailableLocales());
-
- List localesNotFound = likelySubtagsLocales.stream()
- .map(Locale::forLanguageTag)
- .filter(l -> !availableLocales.contains(l))
- .collect(Collectors.toList());
-
- if (localesNotFound.size() > 0) {
- throw new RuntimeException("Locales " + localesNotFound
- + " not found in Available Locales list");
- }
- }
-}
diff --git a/test/jdk/sun/util/resources/cldr/LikelySubtagLocalesTest.java b/test/jdk/sun/util/resources/cldr/LikelySubtagLocalesTest.java
new file mode 100644
index 00000000000..0e66db5c5da
--- /dev/null
+++ b/test/jdk/sun/util/resources/cldr/LikelySubtagLocalesTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ /*
+ * @test
+ * @bug 8145136 8202537 8221432 8251317 8258794 8265315 8306116 8346948
+ * @modules jdk.localedata
+ * @summary Tests LikelySubtags is correctly reflected in Locale.getAvailableLocales().
+ * @run junit/othervm -Djava.locale.providers=CLDR LikelySubtagLocalesTest
+ */
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.stream.Stream;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class LikelySubtagLocalesTest {
+
+ public static final List AVAILABLE_LOCALES = Arrays.asList(Locale.getAvailableLocales());
+
+ /* Samples of locales that do not exist as .xml CLDR source files, but derived from
+ * LikelySubtags. These locales should be present in output of getAvailableLocales()
+ * method.
+ */
+ private static Stream likelySubtagLocales() {
+ return Stream.of(
+ "ar-Arab-EG",
+ "de-Latn-DE",
+ "en-Latn-US",
+ "es-Latn-ES",
+ "fr-Latn-FR",
+ "he-Hebr-IL",
+ "hi-Deva-IN",
+ "ja-Jpan-JP",
+ "ko-Kore-KR");
+ }
+
+ @ParameterizedTest
+ @MethodSource("likelySubtagLocales")
+ public void testLikelySubtagLocales(String likelySubtag) {
+ var l = Locale.forLanguageTag(likelySubtag);
+ assertTrue(likelySubtag.equals(l.toLanguageTag()), likelySubtag + " != " + l.toLanguageTag());
+ assertTrue(AVAILABLE_LOCALES.contains(l), l.getDisplayName() +
+ " not found in Available Locales list");
+ }
+}
diff --git a/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java b/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java
index 3e2c1208bc9..4fe1a7d25a9 100644
--- a/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java
+++ b/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8181157 8202537 8234347 8236548 8261279 8322647 8174269
+ * @bug 8181157 8202537 8234347 8236548 8261279 8322647 8174269 8346948
* @modules jdk.localedata
* @summary Checks CLDR time zone names are generated correctly at
* either build or runtime
@@ -51,7 +51,7 @@ public class TimeZoneNamesTest {
return new Object[][] {
// tzid, locale, style, expected
- // This list is as of CLDR version 44, and should be examined
+ // This list is as of CLDR version 47, and should be examined
// on the CLDR data upgrade.
// no "metazone" zones
@@ -193,7 +193,7 @@ public class TimeZoneNamesTest {
"AWST",
"Australian Western Daylight Time",
"AWDT",
- "Western Australia Time",
+ "Australian Western Time",
"AWT"},
{"Africa/Harare", Locale.US, "Central Africa Time",
"CAT",
diff --git a/test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java b/test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java
index f30adee80a3..008b4a175a9 100644
--- a/test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java
+++ b/test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java
@@ -53,7 +53,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
* @test
* @bug 8152143 8152704 8155649 8165804 8185841 8176841 8190918
* 8179071 8202537 8221432 8222098 8251317 8258794 8265315
- * 8296248 8306116 8174269 8347146
+ * 8296248 8306116 8174269 8347146 8346948
* @summary IncludeLocalesPlugin tests
* @author Naoto Sato
* @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g)
@@ -138,15 +138,15 @@ public class IncludeLocalesPluginTest {
List.of(
"(root)", "en", "en_001", "en_150", "en_AG", "en_AI",
"en_AT", "en_AU", "en_BB", "en_BE", "en_BM", "en_BS", "en_BW", "en_BZ",
- "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_DE",
- "en_DG", "en_DK", "en_DM", "en_ER", "en_FI", "en_FJ", "en_FK", "en_FM",
- "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GY", "en_HK", "en_ID",
- "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_JE", "en_JM", "en_KE",
+ "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_CZ", "en_DE",
+ "en_DG", "en_DK", "en_DM", "en_ER", "en_ES", "en_FI", "en_FJ", "en_FK", "en_FM", "en_FR",
+ "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GS", "en_GY", "en_HK", "en_HU", "en_ID",
+ "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_IT", "en_JE", "en_JM", "en_KE",
"en_KI", "en_KN", "en_KY", "en_LC", "en_LR", "en_LS", "en_MG", "en_MO",
"en_MS", "en_MT", "en_MU", "en_MV", "en_MW", "en_MY", "en_NA", "en_NF", "en_NG",
- "en_NL", "en_NR", "en_NU", "en_NZ", "en_PG", "en_PK", "en_PN",
- "en_PW", "en_RW", "en_SB", "en_SC", "en_SD", "en_SE", "en_SG", "en_SH",
- "en_SI", "en_SL", "en_SS", "en_SX", "en_SZ", "en_TC", "en_TK", "en_TO",
+ "en_NL", "en_NO", "en_NR", "en_NU", "en_NZ", "en_PG", "en_PK", "en_PL", "en_PN", "en_PT",
+ "en_PW", "en_RO", "en_RW", "en_SB", "en_SC", "en_SD", "en_SE", "en_SG", "en_SH",
+ "en_SI", "en_SK", "en_SL", "en_SS", "en_SX", "en_SZ", "en_TC", "en_TK", "en_TO",
"en_TT", "en_TV", "en_TZ", "en_UG", "en_US", "en_US_#Latn", "en_US_POSIX", "en_VC", "en_VG", "en_VU", "en_WS",
"en_ZA", "en_ZM", "en_ZW", "es", "es_419", "es_AR", "es_BO", "es_BR", "es_BZ",
"es_CL", "es_CO", "es_CR", "es_CU", "es_DO", "es_EC", "es_GT", "es_HN",
@@ -175,15 +175,15 @@ public class IncludeLocalesPluginTest {
List.of(
"(root)", "en", "en_001", "en_150", "en_AE", "en_AG", "en_AI", "en_AS", "en_AT",
"en_AU", "en_BB", "en_BE", "en_BI", "en_BM", "en_BS", "en_BW", "en_BZ",
- "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_DE",
- "en_DG", "en_DK", "en_DM", "en_ER", "en_FI", "en_FJ", "en_FK", "en_FM",
- "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GU", "en_GY",
- "en_HK", "en_ID", "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_JE", "en_JM",
+ "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_CZ", "en_DE",
+ "en_DG", "en_DK", "en_DM", "en_ER", "en_ES", "en_FI", "en_FJ", "en_FK", "en_FM", "en_FR",
+ "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GS", "en_GU", "en_GY",
+ "en_HK", "en_HU", "en_ID", "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_IT", "en_JE", "en_JM",
"en_KE", "en_KI", "en_KN", "en_KY", "en_LC", "en_LR", "en_LS", "en_MG",
"en_MH", "en_MO", "en_MP", "en_MS", "en_MT", "en_MU", "en_MV", "en_MW", "en_MY",
- "en_NA", "en_NF", "en_NG", "en_NL", "en_NR", "en_NU", "en_NZ", "en_PG",
- "en_PH", "en_PK", "en_PN", "en_PR", "en_PW", "en_RW", "en_SB", "en_SC",
- "en_SD", "en_SE", "en_SG", "en_SH", "en_SI", "en_SL", "en_SS", "en_SX",
+ "en_NA", "en_NF", "en_NG", "en_NL", "en_NO", "en_NR", "en_NU", "en_NZ", "en_PG",
+ "en_PH", "en_PK", "en_PL", "en_PN", "en_PR", "en_PT", "en_PW", "en_RO", "en_RW", "en_SB", "en_SC",
+ "en_SD", "en_SE", "en_SG", "en_SH", "en_SI", "en_SK", "en_SL", "en_SS", "en_SX",
"en_SZ", "en_TC", "en_TK", "en_TO", "en_TT", "en_TV", "en_TZ", "en_UG",
"en_UM", "en_US", "en_US_#Latn", "en_US_POSIX", "en_VC", "en_VG", "en_VI", "en_VU",
"en_WS", "en_ZA", "en_ZM", "en_ZW", "ja", "ja_JP", "ja_JP_#Jpan",
@@ -355,15 +355,15 @@ public class IncludeLocalesPluginTest {
List.of(
"(root)", "en", "en_001", "en_150", "en_AE", "en_AG", "en_AI", "en_AS", "en_AT",
"en_AU", "en_BB", "en_BE", "en_BI", "en_BM", "en_BS", "en_BW", "en_BZ",
- "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_DE",
- "en_DG", "en_DK", "en_DM", "en_ER", "en_FI", "en_FJ", "en_FK", "en_FM",
- "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GU", "en_GY",
- "en_HK", "en_ID", "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_JE", "en_JM",
+ "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_CZ", "en_DE",
+ "en_DG", "en_DK", "en_DM", "en_ER", "en_ES", "en_FI", "en_FJ", "en_FK", "en_FM", "en_FR",
+ "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GS", "en_GU", "en_GY",
+ "en_HK", "en_HU", "en_ID", "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_IT", "en_JE", "en_JM",
"en_KE", "en_KI", "en_KN", "en_KY", "en_LC", "en_LR", "en_LS", "en_MG",
"en_MH", "en_MO", "en_MP", "en_MS", "en_MT", "en_MU", "en_MV", "en_MW", "en_MY",
- "en_NA", "en_NF", "en_NG", "en_NL", "en_NR", "en_NU", "en_NZ", "en_PG",
- "en_PH", "en_PK", "en_PN", "en_PR", "en_PW", "en_RW", "en_SB", "en_SC",
- "en_SD", "en_SE", "en_SG", "en_SH", "en_SI", "en_SL", "en_SS", "en_SX",
+ "en_NA", "en_NF", "en_NG", "en_NL", "en_NO", "en_NR", "en_NU", "en_NZ", "en_PG",
+ "en_PH", "en_PK", "en_PL", "en_PN", "en_PR", "en_PT", "en_PW", "en_RO", "en_RW", "en_SB", "en_SC",
+ "en_SD", "en_SE", "en_SG", "en_SH", "en_SI", "en_SK", "en_SL", "en_SS", "en_SX",
"en_SZ", "en_TC", "en_TK", "en_TO", "en_TT", "en_TV", "en_TZ", "en_UG",
"en_UM", "en_US", "en_US_#Latn", "en_US_POSIX", "en_VC", "en_VG", "en_VI", "en_VU",
"en_WS", "en_ZA", "en_ZM", "en_ZW"),
|---|