2011-03-28 46 views
7

在某個班級中是否有一個屬性可以告訴我,如果當前的文化實際上是默認文化。c#:在dotnet類中是否有一個屬性,指出「當前」文化是否是實際的默認文化?

與本地化如何與winforms一起工作類似。如果語言是默認語言,它會在表單中聲明。

可以說如果我在美國 - 如何通過代碼告訴我en.US是否是實際的默認值?

我需要實現一些本地化的一些XML文件,其中.NET不支持,因此我要實現我自己...

,做它是如何工作的WinForms即

nameofxml.default.xml (this is the default local) 
nameofXml.de-de.xml (this is german)

是否存在屬性?

+0

默認爲「不變的文化」或默認爲「系統區域設置」? – 2011-03-28 16:32:04

回答

3

System.Globalization.CultureInfo.CurrentCulture表示你係統的控制面板區域設置,而System.Globalization.CultureInfo.CurrentUICulture對應於系統的輸入界面語言設置(你不能改變,除非你有語言用戶界面安裝)。

因此,你可以使用下面的代碼片段,以確定「默認」文化:

using System.Globalization; 
// N.B. execute the following line *before* you programmatically change the CurrentCulture 
// (if you ever do this, of course) 

// Gets the CultureInfo that represents the culture used by the current thread 
CultureInfo culture = CultureInfo.CurrentCulture; 
string code = culture.IetfLanguageTag; // e.g. "en-US", "de-DE", etc. 

然後你可以使用code找到您的.xml文件。

+0

謝謝,無知。多數民衆贊成我與之一起 – Martin 2011-03-28 22:33:38

2

通過使用NeutralResourcesLanguageAttribute,您可以在彙編級聲明嵌入式資源屬於特定文化。

IIRC,通過這種方式,資源管理器可以優化資源加載過程,如果所需文化是嵌入在程序集中的。

由於您正在爲自己的本地化實現自己的實現,所以我不知道這可能會有所幫助,但是您可以使用該屬性來指示直接嵌入到程序集中的XML本地化信息的文化是特定文化並且如果您發現裝配中聲明的文化與您正在尋找的所需文化之間不匹配,則默認搜索附屬裝配或其他自定義後端商店。

相關問題