C#以编程方式更改应用程序语言(用户首选项)

时间:2015-02-05 15:47:44

标签: c# localization windows-phone-8.1

我需要一些关于如何更改应用程序语言的提示。 (Windows 8.1)

所以这是我放在OnLaunched方法下的代码,它获取当前优先级的语言。我正在使用多语言应用工具包。我有所有的资源文件。

但我不知道下一步该做什么。

var rootFrame1 = new Frame(); rootFrame1.Language = Windows.System.UserProfile.GlobalizationPreferences.Languages[0];

2 个答案:

答案 0 :(得分:4)

您必须以这种方式设置当前CultureInfo属性:

var culture = new CultureInfo("en-US"); 
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name; 
CultureInfo.DefaultThreadCurrentCulture = culture; 
CultureInfo.DefaultThreadCurrentUICulture = culture; 

答案 1 :(得分:0)

有些资源指向将此代码放在Page构造函数中以对您要更改的默认语言做出反应

ResourceContext.GetForCurrentView().QualifierValues.MapChanged +=
                (IObservableMap<string, string> sender, IMapChangedEventArgs<string> e) =>
                {
                    ResourceManager.Current.DefaultContext.Reset();
                };

另外,值得一提的是,更改语言的首选方法是设置Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride属性。

这对Windows Phone 8.1来说效果不太好,但有些人认为这解决了他们在Windows 8.1上的问题。