【问题标题】:Change the current culture of the entire windows forms application .NET Compact Edition更改整个 windows 窗体应用程序 .NET 精简版的当前文化
【发布时间】:2015-04-15 08:47:23
【问题描述】:

我需要将应用程序的当前文化更改为 th-TH 我已尝试这样做以创建以下类型的对象,我打算将其分配给当前线程的 CurrentCulture 属性

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

但我使用的 .NET Compact 版本在 System.Threading.Thread.CurrentThread 属性中没有可用的 CurrentCulture 属性。

有没有办法可以做到这一点?

编辑: 我可以更改移动设备的区域设置,然后当我运行应用程序时,我能够从正确的资源文件中获取正确的文本。

但在使用安装项目安装应用程序时,我无法获得正确的资源

这就是我所做的。

  1. 我创建了安装项目,并将本地化资源、主要输出以及内容文件包含到安装项目文件系统目录中的应用程序文件夹中。
  2. 然后我在调试模式下构建它并生成了所需的 Cab 文件。
  3. 我将文件传输到我的设备,然后运行 ​​cab 文件,它显示安装成功。
  4. 当我运行应用程序时,它仅以英语显示字符串,而与设备上的区域设置无关(但是当我在调试中运行相同的应用程序时,来自语言资源的正确字符串会显示在应用程序中通过直接在visual studio中选择设备并在其上部署应用程序的模式)

我还验证了所需文件夹(例如 fr-CA、th-TH 等)是在我的应用程序的 .exe 所在的同一目录中创建的

【问题讨论】:

    标签: .net compact-framework setup-project cultureinfo


    【解决方案1】:

    根据MSDN,这是不可能的。

    您无法在设备上以编程方式设置当前区域性。它们由设备制造商设置或由设备用户手动配置,例如在运行 Windows CE 或 Windows CE .NET 的 Pocket PC 上使用区域设置,当前区域性设置基于每个设备。

    但是,我确实在 Code Project 上找到了一篇文章,该文章提出了解决此问题的方法。
    基本上,作者创建了自己的 ResourceManager 和基本表单,这意味着该解决方案可能不太容易应用于现有的紧凑框架应用程序。

    根据应用程序的复杂性,您可能需要考虑自己实现某种 ResourceManager,或者使用代码项目文章中的资源管理器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2010-12-21
      相关资源
      最近更新 更多