什么是CultureInfo.CurrentCulture

如果我做了

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

得到"en-US"

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

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

我应该在控制面板设置(区域和语言?)中更改什么来获取其他内容,例如“en-CA”。

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

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

然后:

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

会回来:

 en-CA 

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

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

您可以像这样在App.config中定义一个键

      

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

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