在W8应用程序的运行时更改语言

时间:2013-08-26 16:30:39

标签: c# localization winrt-xaml

我必须本地化W8 C#应用程序。 用户必须能够在运行时更改语言。

我试过用:

Windows.Globalization.ApplicationLanguages.PromaryLanguageOverride = "de-DE";

并使用以下内容重新加载框架

var _Frame = Windo.Current.Content as Frame;
_Frame.Navigate(_Frame.Content.GetType());
_Frame.GoBack();

它在运行时没有任何影响,但是当我重新启动应用程序时它会起作用。

如何才能让它在运行时运行?

我的应用只有像“en-US”这样的文件夹中的图像; “去-DE”; “FR-FR” ...

Package.appxmanifest具有以下属性:

<Ressource Language="x-generate" />

我已经尝试指定每种语言:

<Resources>
   <Resource Language="en-US" />
   <Resource Language="fr-FR" />
   <Resource Language="de-DE" />
</Resources>

但它什么都没改变。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您需要重新创建已经显示的视图 - 这是关闭并重新启动应用程序时会发生的情况。

如果您启动应用程序并更改语言,视图将以新语言显示,但内存中仍然存在的任何视图都会显示原始文本。

您有两种选择:

  1. 自动重启应用程序,并在用户更改语言时重新显示用户所在的页面。
  2. 浏览并重新创建任何现有视图,以便他们获取新资源。