CultureInfo为挪威带来麻烦

And*_*eas 8 .net c#

我目前正在处理我的应用程序中的全球化.其中一部分是使用CultureInfo和RegionInfo.有一个问题让我很困惑.也许有人可以对此有所了解:

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.
Run Code Online (Sandbox Code Playgroud)

这里的观点是,挪威和瑞士都是多语种国家,但与挪威相比,我无法创造一个中立的瑞士文化信息.

这是因为历史原因还是仅仅是微软实施中的一个错误?

编辑:这似乎是某种"政治"问题,而不是技术问题.所以我想重新提一下我的问题:任何好的想法如何在技术上处理这个问题?简单地忽略" CultureInfo("no") "?有趣的是," CultureInfo("no") "提供了'nb' 的父" CultureInfo.TwoLetterISOLanguageName ".

所以,对我来说这很令人困惑.有什么好主意吗?

mca*_*lex 7

中性文化是一种与语言相关但与国家/地区无关的文化.请参阅:http: //msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v = vs.71).aspx

你正试图用ch创建一种语言文化,但没有瑞士语言.您使用de-CH代表德语(语言) - 瑞士(国家).同样,您可以在瑞士使用-CH或fr-CH作为意大利语和法语(语言).

而且,正如MPelletier指出的那样,没有加拿大语言,但在加拿大地区,他们说的是fr(ench)或en(glish).

  • 大声笑,和"多数*说*方言类似于Nynorsk比Bokmål更接近".哦,那些疯狂的挪威人. (3认同)

Tae*_*myr 6

"no"与 具有不同的行为"ch",因为"no"是一种语言,挪威语,而“ch”不指代任何语言。

\n\n

虽然挪威是一个多语言国家,但挪威的官方语言是:挪威语、萨米语和克文语。萨米语和克文语被认定为少数民族语言。或 都不"nb""nn"挪威官方认可的语言,因为 bokm\xc3\xa5l 或 nynorsk 都不是语言。

\n\n

这种混乱源于两个事实。与大多数语言不同,挪威语有两种官方书面规范:Bokm\xc3\xa5l 和 Nynorsk。在 ISO 639 中,挪威语被视为这两个规范的宏语言,并且 ISO 639 为这两个书面规范分配了单独的语言代码,即:“nb”和“nn”。挪威语“no”的语言代码与挪威“NO”的国家代码一致。

\n