C#:设置 CultureInfo 时出现国际化问题 Class

C# :Problem With Internationalization when setting the CultureInfo Class

我正在尝试实现一个国际化库。我创建了它并且运行良好,但我遇到了一个问题。 public static void SetCurrentLanguage(字符串语言) {

        if (m_resourceManager == null)
        {   
            CultureInfo cultInfo = new CultureInfo(language);
            Thread.CurrentThread.CurrentCulture = cultInfo;
            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

            m_resourceManager = ResourceManager.CreateFileBasedResourceManager("Globalization", m_path, null);
        }

上面的函数用两个不同的函数调用了两次。当从第一个函数调用它时,我们设置 CurrentLanguage(de-DE) 并且它运行良好。 但是当我们第二次调用该函数时,它给出了 (en-EN) 的结果,因为第二次未设置文化,因为 m_resourceManager 不为空。

我想要的是,如果我第一次设置 cultureInfo class 和第二次调用的 de-DE 语言,也应该设置它。

我卡在这一点上了。谁能帮我解决这个问题?

提前致谢

你能把这个方法重新安排成这样吗?

public static void SetCurrentLanguage(string language) {

    CultureInfo cultInfo = new CultureInfo(language);
    Thread.CurrentThread.CurrentCulture = cultInfo;
    Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

    if (m_resourceManager == null)
    {   
        m_resourceManager = ResourceManager.CreateFileBasedResourceManager("Globalization", m_path, null);
    }
}

因此,您只需在资源管理器为 null 时创建它,但每次调用该函数时仍会更改 cultureinfo。