我有一个带有Resources.resw的UWP应用程序,用于不同的文化。它们被放置在单独的文件夹下,例如:en \ Resources.resw,fr \ Resources.resw等。 我正在尝试创建一个功能,使用户可以在屏幕上动态选择语言,并从资源文件中为所选语言检索屏幕上的字符串。 我已经尝试过了:
ResourceContext.SetGlobalQualifierValue(“ language”,Culture.Name);
这可以在应用程序启动时设置语言。但是不会根据用户选择来更新语言。如何在UWP应用程序中动态更新语言?
答案 0 :(得分:1)
您必须设置PrimaryLanguageOverride,然后重置资源管理器。
ApplicationLanguages.PrimaryLanguageOverride = Culture.Name ;
ResourceManager.Current.DefaultContext.Reset();
然后,您需要重新加载,重新加载页面 Frame.Navigate 和页面类型。
我最初的代码基于this stack overflow thread,该代码适用于Windows Store应用程序,但我认为它也适用于UWP应用程序。