有没有办法在运行时将当前语言转换为另一种语言?
例如:能够在点击按钮或启动应用程序时进行切换,获取用户语言并进行切换。
如何告诉插件在启动时检查用户语言?
提前感谢您的帮助。
发布于 2012-11-19 23:41:37
有没有办法在运行时将当前语言转换为另一种语言?
是,在您的MvxTextProviderBuilder.cs上调用builder.LoadResources(whichLanguage)
举例:当一个按钮被点击时能够切换
UI框架并未真正设置为执行实时切换。当您在不同语言之间切换时,新的JSON资源文件将全部正常加载-但不会更新现有的显示文本。这有点像大多数移动操作系统--如果你想切换语言,你经常需要重启!
如果你想添加动态切换,那么你必须找到一种方法来告诉UI完全刷新所有文本-我怀疑这不是很难做到的,但它可能需要对已经创建和显示的每个页面/视图进行一些手动编码:/
,或者在启动应用程序时,获取用户语言并进行切换。
这是一种更直接的i18n方式。这通常是可以的,因为MvvmCross主要针对手机-而手机通常是单用户设备,不会经常切换语言。
System.Globalization.CultureInfo.CurrentUICulture)来确定要显示的最佳语言。HomeViewModel -如果他们尚未选择,则显示LanguagePickerViewModel -这就是我们在StarWarsKinect中所做的- StartNavigationObject是这种逻辑的完美位置!<LanguagePickerViewModel>F217

如何告诉插件在启动时检查用户语言?
目前,您必须将此逻辑编码为应用程序启动的一部分。
我绝对愿意在这方面提供一个改进的插件--也许是一个演示!
如果您正在考虑i18n,那么另一个要考虑的实现是本土化的-- Rdio的团队为单声道和MS平台提供了一个非常好的产品-- https://github.com/rdio/vernacular
https://stackoverflow.com/questions/13455635
复制相似问题