【问题标题】:Multilingual time zone selector多语言时区选择器
【发布时间】:2011-05-14 23:32:54
【问题描述】:

我需要制作一个 WPF 控件,它允许用户选择一个时区。这个控件还需要支持多种语言。即,时区名称应以应用程序中选择的语言显示。

.NET 3.5 支持通过调用TimeZoneInfo.GetSystemTimeZones 方法从注册表中获取时区列表的简单方法。这种方法的问题在于它依赖于当前系统。这意味着不同的用户可能在他们的机器上显示不同的时区列表。如果用户拒绝更新他的系统,其中一些列表可能已经过时了。

解决此问题的一种方法可能是通过在最新计算机上调用 TimeZoneInfo.GetSystemTimeZones 来获取最新列表。然后将其序列化为一个文件,该文件将与应用程序一起部署。此外,由于此列表以当前系统语言返回,因此我需要为不同 Windows 本地化的每种语言生成列表。或者只是手动进行翻译。使用这种方法,只要用户拥有最新版本的应用程序,他就会拥有一个最新列表。

另一种方法可能是使用其他时区信息源,例如tz database。在这种情况下,我需要使用一些转换器将 tz 数据库时区 API 对象转换为标准 TimeZoneInfo 对象。

在此类或类似情况下,您使用或推荐什么方法?

【问题讨论】:

    标签: .net wpf timezone


    【解决方案1】:

    我知道这可能是个问题。

    选项 1:

    为了保持一致,我将从最新的机器(例如您的开发机器)创建一个列表,并将其作为资源文件包含在您的应用中。

    然后我会将本地化作为正常本地化过程的一部分来处理,即时区将与 UI 的其余部分一起转换。

    选项 2:

    假设一个客户端-服务器应用程序,您可以限制在客户端使用时区(即始终发送-接收 UTC 时间并在客户端转换它们),这样您就可以使用操作系统时区并且没有关心这些区域实际上是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2019-02-15
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多