用不同的语言运行我的C#应用​​程序

时间:2012-10-04 08:14:19

标签: c# wpf localization resources resx

我有一个应用程序,我试图运行并以英语以外的语言显示,这是默认语言。我已经分配了所有文本以使用属性文件,并为每种语言翻译了相关的属性文件。

然而,当我运行应用程序时,它全是英语。我已将我的键盘,语言,语言环境全部设置为外语,它应自动选择并自动使用相关的属性文件,但这不会发生。

我知道那里没有太多的信息,但是如果你需要的话,我会提供。我正在从Visual Studio 2010运行该应用程序,所以如果这会影响它就会徘徊。

我的档案:

Strings.resx
Strings.en.resx
Strings.fr.resx

我的用法:

Strings.HelloWorld

3 个答案:

答案 0 :(得分:4)

您必须从操作系统获取当前文化并将其用作:

基本上你需要做的是在你的应用程序中设置你当前的文化:

Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CurrentCulture;

相关:How to set Silverlight CurrentUICulture/CurrentCulture correctly?

答案 1 :(得分:2)

如果是WPF应用,我建议WPFLocalizeExtension。我一直都在使用它,效果很好。

答案 2 :(得分:0)

以为我会在这里添加: http://www.west-wind.com/weblog/posts/2009/Jun/14/WPF-Bindings-and-CurrentCulture-Formatting

基本上,您将这行代码添加到App.xaml:

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

然后它会覆盖应用程序中每个控件的默认语言属性。

谢谢, 亚历克斯。