我需要製作一個WPF控件,它將允許用戶選擇一個時區。該控件還需要支持多種語言。即,時區名稱應該以應用程序中選擇的語言顯示。多語言時區選擇器
.NET 3.5支持通過調用TimeZoneInfo.GetSystemTimeZones方法從註冊表中獲取時區列表的簡單方法。這種方法的問題在於它取決於當前的系統。這意味着不同的用戶可能在他們的機器上顯示不同的時區列表。如果用戶拒絕更新他的系統,某些列表可能會過時。
解決此問題的一種方法可能是通過在最新的計算機上調用TimeZoneInfo.GetSystemTimeZones來獲取最新列表。然後將其序列化爲一個文件,該文件將隨應用程序一起部署。此外,由於此列表以當前系統語言返回,因此我需要爲不同Windows本地化中的每種語言生成列表。或者只是手動翻譯。採用這種方法,用戶將擁有最新的列表,只要他擁有最新版本的應用程序即可。
另一種方法可能是使用另一個時區信息源,如tz database。在這種情況下,我需要使用一些轉換器將tz數據庫時區API對象轉換爲標準的TimeZoneInfo對象。
您在這種或類似情況下使用或推薦使用什麼方法?