C#中的多语言应用

时间:2013-08-20 19:14:06

标签: c# winforms

我目前正在使用C#构建一个支持法语,英语和西班牙语的应用程序。我正在使用资源文件(.resx)来存储我在网上this method后面的文字。现在,我拥有的资源文件如下:TextLabels.resx,TextLabels.en.resx,TextLabels.fr.resx和TextLabels.es.resx。

我使用以下方法将资源链接到我的表单:

manager = new ResourceManager("MyProject.TextLabels", typeof(MyForm).Assembly);

在我选择新语言时更改标签,我创建了一个刷新方法,使用以下方法更改容器的Text属性:

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的法语安装是我的问题的原因还是别的什么?我怎样才能让我的应用程序在他的机器上运行?

1 个答案:

答案 0 :(得分:0)

如果要生成本地化二进制文件,请确保它们随应用程序一起部署。

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