5

我正在尝试在具有多个项目和线程的解决方案中支持多种语言。

我有 2 个资源文件,一个是英文字符串,一个是法文字符串。

我将当前文化设置如下:

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

有没有办法为整个解决方案全局设置当前文化,还是我必须为每个需要访问字符串的线程执行此操作?

4

3 回答 3

10

在 .NET Framework 4.5 中,CultureInfo.DefaultThreadCurrentCulture 属性获取或设置当前应用程序域中线程的默认区域性。

在 .NET Framework 4 及以前的版本中,默认情况下,所有线程的区域性都设置为 Windows 系统区域性。对于当前文化与默认系统文化不同的应用程序,这种行为通常是不可取的。在 .NET Framework 4.5 中,DefaultThreadCurrentCulture 属性使应用程序能够定义应用程序域中所有线程的默认区域性。

于 2012-12-18T15:54:23.343 回答
5

您可以在 web.config 中的 system.Web 中添加全球化部分

<globalization culture="en-US" uiCulture="en-US" />
于 2012-12-18T15:54:51.297 回答
0

一旦你设置了CurrentThread它,它就会在应用程序的持续时间内设置。只要确保在初始化任何UI. 查看此MSDN 博客以获取更多信息。

于 2012-12-18T15:54:25.317 回答