我需要制作一个WPF控件,它将允许用户选择一个时区。该控件还需要支持多种语言。即,时区名称应该以应用程序中选择的语言显示。多语言时区选择器
.NET 3.5支持通过调用TimeZoneInfo.GetSystemTimeZones方法从注册表中获取时区列表的简单方法。这种方法的问题在于它取决于当前的系统。这意味着不同的用户可能在他们的机器上显示不同的时区列表。如果用户拒绝更新他的系统,某些列表可能会过时。
解决此问题的一种方法可能是通过在最新的计算机上调用TimeZoneInfo.GetSystemTimeZones来获取最新列表。然后将其序列化为一个文件,该文件将随应用程序一起部署。此外,由于此列表以当前系统语言返回,因此我需要为不同Windows本地化中的每种语言生成列表。或者只是手动翻译。采用这种方法,用户将拥有最新的列表,只要他拥有最新版本的应用程序即可。
另一种方法可能是使用另一个时区信息源,如tz database。在这种情况下,我需要使用一些转换器将tz数据库时区API对象转换为标准的TimeZoneInfo对象。
您在这种或类似情况下使用或推荐使用什么方法?