有人知道翻译时区描述的来源吗?

时间:2009-03-05 22:43:11

标签: windows internationalization timezone

有人知道Windows中时区名称的已编译翻译列表吗?我需要全部75个左右的德语,法语和西班牙语。或者,我如何使用.Net编译这样的列表?

示例格式:(格林尼治标准时间+01:00)贝尔格莱德,布拉迪斯拉发,布达佩斯,卢布尔雅那,布拉格

3 个答案:

答案 0 :(得分:6)

https://iana.org/time-zonesftp://ftp.iana.org/tz(或网络上的许多其他来源)获取时区数据库。这些将以UN ISO代码和英国国家/城市名称

键入

然后从http://www.unicode.org/cldr/

翻译它们

e.g。

答案 1 :(得分:3)

available for download的Microsoft术语集合non-commercial use

答案 2 :(得分:0)

注册表中有一个所有时区的列表:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones

可以使用以下方式加载:

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只是一个存储信息以便于访问的类。

您正在寻找的描述位于显示值。