使用多语言从代码后面将不同的语言实现到 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。
希望这能让你起床 运行!
--但丁
是否可以使用多语言工具包从代码后台将不同的语言实现到 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。
希望这能让你起床 运行!
--但丁