设置CurrentUICulture,使其使用Resources.resx

我在一个小的测试WPF应用程序的本地化工作,并希望有英语和法语。我创建了Resources.en-CA.resx和Resources.fr-CA.resx。

当我的测试应用程序启动时,我会看到一个启动窗口,其中有一个下拉列表可以选择英语或法语。当用户单击OK时,将调用一个方法来根据所选语言切换区域性,然后加载另一个窗口,该窗口将以所选语言显示一些资源字符串。

switch (selectedLanguage)
{
    case "English":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-CA");
        break;

    case "French":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
        break;
}

用户可以关闭此窗口,然后再关闭此窗口,并从启动窗口中选择不同的语言,然后单击确定以使用他们选择的新语言再次显示该窗口。

这是有效的,但我也有一个Resources.resx,它基本上只是Resources.en-CA.resx的副本。我想知道我是否可以摆脱Resources.en-CA.resx,如果可以,我应该将CurrentUICulture设置为什么,以便当选择英语时,它将使用来自Resources.resx的值。

switch (selectedLanguage)
{
    case "English":
        //What would I do here?
        break;

    case "French":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
        break;
}

我正在使用下面的代码访问资源字符串

Properties.Resources.SomeLocalizedString

转载请注明出处:http://www.cospi.net/article/20230331/1277873.html