代码之家  ›  专栏  ›  技术社区  ›  Peter

如何从文化信息中获取没有国家的语言

  •  16
  • Peter  · 技术社区  · 15 年前

    在ASP.NET中,有人知道如何在没有国家/地区名称的情况下获取当前文化的语言吗? 我知道这种不变的文化不存在这个问题,但是我不知道如何在不指定显式语言的情况下创建它们。我想显示活动语言,在nl nl中,这是荷兰语(荷兰)。

    这就是我如何设置当前区域性:

    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时,网站上显示的是“荷兰语(荷兰)”。 我只想见达奇!

    谢谢!

    3 回复  |  直到 15 年前
        1
  •  38
  •   Frederik Gheysels    15 年前

    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);
    }
    
        2
  •  6
  •   Krzysztof Król    15 年前

        3
  •  -1
  •   Brandon Michael Hunter    15 年前