我目前正在处理我的应用程序中的全球化.其中一部分是使用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 ".
所以,对我来说这很令人困惑.有什么好主意吗?
中性文化是一种与语言相关但与国家/地区无关的文化.请参阅: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).
"no"与 具有不同的行为"ch",因为"no"是一种语言,挪威语,而“ch”不指代任何语言。
虽然挪威是一个多语言国家,但挪威的官方语言是:挪威语、萨米语和克文语。萨米语和克文语被认定为少数民族语言。或 都不"nb"是"nn"挪威官方认可的语言,因为 bokm\xc3\xa5l 或 nynorsk 都不是语言。
这种混乱源于两个事实。与大多数语言不同,挪威语有两种官方书面规范:Bokm\xc3\xa5l 和 Nynorsk。在 ISO 639 中,挪威语被视为这两个规范的宏语言,并且 ISO 639 为这两个书面规范分配了单独的语言代码,即:“nb”和“nn”。挪威语“no”的语言代码与挪威“NO”的国家代码一致。
\n| 归档时间: |
|
| 查看次数: |
10401 次 |
| 最近记录: |