ローカライズされた言語で実行したい winform の C# アプリケーションがあります。多くのユーザーがまだ XP を使用しているため、ターゲットの .Net は 3.0 です。アプリケーションは、システム トレイ アプリケーションです。
ResX Resource Manager を使用して、すべての文字列を Resources.resx に入れ、必要なさまざまな言語の Resources.XX.resx ファイルを生成しました。
コードを使用して CurrentUICulture を別の言語 (フィンランド語など) に設定した場合:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI");
期待どおりに機能し、すべてのフォームがフィンランド語で表示されます。
ただし、言語がフィンランド語に設定されたマシンにアプリケーションをインストールすると、すべての winform で英語の文字列が表示されます (英語もニュートラル文字列です)。
フォームの localizable プロパティが true に設定されていることを確認しました。
CurrentUICulture をハードコーディングした場合は機能するのに、そうでない場合は機能しないのはなぜですか?
PC の UI 言語を確認し、アプリケーションの CurrentUICulture を更新する別の方法はありますか?