我目前正在用 C# 构建一个支持法语、英语和西班牙语的应用程序。我正在使用资源文件(.resx)按照我在网上找到的这种方法存储我的文本。现在,我拥有的资源文件如下:TextLabels.resx、TextLabels.en.resx、TextLabels.fr.resx 和 TextLabels.es.resx。
我使用以下方法将资源链接到我的表单:
manager = new ResourceManager("MyProject.TextLabels", typeof(MyForm).Assembly);
为了在选择新语言时更改标签,我创建了一个刷新方法,使用以下方法更改容器的文本属性:
Text = manager.GetString("MY_STRING_VARIABLE", culture);
另外,我确保使用以下方法更改用户单击所需的文化时使用的文化:
culture = CultureInfo.CreateSpecificCulture("es"); //changes the culture to spanish
所以这是我的问题:我使用以英语安装的 64 位 Windows 7 计算机(我不确定它是否重要)并且这种方法工作正常,我所有的标签都以所需的语言进行了更改。当我尝试在同事的计算机上使用我的项目时会出现问题,该计算机是法语的 Windows 7 32 位计算机。使用他的计算机,看起来程序(我用 Visual Studio 2012 编译的)只能找到默认资源文件(TextLabels.resx)。所以我在这里不知所措,想知道 1. 32 位系统或 Windows 的法语安装是我问题的原因还是其他原因,我怎样才能让我的应用程序在他的机器上运行?