C# C语言中的多语言应用#

C# C语言中的多语言应用#,c#,winforms,C#,Winforms,我目前正在用C#构建一个支持法语、英语和西班牙语的应用程序。我正在使用资源文件(.resx)存储我在网上找到的文本。现在,我拥有的资源文件如下:TextLabels.resx、TextLabels.en.resx、TextLabels.fr.resx和TextLabels.es.resx 我使用以下方法将资源链接到我的表单: manager = new ResourceManager("MyProject.TextLabels", typeof(MyForm).Assembly); 要在选择新

我目前正在用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位Windows7电脑,安装的是英语(我不确定这是否重要),这种方法工作正常,我所有的标签都用所需的语言更改。当我尝试在我同事的计算机上使用我的项目时,问题就出现了。我同事的计算机是法语的Windows7 32位计算机。使用他的计算机,程序(我用VisualStudio2012编译)似乎只能找到默认的资源文件(TextLabels.resx)。所以我在这里不知所措,想知道1。Windows的32位系统或法语安装是我的问题的原因还是其他原因?我如何使我的应用程序在他的机器上工作?

如果您正在生成本地化的二进制文件,请确保它们与应用程序一起部署


它们将位于
/bin/Debug
/bin/Release
文件夹中。

我认为我们需要查看更多的代码,以找出阻止应用程序加载默认文件以外的资源文件的原因。您是否也在另一台安装了法语Windows 7的64位计算机或32位英语计算机上进行过测试?此外,如果您使用的是本地化的二进制文件,请确保您的同事的计算机上有这些文件。为了进行测试,请确保您和您的同事在Windows中具有相同的区域设置(例如英语和美国)。这在过去给我带来了很多问题,有一套通用的设置有助于诊断问题。@BrianV在我的计算机上哪里可以找到这些本地化的二进制文件?@SolarBear我想在不同的地区测试该程序,因为我希望人们不仅在北美使用该应用程序。