現在、アプリでグローバリゼーションを扱っています。その一部は、CultureInfo および RegionInfo と連携しています。本当に困惑する問題が 1 つあります。たぶん、誰かがこれに光を当てることができます:
var ci1 = new CultureInfo("de"); // Correct, gives a neutral CultureInfo
var ci2 = new CultureInfo("de-CH"); // Correct, gives a specific CultureInfo
var ci3 = new CultureInfo("fr-CH"); // Correct, gives a specific CultureInfo
var ci4 = new CultureInfo("no"); // Correct, gives a neutral CultureInfo
var ci5 = new CultureInfo("nb-NO"); // Correct, gives a specific CultureInfo
var ci6 = new CultureInfo("nn-NO"); // Correct, gives a specific CultureInfo
var ci7 = new CultureInfo("ch"); // Failure! Can't create a neutral Swiss culture.
ここでのポイントは、ノルウェーとスイスはどちらも多言語の国ですが、ノルウェーとは対照的に、私は中立的な Swiss CultureInfo を作成できないということです。
これは歴史的な理由によるものですか、それとも単に Microsoft の実装のバグですか?
編集: これは、技術的な問題ではなく、ある種の「政治的な」問題のようです。ですから、私の質問を言い換えたいと思います: この問題を技術的に処理する良いアイデアはありますか? 「 CultureInfo("no") 」を単に無視しますか? 興味深いことに、「CultureInfo("no") 」は「nb」の親「CultureInfo.TwoLetterISOLanguageName 」を提供します。
だから、私にとってはかなり混乱しています。良いアイデアはありますか?