次のコードを検討してください。
new CultureInfo("sv").TextInfo.CultureName
これは「sv-SE」を返します。しかし、なぜ?「sv-FI」やその他の文化ではないのはなぜですか? 地域はどのように決まるのですか?
CultureNameのドキュメントには、
CultureInfo.Name の値がニュートラル カルチャの場合、対応する CultureName の値は、同じ言語を使用する任意の特定のカルチャです。たとえば、Name プロパティは英語のニュートラル カルチャに対して "en" を返しますが、対応する CultureName プロパティは英語 (米国) カルチャに対して "en-US" を返す場合があります。
地域がどのように選ばれたかは明らかではありません。"en" の場合、選択された地域は "US" であり、カルチャは en-US になります。
これは、言語の「プライマリ」リージョンを自動的に取得する気の利いた方法のように思えますが、それは本当に何をするのでしょうか? それとも、sv-SE と en-US が選択されるのは完全にランダムですか? 「かもしれない」という言葉は、信頼するには曖昧すぎるように思えます。