2012-12-18 8 views
5

Ich versuche mehrere Sprachen in einer Lösung mit mehreren Projekten und Threads zu unterstützen.Einstellen der aktuellen Kultur für die gesamte Lösung

Ich habe 2 Ressourcen-Dateien, eine mit englischen Strings und eine mit französischen Strings.

ich die aktuelle Kultur habe die Einrichtung wie folgt:

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA"); 

Gibt es eine Möglichkeit, die aktuelle Kultur global zu setzen, für die gesamte Lösung, oder muss ich dies für jeden Thread tun, die ihn braucht Zugriffsstrings?

Antwort

10

In .NET Framework 4.5 ruft die CultureInfo.DefaultThreadCurrentCulture Property die Standardkultur für Threads in der aktuellen Anwendungsdomäne ab oder legt diese fest.

In der .NET Framework 4 und früheren Versionen ist die Kultur aller Threads standardmäßig auf die Windows-Systemkultur festgelegt. Für Anwendungen , deren aktuelle Kultur sich von der Standardsystemkultur unterscheidet, ist dieses Verhalten oft unerwünscht. In .NET Framework 4.5 ermöglicht dieDefaultThreadCurrentCulture-Eigenschaft einer Anwendung, die Standardkultur aller Threads in einer Anwendungsdomäne zu definieren.

0

Sobald Sie die CurrentThread setzen, wird sie für die Dauer der Anwendung festgelegt. Stellen Sie sicher, dass Sie es tun, bevor Sie eine UI initialisieren. Schauen Sie in diese MSDN blog für weitere Informationen.

4

Sie können eine Globalisierung Abschnitt innerhalb System.web in der web.config hinzufügen

<globalization culture="en-US" uiCulture="en-US" />