【发布时间】:2013-10-15 10:02:16
【问题描述】:
我在 CultureInfo 课程中发现了一件有趣的事情。我正在用 ASP.NET 编写一个应用程序,我使用 Thread.CurrentThread.CurrentCulture 来获取当前选择的语言,并且:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(alias);
有两个地方我可以在一个地方设置当前线程的文化,就像这样:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru");Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
然后我突然发现文化(1)与文化(2)不同,但都是俄罗斯人。
是我做错了什么还是微软喝醉了?
编辑
@蒂姆·施梅尔特
var culture = CultureInfo.GetCultureInfo("ru");
var culture2 = CultureInfo.GetCultureInfo("ru-RU");
if (Equals(culture, culture2))
{
Console.Write(true);
return;
}
Console.Write(false);
问题是——“为什么微软将“ru”和“ru-RU”分开?
【问题讨论】:
-
Ru & ru-Ru 不是俄罗斯文化名称吗???
-
“不同”在什么方面? @Maris:不要喊!此外,无需冒犯 Sriram。
-
@SriramSakthivel:我知道。但Microsoft 喝醉了 只是一个非个人机构的单行字。称某些人喝醉是一种犯罪行为。
-
同意蒂姆和@Maris 对不起,如果我冒犯了你。我们是来帮忙的。刚刚忘记。让我们看看问题:)
-
请记住,不止一个地区或国家使用多种语言。例如,在许多国家(如哈萨克斯坦或拉脱维亚)使用俄语(少数族裔),因此未来 .NET 可能包括
ru-KZ或ru-LV以及ru-RU之外的文化。像西班牙语这样的语言已经有很多CultureInfo(大约 20 个),包括es-ES(西班牙语(西班牙))、es-AR(西班牙语(阿根廷))、es-US(西班牙语(美国))。
标签: c# .net cultureinfo