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));