我需要将应用程序的当前文化更改为th-TH我尝试这样做以创建以下类型的对象,并且我打算将其分配给当前线程的CurrentCulture属性
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo("en-US");
但我使用的.NET Compact版本没有System.Threading.Thread.CurrentThread
属性中的CurrentCulture属性。
我们有办法做到这一点吗?
编辑: 我可以更改移动设备的区域设置,然后当我运行应用程序时,我能够从正确的资源文件中获取正确的文本。
但使用安装项目安装应用程序时,我无法获得正确的资源
这就是我所做的。
我还验证了在我的应用程序的.exe存在的同一目录中创建了所需的文件夹,例如fr-CA,th-TH等
答案 0 :(得分:1)
根据MSDN,这是不可能的。
您无法以编程方式在设备上设置当前文化。它们由设备制造商设置或由设备用户手动配置,例如运行Windows CE或Windows CE .NET的Pocket PC上的区域设置,当前的文化设置基于每个设备。
但是,我确实找到一篇关于Code Project的文章,提出了解决这个问题的方法 基本上,作者创建了自己的ResourceManager和基本表单,这意味着该解决方案可能不太容易应用于现有的紧凑框架应用程序。
根据您的应用程序的复杂性,您可能需要考虑自己实现某种ResourceManager,或者使用Code Project文章中的那个。