CultureInfo为挪威带来麻烦

时间:2012-10-31 14:13:42

标签: c# .net

我目前正在处理应用中的全球化问题。其中一部分是使用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.

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

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

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

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

3 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:3)

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

虽然挪威是一个多语言国家,但挪威的官方语言是正确的;挪威人,萨米人和克文人。萨米和克文被认为是少数民族语言。 "nb""nn"都不是指在挪威有正式认可的语言,因为bokmål或nynorsk都不是语言。

混乱源于两个事实。与大多数语言不同,挪威语有两种正式的书面规范,Bokmål和Nynorsk。在ISO 639中,挪威语被认为是这两个规范的宏语言,ISO 639为两个书面规范分配了单独的语言代码,即。 “nb”和“nn”。挪威语“no”的语言代码与挪威“NO”的国家代码一致。

答案 2 :(得分:0)

根据ISO语言标准 nno nn Norwegian Nynorsk; nobnbBokmål,挪威语; 也不是挪威人

来自维基百科“https://en.wikipedia.org/wiki/Norwegian_language” Nynorsk和Bokmål提供了如何编写挪威语的标准,但不提供如何使用该语言的标准。挪威语没有官方认可的标准,大多数挪威人在所有情况下都会讲自己的方言。因此,与许多其他国家不同,任何挪威方言的使用,无论是否与书面规范相符,都被认为是正确的挪威语。

不说挪威语 nn和nb是书面形式

在网站上如果你看到没有 - 你可以认为它是nb-no。