使用多语言从代码后面将不同的语言实现到 UWP 应用程序中

implement different language into UWP application from code behind using multilingual

是否可以使用多语言工具包从代码后台将不同的语言实现到 UWP 应用程序中,而不是通过设置中设置所需的语言,而是从应用程序中的语言下拉列表中设置

您实际上不需要多语言应用程序工具包来修改应用程序的语言。默认情况下,应用程序将根据机器上的设置进行自我配置,但您可以通过设置 CurrentCulture and/or CurrentUICulture.

来覆盖它

举例来说,假设您有一个包含 "English"、"Spanish" 和 "French"... 的组合框,您希望的行为是将您的语言切换为用户选择的任何值。您需要做的就是连接 SelectionChanged 事件。代码可能如下所示:

   private void ChangeLanguage(object sender, SelectionChangedEventArgs e)
    {
        var newlySelected = e.AddedItems[0] as ComboBoxItem;
        string newLanguage = newlySelected.Content.ToString();
        switch (newLanguage)
        {
            case "English":
                {
                    CultureInfo.CurrentCulture = new CultureInfo("en");
                    CultureInfo.CurrentUICulture = new CultureInfo("en");
                    break;
                }
            case "Spanish":
                {
                    CultureInfo.CurrentCulture = new CultureInfo("es");
                    CultureInfo.CurrentUICulture = new CultureInfo("es");
                    break;
                }
            case "French":
                {
                    CultureInfo.CurrentCulture = new CultureInfo("fr");
                    CultureInfo.CurrentUICulture = new CultureInfo("fr");
                    break;
                }
            default:
                {
                    throw new NotImplementedException("Unidentified Language");
                }
        }
    }

当然,我鼓励您进行所有适当的错误检查(确保对 ComboBoxItem 的转换有效,等等...)。

此外,请记住,如果您希望日期和时间之类的内容在适当的语言环境中显示,则需要设置 CurrentCulture;如果您想要修改 ResourceLoader 用于填充的资源,请使用 CurrentUICulture UI。

希望这能让你起床 运行!

--但丁