如何在运行时更改当前的资源管理器以切换语言?

时间:2011-03-01 18:45:05

标签: c# .net visual-studio localization

我有一个C#应用程序,我试图通过使用资源管理器引用不同的resx文件来支持多种语言。

我在Designer.cs中有这段代码:

        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    public static global::System.Resources.ResourceManager ResourceManager {
        get {
            if (object.ReferenceEquals(resourceMan, null)) {
                global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("project.resources.en-US", typeof(resources.en-US).Assembly);
                resourceMan = temp;
            }
            return resourceMan;
        }
    }

如何在不修改Designer.cs代码的情况下在运行时将System.Resources.ResourceManager("project.resources.en-US", typeof(resources.en-US).Assembly)切换到System.Resources.ResourceManager("project.resources.it-IT", typeof(resources.it-IT).Assembly)?有可能吗?

This question is related

编辑:为了澄清,我意识到我不应该更改我的设计器代码,但我正在努力使其能够访问不同的resx文件。如果我的问题措辞不好,我很抱歉,但我想我并不完全明白我在说什么。我目前正在研究卫星装配。

1 个答案:

答案 0 :(得分:3)

只需更改当前的文化信息即可完成工作。 System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");