私は非常に奇妙な問題を抱えています。プロジェクトにローカリゼーションを実装していますが、Windows が実行している現在のロケールを取得しようとすると、国情報が見つかりません。サンプルコードは次のとおりです。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CurrentUICulture;
Console.WriteLine("The current UI culture is {0} [{1}]",
culture.NativeName, culture.Name);
}
}
最も一般的な言語 (En-US、FR-fr) で実行すると、正しく返されます。ただし、たとえば、ベルギーのフランス語を選択すると、言語設定オプションからフランスのフランス語を削除しても、FR-be ではなく FR-fr が取得されます。
自分のソフトウェアがどの国にあるとしても、どうすれば常に正しく選択した国を取得できるのでしょうか。
ps: CurrentCulture を使用することは、私が探している答えではありません。日付/時刻/数値の形式ではなく、UI で使用している表示言語に一致させたいからです (それらはまったく異なる可能性があります)。