WPFコントロールを作成する必要があります。これにより、ユーザーはタイムゾーンを選択できます。このコントロールは、複数の言語をサポートする必要もあります。つまり、アプリケーションで選択した言語でタイムゾーン名を表示する必要があります。多言語タイムゾーンセレクタ
.NET 3.5は、TimeZoneInfo.GetSystemTimeZonesメソッドを呼び出すことによって、レジストリからタイムゾーンリストを取得する簡単な方法をサポートしています。このアプローチの問題点は、現在のシステムに依存していることです。つまり、異なるユーザーがそれぞれのマシンに異なるタイムゾーンリストを表示する可能性があります。ユーザーがシステムの更新を拒否した場合、そのリストの一部が期限切れになることがあります。
これを解決する方法の1つは、最新のマシンでTimeZoneInfo.GetSystemTimeZonesを呼び出して最新のリストを取得することです。それをアプリケーションにデプロイするファイルにシリアル化します。また、このリストは現在のシステム言語で返されるので、異なるWindowsローカライゼーションのすべての言語のリストを生成する必要があります。または、手動で翻訳を行うだけです。この方法では、最新バージョンのアプリケーションがあれば、ユーザーは最新のリストを取得します。
もう1つの方法は、tz databaseのような別のタイムゾーン情報ソースを使用することです。この場合、tzデータベースのタイムゾーンAPIオブジェクトを標準のTimeZoneInfoオブジェクトに変換するために、いくつかのコンバータを使用する必要があります。
このような場合や似たような場合に、どのようなアプローチをお勧めしますか?