C#中的多语言应用程序

本文关键字:语言 应用程序 | 更新日期: 2023-09-27 18:28:33

我目前正在用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位电脑。使用他的电脑,这个程序(我用Visual Studio 2012编译的)似乎只能找到默认的资源文件(TextLabels.resx)。所以我在这里不知所措,想知道1。32位系统或Windows的法语安装是我问题的原因还是其他原因?我如何使我的应用程序在他的机器上运行?

C#中的多语言应用程序

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

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