有没有人知道ASP.Net如何在没有国家名称的情况下获取当前文化的语言? 我知道这种不变文化没有这个问题,但我不知道如何在不指定明确语言的情况下创建它们。我想显示活动语言,在nl-nl中这是荷兰语(荷兰)。
这是我设置currentCulture的方式:
private void Application_BeginRequest(Object source, EventArgs e)
{
string[] languages = HttpContext.Current.Request.UserLanguages;
string language = languages[0].ToLowerInvariant().Trim();
if (!string.IsNullOrEmpty(language))
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(language);
}
}
就我而言,文化是“nl-nl”。问题是当使用CurrentCulture.EnglishName时网站上显示的是“荷兰语(荷兰)”。 我只想看荷兰人!
谢谢!
答案 0 :(得分:39)
简单:
CultureInfo ci = CultureInfo.GetCultureInfo ("nl-nl");
if( ci.IsNeutralCulture )
{
Console.WriteLine (ci.EnglishName);
Console.WriteLine (ci.NativeName);
}
else
{
Console.WriteLine (ci.Parent.EnglishName);
Console.WriteLine (ci.Parent.NativeName);
}
答案 1 :(得分:6)
CultureInfo对象包含名为Parent的属性 - 如果已设置,则表示CultureInfo具有所需的EnglishName = Dutch
答案 2 :(得分:-1)
您可以使用HTTP_ACCEPT_LANGUAGE对象。