2010-02-17 36 views
12

無論使用哪種操作系統,我都需要.NET 3.5支持的文化列表。 這似乎是一個相當掙扎,雖然我不知道爲什麼!.NET 3.5中的CultureInfo類支持哪些文化?

編輯: Arghh,我不知道它是依賴於操作系統,這將解釋缺乏文檔。關於Mac/Linux操作系統支持什麼的任何想法?

謝謝:)

+0

出於好奇,爲什麼你需要的名單? – OregonGhost 2010-02-17 17:02:03

+0

只是爲了制定什麼樣的語言,我們將不得不爲創建自定義文化以及我們可以使用'開箱即用'。例如,我最近被問到是否支持威爾士語。 – 2010-02-17 17:12:53

+0

不要忘記,CultureInfo的供應基本上是一個弦數(名稱三種語言,ISO代碼,貨幣名稱)和日期和數字格式。後者在大多數情況下不需要專門的文化,因爲它們對於大多數相關文化來說是相同的(即大多數歐洲國傢俱有相同的數字格式)。所以問題是,你需要一個威爾士文化,還是隻需要威爾士語翻譯?順便說一下,雖然這不會解決您的一般問題,但Cy-GB可用於CultureInfo作爲特定文化。有人要求威爾士支持可能會有... – OregonGhost 2010-02-18 09:12:30

回答

8

不幸的是,它取決於操作系統。檢查here以獲取每個操作系統的默認語言支持。

注意,CultureInfo documentation警告:

Windows版本或服務包可以改變現有的文化。

在ASP.NET中,瀏覽器對操作系統來說很重要。它可以通過Accept-Language(14.4節)請求標題告訴你用戶喜歡哪種語言。如果您將應用的globalization配置設置爲enableClientBasedCulture =「true」,ASP.NET將嘗試自動將UICulture和Culture設置爲瀏覽器提供的值。另外,您也可以通過檢查Request.UserLanguages屬性手動設置文化:

不幸的是,有沒有辦法來從操作系統或瀏覽器可能語言的詳盡列表。最接近的是IANA Language Subtag Registry。這是RFC 4646中描述的語言註冊表 - 定義.NET CultureInfo標記的文檔。

請記住,Request.UserLanguages中的語言標記不保證有效。你會想檢查它們。對於language tags,HTTP 1.1使用較早的建議,並且沒有什麼能阻止某人在語言標題中發送亂碼。

+0

如果它是一個ASP.NET應用程序,我認爲你的意思是它是基於託管該網站的服務器的操作系統? – 2010-02-17 17:54:36

+0

在ASP.NET中,瀏覽器提供了首選語言。我會用相關資源更新我的答案。 – 2010-02-17 20:41:30

1

它可以創建自定義的文化,但是默認的類支持你上運行的操作系統提供的文化。有一個文化的參考supported by default on MSDN

+0

如果它是一個ASP.NET應用程序,我認爲你的意思是它是基於託管該網站的服務器的操作系統? – 2010-02-17 17:38:08

+0

@Fiona'fraid所以 - 客戶端可能會連接服務器不理解的文化(可能是「en-scouse」) – 2010-02-17 20:32:48

0

我剛剛與文化探索者2.0進行了檢查,區別僅限Windows文化和已安裝的文化,以及.NET Framework文化(至少在我的系統上,只有包含純語言文化)。所有這些都由CultureInfo類(和RegionInfo,NumberFormatInfo等)支持。

我也跑它單(在Linux上),這是大致相同的,與.NET Framework文化和失蹤僅Windows - 文化,但具體的和中性的文化在那裏。儘管如此,RegionInfo.CurrencyNativeName似乎並未在我的Mono版本中實現,因此選擇任何文化時都會崩潰。

不幸的是,文化資源管理器2.0是當前不可用在任何地方(是在gotdotnet.com),我下載了它前一段時間。這對於這樣的事情是一個方便的工具。你可能有幸在某些檔案中找到一個。

+0

http://www.microsoft.com/middleeast/arabicdev/ DevTools/VSdotNET/samples/CultureExplorer.aspx – erikkallen 2010-02-17 20:53:54

+0

@erikkallen:這是該工具的第一個版本。它沒有所有類別,只支持.NET Invariant國家和特定的語言文化。我不知道Culture Explorer 2.0的許可證 - 也許我可以稍後將其上傳到CodePlex。 – OregonGhost 2010-02-18 09:05:53

+2

我在[Waybach Machine]上發現了Culture Explorer 2.0的全部榮耀(http://web.archive.org/web/20070218132812/http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid= b778ff2c-9142-4769-839a-094f51a6f9f4)! – 2013-01-31 11:58:50

4

National Language Support (NLS) API Reference列表區域信息,並允許您選擇操作系統。

微軟的Locale Builder是爲Windows Vista和更高創建自定義語言環境的工具。

獲得支持的文化,包括自定義的列表,對於OS。

C#示例,

System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);