我有一个应用程序,我试图运行并以英语以外的语言显示,这是默认语言。我已经分配了所有文本以使用属性文件,并为每种语言翻译了相关的属性文件。
然而,当我运行应用程序时,它全是英语。我已将我的键盘,语言,语言环境全部设置为外语,它应自动选择并自动使用相关的属性文件,但这不会发生。
我知道那里没有太多的信息,但是如果你需要的话,我会提供。我正在从Visual Studio 2010运行该应用程序,所以如果这会影响它就会徘徊。
我的档案:
Strings.resx
Strings.en.resx
Strings.fr.resx
我的用法:
Strings.HelloWorld
答案 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)));
然后它会覆盖应用程序中每个控件的默认语言属性。
谢谢, 亚历克斯。