我正在开发我的第一个应用程序,并且正在尝试使其成为多语言。
使用AppHub 示例和其他一些链接,我创建了资源文件,修复了组件上的绑定字符串并设置了设置页面。
我遇到的第一个问题是菜单项和应用程序栏按钮不能使用本地化字符串(项目启动时抱怨)所以我有:
- TextBlocks 和其他与本地化字符串绑定的组件
- 使用加载本地化字符串的过程手动本地化 Appbar 按钮和项目
现在我有了我的设置页面,用户可以更改的一项是语言。
好吧,根据用户选择选择正确的CultureInfo,然后我使用
Thread.CurrentThread.CurrentUICulture = Settings.Language;
当我按下后退按钮并返回主页时,应用栏项目已正确本地化,而其他所有内容均未正确本地化。
唯一的解决方法(我真的不喜欢,只是为了理解)是这样的:
public MainPage()
{
Thread.CurrentThread.CurrentUICulture = Settings.Language;
InitializeComponent();
// Everything else I need here
}
所以我必须在创建组件之前设置语言以使其工作。
怎么了?使用绑定字符串更改语言后刷新页面的正确方法是什么?
我没有放很多代码,因为我基本上使用了链接中提供的代码,但是如果您需要更多信息,我将编辑我的问题。