我想要一个选项,在C#中更改Visual Studio的语言。我有Form1.resx
其中包含默认语言项目。我也有Form1.en.resx
和Form1.en-US.resx
,其中包含英文翻译。 (当然,我只需要其中一个,但是在测试时我创建了两个)。多语言应用程序:CultureInfo手动更改错误
当我运行该应用程序时,出现默认语言标题。但是,下面的代码应该覆盖这样的:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US", false);
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
当我检查CurrentCulture
或CurrentUICulture
值,他们确实改为“EN-US”,这个代码后,但使用相同的RESX文件,所以字幕不会改变。因此,对于样本label1.Text
保持不变,但它在Form1.en-US.resx
中具有不同的值。
我应该如何解决这个问题?
更多信息:我使用的.NET Framework 4.5,和Visual Studio 2012 项目文件(很简单的项目)是avaible这里如果你需要他们:https://dl.dropboxusercontent.com/u/36411041/Multi.zip
纠正我,如果我错了,但本地化在crapwinforms发生只有当你创建一个窗体的实例。如果表格已经显示 - 这是失败的。您必须在更改语言或使用自定义本地化管理器后重新创建表单。我发现最好的方法是使用反射来即时翻译所有内容。 – Sinatr
好的,但我该如何解决这个问题,改变语言,然后重新启动应用程序。这将如何工作? – weiszam