UWP-动态加载resw资源文件

时间:2019-02-19 16:42:37

标签: c# uwp localization resources

我有一个带有Resources.resw的UWP应用程序,用于不同的文化。它们被放置在单独的文件夹下,例如:en \ Resources.resw,fr \ Resources.resw等。 我正在尝试创建一个功能,使用户可以在屏幕上动态选择语言,并从资源文件中为所选语言检索屏幕上的字符串。 我已经尝试过了:

ResourceContext.SetGlobalQualifierValue(“ language”,Culture.Name);

这可以在应用程序启动时设置语言。但是不会根据用户选择来更新语言。如何在UWP应用程序中动态更新语言?

1 个答案:

答案 0 :(得分:1)

您必须设置PrimaryLanguageOverride,然后重置资源管理器。

  ApplicationLanguages.PrimaryLanguageOverride = Culture.Name ;
  ResourceManager.Current.DefaultContext.Reset();

然后,您需要重新加载,重新加载页面 Frame.Navigate 和页面类型。

我最初的代码基于this stack overflow thread,该代码适用于Windows Store应用程序,但我认为它也适用于UWP应用程序。