I am doing an application in which the time zones (TZ) will have to be translated from local language (English) to French, Spanish...and so on. In order to have a list of TZ, I accessed the registry to gather all specific time zone informations in this REG key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones).
Since this information is recorded in the language of my Windows version (English TZ info for English version...), I have gather the full list of TZ in English from the registry and have translated them in all other required language. Now I am trying to find a way create a relationship between all these translated TZ.
(GMT-05:00) Eastern Time (US & Canada) in english is translated to (GMT-05:00) Est (USA et Canada) in French.
In my application, I don't want to refer to a string like these ones but I would like to refer to some invariable values from wich I could link all time zones.
By browsing the registry, I have found, I think, an other key from which I could build this relationship but I am not sure. The key is MapID. These keys are composed with two numbers separeted with a coma like (38,39). They seems to be unique (exept for (GMT+/-12:00)) but I don't understand the meaning of these numbers and are they the same on all Windows version (language and build: 95 to XP).
So the questions are:
Could somebody explain what is the relationship between these numbers and the TZ?
Is this approach is the good one to uniquely identify all time zones on all version of Windows?
Could the information recorded in the time zone registry key (bias, daylight saving time...) could be change in the future for some political or geographical reason or are these time zone informations are fixed and "eternal".