我目前正在处理应用中的全球化问题。其中一部分是使用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 ”
所以,对我来说这很令人困惑。有什么好主意吗?
答案 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。