diff --git a/common/bcp47/currency.xml b/common/bcp47/currency.xml
index f357a38dd2f..7b291fba785 100644
--- a/common/bcp47/currency.xml
+++ b/common/bcp47/currency.xml
@@ -291,6 +291,7 @@ For terms of use, see http://www.unicode.org/copyright.html
+
diff --git a/common/main/en.xml b/common/main/en.xml
index 045a0d804fd..0fe698b2547 100644
--- a/common/main/en.xml
+++ b/common/main/en.xml
@@ -6486,6 +6486,11 @@ annotations.
East Caribbean dollar
East Caribbean dollars
+
+ Caribbean guilder
+ Caribbean guilder
+ Caribbean guilders
+
Special Drawing Rights
special drawing rights
diff --git a/common/main/es.xml b/common/main/es.xml
index 6d439aaef49..0b9f7f04b12 100644
--- a/common/main/es.xml
+++ b/common/main/es.xml
@@ -7494,6 +7494,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
XCD
↑↑↑
+
+ florín caribeño
+ florín caribeño
+ florines caribeños
+ ↑↑↑
+ ↑↑↑
+
derechos especiales de giro
diff --git a/common/main/fr.xml b/common/main/fr.xml
index 22864f7c0f7..41a7c4dde23 100644
--- a/common/main/fr.xml
+++ b/common/main/fr.xml
@@ -9820,6 +9820,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
XCD
↑↑↑
+
+ florin caribéen
+ florin caribéen
+ florins caribéens
+ ↑↑↑
+ ↑↑↑
+
droit de tirage spécial
droit de tirage spécial
diff --git a/common/main/nl.xml b/common/main/nl.xml
index 6037638056b..091ddb63e7e 100644
--- a/common/main/nl.xml
+++ b/common/main/nl.xml
@@ -15252,6 +15252,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
↑↑↑
↑↑↑
+
+ Caribische gulden
+ ↑↑↑
+ ↑↑↑
+ ↑↑↑
+ Cg
+
Special Drawing Rights
↑↑↑
diff --git a/common/main/root.xml b/common/main/root.xml
index d1897cf7317..98c824be340 100644
--- a/common/main/root.xml
+++ b/common/main/root.xml
@@ -4516,6 +4516,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
EC$
$
+
+ Cg.
+
F CFA
diff --git a/common/supplemental/supplementalData.xml b/common/supplemental/supplementalData.xml
index d4e8aae544c..55633dd4f78 100644
--- a/common/supplemental/supplementalData.xml
+++ b/common/supplemental/supplementalData.xml
@@ -363,7 +363,8 @@ The printed version of ISO-4217:2001
-
+
+
@@ -995,7 +996,8 @@ The printed version of ISO-4217:2001
-
+
+
diff --git a/common/validity/currency.xml b/common/validity/currency.xml
index b8bda01b0c6..dcfaf8e67c8 100644
--- a/common/validity/currency.xml
+++ b/common/validity/currency.xml
@@ -36,7 +36,7 @@
UAH UGX USD UYU UZS
VES VND VUV
WST
- XAF XCD XOF XPF
+ XAF XCD XCG XOF XPF
YER
ZAR ZMW
diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
index 9d93b0268d5..f3c27281717 100644
--- a/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
@@ -20,6 +20,7 @@
import java.util.EnumMap;
import java.util.EnumSet;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -1484,4 +1485,15 @@ public boolean isLstregDeprecated(String type, String code) {
Map lStregData = getLStreg().get(type).get(code);
return lStregData.get("Deprecated") != null;
}
+
+ /** get prospective currencies. Only needed for a few tests */
+ public Set getOncomingCurrencies() {
+ Set result = new HashSet<>();
+ for (Entry> entry : getCodeData(CodeType.currency).entrySet()) {
+ if (entry.getValue().get(3).equals("P")) {
+ result.add(entry.getKey());
+ }
+ }
+ return result;
+ }
}
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt
index ec33c791ba3..334095d788b 100644
--- a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt
@@ -6,6 +6,7 @@
# = I for intermediate (introduced and obsoleted after ISO 4217:2001(E/F))
# = O for obsolete in 2001 (Table A.3 of ISO 4217:2001(E/F))
# = X for non-ISO in 2001 (Table A.3 of ISO 4217:2001(E/F), with *)
+# = P for codes that will be in current, customary use, but the 'from' date is in the future.
currency | XAG | Silver | ZZ | (no country) | C
currency | XAU | Gold | ZZ | (no country) | C
currency | XBA | Bond Markets Units European Composite Unit (EURCO) | ZZ | (no country) | C
@@ -402,3 +403,5 @@ currency | STD | Dobra | ST | SÃO TOME AND PRINCIPE | O
currency | VEF | Bolivar Fuerte | VE | VENEZUELA | O
currency | UYW | Uruguayan Nominal Wage Index Unit | UY | URUGUAY | F
currency | VED | Bolívar Soberano | VE | VENEZUALA | F
+currency | XCG | Caribbean Guilder | CW | CURAÇAO | P
+currency | XCG | Caribbean Guilder | SX | SINT MAARTEN | P
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml
index a0e0f3b6a16..7a205596610 100644
--- a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml
@@ -1,5 +1,5 @@
-
+
AFGHANISTAN
@@ -434,8 +434,8 @@
CURAÇAO
- Netherlands Antillean Guilder
- ANG
+ Caribbean Guilder
+ XCG
532
2
@@ -1486,13 +1486,6 @@
690
2
-
- SIERRA LEONE
- Leone
- SLL
- 694
- 2
-
SIERRA LEONE
Leone
@@ -1509,8 +1502,8 @@
SINT MAARTEN (DUTCH PART)
- Netherlands Antillean Guilder
- ANG
+ Caribbean Guilder
+ XCG
532
2
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml
index 0fc9d3bb908..0f9a5b411be 100644
--- a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml
@@ -1,5 +1,5 @@
-
+
AFGHANISTAN
@@ -799,6 +799,13 @@
978
2006-10
+
+ SIERRA LEONE
+ Leone
+ SLL
+ 694
+ 2023-12
+
SLOVAKIA
Slovak Koruna
diff --git a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
index fe382efe1d1..633bb79e8de 100644
--- a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
@@ -51,15 +51,35 @@
import org.unicode.cldr.tool.LikelySubtags;
import org.unicode.cldr.tool.PluralMinimalPairs;
import org.unicode.cldr.tool.PluralRulesFactory;
-import org.unicode.cldr.util.*;
+import org.unicode.cldr.util.Builder;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.CLDRFile;
import org.unicode.cldr.util.CLDRFile.WinningChoice;
+import org.unicode.cldr.util.CLDRLocale;
+import org.unicode.cldr.util.CLDRURLS;
+import org.unicode.cldr.util.CldrUtility;
+import org.unicode.cldr.util.DateConstants;
+import org.unicode.cldr.util.GrammarInfo;
import org.unicode.cldr.util.GrammarInfo.GrammaticalFeature;
import org.unicode.cldr.util.GrammarInfo.GrammaticalScope;
import org.unicode.cldr.util.GrammarInfo.GrammaticalTarget;
+import org.unicode.cldr.util.Iso3166Data;
+import org.unicode.cldr.util.Iso639Data;
import org.unicode.cldr.util.Iso639Data.Scope;
+import org.unicode.cldr.util.IsoCurrencyParser;
+import org.unicode.cldr.util.LanguageTagCanonicalizer;
+import org.unicode.cldr.util.LanguageTagParser;
+import org.unicode.cldr.util.Level;
+import org.unicode.cldr.util.LocaleNames;
+import org.unicode.cldr.util.Organization;
+import org.unicode.cldr.util.Pair;
+import org.unicode.cldr.util.PluralRanges;
+import org.unicode.cldr.util.PreferredAndAllowedHour;
import org.unicode.cldr.util.PreferredAndAllowedHour.HourStyle;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.StandardCodes.CodeType;
import org.unicode.cldr.util.StandardCodes.LstrType;
+import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.BasicLanguageData;
import org.unicode.cldr.util.SupplementalDataInfo.BasicLanguageData.Type;
import org.unicode.cldr.util.SupplementalDataInfo.ContainmentStyle;
@@ -73,6 +93,7 @@
import org.unicode.cldr.util.SupplementalDataInfo.PluralType;
import org.unicode.cldr.util.SupplementalDataInfo.PopulationData;
import org.unicode.cldr.util.SupplementalDataInfo.SampleList;
+import org.unicode.cldr.util.Validity;
import org.unicode.cldr.util.Validity.Status;
public class TestSupplementalInfo extends TestFmwkPlus {
@@ -1453,6 +1474,7 @@ public void TestCompleteness() {
public void TestSupplementalCurrency() {
IsoCurrencyParser isoCodes = IsoCurrencyParser.getInstance();
Set currencyCodes = STANDARD_CODES.getGoodAvailableCodes("currency");
+ Set oncomingCurrencyCodes = STANDARD_CODES.getOncomingCurrencies();
Relation> nonModernCurrencyCodes =
Relation.of(
new TreeMap>>(), TreeSet.class);
@@ -1529,6 +1551,7 @@ public void TestSupplementalCurrency() {
logln("Modern Codes: " + modernCurrencyCodes.size() + "\t" + modernCurrencyCodes);
Set missing = new TreeSet<>(isoCurrenciesToCountries.keySet());
missing.removeAll(modernCurrencyCodes.keySet());
+ missing.removeAll(oncomingCurrencyCodes);
Set recentMissing = new TreeSet<>(missing);
recentMissing.retainAll(recentModernCurrencyCodes.keySet());
if (recentMissing.size() != 0) {
@@ -1544,7 +1567,7 @@ public void TestSupplementalCurrency() {
if (missing.size() != 0) {
errln(
"Codes in ISO 4217 but not current tender in CLDR "
- + "(may need to update "
+ + "(may need to update as per"
+ CLDRURLS.UPDATING_CURRENCY_CODES
+ " ): "
+ currencyDateRelationToString(nonModernCurrencyCodes, missing));