C# 更改显示语言&;Thread.CurrentCulture是对的,但Thread.CurrentUICulture是错的

C# 更改显示语言&;Thread.CurrentCulture是对的,但Thread.CurrentUICulture是错的,c#,wpf,windows,multithreading,localization,C#,Wpf,Windows,Multithreading,Localization,我正在翻译我的WPF申请到智利工作。我已经让本地化工作开始了。应用程序必须使用机器的区域性设置,因此不需要添加代码来动态更改语言 我安装了Windows西班牙语包(我运行的是Windows 8.1)。我把西班牙语作为第二语言。当我换成西班牙语时,我的程序仍然是英语 我在代码中放置了一个断点,并检查了Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture属性CurrentCulture是我想要的“es CL

我正在翻译我的WPF申请到智利工作。我已经让本地化工作开始了。应用程序必须使用机器的区域性设置,因此不需要添加代码来动态更改语言

我安装了Windows西班牙语包(我运行的是Windows 8.1)。我把西班牙语作为第二语言。当我换成西班牙语时,我的程序仍然是英语

我在代码中放置了一个断点,并检查了
Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentUICulture
属性
CurrentCulture
是我想要的“es CL”,但
CurrentUICulture
是“es es”。这是错误的!由于没有“es”的语言资源文件,我的程序默认返回到英语


如何使系统以es CL作为这两个属性的区域性运行?我想当我改学西班牙语的时候,我的设置有点不对劲

为了解决这个问题,我们最终只为es语言重命名了字符串资源。因此,资源文件是MyResource.es.dll,而不是MyResource.es-CL.dll。这样,CurrentCulture和CurrentUICulture属性的差异就无关紧要了