> So just to be clear, CLDR *could*
support a Europe/Dublin that had
> an independent metazone with <standard>Irish Standard Time</
> standard><daylight>Greenwich Mean Time</daylight>,
it's just that
> synchronizing such a change with the tzdb change is intractable, right?
>
> (that version number field is looking more and more important...)
>
If we need a single TZ DB zone has changing
names time to time, we create
what we call "meta zone",
and define a set of short/long - standard/daylight
/generic name for the meta zone.
For example,
----
Zone America/North_Dakota/Center -6:45:12
- LMT 1883 Nov 18 12:14:48
-7:00
US M%sT
1992 Oct 25 2:00
-6:00
US C%sT
----
CLDR define meta zones
<metazone
type="America_Central">
<long>
<generic>Central
Time</generic>
<standard>Central
Standard Time</standard>
<daylight>Central
Daylight Time</daylight>
</long>
<short>
<generic>CT</generic>
<standard>CST</standard>
<daylight>CDT</daylight>
</short>
</metazone>
<metazone
type="America_Mountain">
<long>
<generic>Mountain
Time</generic>
<standard>Mountain
Standard Time</standard>
<daylight>Mountain
Daylight Time</daylight>
</long>
<short>
<generic>MT</generic>
<standard>MST</standard>
<daylight>MDT</daylight>
</short>
</metazone>
These meta zone display names are translated
for various locales.
Then, we have historic zone -> meta
zone mapping data as below:
<timezone
type="America/North_Dakota/Center">
<usesMetazone
to="1992-10-25 08:00" mzone="America_Mountain"/>
<usesMetazone
from="1992-10-25 08:00" mzone="America_Central"/>
</timezone>
So, when CLDR consumer
code such as ICU want to show time zone display name
at a given time, it looks
up which meta zone is used at the time, then check standard
or daylight, then retrieve
appropriate display name data type.
With above example, if
the input time is 2018-01-01T00:00:00Z, then meta zone
"America_Central"
is resolved with the meta zone mapping data above. ICU uses
data generated from tz
database and detect the date fall into standard time. Then
zone name for standard
in meta zone "America_Central" is used.
At this moment, "Irish
Standard Time" is set to zone directly, but if we need more
historic names, we can
create a new meta zone, define a set of name there, and add
it to zone-to-meta-zone
mapping data.
-Yoshito