I am currently dealing with globalization in my app. Part of it is working with CultureInfo and RegionInfo. There is one issue that really puzzles me. Maybe someone can shade some light on this:

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.

The point here is, that Norway and Swizerland are both multilingual countries, but in contrast to Norway I am not able to create a neutral Swiss CultureInfo.

Is that because of historical reasons or is this simply a bug in Microsofts implementation?

EDIT: It seems that this is some kind of 'political' issue, not a technical. So I would like to rephrase my question: Any good ideas how to deal with this issue technically? Simply ignore "CultureInfo("no")"? Interestingly enough "CultureInfo("no")" delivers a parent "CultureInfo.TwoLetterISOLanguageName" of 'nb'.

So, for me it is quite confusing. Any good ideas?

Edit
Report