> 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