什么是CultureInfo.CurrentCulture

时间:2014-01-23 17:50:15

标签: c# cultureinfo currentculture

如果我做了

Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.ToString());

获取"en-US"

我应该在控制面板设置(区域和语言?)中更改哪些内容以获取其他内容,例如"en-CA"

4 个答案:

答案 0 :(得分:7)

  

我应该在控制面板设置中更改哪些内容(区域和   语言 ? )获得其他东西,例如“en-CA”。

您可以将其更改为当前线程,如:

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");

然后:

Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.ToString());

将返回:

en-CA

答案 1 :(得分:5)

根据我的经验,文化是由操作系统的版本设定的。控制面板中没有真正的设置。我们曾经有多个VM运行多个版本的Windows来测试我们基于文化的功能

答案 2 :(得分:0)

您可以在“区域和语言”控制面板中更改语言。从标有格式的下拉组合框中选择英语(加拿大)。请注意,这将适用于用户,并且是用户区域设置。

作为旁注,从Windows 8开始,用户区域设置默认为Windows显示语言,Windows应用商店应用程序使用语言列表来对齐用于生成日期和时间字符串以及数字格式的语言等,用于检索资源的语言。 .Net尝试参与此操作,因此对于Windows应用商店应用,更改语言列表是获得此效果的首选方式。

答案 3 :(得分:-1)

您可以像在此

中一样在App.config中定义一个键
<configuration>
    <appSettings>
        <add key="DefaultCulture" value="en-CA" />
    </appSettings>
</configuration>

并在您的应用程序中读取该值并设置文化

 CultureInfo culture = new CultureInfo(ConfigurationManager.AppSettings["DefaultCulture"]);
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;