Cordova / Phonegap全球化与navigator.language

时间:2016-12-29 09:20:15

标签: javascript android ios cordova globalization

我想实现一些机制来为Cordova应用程序自动选择UI语言。该应用程序也可以从网络(即浏览器)提供。

从我看来,我可以使用Cordova全球化API插件(here),或者似乎Android和iOS都支持navigator.language,它提供设备语言。

我是否应该选择在内置浏览器/ Web View属性中使用Cordova插件?

谢谢!

1 个答案:

答案 0 :(得分:2)

在真实设备上进行一系列搜索和测试之后,我可以说检索设备语言的两种方法或多或少是两个小差异的异常:

  • iOS 设备上,用户可以单独选择设备的语言和区域。例如,它可以选择语言italian,但选择区域USA。在这种情况下,插件将以it-US属性不同地返回字符串navigator.language,该属性将返回字符串it-IT(在iOS 11上测试)。如果你必须只知道语言,这不是一个大问题。
  • 在Android上有一个bug因为navigator.language没有立即更新。只有在应用程序被终止后才能使用新设置。该插件不会遭受这个bug的影响。解决方法可能是使用已正确更新的navigator.languages属性(在Android 5.0.2上测试)。

如果您必须只知道该语言,则可以毫无问题地使用navigator对象提供的信息。