2012-10-04 67 views
1

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

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

我知道那儿没有太多可靠的信息,但是如果您需要更多信息,我会提供。我从Visual Studio 2010运行应用程序,所以如果这可能会影响它的话,那么它就会徘徊。

我的文件:

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

我的用法:

Strings.HelloWorld 
+1

它是什么类型的应用程序? WPF/ASP.NET/WinForms/Mobile等? – Marcus

+0

Marcus它是一个WPF应用程序 – pengibot

+0

然后,您应该阅读此:http://msdn.microsoft.com/en-us/library/ms788718.aspx – Marcus

回答

4

你必须从OS获取当前的文化,并以此为这样:

基本上你需要做的是设置你的当前应用程序的文化的地方是什么:

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

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

+0

我认为应用程序应该自动执行此操作取决于我正在运行的语言。我知道这在测试过程中是如此。没想到我必须自己设置代码。 – pengibot

+1

实际上,它应该被自动设置,但CurrentCulture从OS的区域设置派生出它的默认值,而CurrentUICulture从OS的语言设置派生出它的默认值。尝试像这样明确设置: Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CurrentUICulture; – Marcus

+0

我现在的UICulture是en-US吗?这可能就是为什么一切仍然是英文的。感谢您的高举。我在哪里可以在Windows中更改此模拟运行在不同语言下的应用程序。 – pengibot