2009-10-01 150 views
15

有沒有人知道ASP.Net如何獲得當前文化的語言沒有它的國名? 我知道這種不變的文化沒有這個問題,但我不知道如何在沒有指定顯式語言的情況下創建它們。我想顯示活躍的語言,並且在NL-NL這是荷蘭語(荷蘭)。如何從沒有國家的語言獲取語言CultureInfo

我這是怎麼設置的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時,網站上顯示的內容是「荷蘭語(荷蘭)」。 我只想看荷蘭!

謝謝!

回答

36

簡單:

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); 
} 
+0

謝謝!不知道這是明顯的! MSDN沒有告訴我什麼... – Peter 2009-10-01 13:05:26

+0

真棒..... :) – 2015-05-05 13:55:22

+0

不幸的是,對於英國(GB),它的結果'未知的語言(GB)':( – 2017-07-19 08:54:32

6

CultureInfo對象包含屬性調用父 - 如果它的設置,那麼再有就是CultureInfo的與期望的中文名=荷蘭

0

可以使用HTTP_ACCEPT_LANGUAGE對象。

相關問題