加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – MvvmCross本地化:在运行时切换

发布时间:2020-12-14 02:49:57 所属栏目:Windows 来源:网络整理
导读:有没有办法在运行时将当前语言更改为另一种语言? 例如:能够在单击按钮或启动应用程序时切换,获取用户语言并切换. 如何告诉插件在启动时检查用户语言? 在此先感谢您的帮助. 解决方法 Is there a way to change the current language to another one at run
有没有办法在运行时将当前语言更改为另一种语言?

例如:能够在单击按钮或启动应用程序时切换,获取用户语言并切换.

如何告诉插件在启动时检查用户语言?

在此先感谢您的帮助.

解决方法

Is there a way to change the current language to another one at runtime ?

是的,在您的MvxTextProviderBuilder.cs上调用builder.LoadResources(whichLanguage)

For example: be able to switch when a button is clicked

UI框架并未真正设置为执行切换实时.当您在语言之间切换时,新的JSON资源文件将全部加载好 – 但现有的显示文本将不会更新.这有点像大多数移动操作系统 – 如果你想切换语言,你经常需要重启!

如果你想添加动态切换,那么你必须找到一种方法告诉用户界面完全刷新所有文本 – 我怀疑这不难做到,但它可能需要在每个页面/视图上进行一些手动编码已创建并显示:/

or when starting the app,get the user language and switch.

这是一个更直接的方式来做i18n.这通常是正常的,因为MvvmCross主要针对手机 – 而手机通常是单用户设备,不经常切换语言.

>例如,您可以使用一些变量(例如System.Globalization.CultureInfo.CurrentUICulture)来计算出要显示的最佳语言.
>或者您在加载时检测用户是否已选择语言 – 如果有,则显示HomeViewModel – 如果他们还没有显示LanguagePickerViewModel – 这就是我们在StarWarsKinect中所做的 – StartNavigationObject是这种类型的理想之地逻辑!

How to tell the plugin to check the user language at startup ?

目前,您必须将此逻辑编码为应用启动的一部分.

我绝对愿意提供一个改进的插件 – 也许是一个演示!

如果你正在考虑i18n,那么另一个可以考虑的实现是Vernacular – Rdio的团队为Mono和MS平台提供了非常好的产品 – https://github.com/rdio/vernacular

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读