Кто-нибудь знает источник переведенных описаний часовых поясов?
-
03-07-2019 - |
Вопрос
Кто-нибудь знает составленный список переводов названий часовых поясов в Windows?Мне нужны все 75 или около того на немецком, французском и испанском языках.Альтернативно, как мне использовать .Net для составления такого списка?
Пример формата:(GMT+01:00) Белград, Братислава, Будапешт, Любляна, Прага
Решение
Список всех часовых поясов в реестре находится по адресу:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Часовые пояса
Который может быть загружен с помощью:
ArrayList zones = new ArrayList();
using( RegistryKey key = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" ) )
{
string[] zoneNames = key.GetSubKeyNames();
foreach( string zoneName in zoneNames )
{
using( RegistryKey subKey = key.OpenSubKey( zoneName ) )
{
TimeZoneInformation tzi = new TimeZoneInformation();
tzi.Name = zoneName;
tzi.DisplayName = (string)subKey.GetValue( "Display" );
tzi.StandardName = (string)subKey.GetValue( "Std" );
tzi.DaylightName = (string)subKey.GetValue( "Dlt" );
object value = subKey.GetValue( "Index" );
if( value != null )
{
tzi.Index = (int)value;
}
tzi.InitTzi( (byte[])subKey.GetValue( "Tzi" ) );
zones.Add( tzi );
}
}
}
Где TimeZoneInformation - это просто класс, который хранит информацию для легкого доступа.
Описание, которое вы ищете, находится в отображаемом значении.
Другие советы
Получите базу данных часовых поясов из https://iana.org/time-zones или ftp://ftp.iana.org/tz (или многие другие источники в Интернете).В них будут введены коды ООН ISO и названия стран/городов на английском языке.
А затем переведите их из http://www.unicode.org/cldr/
например
Терминологическая коллекция Microsoft доступна для загрузки для некоммерческое использование .