Windows应用商店应用:以编程方式更改语言

时间:2015-02-06 10:18:06

标签: localization windows-store-apps

我有一个Windows应用商店应用,用户应该能够更改其语言。 一个屏幕1他选择了他的语言。然后应用程序以正确的语言切换到屏幕2。

我的问题是,屏幕2没有使用正确的语言启动。如果我切换回屏幕1并更改为其他语言,屏幕2将使用之前选择的语言。

我的本​​地化位于Resources.resw文件中。

以下是我使用的代码:

 private void ChangeLanguage(SupportedLanguage language)
    {
            CultureInfo cultureInfo = CultureInfoForSupportedLanguage(language);

            Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = cultureInfo.Name;
            CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
            CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; 

            ResourceContext.GetForCurrentView().Reset();

         Frame rootFrame = Window.Current.Content as Frame;
         rootFrame.Language = cultureInfo.Name;            
    }

1 个答案:

答案 0 :(得分:0)

我遇到了与Windows应用商店应用相同的问题。 我通过一些解决方法解决了这个问题:

切换 - 像你一样 - 用

 Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = language;

但我也删除了导航缓存

  var Frame = Window.Current.Content as Frame;
        Frame.CacheSize = 0;
        Frame.Navigate(typeof(Screen1));
        Frame.CacheSize = *your Cachesize*;
        Frame.Navigate(typeof(Screen2));
        Frame.GoBack();

它适用于我的情况,希望类似的东西可以帮助你