Trouble with CultureInfo for Norway

.net, c#

Solution

A neutral culture is a culture that is associated with a language but not with a country/region. See: http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx

You are trying to create a language culture with ch, but there is no swiss language. You use de-CH for german (language) - switzerland (country). Similarly, you use it-CH or fr-CH for italian and french (languages) in switzerland.

And, as MPelletier points out, there is no canadian language, but in the canadian region, they speak fr(ench) or en(glish).

Problem

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?

Original source