Skip to content

Commit f419ed9

Browse files
CLDR-18880 Add metazone variant overrides to match rearguard (#4991)
1 parent 59dfe3a commit f419ed9

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

common/dtd/ldmlSupplemental.dtd

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic
994994
<!--@MATCH:time/yyyy-MM-dd HH:mm-->
995995
<!ATTLIST usesMetazone to CDATA #IMPLIED >
996996
<!--@MATCH:time/yyyy-MM-dd HH:mm-->
997+
<!ATTLIST usesMetazone stdOffset CDATA #IMPLIED >
998+
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
999+
<!--@VALUE-->
1000+
<!ATTLIST usesMetazone dstOffset CDATA #IMPLIED >
1001+
<!--@MATCH:regex/[+-][0-9]{2}(:[0-9]{2})?-->
1002+
<!--@VALUE-->
9971003
<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
9981004
<!--@MATCH:metazone-->
9991005
<!--@VALUE-->

common/supplemental/metaZones.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ For terms of use, see http://www.unicode.org/copyright.html
187187
<timezone type="Africa/Windhoek">
188188
<usesMetazone to="1990-03-20 22:00" mzone="Africa_Southern"/>
189189
<usesMetazone to="1994-03-20 22:00" from="1990-03-20 22:00" mzone="Africa_Central"/>
190-
<usesMetazone to="2017-10-23 22:00" from="1994-03-20 22:00" mzone="Africa_Western"/>
190+
<usesMetazone to="2017-10-23 22:00" from="1994-03-20 22:00" mzone="Africa_Western" stdOffset="+01" dstOffset="+02"/>
191191
<usesMetazone from="2017-10-23 22:00" mzone="Africa_Central"/>
192192
</timezone>
193193
<timezone type="America/Adak">
@@ -1219,8 +1219,8 @@ For terms of use, see http://www.unicode.org/copyright.html
12191219
<usesMetazone mzone="Europe_Central"/>
12201220
</timezone>
12211221
<timezone type="Europe/Dublin">
1222-
<usesMetazone mzone="Irish" to="1971-10-31 02:00"/>
1223-
<usesMetazone mzone="GMT" from="1971-10-31 02:00"/>
1222+
<usesMetazone mzone="Irish" to="1971-10-31 02:00" stdOffset="+00" dstOffset="+01"/>
1223+
<usesMetazone mzone="GMT" from="1971-10-31 02:00" stdOffset="+00" dstOffset="+01"/>
12241224
</timezone>
12251225
<timezone type="Europe/Gibraltar">
12261226
<usesMetazone mzone="Europe_Central"/>

docs/ldml/tr35-dates.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,6 +1511,15 @@ A metazone's display fields become a secondary fallback if an appropriate data f
15111511

15121512
Note that the dates and times are specified in UTC, not local time.
15131513

1514+
_usesMetazone_ can also optionally specify which offset is considered standard time, and which offset is considered daylight time. This is required for some zone such as `Europe/Dublin` where TZDB returns inconsistent results depending on platform/build mode etc.:
1515+
1516+
```xml
1517+
<timezone type="Europe/Dublin">
1518+
<usesMetazone mzone="Irish" to="1971-10-31 02:00" stdOffset="+00" dstOffset="+01"/>
1519+
<usesMetazone mzone="GMT" from="1971-10-31 02:00" stdOffset="+00" dstOffset="+01"/>
1520+
</timezone>
1521+
```
1522+
15141523
The metazones can then have translations in different locale files, such as the following.
15151524

15161525
```xml
@@ -1580,6 +1589,8 @@ The `commonlyUsed` element is now deprecated. The CLDR committee has found it ne
15801589
<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
15811590
<!ATTLIST usesMetazone from CDATA #IMPLIED >
15821591
<!ATTLIST usesMetazone to CDATA #IMPLIED >
1592+
<!ATTLIST usesMetazone stdOffset CDATA #IMPLIED >
1593+
<!ATTLIST usesMetazone dstOffset CDATA #IMPLIED >
15831594

15841595
<!ELEMENT mapTimezones ( mapZone* ) >
15851596
<!ATTLIST mapTimezones type NMTOKEN #IMPLIED >

tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/PathHeader.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,16 @@
479479
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@to="%A"]/_mzone ; Supplemental ; Metazone ; $1 ; -∞..$2 ; HIDE
480480
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone/_mzone ; Supplemental ; Metazone ; $1 ; -∞..∞ ; HIDE
481481

482+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@from="%A"][@to="%A"]/_stdOffset ; Supplemental ; Metazone ; $1-std-offset ; $2-$3 ; HIDE
483+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@from="%A"]/_stdOffset ; Supplemental ; Metazone ; $1-std-offset ; $2..∞ ; HIDE
484+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@to="%A"]/_stdOffset ; Supplemental ; Metazone ; $1-std-offset ; -∞..$2 ; HIDE
485+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone/_stdOffset ; Supplemental ; Metazone ; $1-std-offset ; -∞..∞ ; HIDE
486+
487+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@from="%A"][@to="%A"]/_dstOffset ; Supplemental ; Metazone ; $1-dst-offset ; $2-$3 ; HIDE
488+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@from="%A"]/_dstOffset ; Supplemental ; Metazone ; $1-dst-offset ; $2..∞ ; HIDE
489+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone[@to="%A"]/_dstOffset ; Supplemental ; Metazone ; $1-dst-offset ; -∞..$2 ; HIDE
490+
//supplementalData/metaZones/metazoneInfo/timezone[@type="%A"]/usesMetazone/_dstOffset ; Supplemental ; Metazone ; $1-dst-offset ; -∞..∞ ; HIDE
491+
482492
//supplementalData/metaZones/mapTimezones[@type="%A"]/mapZone[@other="%A"][@territory="%A"]/_type ; Supplemental ; Metazone ; $1 ; $2-$3 ; HIDE
483493
//supplementalData/metaZones/metazoneIds/metazoneId[@shortId="%A"]/_%E ; Supplemental ; Metazone ; $1 ; $2 ; HIDE
484494
//supplementalData/primaryZones/primaryZone[@iso3166="%A"] ; Supplemental ; Metazone ; Primary ; $1 ; HIDE

0 commit comments

Comments
 (0)